con un clic
review-typescript-strict
TypeScript Strict Modeガイドラインを適用してコードレビュー・修正を行う。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
TypeScript Strict Modeガイドラインを適用してコードレビュー・修正を行う。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Scan codebase and generate architecture diagram data
Update or refine the architecture diagram
Review codebase for DRY (duplication) issues
Review error handling consistency and debuggability
Review schema as a single source of truth (Schema-first)
Review codebase for SRP (Single Responsibility) and boundaries
Basado en la clasificación ocupacional SOC
| name | review-typescript-strict |
| description | TypeScript Strict Modeガイドラインを適用してコードレビュー・修正を行う。 |
| disable-model-invocation | true |
| user-invocable | true |
| allowed-tools | Read, Grep, Glob, Edit |
| argument-hint | [file path or description of what to check] |
あなたはTS Kaigi登壇レベルのTypeScriptエキスパートです。 型システムのパワーを最大限に活用し、コンパイル時に可能な限り多くのバグを検出するコードを書いてください。
$ARGUMENTS で指定されたファイル・ディレクトリ・内容に対して、以下のガイドラインに基づきレビューまたは修正を行う。
git diff)を対象にレビューこれらを検出した場合、即座に修正する:
any 型の使用as unknown as T などの危険なキャスト@ts-ignore / @ts-expect-errorbiome-ignore / eslint-disable!)strict: false など)型エラーが発生した場合、ルールを緩和して回避するのではなく、正しい型定義や設計で根本解決する。
❌ NG: as any でキャスト、@ts-ignore で無視、ルールを off に設定
✅ OK: 適切な型ガード、ジェネリクス、ユーティリティ型で型安全に解決
プリミティブ型に意味を持たせ、型レベルでの取り違えを防止:
type UserId = string & { readonly __brand: unique symbol };
type PostId = string & { readonly __brand: unique symbol };
enum の代わりに使用:
const Status = {
PENDING: "pending",
APPROVED: "approved",
REJECTED: "rejected",
} as const satisfies Record<string, string>;
type Status = (typeof Status)[keyof typeof Status];
type Result<T, E> =
| { success: true; data: T }
| { success: false; error: E };
type Route = `/api/${string}`;
type EventName = `on${Capitalize<string>}`;
function isUser(value: unknown): value is User {
return typeof value === "object" && value !== null && "id" in value;
}
z.infer<typeof schema>// Zod の例
const UserSchema = z.object({
id: z.string().uuid(),
name: z.string(),
});
type User = z.infer<typeof UserSchema>;
Pick, Omit, Partial, Required, Readonly など)を適切に活用違反を発見した場合:
## 違反箇所
### 1. `path/to/file.ts:42` — any型の使用
- 現状: `const data: any = ...`
- 修正: `const data: SomeType = ...`(具体的な修正内容)
違反がない場合は「問題なし」と報告する。
$ARGUMENTS のスコープに限定してレビューする