1.5 KiB
Decisions: executor-v2-output-contract
Key Decisions
Executor V2 removes final-expression fields
Decision: Chat Executor final output now uses executor_evidence_v2 and must not include diagnosis_summary or user_facing_answer.
Reason: Executor should collect evidence and produce structured diagnostic material, not write final user-facing conclusions.
Temporary renderer bridges the gap before Composer
Decision: ChatService renders V2 structured fields into readable Chinese only when Verifier returns PASS.
Reason: Composer is a later phase, but external users must not receive raw JSON during this intermediate stage.
V1 compatibility remains
Decision: Existing V1 user_facing_answer extraction remains.
Reason: It keeps old tests and any lingering V1 output compatible while the staged migration continues.
Gatekeeper and Verifier V2 are deferred
Decision: This phase does not add Gatekeeper or claim_checks.
Reason: The user requested phase-by-phase implementation with archive and commit after each phase. Gatekeeper is phase two.
Interface Impact
- Internal Agent output contract: L4, because fields are removed.
- Verifier payload: L2, because raw
executor_final_answerand parsedexecutor_structured_outputremain. - External Chat answer: compatible intent; users still get readable Chinese.
Risks
- The temporary renderer is not a full Composer and should be replaced in the Composer phase.
- Verifier prompt still uses V1
facts_checked; Verifier V2 is a later phase.