Files
hakorune/docs/development/current/main/phases/phase-125/README.md

34 lines
1.6 KiB
Markdown
Raw Normal View History

2025-12-18 06:28:39 +09:00
# Phase 125: Reads-only inputs → Normalized envplanned
## 目的
- Phase 124 で `Return(Variable)` を “writes由来の env” だけで解決できるようになった。
- Phase 125 では reads-only外側スコープの読み取り専用入力も Normalized env に載せ、`return x` が “writesではないが読み取り可能” な場合に自然に解決できるようにする。
- 既定挙動は不変:`joinir_dev_enabled()` のときだけ生成・検証し、本番経路の出力/動作は変えない。
## Scope
- 対象: if-onlyloopなしの Normalizeddev-only
- 目的の追加機能:
- reads-only inputs を env に追加return/compare で参照可能)
- “unknown-read” を capabilityまたは structured error tagsとして扱い、strict では Fail-Fast
## SSOT 方針
- StepTreeFacts/Contract の `reads` は “何を読むか” の SSOT
- “どこから読むかhost ValueId の供給)” は builder 側で SSOT 化し、ScopeManager / CapturedEnv / function params を入力として受け取る
- AST から “勝手に capture する” のは禁止Phase 100 の pinned/captured と混同しない)
## 受け入れ基準
- `cargo test --lib` が PASS
- Phase 121124 の smokes が退行しない
- Phase 125 の新規 fixture/smoke で `return` が reads-only inputs から解決できる
## 関連
- Phase 121124: StepTree→Normalized dev-only の段階投入
- `docs/development/current/main/design/control-tree.md`
- `docs/development/current/main/phases/phase-121/README.md`
- `docs/development/current/main/phases/phase-124/README.md`