typescript-review について
typescript-reviewは、TypeScriptおよびJavaScriptの変更を対象とするコードレビュースキルです。特に新規・編集コードでの`any`禁止を優先し、テスト、アクセシビリティ、性能、セキュリティなども確認します。
主な機能
- 01typescript-writeの規則を優先
- 02明示・暗黙の新しい`any`をブロック
- 03差分・テスト・ヘルパーファイルを確認
- 04アクセシビリティ・性能・セキュリティを点検
- 05バンドルサイズ・分析・公開APIを評価
活用シーン
- 01TypeScriptまたはJavaScriptのプルリクエストをレビュー
- 02プロジェクトの作成規則違反を発見
- 03テストの主張と未実施チェックを評価
- 04アクセシビリティとセキュリティ上の懸念を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ metabase/ metabase --skill typescript-reviewインストール後、Claude Code で/typescript-reviewを入力して読み込まれたか確認します。
詳細
TypeScript/JavaScript コードレビューのスキル
@./../_shared/typescript-commands.md @./../_shared/react-redux-patterns.md
主な重点項目
最優先の基準:typescript-write スキルです。 最初に読み込んでください。このスキルでは、frontend/AGENTS.md および docs/developers-guide/frontend.md とともに、このレビューで適用する作成ルールを定めています。
typescript-write の遵守は、レビューで最も優先度の高い観点です。その規定への違反は、ほかのすべての指摘より上位にしてください。any を使用しないという厳格なルール(新規、移動、またはその他の編集対象コードで、明示的・暗黙的を問わず any を使用しない)への違反はブロッキングとして扱ってください。利用可能な場合は TypeScript LSP ツールで推論された型を確認し、それ以外の場合は型チェックと lint を頼りにしてください。
テストやヘルパーを含め、差分全体と新規ファイルを確認してください。テストについては、セットアップ、操作、アサーションが、主張されている振る舞いを検証しているかを確認してください。違反を指摘する際は、該当するルールとファイル/行を示してください。実行されなかったチェックや変更を網羅していないチェックは、合格ではなく未検証として報告してください。自動チェックに合格していても、ガイドラインへの準拠が証明されるわけではありません。
次の優先順位でレビューしてください。
typescript-writeの規定への違反 —anyの不使用、型の厳密化、型のモデリング、関数シグネチャ、null/undefined の処理、命名、構造、コメント。最優先であり、anyを使用しないルールへの違反はブロッキングとします。条件付きのガイダンスは状況に応じて適用してください。あらゆる好みを一律の禁止事項として扱うのではなく、サポートされていない型保証や具体的な可読性の問題を説明してください。frontend/AGENTS.mdへの準拠。- 可読性と保守性。
- 適切なテストカバレッジ。内部の型付け済み呼び出し元については、型システムで除外される入力だけを理由にテストを求めないでください。外部 API データ、デシリアライズされた値、ストレージ、JavaScript の呼び出し元は型注釈に違反する可能性があるため、こうした境界ではランタイム検証と、重要な前提をテストしてください。型は、振る舞い、セキュリティ、データ整合性のテストの代わりにはなりません。
見落としやすい点 — 不足しているレビュアーの役割を担う
これらの点はチームレビューで見落とされがちなため、このスキルで指摘してください。これらは追加の観点です。指摘はしますが、typescript-write 違反より優先度を下げてください。
- アクセシビリティ。 インタラクティブ要素には、キーボード操作、フォーカス管理、アクセシブルな名前が必要です。
aria-label/aria-labelledbyの欠落、セマンティクスに沿っていないクリック対象、フォーカストラップのないモーダル、ラベルのないアイコンのみのボタン、関連付けられたラベルのないフォーム入力を指摘してください。 - パフォーマンス。 スケールしにくくメモ化されていない箇所、メモ化された子コンポーネントに渡されるインラインのオブジェクト/配列リテラル、段階的な読み込みの各バッチで実行されるエフェクト、新たに追加されたホットパス上の依存関係を指摘してください。
- セキュリティ。 新規、移動、またはその他の編集対象コードに潜在的なセキュリティ上の問題がないか評価してください。
- バンドルサイズ。 大きな依存関係の追加、アイコンまたはユーティリティライブラリからのデフォルトインポート、ルート読み込み時にインポートされる重量級モジュールを指摘してください。
- アナリティクス。 ユーザー向けフローでは、トラッキングイベントを送信する必要があります。PR でトラッキングイベントのない新しいフロー(ボタン、モーダル、ナビゲーション)が追加された場合、イベントが必要かどうかを確認してください。
- 公開 API のサーフェス(埋め込み SDK)。利用者が公開シグネチャを使用でき、インポートが必要な型を名前で指定できる必要があります。そうした型は意図的にエクスポートし、
@deprecatedによる非推奨 API の明示を含め、公開される振る舞いをドキュメント化してください。参照される構造型は、独自の名前付きエクスポートにする必要があるとは限りません。