Skip to content

ナレッジグラフ: dev-reports/review/ のstage別レビューファイルが未検出 #150

@Kewton

Description

@Kewton

概要

dev-reports/review/ ディレクトリのstage別レビューファイルがナレッジグラフに取り込まれていない。

現状

commandindexdev issue 299 の出力:

設計:
  dev-reports/design/issue-299-ipad-layout-fix-design-policy.md
レビュー:
  dev-reports/issue/299/issue-review/summary-report.md
  dev-reports/issue/299/multi-stage-design-review/summary-report.md
作業計画:
  dev-reports/issue/299/work-plan.md

以下のファイルが含まれていない:

  • dev-reports/review/2026-02-18-issue299-impact-analysis-review-stage3.md
  • dev-reports/review/2026-02-18-issue299-security-review-stage4.md
  • dev-reports/review/2026-02-18-issue299-design-principles-review-stage1.md
  • dev-reports/review/2026-02-18-issue299-consistency-review-stage2.md

原因

ファイル名パースが dev-reports/design/issue-{NUMBER}-*dev-reports/issue/{NUMBER}/ のパターンのみ対応しており、dev-reports/review/*-issue{NUMBER}-* パターンを認識していない。

対象コード: build_pattern_rules() in src/indexer/knowledge.rs

対応

dev-reports/review/ ディレクトリ内のファイル名から issue{NUMBER} パターンを正規表現で抽出し、has_review エッジを追加する。

DocSubtype

新しい DocSubtype::StageReview バリアントを追加する。既存の IssueReview(summary-report用)や DesignReview(design-review summary用)とは異なるstage別レビューファイルのため、独立したバリアントとする。

影響箇所(全て網羅的matchのためコンパイルエラーで検出可能):

  • src/indexer/knowledge.rs:
    • DocSubtype enum に StageReview 追加
    • DocSubtype::as_str(): StageReview => "stage_review" 追加
    • build_pattern_rules(): 新パターン追加
  • src/cli/issue.rs:
    • display_label(): StageReview => "レビュー" (既存レビューと同カテゴリ)
    • sort_order(): StageReview の subtype_order を 6 に設定
    • grouped(): カテゴリ「レビュー」に自動分類されるため変更不要
  • src/indexer/symbol_store.rs:
    • find_documents_by_issue(): "stage_review" => DocSubtype::StageReview 追加

正規表現パターン

^dev-reports/review/\d{4}-\d{2}-\d{2}-issue(\d+)-.*\.md$

日付プレフィックス(YYYY-MM-DD)は生成ツールにより常に付与されるため、パターンに含める。
ファイル名部分は [^/]* ではなく .* を使用(パスは正規化済みでサブディレクトリは想定しない)。

対象パターン例:

  • 2026-02-18-issue299-security-review-stage4.md
  • 2026-03-20-issue525-consistency-review-stage2.md

表示仕様

各stage別レビューファイルは個別にリスト表示する(サマリー集約は行わない)。
display_label() は「レビュー」を返し、既存の IssueReview/DesignReview と同カテゴリに分類される。

受け入れ基準

  1. parse_dev_report_path()dev-reports/review/YYYY-MM-DD-issue{N}-*-stage{M}.md を正しくパースし、Issue番号・リレーション(HasReview)・DocSubtype(StageReview)を返すこと
  2. scan_dev_reports()dev-reports/review/ ディレクトリのファイルを検出すること
  3. commandindexdev issue 299 出力にstage別レビューファイルが含まれること
  4. 既存テストが全てパスすること
  5. 新規パターンに対するユニットテストが追加されていること(複数桁Issue番号、ハイフン含む説明文等のエッジケース含む)
  6. test_scan_dev_reports_with_temp_dir テストが更新されていること
  7. test_doc_subtype_as_str テストに StageReview のアサーション追加

関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions