Files
hakorune/docs/development/current/main/phases/phase-29ai

Phase 29ai: Plan/Frag single-planner (Facts SSOT)

Goal: pattern 名による分岐を外部APIから消し、Facts事実→ Plan → Frag の導線を 1 本に収束させる(仕様不変)。

P0: LoopFacts SSOT + Single Planner skeleton

  • 指示書: docs/development/current/main/phases/phase-29ai/P0-LOOPFACTS-SSOT-SINGLE-PLANNER-INSTRUCTIONS.md
  • 追加される骨格(未接続・仕様不変): src/mir/builder/control_flow/plan/{facts,normalize,planner,emit}/

P1: Planner candidate-set + Freeze SSOT

  • 指示書: docs/development/current/main/phases/phase-29ai/P1-PLANNER-CANDIDATES-FREEZE-SSOT-INSTRUCTIONS.md
  • ねらい: Ok(None) / Err(Freeze) の境界と “候補集合→一意化” をSSOT化未接続のまま、仕様不変

P2: SSOT Registry + Freeze Taxonomydocs-only

  • 指示書: docs/development/current/main/phases/phase-29ai/P2-SSOT-REGISTRY-FREEZE-TAXONOMY-INSTRUCTIONS.md
  • ねらい: “真実の所在” と Freeze 分類を1枚に固定して、後続実装の迷子を防ぐ仕様不変
  • SSOT Registry: docs/development/current/main/design/planfrag-ssot-registry.md
  • Freeze taxonomy: docs/development/current/main/design/planfrag-freeze-taxonomy.md

P3: Typed Freeze + CandidateSet implementationcode

  • 指示書: docs/development/current/main/phases/phase-29ai/P3-TYPED-FREEZE-CANDIDATESET-IMPLEMENTATION-INSTRUCTIONS.md
  • ねらい: Planner の契約を型/候補集合で固定Facts 未実装の間は未到達、仕様不変)

Verification (SSOT)

  • cargo build --release
  • ./tools/smokes/v2/run.sh --profile quick
  • ./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh