Skip to content

[P0] ai-loop runをPlan-firstへ接続し、C-3’をPlan Packageのhashとevidenceへ束縛する #872

Description

@s977043

Parent: #870

背景

現在の /ai-loop-workflow run <説明> はLoopSpec作成から始まり、PlanGateのPlan生成を起動しない。ai-loop-cycle はC-1 PASS / C-2完了を前提にするが、arbiter入力ではgates.c1等の呼び出し側文字列を受け取り、Plan Packageやreview evidenceの実在・hashを検証しない。

またC-3' decision recordと、ai-dev execが要求するapprovals/c3.json / plan_hashが接続されていない。

目的

ai-loop run TASK-XXXX をPlan-firstの唯一の正式入口とし、ai-devが作成・レビューしたPlan PackageをC-3'の唯一の承認対象およびexec契約にする。

Plan Package

最低限、以下を同一TASK配下で扱う。

  • pbi-input.md
  • plan.md
  • todo.md
  • test-cases.md
  • C-1 review artifact / evidence
  • C-2 review artifact / evidence

Scope

  1. TASK-XXXXをrunの必須識別子にする
  2. artifact不足時はai-dev init/plan相当を起動または明示的に停止し、Wチェックへ進めない
  3. 4成果物とC-1/C-2 artifactを構造検証する
  4. LoopSpecをPlan Packageから決定論的に派生させ、独立した計画として手入力しない
  5. Plan Package hash、各artifact hash、source SHA、allowed pathsを固定する
  6. WチェックA/Bへ同一Plan Packageと必要なrepository contextを渡す
  7. A/Bの観点別判定、理由、evidence refを構造化する
  8. C-3'結果をai-dev execが消費できる正式approvals/c3.json互換artifactにする
  9. Plan/source/artifact変更時は承認をstaleにし、再C-1/C-2/C-3'を要求する

C-3'最低出力

task_id: TASK-XXXX
decision: AUTO_APPROVED | HUMAN_ESCALATED | BLOCKED
approval_kind: c3-prime
source_sha: ...
plan_hash: sha256:...
artifact_hashes: {}
c1_evidence_ref: ...
c2_evidence_ref: ...
reviewers:
  model_a: {}
  model_b: {}
policy_ref: ...
issued_at: ...

Acceptance Criteria

  • run <説明>だけではproduction-compatible runを開始できず、TASK IDが必須
  • 4成果物のいずれかが欠ける場合、C-3'はAUTO_APPROVEDにならない
  • C-1/C-2 evidenceが欠ける、FAIL、staleの場合、C-3'はAUTO_APPROVEDにならない
  • rawなgates.c1=PASS文字列だけではPlan品質gateを通過できない
  • Model A/Bが同じplan hashとsource SHAを見たことをrecordから確認できる
  • Wチェック不一致、判定不能、未知カテゴリはfail closedでHumanへescalateする
  • C-3'承認artifactをbin/plangate validate TASK-XXXXとexec preflightが受理する
  • plan.mdまたは固定artifactの1 byte変更で承認がstaleになる
  • allowed paths外、HO接触、現行eligibility policy外は自動承認されない
  • LoopSpecとPlanの重複手入力がなく、派生結果の再現性がある
  • legacy C-3 human approvalは後方互換を維持する

必須テストシナリオ

  1. artifactなし → Plan生成または停止、Wチェック未実行
  2. C-1なし / C-2なし → escalate
  3. artifact hash mismatch → block
  4. Wチェック approve/reject → escalate
  5. valid Plan Package + approve/approve → C-3' artifact生成
  6. C-3' artifact → validate PASS → exec preflight PASS
  7. 承認後Plan変更 → validate FAIL
  8. HO / scope外 → AUTO_APPROVED不可
  9. 同一入力2回 → decisionと派生LoopSpecが同一

Non-goals

  • ai-dev plan / exec / verifyの再実装
  • C-3' eligibilityを全modeへ拡大すること
  • C-4 / merge自動化
  • C-1/C-2レビュー品質そのものの再設計(#810等を再利用)

Definition of Done / Close条件

  • 上記Acceptance Criteriaと9シナリオがすべてPASS
  • 一つのコマンドで実行できるE2E fixtureがCIへ登録されている
  • 実装PRがmainへmerge済み
  • Issueコメントに実行コマンド、exit code、生成artifact、test logへのlinkがある
  • #870のDoDのPlan-first/C-3'項目へevidence linkが反映されている

docsのみ、arbiter単体testのみ、手動でc3.jsonを書き換える運用ではcloseしない。

関連

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions