Files
hakorune/docs/development/current/main/phases/phase-125
nyash-codex aabb67cdc2 docs: Phase 125 P2-P5 feedback (boxification review)
Feedback summary:
- 単一責任: EnvLayout / lower_return_value
- SSOT: reads ∩ available_inputs
- Fail-Fast: 構造化エラー + hint
- 段階的投入: 構造のみ(P3 で完成)

Good:
- Single responsibility principle maintained
- SSOT approach for env layout
- Fail-Fast with structured errors
- Graceful degradation (Ok(None))

Improvement proposals:
- P3 wiring clarification
- EnvLayout responsibility scope
- Error hint context-awareness
- Fixture completeness after P3

Next: Phase 125 P3 (available_inputs wiring)

Ref: docs/development/current/main/phases/phase-125/FEEDBACK.md
2025-12-18 06:33:55 +09:00
..
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