一键导入
skill-health
// `.claude/skills/*/SKILL.md` の frontmatter / referenced script 実在 / trigger 衝突 / `.claude/hooks/*.sh` の executable+shebang を検査する meta-skill。 メタワークフロー監査で「hook script rot が最高リスク」と判明したため、 commit 前または skill 編集後に呼んで health check を行う。
// `.claude/skills/*/SKILL.md` の frontmatter / referenced script 実在 / trigger 衝突 / `.claude/hooks/*.sh` の executable+shebang を検査する meta-skill。 メタワークフロー監査で「hook script rot が最高リスク」と判明したため、 commit 前または skill 編集後に呼んで health check を行う。
| name | skill-health |
| description | `.claude/skills/*/SKILL.md` の frontmatter / referenced script 実在 / trigger 衝突 / `.claude/hooks/*.sh` の executable+shebang を検査する meta-skill。 メタワークフロー監査で「hook script rot が最高リスク」と判明したため、 commit 前または skill 編集後に呼んで health check を行う。 |
このプロジェクトの自動化資産 (16 skill + 5 hook + 49 pre-commit hook) を meta-level で健全性検証する。
memory feedback_conservative_changes.md に従い、 read-only、 検査結果を report として返すのみ。 修正は別 skill / 手動で。
| 検証対象 | 内容 |
|---|---|
| SKILL.md frontmatter | name / description / allowed-tools の必須 key、 description 長 |
| name ↔ directory 一致 | .claude/skills/foo/SKILL.md の name: foo であること |
| scripts/*.py 参照 | SKILL.md 内で参照されるスクリプトが repo 内に実在 |
| trigger 衝突 | 複数 skill の description で同じ 「...」 が使われていないか |
| hook 実行可能性 | .claude/hooks/*.sh の executable bit + shebang |
uv run python scripts/check_skill_health.py --verbose
期待出力例:
inspected 16 skills, 5 hooks
OK skill-health: 16 skill(s), 5 hook(s) inspected
| エラー種別 | 修正案 |
|---|---|
frontmatter not parseable | YAML 構文エラー。 --- 行 + key: value を見直す |
missing frontmatter key: name | SKILL.md 冒頭に name 追加 |
name does not match directory | ディレクトリ名と SKILL.md の name を揃える |
references <path> but file does not exist | 参照されるスクリプトを作るか SKILL.md から消す |
trigger fragment used by: [...] | 複数 skill で同じ trigger 文言 → どちらかを書き換えて曖昧性除去 |
not executable | chmod +x .claude/hooks/*.sh |
no shebang on line 1 | #!/usr/bin/env bash を 1 行目に追加 |
このチェック自体は CI gate にする選択もあるが、 false positive (trigger 衝突警告は意図的なケースもある) のため pre-commit には入れずに skill 経由で呼ぶ。
将来、 false positive を減らせた段階で pre-commit hook 化を検討。
# 全 skill / hook の health check
/skill-health
# verbose で全 skill / hook を一覧
/skill-health verbose
name ↔ directory ミスマッチ (skill 追加時の rename 忘れ) の早期発見.claude/hooks/*.sh の shebang 漏れ / executable 漏れ 防止「PR を作って」「pull request を出して」要求で発動。 push → 構造化 PR 本文 (pull_request_template.md 準拠) で PR 作成 → CI 監視ループ → review thread 返信+resolve まで 1 skill で完結。 skill 間 handoff を排除し工程の取りこぼしを防ぐ。 マイルストーン非付与、 auto-merge 非使用。
ORT / openjtalk / ruff のような cross-runtime に canonical sync が必要な依存関係を 1 コマンドで bump する read-mostly skill。 既存の `check_ort_versions.py` / `check_openjtalk_version_sync.py` / `check_ruff_version_sync.py` が drift 検出後に「どこを何バージョンに上げる」を提示する逆方向 helper。
9 パッケージ × 5 レジストリの version bump と関連ファイル更新 (Cargo.lock / package-lock.json / Swift checksum / CHANGELOG 昇格) を 1 コマンドで適用案にする read-mostly skill。`release-prep` (確認用) の続きに呼び、 実 bump 差分の markdown 提案 + 順序付き publish ガイドを生成する。
学習済み Lightning checkpoint (.ckpt) を ONNX export → sanity check → RTF benchmark → HuggingFace upload まで連鎖実行する read-mostly skill。 export 仕様 (FP16 / EMA / emb_lang unify / opset 15) を `docs/spec/onnx-export-contract.toml` から取得し、 全 7 ランタイムでの load 可否を gate する。
PR レビューコメントへの対応 / review thread の resolve / Copilot や human reviewer のコメントに返信 する文脈で発動。修正コミット後に呼ぶと、各 unresolved thread に対して返信本文を生成し thread を resolve する。`--stale-check` で「コメント以降に該当ファイルが更新済」を自動 flag、`--skip-copilot-style` で Copilot 定型ノイズ regex 除外、`--dry-run` で計画のみ表示、`--auto-safe` で stale + Copilot ノイズ category のみ自動 reply + resolve (人間 reviewer / 非 stale はユーザ判断)。
CI workflow の最近 run を集計し、 failure を「flake / drift / env / test bug」に自動分類する skill。 既存 `/watch-pr <PR>` の workflow-level 拡張。 引数なしで全 workflow の health check、 `--workflow <name>` で個別 workflow の最近失敗パターンを抽出。 docker-build 45% / go-ci 14% / csharp-ci 13% のような chronic flake を可視化する。