ref-integrity-scanlisted
Install: claude install-skill s977043/PlanGate
# Ref Integrity Scan
> **Provenance(出典・vendoring 規約)**: growth-core `deletion-reference-scan`
> (upstream: Growth-Teams-Agent@5219642 / 2026-07-03 時点)を PlanGate 向けに
> 汎用化して取り込み(#798)。上流への自動追従はしない — 上流更新の反映は
> **意図的に** diff をレビューして行う(provenance 追跡 + 意図的更新の vendoring 標準)。
ファイル・ディレクトリを削除・移動・改名する**前後**に、リポジトリ全体を対象に被参照(そのパスを指している箇所)を洗い出し、ダングリング参照を防ぐための手順スキル。
## #691(check-stale-skill-refs.py)との相補関係
| スキル/スクリプト | 走査方向 | 検出対象 |
|---|---|---|
| `scripts/check-stale-skill-refs.py`(#691) | **outbound**(発信) | スキル/コマンド/エージェントが参照している**先**が実在しない(stale) |
| **本スキル(ref-integrity-scan)** | **inbound**(被参照) | 削除・移動・改名する対象**への**参照が他のどこかに残っている |
`#691` は「自分が指している先が消えていないか」、本スキルは「自分を消したときに誰かが迷子にならないか」を確認する。両方向を揃えることで参照整合を守る。
## 実害事例(動機)
2026-07-10、`self-review` スキルを `diff-audit` へ改名した際(#796)、削除・改名前の被参照スキャンを行わなかったため、以下が**事後検出**になった:
- `acceptance-review` からのリンク切れ(RiverReview レビューで major 指摘として検出)
- `.cursor` 配下の壊れた symlink(旧パス `self-review` を指したまま。Codex 側レビューで検出)
いずれも事前に inbound スキャンを行っていれば着手前に判明していた。本スキルはこの再発防止策として新設する。
## When NOT to use
- コード内の import / require 参照の整合性チェック → 型チェッカー / linter を使う
- 外部サイトへのリンク切れ(http/https URL)のチェック → 対象外(本スキルはリポジトリ内参照のみ)
## 手順
### Step 1: 対象パスの確認
削除・移動・改名する対象パスを列挙する(複数可)。例:
```text
対象: .claude/skills/self-review/ (旧名)
対象: .claude/skills/self-review/SKILL.md
```
移動・改名の場合は「旧パス」と「新パス」の両方を把握しておく(新パスは対象外、旧パスのみスキャン対象)。
### Step 2: スキャン実行
**フルパス**と**ファイル名のみ**の 2 パターンで grep する。参照形式が `./` 省略・相対パス表記・単純なファイル名参照など様々なため、片方だけでは取りこぼす。
対象ディレクトリ・ファイル: `docs/ .cl