---
name: verify-docs
description: ドキュメント（docs/）の内容がコードの実装と一致しているかを検証します。「ドキュメントを検証」「ドキュメントとコードの整合性をチェック」「docsを確認」と言われたときに使用します。
allowed-tools: Read, Glob, Grep, Edit, TodoWrite, Task
---

# ドキュメント・コード整合性検証スキル

ドキュメント（docs/）の内容がコードの実装と一致しているかを検証するスキルです。

## 概要

このスキルは以下を自動的に実行します：
1. 既存のチェックリストファイル（`doc-review-checklist.md`）を確認
2. なければ新規作成、あれば未完了ファイルから再開
3. 各ファイルを `doc-verifier` サブエージェントで1つずつ検証
4. **1ファイル完了ごとに**チェックリストを即座に更新

**再開可能**: 途中で中断しても、次回実行時は未チェックのファイルから自動的に再開します。

## 確認観点

各ドキュメントについて以下を確認します：

### コードとの整合性
- コマンド・スクリプトが `package.json` と一致しているか
- ファイルパス・コンポーネント名が実在するか
- API・IPCチャンネル名が正しいか
- 機能説明が実装と一致しているか
- 廃止された機能・コードが残っていないか

### ドキュメント体系の整合性
- **screens/** - 画面単位の具体的な操作・UI仕様が記載されているか（主軸）
  - 全ての画面・モーダル・ダイアログを網羅しているか
  - 単一画面に閉じた機能説明は features/ ではなく screens/ にあるか
- **features/** - 横断的機能のみが配置されているか（補助）
  - 複数画面にまたがる機能・概念のみか
  - 単一画面でのみ使用される機能が含まれていないか
- **参照方向** - screens → features → architecture の順に参照されているか
  - features/ から screens/ への参照がないか（逆方向禁止）

## 実行手順

### 1. 既存チェックリストの確認

まず `doc-review-checklist.md` が存在するか確認します。

**存在する場合（再開モード）:**
- チェックリストを読み込む
- `- [ ]`（未チェック）のファイルを抽出
- 未チェックファイルから検証を再開

**存在しない場合（新規モード）:**
- 次のステップでドキュメント一覧を取得
- 新規チェックリストを作成

### 2. 対象ドキュメントの取得

```
Glob: docs/**/*.md
```

以下のファイルは除外します：
- TEMPLATE.md
- WRITING-GUIDE.md
- その他のテンプレートファイル

### 3. チェックリストファイルの作成（新規の場合のみ）

検証実行前に、プロジェクトルートに `doc-review-checklist.md` を作成します。

```markdown
# ドキュメント検証チェックリスト

実行日時: {現在日時}

## 確認観点

### コードとの整合性
- コマンド・スクリプトが package.json と一致しているか
- ファイルパス・コンポーネント名が実在するか
- API・IPCチャンネル名が正しいか
- 機能説明が実装と一致しているか
- 廃止された機能・コードが残っていないか

### ドキュメント体系の整合性
- **screens/** - 画面単位の操作・UI仕様（主軸）、全画面網羅
- **features/** - 横断的機能のみ（複数画面にまたがる機能・概念）
- **参照方向** - screens → features → architecture（逆方向禁止）

---

## 1. セットアップ・開発 (setup/)

- [ ] docs/setup/getting-started.md
- [ ] docs/setup/development.md
- [ ] docs/setup/build-deploy.md

**不整合メモ:**
```
(確認後に記載)
```

---

## 2. 機能ドキュメント (features/)

- [ ] docs/features/icons.md
...（取得したファイルをすべてリスト）

**不整合メモ:**
```
(確認後に記載)
```

---

（以下、カテゴリごとに同様の形式）

---

## サマリー

| カテゴリ | ファイル数 | 確認完了 | 不整合あり |
|---------|-----------|---------|-----------|
| setup/ | X | 0 | 0 |
| features/ | X | 0 | 0 |
| ... | ... | ... | ... |

### 要修正リスト

| ファイル | 問題内容 | 優先度 |
|---------|---------|--------|
| (確認後に記載) | | |
```

### 4. カテゴリ分類

取得したファイルを以下のカテゴリに分類：

| カテゴリ | パス | 検証内容 |
|---------|------|---------|
| setup/ | docs/setup/*.md | package.jsonスクリプト、環境変数 |
| screens/ | docs/screens/*.md | **体系:** 全画面網羅、画面単位の分割<br>**内容:** コンポーネント存在確認、UI仕様 |
| features/ | docs/features/*.md | **体系:** 横断的機能のみ配置、screens/への参照なし<br>**内容:** サービス・ハンドラー、IPCチャンネル |
| architecture/ | docs/architecture/*.md | ディレクトリ構造、データ形式 |
| testing/ | docs/testing/*.md | テストコマンド、テストファイル |
| その他 | docs/*.md | リンク切れ確認 |

### 5. 1ファイルずつ順次検証

**重要**: 各ドキュメントファイルを `doc-verifier` サブエージェントで**1つずつ**検証します。

各ファイルについて以下を繰り返します：

#### 5-1. サブエージェントで検証

```
Task tool:
  subagent_type: doc-verifier
  prompt: |
    以下のドキュメントファイルを検証してください：
    ファイル: {file_path}

    検証観点：
    1. コードとの整合性（コマンド、ファイルパス、API名、機能説明）
    2. ドキュメント体系の整合性
       - screens/: 画面単位の操作・UI仕様（主軸）、全画面網羅
       - features/: 横断的機能のみ（複数画面にまたがる機能・概念）
       - 参照方向: screens → features → architecture（逆方向禁止）

    不整合があれば報告してください。
```

#### 5-2. チェックリストを即座に更新

検証完了後、**すぐに** `doc-review-checklist.md` を更新します：

1. 検証完了したファイルのチェックボックスを `[x]` に更新
2. 不整合があった場合は `⚠️` マークを追加
3. 「不整合メモ」セクションに発見した問題を記載

**例:**
```markdown
## 2. 機能ドキュメント (features/)

- [x] docs/features/icons.md ⚠️
- [x] docs/features/group-launch.md
- [ ] docs/features/folder-import.md  ← 次はこのファイル

**不整合メモ:**
```
- icons.md: パス誤り（%APPDATA%/quickdashlauncher/ → %APPDATA%/quick-dash-launcher/）
```
```

#### 5-3. 次のファイルへ

未チェックのファイルがあれば 5-1 に戻る。

### 6. 最終レポート

すべての検証完了後、チェックリストのサマリーセクションを最終更新：

- 各カテゴリの確認完了数・不整合数を集計
- 要修正リストに全ての問題を優先度順に記載

## 優先度の基準

- **高**: 誤ったコマンド、存在しないファイルパス、間違ったAPI名、コンフリクトマーカー、**ドキュメント体系違反（逆方向参照、単一画面機能がfeatures/に配置など）**
- **中**: 古い情報、不完全な説明、軽微な不一致、**体系の改善提案（統合候補など）**
- **低**: 表現の改善、細かな修正提案

## 実行タイミング

- リリース前の最終確認
- 大きな機能追加・変更後
- 定期メンテナンス（月1回程度）

## 注意事項

- 検証のみを行い、自動修正は行いません
- 修正が必要な場合は、ユーザーに確認してから実施してください
- 修正完了後、チェックリストファイル（`doc-review-checklist.md`）は削除してください
