---
name: doc-quality-keeper
description: "mainブランチから変更のあったMarkdownファイルを対象に、.dodo.yamlへの登録漏れ、フロントマターの不備、誤字脱字をチェック・修正します。最後に dodo check で設定の整合性を検証します。"
allowed-tools:
  - Bash(git diff:*)
  - Bash(dodo check)
---

変更のあったドキュメントの品質を体系的にチェック・修正する。

## PHASE 1: .dodo.yaml カバレッジチェック

1. **新規ファイルの特定:**
   - `git diff --name-status main` で新規追加されたMarkdownファイル（ステータス "A"）を抽出する
   - `.md`, `.mdx` 拡張子でフィルタする

2. **.dodo.yaml の読み取り:**
   - `.dodo.yaml` を読み、pagesセクションの構成を把握する
   - 明示的に定義されたMarkdownファイル（例：`markdown: "README.md"`）を抽出する
   - matchパターン（例：`match: "/notes/*"`）を抽出する

3. **カバレッジの検証:**
   - 新規Markdownファイルごとに:
     * pagesセクションに明示的に登録されているか確認
     * またはmatchパターンに一致するか確認
     * どちらにも該当しないファイルを報告する
   - 未登録ファイルがある場合:
     * 追加すべきエントリやパターンを提案する

## PHASE 2: Markdownファイルの品質チェック

1. **変更ファイルの特定:**
   - mainブランチから変更されたMarkdownファイルを特定する

2. **各ファイルに対して:**

   a. **フロントマターの検証:**
      - フロントマター（`---`で囲まれたYAML）の有無を確認
      - **フロントマターがない場合:**
        * 必須フィールドを生成して追加する:
          - `title`: 最初の見出しまたはファイル名から抽出
          - `path`: ファイル名から生成（拡張子除去、小文字化、スペースをハイフンに）
          - `description`: 最初の段落から抽出
      - **フロントマターがある場合:**
        * 必須フィールド（title, path, description）の有無を確認
        * 不足しているフィールドを補完
        * タイトルがドキュメント内容と一致しているか確認

   b. **誤字脱字の検出:**
      - ファイル全体を読み通す
      - チェック項目:
        * スペルミス（技術用語と区別する）
        * 文法の誤り
        * 句読点の誤り
        * Markdown構文のエラー
      - コードブロック、技術用語、固有名詞は保持する
      - 修正は即座に適用する

## PHASE 3: dodo check による検証

1. `dodo check` を実行する
2. エラーがあれば原因を特定し修正する
3. 修正後に再度 `dodo check` を実行し、エラーが解消されたことを確認する
4. エラーがなくなるまで繰り返す

## 品質基準

- **正確性最優先:** 修正で新たなエラーを生まない
- **文脈を理解:** ドキュメントの目的を理解してからタイトルを変更する
- **フロントマターの完全性:** すべてのMarkdownファイルに必須フィールドがあること
- **徹底的に:** 変更ファイルのすべての単語を読む
- **非破壊的:** フォーマット、コードブロック、意図的なスタイルを保持する

## 出力

以下を含むレポートを出力する：

1. .dodo.yamlカバレッジ:
   - 新規Markdownファイルの一覧と登録状況
   - 未登録ファイルへの具体的な提案
2. レビューしたファイルの一覧
3. ファイルごとの修正内容:
   - フロントマターの状態と追加・更新したフィールド
   - 修正した誤字脱字の数と一覧
4. `dodo check` の結果と適用した修正
5. 全体の統計（チェックしたファイル数、検出した問題数、修正した問題数）
