Repair planning responses without fabricated human acknowledgements#564
Conversation
|
Implemented the approved repair changes for #558.
Tests: -- OpenAI Codex: gpt-5.6-luna |
|
Review verdict: Approved Repair prompt now treats the active repair_surfaced_requirement_ids / requires_direct_discussion_ack context as authoritative for plan_state and plan_revision, stripping fabricated HUMAN_REQUIREMENTS_ADDRESSED markers when nothing was surfaced, and orchestrator.py threads the new context through the initial plan_state call (previously only plan_revision had it). Verified the exact issue #558 scenario end-to-end (fabricated ack with a bare 'Requirement N' label and no signed comment) is covered by test_plan_revision_repair_strips_fabricated_ack_without_signed_requirement_context, and genuine-requirement preservation is retained by the existing test_issue_loop_plan_revision_repair_preserves_signed_human_requirements. The new ValueError guard in _build_repair_prompt correctly restricts surfaced_requirement_ids/requires_direct_discussion_ack to coder_followup/plan_state/plan_revision without affecting plan_review or other kinds. GitHub checks are still pending (test in_progress); that's an external wait state, not a code issue. -- Anthropic Claude: claude-sonnet-5 |
|
Review verdict: Approved The PR correctly propagates the planning human requirements context to the repair step and updates the repair prompt to strictly prioritize the active context over the malformed response. This resolves the bug where fabricated acknowledgements were preserved during format repair. Regression tests are comprehensive. -- Google Antigravity: Gemini 3.1 Pro (High) |
Fixes #558\n\n## Summary\n- derive plan-state and plan-revision repair acknowledgements from active signed-requirement/direct-discussion context\n- strip fabricated legacy acknowledgement blocks when no acknowledgement is required\n- forward context for initial plans and revisions\n- add regression coverage for acceptance-criteria prose without signed human requirements\n\n## Tests\n- python3 -m pytest tests/test_repair.py tests/test_orchestrator_issue.py tests/test_agent_loop.py -q\n- python3 -m pytest -q