
KyeongminandClaude Opus 4.8
9717898826
fix(#9): AI fallback proposal envelope 불일치 수정 (Emergency P4 완결)
문제: 프롬프트가 AiFallbackProposal envelope({proposal_kind, payload, rationale})
형태를 명시하지 않아 모델이 Task 12 plan 필드(operations/slot_axis_plan/...)를
top-level 에 평평하게 출력 → extra=forbid 로 전량 ValidationError → proposal 유실
(ai_called=true 인데 repair 미적용, mdx02 PARTIAL_COVERAGE 오염 / mdx04 ai_repair error).
수정:
- prompts.py: SYSTEM_PROMPT 에 envelope JSON 예시 명시 (rule 2)
- client.py: _coerce_proposal_envelope 방어층 — proposal_kind 존재 시 non-envelope
top-level 키를 payload 로 하향 이동 (kind 추론은 하지 않음 — 정책 위반 침묵 통과 방지)
- pipeline.py: apply_status 의 enum repr 정규화 (ProposalKind.X → x)
- tests: test_client_envelope.py 6종 (관측 실패 케이스 재현 + 회귀 방지)
검증:
- mdx04 재실행: 04-1/04-2 proposal 검증 통과 (kind=design_adaptation_plan,
operations 합리적), coverage_invariant ok
- pytest: ai_fallback 252 + imp47b apply 24 = 276 passed
- 잔여: design_adaptation_plan apply 계층은 미구현 (unsupported_kind — issue #7 axis)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 20:23:27 +09:00
..
2026-07-02 20:23:27 +09:00
2026-03-24 17:25:47 +09:00
2026-05-19 20:23:36 +09:00
2026-04-17 13:56:03 +09:00
2026-05-19 20:23:36 +09:00
2026-05-20 19:31:26 +09:00
2026-03-31 08:38:06 +09:00
2026-05-20 19:31:26 +09:00
2026-05-08 09:47:58 +09:00
2026-05-20 19:31:26 +09:00
2026-05-23 22:07:25 +09:00
2026-05-20 20:44:19 +09:00
2026-04-06 05:00:52 +09:00
2026-05-20 20:44:19 +09:00
2026-05-19 20:23:36 +09:00
2026-05-19 20:23:36 +09:00
2026-05-19 20:23:36 +09:00
2026-04-06 05:00:52 +09:00
2026-03-31 08:37:05 +09:00
2026-05-22 21:54:38 +09:00
2026-04-15 16:39:50 +09:00
2026-05-20 20:44:19 +09:00
2026-05-20 20:44:19 +09:00
2026-03-25 19:15:28 +09:00
2026-05-25 03:26:03 +09:00
2026-07-02 17:03:42 +09:00
2026-05-18 21:45:06 +09:00
2026-07-02 17:03:42 +09:00
2026-05-13 01:18:25 +09:00
2026-05-24 15:01:55 +09:00
2026-05-07 05:26:57 +09:00
2026-07-02 17:03:42 +09:00
2026-07-02 20:23:27 +09:00
2026-07-02 17:03:42 +09:00
2026-07-02 17:03:42 +09:00
2026-05-24 22:44:27 +09:00
2026-05-24 15:01:55 +09:00
2026-05-19 04:42:35 +09:00
2026-04-15 16:39:50 +09:00
2026-05-08 09:47:58 +09:00
2026-05-20 20:44:19 +09:00
2026-05-27 08:15:08 +09:00
2026-05-20 19:31:26 +09:00
2026-04-15 16:39:50 +09:00
2026-05-25 03:26:03 +09:00
2026-04-15 16:39:50 +09:00
2026-04-15 16:39:50 +09:00
2026-03-26 13:06:21 +09:00
2026-04-15 16:39:50 +09:00
2026-05-26 06:12:13 +09:00
2026-03-25 18:40:20 +09:00
2026-05-26 06:12:13 +09:00
2026-05-26 06:12:13 +09:00
2026-05-26 06:12:13 +09:00
2026-04-15 16:39:50 +09:00