Files
hakorune/docs/development/current/main/phases/phase-127

Phase 127: unknown-read strict Fail-FastDONE

目的

  • Phase 126 で available_inputsfunction params + CapturedEnvを Normalized builder に配線できた。
  • 次に、reads に出てくるのに writes/inputs のどちらにも解決できない変数を “unknown-read” として検出し、strict では Fail-Fast にする。

Scope

  • 対象: if-only Normalizeddev-only
  • 既定挙動は不変: joinir_dev_enabled() のときだけチェック・検証する

契約SSOT

  • unknown-read の定義:
    • unknown_reads = reads - (writes inputs)
      • writes: StepTreeContract.writes
      • inputs: reads ∩ available_inputsPhase 125/126
  • strictjoinir_strict_enabled():
    • unknown_reads が 1 つでもあれば freeze_with_hint で停止hint必須・1行
  • non-strict/dev:
    • 理由ログtag + count + 先頭数件)までで継続

受け入れ基準

  • cargo test --lib が PASS
  • Phase 121126 の smokes が退行しない
  • 新規 fixture例: return missing_x)が strict で確実に Fail-Fast する

Status

  • DONE: unknown-read を strict で Fail-Fast 固定dev-only

関連

  • Phase 125: EnvLayoutwrites + inputs
    • docs/development/current/main/phases/phase-125/README.md
  • Phase 126: available_inputs SSOT wiring
    • docs/development/current/main/phases/phase-126/README.md