Files

1.8 KiB

Evidence

Relevant History

  • executor-v2-output-contract: Executor emits structured diagnostic material and no final-expression fields.
  • executor-gatekeeper-hook: Gatekeeper validates deterministic evidence failures before Verifier.
  • executor-verifier-claim-checks: Verifier emits claim_checks and effective verdict guardrails.

Code Evidence

  • src/main/resources/prompts/chat-composer-prompt.md: defines Composer as an expression layer with strict JSON output.
  • src/main/java/com/superbiz/agent/service/ChatService.java: loads Composer prompt, invokes chat_composer, filters Composer input, parses Composer output, falls back safely, and persists Composer audit.
  • src/test/java/com/superbiz/agent/service/ChatServiceSequentialAgentTest.java: covers Composer invocation, fallback, REJECT/LOW_CONFID behavior, and no raw JSON leakage.

Evidence-Driven Conclusions

  • Composer must be after Verifier because Verifier claim_checks are the authority for allowed final-answer material.
  • Composer must not receive raw tool output or full unscreened Executor output because that would re-open the evidence attribution problem.
  • Verifier malformed/missing output should not invoke Composer because there is no trustworthy decision to filter with.
  • Fixed fallback remains necessary because Composer is an LLM call with a strict JSON contract and can produce malformed output.

Verification Evidence

Passed:

mvn "-Dtest=ChatServiceSequentialAgentTest" test
mvn "-Dtest=ExecutorGatekeeperServiceTest,VerifierInputHookTest,ChatServiceSequentialAgentTest" test
cmd /c openspec validate executor-composer-final-answer
cmd /c openspec validate --specs

Known existing warnings:

  • Maven reports duplicate spring-boot-starter-test dependency in pom.xml.
  • Existing Lombok @Builder default warnings remain.