## Summary Loop Canonicalizer Phase 1(型定義)の完了と、Phase 2(dev-only 観測)への ロードマップを記録。 ## Changes ### loop-canonicalizer.md - Status: Design (P0) → Phase 1 done(型定義まで) - 実装の入口を明記(src/mir/loop_canonicalizer/mod.rs) - NYASH_LOOP_ROUTING_TRACE → joinir_dev_enabled() に変更 (新 ENV を増やさず、既存のスイッチに寄せる) ### CURRENT_TASK.md - Phase 137-1 完了を追記 - P0 を「設計」→「Phase 2(dev-only 観測)」へ更新 ### phases/README.md - Phase 137 を追加 ### phases/phase-137/README.md (NEW) - Phase 1 完了サマリ - Phase 2 予定を最小で記録 ### joinir-design-map.md / 01-JoinIR-Selfhost-INDEX.md - loop-canonicalizer への導線を追加 ## Next Steps Phase 2: dev-only 観測の導入 - canonicalize_loop_expr() の薄い入口を追加 - joinir_dev_enabled() 配下でログ出し - 既定挙動は完全不変 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1.2 KiB
1.2 KiB
Phase 137: Loop Canonicalizer(前処理 SSOT)
Status
- 状態: 🔶 進行中(Phase 1 完了)
Goal
- ループ形の組み合わせ爆発を抑えるため、
AST → LoopSkeleton → (capability/routing)の前処理を SSOT 化する。 - 既存の方針(fixture + shape guard + Fail-Fast)を維持したまま、pattern 数を増やさずにスケールさせる。
Phase 1(完了): 型/語彙の SSOT
- 実装:
src/mir/loop_canonicalizer/mod.rsLoopSkeleton/SkeletonStep/UpdateKindExitContract/CarrierSlot/CarrierRoleRoutingDecision/ capability tags(CAP_MISSING_*)
- 注意: Phase 1 は「型と語彙」のみ。routing/lowering にはまだ介入しない。
Phase 2(次): dev-only 観測の導入
- 目標: ループ入口で
LoopSkeletonとRoutingDecisionを生成し、dev-only で観測できるようにする。 - 既定挙動: 不変(dev-only の観測から開始)
- スイッチ: 新しい env を増やさず、
joinir_dev_enabled()(既存)配下で有効化する。
SSOT
- 設計 SSOT:
docs/development/current/main/design/loop-canonicalizer.md - JoinIR 契約 SSOT:
docs/development/current/main/joinir-architecture-overview.md