スキルルーティングのデバッグ
スキルがトリガーされない(または頻繁にトリガーされすぎる)場合、以下のチェックを行います。
チェックリスト
-
スキーマ: スキルが
npm run skills:validateを通過することを確認する。# 正常時の出力例$ npm run skills:validate✔ skills/midstream/rr-midstream-security-001/SKILL.md — OK✔ skills/midstream/rr-midstream-perf-001/SKILL.md — OK... (省略)All 42 skills passed validation.# 失敗時の出力例(未知の phase 値)$ npm run skills:validate✖ skills/midstream/rr-midstream-foo-001/SKILL.mdValidationError: "phase" must be one of [upstream, midstream, downstream, core]received: "release"# 失敗時の出力例(必須フィールド欠落)✖ skills/upstream/rr-upstream-bar-001/SKILL.mdValidationError: "applyTo" is required (or provide "files" / "path_patterns" / "trigger") -
カテゴリ/フェーズ:
categoryが現在のルーティング第一キー(core/upstream/midstream/downstream)。phaseは後方互換エイリアスであり新規スキルでは非推奨。詳細は config-schema を参照。 -
applyTo グロブ: パターンが PR 内のパスと一致しているか確認する。
グロブの良し悪しの例:
# 悪い例 — ルート直下しかマッチしないapplyTo:- "*.ts"# 良い例 — サブディレクトリを含むすべての .ts ファイルapplyTo:- "**/*.ts" -
重要度/タグ: ランナーのフィルタが、スキルを除外するタグや重要度を使用していないか確認する。
-
最近の変更: スキルファイルの git履歴を確認し、ルーティングロジックが変更されていないか見直す。
クイックテスト
スキルの applyTo グロブに一致するファイルを変更するドラフト PR を開く。発見事項が表示されない場合は、--debug フラグを付けて実行すると、マッチしたスキルと除外されたスキルが確認できる。
node src/cli.mjs run . --debug
出力例(一部):
Debug info:
- Impact tags: security, performance
- Token estimate: 1240
Matched skills (3): rr-midstream-security-001, rr-midstream-perf-001, rr-midstream-code-quality-001
Skipped skills (2): rr-upstream-arch-001 [glob no match], rr-downstream-release-001 [phase mismatch]
ゼロトリガーの症状例: phase に release など有効でない値を指定すると、validate は失敗し、スキルは一切トリガーされない。npm run skills:validate でエラーを確認してから再実行してください。
一時的にグロブを既知の単一パスに絞り込んでから、ワークフローを再実行することも有効です。