typescript-skills について
typescript-skills は、コーディングエージェント向けの TypeScript ルール案内スキルです。作業に合う参照トピックへ誘導し、全資料の一括読み込みを避けます。
主な機能
- 01作業内容に応じた索引案内
- 02診断情報からルールへの誘導
- 03TypeScript の設計・実装トピックを収録
- 04関連する参照資料に限定
活用シーン
- 01TypeScript の設計判断の確認
- 02コンパイラーや lint の診断への対応
- 03設定や非同期コードの指針の選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gabrielmoreira/ skills --skill typescript-skillsインストール後、Claude Code で/typescript-skillsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/check-invariants.tscontrol-matrix.tsdiscover-scenarios.tsevals.types.tsinternal-routing.scenarios.tspublic-activation.scenarios.tsREADME.mdrouter.scenarios.tsrun-evals.tsevals/lib/activation-scoring.test.tsactivation-scoring.tsgrading.tsprepare-grading.tsreport.tsrun-layout.tsschema.tsscore-activation.tsscore-local.tsreferences/authoring-checklist.mddiagnostics-to-rules.mdreferences/patterns/layered-resolve.mdtypescript-async/INDEX.mdtypescript-async/evals/async.scenarios.tstypescript-async/evals/fixtures/async-timeout-must-fit-caller-budget/package.jsonsetup.shtemplate.yamltypescript-async/evals/fixtures/async-timeout-must-fit-caller-budget/src/handler.tshttp.test.tshttp.tstypescript-async/rules/cancellation-and-abort.md詳細
TypeScript ルールルーター
基本原則。 9つではなく、1つのトピックを開いてください。このスキルのコストは、読むことになる内容です。
- このパッケージで検出可能なスキルはこれだけです。 この配下はすべて参考資料です。
- 内部の
INDEX.mdはスキルではありません。 トピック名を呼び出さないでください。記載されている正確なパスを読み込んでください。 skill://はこのパッケージの参照表記であり、プロトコルではありません。 ハーネスが認識しない場合は、同等のファイルパスに置き換えて、対象を直接読み込んでください。- あなたは作業の途中でこれを開きました。 これはその作業を進める方法であり、作業に取って代わるものではありません。始める前に何をしていたかを明確にし、これが終わったらその作業に戻ってください。
まず1つのトピックを開く
タスクを左列に照らし合わせ、該当するインデックスを開いてください。
-
報告されたリンターまたはコンパイラーの診断は、別の場所から始まります。 まず
skill://typescript-skills/references/diagnostics-to-rules.mdを読み、その後、そこで示されたルールを読んでください。 -
タスクが実際の境界をまたぐ場合に限り、2つ目のトピックを追加してください。
-
既定ですべてのトピックを読み込まないでください。 それを防ぐためにこのルーターがあります。
-
すべての行を読んでから、該当する項目に沿って行動してください。取り消しにくいものを先にします。 行を読むコストはかかりません。読み飛ばした行に、カバーすべき内容があります。 | タスクに次の内容が関わる場合 | このトピック索引を参照してください | | --- | --- | | 値が存在しない可能性がある、または
?.や??でその値を保護している |skill://typescript-skills/typescript-coding-standards/INDEX.md| | 型の代わりにany、unknown、または型アサーションを使っている |skill://typescript-skills/typescript-coding-standards/INDEX.md| | 網羅性チェックのない、ユニオン型に対するswitch|skill://typescript-skills/typescript-coding-standards/INDEX.md| | 2つ目の呼び出し元が現れる前に追加された抽象化、クラス、またはジェネリクス |skill://typescript-skills/typescript-coding-standards/INDEX.md| | 分割したい長い関数、または1つの関数内に異なる抽象度が混在している |skill://typescript-skills/typescript-coding-standards/INDEX.md| | クラス、エラー、またはフィールドの名前が定まらない |skill://typescript-skills/typescript-coding-standards/INDEX.md| | 古い形式とその切り替え処理が並存している |skill://typescript-skills/typescript-coding-standards/INDEX.md| | SDK、プロバイダー、または生成された型がビジネスロジックに到達している |skill://typescript-skills/typescript-boundaries/INDEX.md| |APIのリクエストまたはレスポンス形式をドメイン型として使用している |skill://typescript-skills/typescript-boundaries/INDEX.md| | それらの間にマッパー、変換処理、またはトランスレーターを設けている |skill://typescript-skills/typescript-boundaries/INDEX.md| | 依存関係を渡さず、使用箇所で構築している |skill://typescript-skills/typescript-composition/INDEX.md| | ファクトリーやシングルトンを実行時に選択している、またはライフサイクルの管理者がいない |skill://typescript-skills/typescript-composition/INDEX.md| | 起動時以外でprocess.envを読み取っている |skill://typescript-skills/typescript-configs/INDEX.md| | 型を付けずに設定値を解析、デフォルト設定、または公開している |skill://typescript-skills/typescript-configs/INDEX.md| | 各プロセスが読み込む設定オブジェクトが1つだけで、そのうち1つのプロセスが値を必要としている |skill://typescript-skills/typescript-configs/INDEX.md| | 機能フラグ、または進行中の設定移行 |skill://typescript-skills/typescript-configs/INDEX.md| | ログやトレースの記録がない分岐処理 |skill://typescript-skills/typescript-observability/INDEX.md| | 何が起きたかは示すが、どう対処すべきかを示さないログ行 |skill://typescript-skills/typescript-observability/INDEX.md| | リテラル、ログ、または設定のデフォルト値に含まれるシークレット、認証情報、またはトークン |skill://typescript-skills/typescript-security/INDEX.md| | ヘッダー、ペイロード、またはリクエスト全体を出力するログやデバッグ行 |skill://typescript-skills/typescript-security/INDEX.md| | 値がすでに書き込まれた後に行われるマスキング、または慣習で選ばれた暗号方式 |skill://typescript-skills/typescript-security/INDEX.md| | 振る舞いではなく、モックの呼び出しを検証するテスト |skill://typescript-skills/typescript-testing/INDEX.md| | テストで固定されていない境界のコントラクト |skill://typescript-skills/typescript-testing/INDEX.md| | 変動したカバレッジの数値やゲート |skill://typescript-skills/typescript-testing/INDEX.md| | 特性化テストなしで始めるリファクタリング |skill://typescript-skills/typescript-testing/INDEX.md| | 結果型を使うべき箇所でのthrow、またはその逆 |skill://typescript-skills/typescript-error-handling/INDEX.md| | 再試行可能かどうかを明示せずに境界を越えるエラー |skill://typescript-skills/typescript-error-handling/INDEX.md| | 原因を握りつぶすcatch|skill://typescript-skills/typescript-error-handling/INDEX.md| |Promise.all、逐次的な await、または await されていない Promise |skill://typescript-skills/typescript-async/INDEX.md| |finallyやusingによるクリーンアップ、またはレスポンス後も実行され続ける処理 |skill://typescript-skills/typescript-async/INDEX.md| |AbortSignalのクリーンアップ、再試行とバックオフ、またはSIGTERMによるシャットダウン |skill://typescript-skills/typescript-async/INDEX.md|
基本方針。
- 9 つのトピックすべてではなく、1 つのトピックを開きます。 タスクが実際の境界をまたぐ場合に限り、2 つ目も開きます。
- より強い不変条件を守るルールがない限り、リポジトリ内の既存の規約に従います。
- 必要性が実際にある場合にのみ構造を追加し、そのタイミングはトピック固有のルールに委ねます。
判断に迷った場合
ここに該当するのは、本当に判断が難しいケースだけです。 それ以外は上記に従ってください。
| 状況 | 優先 | 次点 |
|---|---|---|
| プロバイダーの応答形式がビジネスロジックに入る | skill://typescript-skills/typescript-boundaries/INDEX.md | 命名については、コーディング標準 |
| 起動時にプロバイダーを選択する | skill://typescript-skills/typescript-composition/INDEX.md | プロバイダーの形式が内側に入り込む場合は、境界 |
| シークレットのソースを示すポインターが設定に現れる | skill://typescript-skills/typescript-security/INDEX.md | 解析と公開範囲については、設定 |
| 開発用の値がコードのデフォルトとして使われる | skill://typescript-skills/typescript-security/INDEX.md | シークレット以外の動作デフォルトに限り、設定 |
| 解析済みデータまたは不明なデータにキャストを適用する | skill://typescript-skills/typescript-coding-standards/INDEX.md | パーサーの形式については設定、転送データについては境界 |
| 広範な設定オブジェクトが機能モジュールに入る | skill://typescript-skills/typescript-configs/INDEX.md | フレームワークの組み立てが関係する場合は、コンポジション |
| ステージの比較によってリソースを選択する | skill://typescript-skills/typescript-configs/rules/feature-decisions.md | skill://typescript-skills/typescript-configs/rules/validation-vs-verification.md |
| ログまたはトレースの属性にシークレットが含まれる可能性がある | skill://typescript-skills/typescript-security/INDEX.md | 診断情報の形式については、オブザーバビリティ |
| 振る舞いを変更する前にリファクタリングを行う | skill://typescript-skills/typescript-testing/INDEX.md | 関連する設計トピック |
| 再試行ループが呼び出し元のエラーも再試行する | skill://typescript-skills/typescript-error-handling/rules/error-classification.md | 仕組みについては skill://typescript-skills/typescript-async/rules/retry-and-backoff.md |
| ハンドラーが SDK のエラー形式をクライアントに返す | skill://typescript-skills/typescript-error-handling/rules/error-boundary-contract.md | 受信データのマッピングについては、境界 |
| シグナルを伴わずに catch がフォールバックを返す | skill://typescript-skills/typescript-error-handling/rules/error-boundary-contract.md | シグナルの形式については、オブザーバビリティ |
ルーターの契約
- 選択されたトピックのインデックスが、そのドメイン内のルーティングを担います。
- 設計上の判断は、正規のルールファイルに従います。
- 名前が付いた診断項目は、
skill://typescript-skills/references/diagnostics-to-rules.mdを経由して案内します。 - 執筆規約については、
skill://typescript-skills/references/authoring-checklist.mdを参照してください。 - 未解決の事項は、リポジトリのルートにある
docs/typescript-skills/に記載されています。