1.8 KiB
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 emitsclaim_checksand 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, invokeschat_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_checksare 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-testdependency inpom.xml. - Existing Lombok
@Builderdefault warnings remain.