Skip to content

[Feature] Structured finding output (ADR-033, Issue #167)#190

Merged
BlueEventHorizon merged 4 commits into
developfrom
feature/167-structured-findings
Jul 9, 2026
Merged

[Feature] Structured finding output (ADR-033, Issue #167)#190
BlueEventHorizon merged 4 commits into
developfrom
feature/167-structured-findings

Conversation

@BlueEventHorizon

Copy link
Copy Markdown
Owner

概要

背景

review パイプラインの finding(指摘事項)はこれまで review_<種別>.md(Markdown)が正本だったため、evaluator の判定(recommendation)が Markdown の再整形に依存し、機械的な id 追跡や --diff-only での差分マージが不安定だった。ADR-033 でこれを findings_<種別>.json を正本とする構造に移行する。

やったこと

  • findings_<種別>.json(正本)+ findings_state.yaml(旧 plan.yaml)+ review_<種別>.md(派生ビュー)の3層構造を導入
  • finding_id.py: target/rule ベースの安定 id 生成(target_snippet を discriminator として使用)
  • merge_findings_json.py: --diff-only で検出した新規 finding を id 単独キーで既存 findings に merge(evaluator 確定済みの recommendation を保持)
  • convert_codex_findings.py: engine=codex の review_<種別>.mdfindings_<種別>.json 構造化変換
  • reviewer / evaluator / fixer 各 Agent 定義を新契約に対応(engine 別の出力先分岐を含む)
  • review_session.py の resume 判定を修正(engine=claude セッションが reviewer フェーズを無限ループしていた不具合)
  • 4ラウンドのレビュー指摘に対応(id 衝突の回帰・--diff-only 新規 finding 消失・重複 id ガード・関連設計書/要件定義書の記述整合)

やらないこと(このプルリクエストのスコープ外とすること)

  • plan.yamlstart-plan/start-implement が使う実装計画書。review パイプラインの findings_state.yaml とは無関係な別概念)の変更
  • doc-advisor 側の実装変更

画面設計書

該当なし

デザイン仕様書

該当なし

API仕様書

該当なし

レビュー観点

  • findings_<種別>.json を正本とする id 単独キー merge のロジック(merge_findings_json.py / extract_review_findings.py_merge_by_id
  • engine=claude / engine=codex 両経路での finding 出力・resume 動作の整合性
  • docs/specs/forge/design/ 配下の ADR-033 supersede 注記(旧 plan.yaml / review_<種別>.md 記述との整合)

レビューレベル

  • Lv0: まったく見ないでAcceptする
  • Lv1: ぱっとみて違和感がないかチェックしてAcceptする
  • Lv2: 仕様レベルまで理解して、仕様通りに動くかある程度検証してAcceptする
  • Lv3: 実際に環境で動作確認したうえでAcceptする

スクリーンショット

該当なし

備考

  • テスト: python3 -m unittest discover -s tests -p 'test_*.py' で 1366 件全通過(既存1件skipは無関係)
  • dprint check 通過済み

BlueEventHorizon and others added 4 commits July 9, 2026 11:08
test_mailbox.py の sys.path.insert が誤ったパス(forge/forge/...)を指しており、
stdlib の mailbox モジュールにフォールバックして AttributeError になっていた。
triage-issue SKILL.md の /forge:start-* ワイルドカード参照が存在しないスキル名
として誤検出され、README にも triage-issue の記載が漏れていた。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@BlueEventHorizon
BlueEventHorizon marked this pull request as ready for review July 9, 2026 02:48
@BlueEventHorizon
BlueEventHorizon merged commit a5fa7cb into develop Jul 9, 2026
1 check passed
@BlueEventHorizon
BlueEventHorizon deleted the feature/167-structured-findings branch July 9, 2026 02:48
@BlueEventHorizon BlueEventHorizon self-assigned this Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant