bcc59d2164
New brief_echo stage before the planner in role_pipeline: the model restates the analyst brief as a structured artifact, and a deterministic gate (checkBriefEcho, opt-in via brief_echo=true) diffs the restatement against the original brief. On divergence — dropped requirements (Jaccard coverage < 0.34) or hallucinated files — it emits BriefEchoMismatchEvent and fails the stage retryably, so a misread brief never reaches plan generation. The diff (BriefEchoDiff) is a pure function of two recorded artifacts, so it is replay-safe and records no observation; the event fires only on mismatch, for audit. Symbols are recorded but non-blocking in v1. Mirrors the groundBrief- References gate. role_pipeline only; freestyle_planning wiring is a follow-up. Runtime install (like research): copy brief_echo.json + brief_echo.md and the [[artifacts]] block into ~/.config/correx.
28 lines
831 B
JSON
28 lines
831 B
JSON
{
|
|
"type": "object",
|
|
"properties": {
|
|
"goal": {
|
|
"type": "string",
|
|
"description": "the analyst brief's goal restated in your own words"
|
|
},
|
|
"referenced_files": {
|
|
"type": "array",
|
|
"description": "workspace-relative file paths named in the brief, one per item",
|
|
"items": { "type": "string" }
|
|
},
|
|
"referenced_symbols": {
|
|
"type": "array",
|
|
"description": "class, interface, or function names named in the brief, one per item",
|
|
"items": { "type": "string" }
|
|
},
|
|
"acceptance_criteria": {
|
|
"type": "array",
|
|
"description": "the brief's requirements / acceptance criteria restated faithfully, one per item",
|
|
"minItems": 1,
|
|
"items": { "type": "string" }
|
|
}
|
|
},
|
|
"required": ["goal", "acceptance_criteria"],
|
|
"additionalProperties": true
|
|
}
|