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

4.8 KiB
Raw Blame History

Status, Scope, Related
Status Scope Related
Active CorePlan compositionFeature合成→Normalizerへ、仕様不変で段階導入
docs/development/current/main/design/coreplan-migration-roadmap-ssot.md
docs/development/current/main/design/coreplan-skeleton-feature-model.md
docs/development/current/main/design/post-phi-final-form-ssot.md
docs/development/current/main/design/exitkind-cleanup-effect-contract-ssot.md
docs/development/current/main/phases/phase-29ae/README.md

Phase 29ao: CorePlan composition from Skeleton/Feature (Step-C/D)

Goal: DomainPlan の “complete pattern” に寄り過ぎない形で、Skeleton + Feature から CorePlan を合成していく(仕様不変で段階導入)。

GateSSOT:

  • ./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh

P0: Composer scaffold未接続・仕様不変

  • 指示書: docs/development/current/main/phases/phase-29ao/P0-COREPLAN-COMPOSER-SCAFFOLD-INSTRUCTIONS.md
  • ねらい: CanonicalLoopFactsprojection済みCorePlan 合成の入口を 1 箇所に作り、以後の実装を “合成だけ” に寄せる

P1: Composer API決定 + bridge未接続・仕様不変

  • 指示書: docs/development/current/main/phases/phase-29ao/P1-COREPLAN-COMPOSER-API-BRIDGE-INSTRUCTIONS.md
  • ねらい:
    • CorePlanBasicBlockId/ValueId/Frag を要求するため、Facts→合成の段階で どこが allocation を持つかを SSOT として固定する
    • まずは “bridge” として、composer が CanonicalLoopFacts から DomainPlan(既存語彙)を構築して PlanNormalizer を呼べる形まで整える(未接続のまま)

P2: Composer→Normalizer bridge未接続・仕様不変

  • 指示書: docs/development/current/main/phases/phase-29ao/P2-COREPLAN-COMPOSER-VIA-NORMALIZER-INSTRUCTIONS.md
  • ねらい: CanonicalLoopFacts → DomainPlan → PlanNormalizer → CorePlan の橋渡しを未接続で固定

P3: CoreLoop skeleton を CorePlan で直接生成(未接続・仕様不変)

  • 指示書: docs/development/current/main/phases/phase-29ao/P3-CORELOOP-SKELETON-COMPOSE-INSTRUCTIONS.md
  • ねらい: CanonicalLoopFacts から CorePlan::Loopskeletonを direct 生成Pattern1 subset のみ)

P4: ExitMap presence を Frag.exits に投影(未接続・仕様不変)

  • 指示書: docs/development/current/main/phases/phase-29ao/P4-EXITMAP-PRESENCE-WIRE-INSTRUCTIONS.md
  • ねらい: exit_kinds_present の presence を Frag.exits に投影(未配線のまま語彙だけ固定)

P5: Cleanup presence を ExitKind 語彙へ投影(未接続・仕様不変)

  • 指示書: docs/development/current/main/phases/phase-29ao/P5-CLEANUP-PRESENCE-WIRE-INSTRUCTIONS.md
  • ねらい: cleanup_kinds_present を ExitKind 語彙として Frag.exits に投影(未配線のまま語彙だけ固定)

P6: ValueJoin presence の安全ゲート(未接続・仕様不変)

  • 指示書: docs/development/current/main/phases/phase-29ao/P6-VALUEJOIN-PRESENCE-GATE-INSTRUCTIONS.md
  • ねらい: value_join_needed が立つケースは direct skeleton を採用しないfallback維持

P7: ValueJoin wireEdgeArgs layout の語彙固定 + 局所 verify

  • 指示書: docs/development/current/main/phases/phase-29ao/P7-VALUEJOIN-EDGEARGS-LAYOUT-VERIFY-INSTRUCTIONS.md
  • ねらい: ExprResultPlusCarriers の語彙と最小検証を PlanVerifier に追加(未接続)

P8: compose が EdgeArgs を保持することの検証(仕様不変)

  • 指示書: docs/development/current/main/phases/phase-29ao/P8-VALUEJOIN-EDGEARGS-COMPOSE-PRESERVE-INSTRUCTIONS.md
  • ねらい: compose::seq/if_/cleanup が EdgeArgs(layout+values) を保持することをテストで固定

P9: ValueJoin minimal wireBlockParams 足場 + strict/dev Fail-Fast

  • 指示書: docs/development/current/main/phases/phase-29ao/P9-VALUEJOIN-MINIMAL-WIRE-INSTRUCTIONS.md
  • ねらい: EdgeCFG の block params 足場と strict/dev verify を追加し、join 受け口の整合を Fail-Fast で固定

P10: ValueJoin minimal wiringblock_params → MIR PHI

  • 指示書: docs/development/current/main/phases/phase-29ao/P10-VALUEJOIN-BLOCKPARAMS-PHI-INSERTION-INSTRUCTIONS.md
  • ねらい: Frag.block_paramsemit_frag() で PHI に落とす唯一の接続点を追加(未接続のまま)

P11: Normalizer generates block_params (If2 demo)

  • 指示書: docs/development/current/main/phases/phase-29ao/P11-VALUEJOIN-NORMALIZER-GENERATES-BLOCKPARAMS-INSTRUCTIONS.md
  • ねらい: Normalizer が Frag.block_params を生成する最小ケースを追加し、PHI挿入まで unit test で固定

Nextplanned

  • P12: ValueJoin の最初の実使用Normalizer の実経路で block_params を生成し、fixture を 1 本緑にする)