diff --git a/docs/development/current/main/10-Now.md b/docs/development/current/main/10-Now.md index 5a6bf269..f9bb8369 100644 --- a/docs/development/current/main/10-Now.md +++ b/docs/development/current/main/10-Now.md @@ -1,12 +1,32 @@ # Self Current Task — Now (main) -## Next: Phase 124(予定) +## Next: Phase 125(予定) -**Phase 124: Normalized reads facts + Return(Variable)(dev-only)** -- Phase 123 で Return(Integer literal) + If(minimal compare) 完了。次は reads facts による変数サポート -- 対応ノード: Return(Variable), If(complex conditions), 複合式 -- 既定挙動は不変(`joinir_dev_enabled()` のときだけ生成・検証、`joinir_strict_enabled()` で Fail-Fast) -- 入口(計画): `docs/development/current/main/phases/phase-124/README.md` +**Phase 125: Normalized unknown-read capability + reads-based env extension** +- Phase 124 で Return(Variable) from env (writes) 完了。次は reads-only 変数の env 拡張 +- 対応ノード: Return(Variable from reads), If(complex conditions), 複合式 +- unknown-read capability 導入 +- reads に基づく環境拡張(env に無い変数を reads から補完) +- 既定挙動は不変(`joinir_dev_enabled()` のときだけ生成・検証) + +## 2025-12-18:Phase 124 完了 ✅ + +**Phase 124: Normalized reads facts + Return(Variable from env)(dev-only)** +- StepTreeFacts に reads 追加(Variable 参照を AST から抽出) +- StepTreeContract signature に reads 反映(決定性維持) +- env マッピング(変数名 → ValueId)を writes から生成 +- Return(Variable) サポート: env にある変数のみ(writes 由来) +- env に無い Variable は Fail-Fast エラー(phase124 error → Ok(None) fallback) +- Box-first modularization: extract_variables_from_ast() で SSOT 化 +- Unit tests: 1159 tests PASS (including test_return_variable_from_env) +- Integration smoke: PASS (`phase124_if_only_return_var_vm.sh`, exit code 7 許容) +- 回帰: Phase 121/123/118 維持確認 +- 入口: `docs/development/current/main/phases/phase-124/README.md` +- 実装: + - `src/mir/control_tree/step_tree_facts.rs` (reads 追加、76行) + - `src/mir/control_tree/step_tree_contract_box.rs` (reads 反映、101行) + - `src/mir/control_tree/step_tree.rs` (extract_variables_from_ast 追加、612行) + - `src/mir/control_tree/normalized_shadow/builder.rs` (env マッピング追加、837行) ## 2025-12-18:Phase 123 完了 ✅