Files
hakorune/docs/development/current/main/phases/phase-286/pattern2-deferred.md
tomoaki b235a5b6db feat(joinir): Phase 286 P3.1 - Pattern2 Plan line 完走(after_bb PHI)
Pattern2(Loop with Break)を Plan/Frag SSOT へ移行。

主な変更:
- Pattern2BreakPlan 追加(DomainPlan variant)
- extract_pattern2_plan() 実装(PoC サブセット厳守)
- normalize_pattern2_break() 実装(6-block CFG, 3 PHI)
- after_bb PHI が本質: carrier_out = PHI(header: carrier_current, break_then: carrier_break)
- router に Pattern2 追加(Pattern1 より前、より具体的)

テスト:
- Fixture B (break without update): PASS (出力 11)
- quick smoke: 154/154 PASS

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 05:56:30 +09:00

953 B
Raw Blame History

Pattern2 (Loop with Break) - Phase 286 P3 で再開

Date: 2025-12-26 Status: IN PROGRESS (Phase 286 P3)

Summary

Pattern2 requires complex value reconnection at the exit point:

  • break経路ではcarrier更新が実行されない
  • after_bb に PHI 必要header経路 vs break経路の値選択
  • compose::loop_との統合、ExitKind::Break配線が必要

実装方針Phase 286 P3

after_bb PHI が本質:

carrier_out = PHI(header: carrier_current, break_then: carrier_break)
  • break 前に update あり → carrier_break = 計算結果
  • break 前に update なし → carrier_break = carrier_currentそのまま

PoC サブセット厳守: 取れない形は Ok(None) で legacy へFail-Fast 回帰防止)

Reference