- verifier.rs: V10検証追加 - body_bbのblock_effectsは空でなければならない - 違反時: "[V10] Loop at depth N has non-empty block_effects for body_bb" - テスト: test_v10_body_bb_effects_in_block_effects_fails - joinir-plan-frag-ssot.md: V10をPlan段階の不変条件に追加 - README.md: P2.7セクション追加 Phase 286 P2.6.1で発見した「lowererはloop_plan.bodyをemitし、 block_effectsのbody_bbは無視する」問題を契約化し再発防止。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
design/
docs/development/current/main/design/ は、長期参照する設計図(SSOT 寄り)を置く場所。
- 原則: “Phaseの作業ログ/完了報告” は
../phases/に置く。 - 原則: “不具合調査ログ” は
../investigations/に置く。
現役の設計図(入口)
- JoinIR の地図(navigation SSOT):
docs/development/current/main/design/joinir-design-map.md - Join-Explicit CFG Construction(north star):
docs/development/current/main/design/join-explicit-cfg-construction.md - EdgeCFG Flow Fragments(Structured→CFG lowering SSOT):
docs/development/current/main/design/edgecfg-fragments.md - Catch / Cleanup / Async(設計メモ):
docs/development/current/main/design/exception-cleanup-async.md - Loop Canonicalizer(設計 SSOT):
docs/development/current/main/design/loop-canonicalizer.md - ControlTree / StepTree(構造SSOT):
docs/development/current/main/design/control-tree.md - Normalized ExprLowerer(式の一般化 SSOT):
docs/development/current/main/design/normalized-expr-lowering.md