<Skill Name>
Free<What this skill does>
The English summary is being prepared. Showing the original description.
Detect primitive obsession and missing domain/brand types; check that state is modeled via discriminated unions.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Primary pattern: Reviewer Secondary patterns: Inversion Why: プリミティブ型の濫用やドメイン型の欠如をチェックリスト型で評価するが、TypeScript以外の変更では実行不要
any の排除や型アサーションの削減(typescript-strict のスコープ)。typescript-nullcheck のスコープ)。tsconfig.json の設定変更。このスキルは以下の条件がすべて満たされない限りNO_REVIEWを返す。
.ts, .tsx)の変更が含まれている*.spec.ts, *.test.ts, __tests__/**)のみではないゲート不成立時の出力: NO_REVIEW: type-driven-design — Type-Driven Design評価の対象となるTypeScriptコード変更が検出されない
code_search で確認)。string の引数が 1 つしかなく、他のプリミティブとの混入可能性がない場合。string / number にはブランド型 (UserId, OrderId, Price 等) を使う。boolean フラグや status: string で表現するのではなく、判別可能なユニオン型(Discriminated Union)でモデリングする。string / number が連続して並ぶ場合、引数が混入可能か確認する。<file>:<line> で追える内容)。code_search で確認し、根拠を示す。<file>:<line>: <message> 形式。コメントは日本語で返す。
例:
src/order.ts:15: userId と orderId が同じ string 型。引数の順序を間違えてもコンパイルエラーにならない。Fix: ブランド型 UserId / OrderId を導入(userId: string, orderId: string) のように同じプリミティブ型が複数の引数に並ぶ。status: 'pending' | 'active' | 'deleted' のようなリテラルユニオンが型エイリアスに切り出されていない。isLoading: boolean; isError: boolean; isSuccess: boolean のように boolean フラグが複数並び、排他性が型で表現されていない。type State = { loading: true } | { error: Error } | { data: Data } のような判別可能なユニオンが使えるのに使われていない。string / number を使っている。Bad:
function getOrder(userId: string, orderId: string): Order;
// userId と orderId が型レベルで区別されず、引数の順序ミスがコンパイルエラーにならない
Good:
type UserId = string & { readonly __brand: 'UserId' };
type OrderId = string & { readonly __brand: 'OrderId' };
function getOrder(userId: UserId, orderId: OrderId): Order;
// getOrder(orderId, userId) は型エラーになる
Bad:
type RequestState = {
isLoading: boolean;
isError: boolean;
data?: Data;
error?: Error;
};
// isLoading: true かつ data が存在する無効な状態が許可される
Good:
type RequestState =
{ kind: 'loading' } | { kind: 'error'; error: Error } | { kind: 'success'; data: Data };
// 無効な状態が型で表現不可能
Bad: status: 'pending' | 'processing' | 'shipped' | 'delivered' がインラインで重複定義。
Good: type OrderStatus = 'pending' | 'processing' | 'shipped' | 'delivered' と型エイリアスに切り出す。
string / number の引数が並ぶ場合、ブランド型パターン (type UserId = string & { readonly __brand: 'UserId' }) の導入を提案する。any や null 問題との混同。No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
<What this skill does>
The English summary is being prepared. Showing the original description.
画像・ボタン・フォーム要素に適切なアクセシブルネームがあるか確認する。
The English summary is being prepared. Showing the original description.
Ensure ADRs capture context, decision, alternatives, tradeoffs, and follow-ups in a way that prevents future drift.
The English summary is being prepared. Showing the original description.
敵対的分析手法を統合したレビューの entry skill。認知バイアス対策の3手法 (Pre-mortem / War Game / Logic Torturing)と、宣言・主張と実態の乖離を突く claim-vs-actual 検出3パターン(Self-Contradiction / Refactor-Claim Audit / Cross-File Leakage)へルーティングし、通常のレビューでは見えない設計の盲点・ 防御の穴・論理の弱点・宣言と実装のズレを可視化する。
The English summary is being prepared. Showing the original description.
Review changes to the Agent Skills import/export bridge for path safety, round-trip fidelity, and validation correctness.
The English summary is being prepared. Showing the original description.
Checks whether AI-assisted work defines review criteria, accessible context, explicit review loop, human judgment boundary, and feedback capture before delegating to an agent.
The English summary is being prepared. Showing the original description.