diff --git a/docs/development/current/main/30-Backlog.md b/docs/development/current/main/30-Backlog.md index a50f1865..dc06d087 100644 --- a/docs/development/current/main/30-Backlog.md +++ b/docs/development/current/main/30-Backlog.md @@ -11,16 +11,18 @@ Related: - **real-app loop regression の横展開(VM + LLVM EXE)** - ねらい: 実コード由来ループを 1 本ずつ最小抽出して fixture/smoke で固定する(段階投入)。 - 現状: Phase 107(find_balanced_array/object / json_cur 由来)まで固定済み。 - - 次候補(Phase 108): Pattern2 の policy/contract を薄くする(PostLoopEarlyReturn plan 一般化 + policy router SSOT 統一)。 - - 入口(Phase 108): `docs/development/current/main/phases/phase-108/README.md` + - 次候補: JsonLoader/JsonCur から 1 本ずつ(fixture + integration smoke)で増やす。 - **P5b “完全E2E”**(escape skip の実ループを end-to-end で固定) - 現状: Phase 94 で VM E2E まで固定済み。次は selfhost 実コード(`apps/selfhost-vm/json_loader.hako`)へ横展開して回帰を減らす。 - 入口: `docs/development/current/main/phases/phase-94/README.md` + - **制御の再帰合成(docs-only → dev-only段階投入)** - ねらい: `loop/if` ネストの “構造” を SSOT(ControlTree/StepTree)で表せるようにする - 注意: canonicalizer は観測/構造SSOTまで(ValueId/PHI配線は Normalized 側へ) - - 入口: `docs/development/current/main/design/loop-canonicalizer.md` + - 現状: Phase 110–112 で StepTree(dev-only + strict guard)まで完了 + - 次候補(Phase 114): if-only の回帰をもう1本追加(then 早期 return + post 処理)→ VM/LLVM EXE parity で固定 + - 入口: `docs/development/current/main/design/control-tree.md` ## 中期(ループ在庫の残り) diff --git a/docs/development/current/main/design/README.md b/docs/development/current/main/design/README.md index f0444e2b..3db8d969 100644 --- a/docs/development/current/main/design/README.md +++ b/docs/development/current/main/design/README.md @@ -9,3 +9,4 @@ - JoinIR の地図(navigation SSOT): `docs/development/current/main/design/joinir-design-map.md` - Loop Canonicalizer(設計 SSOT): `docs/development/current/main/design/loop-canonicalizer.md` +- ControlTree / StepTree(構造SSOT): `docs/development/current/main/design/control-tree.md` diff --git a/docs/development/current/main/design/control-tree.md b/docs/development/current/main/design/control-tree.md index ae771642..fe843133 100644 --- a/docs/development/current/main/design/control-tree.md +++ b/docs/development/current/main/design/control-tree.md @@ -49,6 +49,8 @@ lowering/PHI/CFG の判断にはまだ使わない(dev-only)だが、再解 - cond_sig は **ASTNode 参照を保持しない**(巨大化・ライフタイム・clone コストの問題を避ける)。 - cond_sig は **summary(要約)SSOT** とし、`AstSummary` 相当の安定表現に固定する。 - 目的は「構造分類/契約の固定」であり、式同値(完全な等価判定)は非対象。 +- StepTree は当面 **観測/分類の SSOT(dev-only)** として運用する。 + - 将来 StepTree→Normalized(env+継続)を “本番導線” にする場合は、cond の lowering 用に `AstExprId` 等を保持する **別SSOT**(例: `StepTreeRef`)を追加し、cond_sig は署名/ログ用途として維持する。 ## StepTreeSignature(構造署名) diff --git a/docs/development/current/main/design/joinir-design-map.md b/docs/development/current/main/design/joinir-design-map.md index a631ea1a..27ebf2b3 100644 --- a/docs/development/current/main/design/joinir-design-map.md +++ b/docs/development/current/main/design/joinir-design-map.md @@ -35,9 +35,9 @@ Related: - Capability は “解禁の順序” を SSOT 化する(最小形→回帰で積み上げ) - 未対応は best-effort で誤魔化さず、Fail-Fast で理由を固定する -改善の方向(将来): -- policy Reject の "hint" を `error_tags` に集約して、修正方針を 1 行で出せるようにする(Phase 109 候補) -- 構造SSOT(LoopSkeleton + StepTree)へ寄せて、policy/step箱の増殖先を “構造” に集約する(Phase 110) +最近の改善(完了): +- policy Reject の "hint" を `error_tags` に集約して、修正方針を 1 行で出せるようにした(Phase 109) +- 構造SSOT(LoopSkeleton + StepTree)へ寄せて、policy/step箱の増殖先を “構造” に集約する足場を追加した(Phase 110–112) ## Error Tags with Hints (Phase 109) diff --git a/docs/development/current/main/phases/README.md b/docs/development/current/main/phases/README.md index 5d4d77a9..5cd598d8 100644 --- a/docs/development/current/main/phases/README.md +++ b/docs/development/current/main/phases/README.md @@ -14,6 +14,9 @@ - **Phase 94–100**: P5b escape E2E / Trim policy / pinned + accumulator(VM/LLVM EXE parity) - **Phase 102**: real-app read_quoted loop regression(VM + LLVM EXE) - **Phase 103**: if-only regression baseline(VM + LLVM EXE / plan) +- **Phase 113**: if-only partial assign parity(片側代入の保持 merge) +- **Phase 107–109**: real-app depth-scan / policy router SSOT / error hint SSOT +- **Phase 110–112**: ControlTree / StepTree(構造SSOT, dev-only)※設計SSOTは `../design/control-tree.md` ## Phase フォルダ構成(推奨) @@ -49,4 +52,4 @@ phases/phase-131/ --- -**最終更新**: 2025-12-17 +**最終更新**: 2025-12-18