dry-ssot-textlisted
Install: claude install-skill YasuakiOmokawa/skills
# DRY/SSOT Text Refactor
AI 生成の長文 (plan / design doc / RFC / PR / README) で同一概念が複数箇所で繰り返される症状を、1 箇所に集約 (Single Source of Truth) + 他箇所をクロスリファレンスに置換することで解消する。同時に navigation aid (TOC / checklist / progress table) は残す。
**核心原則**: 「同じ事実を 2 度書かない」だが「ナビゲーション目的の重複は別物」。
## Task complexity tier
| Tier | 判定 | アクション |
|---|---|---|
| **skip** | 文書 <100 行 / 重複箇所数 ≤2 / 外向き説明資料 (顧客向け・ブログ) / API ref のような網羅列挙文書 | **skip** (集約効果薄) |
| **lite** | 100-300 行, 重複 3-5 箇所 | dry-run 省略、直接 Edit 可 (4. の dry-run レポートは出力しない) |
| **standard** (default) | 300+ 行 or 共有前文書 or 重複 6+ 箇所 | dry-run レポート必須 → 承認後 Edit |
| **deep** | 600+ 行 / 複数 doc 跨り (plan + design doc 一致) / 既存 cross-reference に依存 | dry-run + 各 reference 先のアンカー疎通検証 + 適用後の `grep -c` 重複ゼロ確認 |
**複数 tier 該当時の優先**: 1 文書が複数 tier の条件に該当する場合 (例: 55 行で skip の「<100 行」に該当するが重複 3 箇所で lite の「3-5 箇所」にも該当) は、**重複箇所数を優先**する。skip は「重複箇所数 ≤2」が必須条件 — 行数が短くても重複が 3+ なら lite 以上として集約に進む。
**tier 名規約**: 4 tier (skip / lite / standard / deep) は本 skill 内の判定軸であり、他 skill の "standard" / "lite" 命名と直接対応しない (本 skill では 300+ 行が standard、100-300 行は lite)。other skill から「standard median な文書」と呼ばれる 200 行・3 箇所重複ケースは本 skill では **lite** tier として処理する。
## Core Pattern: 必要重複 vs 不要重複
| 種類 | 例 | DRY 化するか | 理由 |
|---|---|---|---|
| **不要: 説明文** | 同じ設計判断を PR1/PR2/PR3 で再記述 | **する** | 1 箇所更新で済む |
| **不要: 表/コード** | 同じ table が 2 箇所、片方に「再掲」 | **する** | 1 箇所更新で済む |
| **不要: 引用文** | 公式ドキュメントの同一一節を 2 箇所引用 | **する** | 引用元に集約 |
| **必要: TOC / 進捗 table** | 章立て一覧、PR 進捗表 | **しない** | 俯瞰 navigation |
| **必要