Skip to content

ナレッジグラフ: progress-reportのrelationをhas_progressに変更 #165

@Kewton

Description

@Kewton

概要

knowledge_edgesテーブルでprogress-report.mdhas_reviewとして登録されているのを、専用のhas_progress relationに変更する。

背景

#160 でhuman/LLM出力の表示は[progress]に修正済みだが、DB層のrelationhas_reviewのまま。

現状

DB: knowledge_edges.relation = "has_review"  (既存のインデックス済みprogress-reportが対象)
JSON: relation = "has_review", doc_subtype = "ProgressReport"
Human: [progress] (doc_subtypeから変換)

問題

  • JSONでrelationフィールドのみ参照するコンシューマがhas_reviewと誤認する可能性
  • DB直接クエリでhas_reviewにprogress-reportが混在し、正確なレビュー件数が取得できない

対応内容

  1. KnowledgeRelation enumにHasProgressバリアント追加
  2. build_pattern_rules()のprogress-reportルールのrelationをHasProgressに変更
  3. KnowledgeRelation::parse()"has_progress"を追加
  4. KnowledgeRelation::as_str()HasProgress => "has_progress"を追加
  5. relation_display_label()"has_progress" => "progress"フォールバックを追加
  6. find_documents_by_issue()のDB relation パースに"has_progress"を追加
  7. relation_priority()"has_progress"の優先度を追加
  8. sort_order()HasProgressのソート順序を追加(順序値: 5 = Modifiesの次)
  9. 既存DBのマイグレーション(has_reviewhas_progress)は再インデックスで対応

影響ファイル

ファイル 変更内容
src/indexer/knowledge.rs HasProgressバリアント追加、as_str()parse()Display追加、PatternRule修正
src/indexer/symbol_store.rs find_documents_by_issue()のrelation パース match に"has_progress"追加
src/output/human.rs relation_display_label"has_progress" => "progress"追加
src/cli/before_change.rs relation_priority()"has_progress"追加
src/cli/issue.rs sort_order()HasProgressバリアント追加
tests/e2e_issue.rs progress-reportテストデータをHasProgressに変更

受け入れ基準

  • KnowledgeRelation::HasProgressが追加されている
  • 再インデックス後、progress-reportがhas_progressで登録される
  • why --format jsonrelation: "has_progress"が返る
  • human/LLM出力で引き続き[progress]が表示される
  • before-changeコマンドでprogress-reportが適切な優先度でソートされる
  • issueコマンドでprogress-reportが適切な順序で表示される
  • 既存テストが全Pass
  • cargo clippy --all-targets -- -D warnings 警告0件

関連

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