4.9 KiB
4.9 KiB
Status, Scope, Related
| Status | Scope | Related | |||||
|---|---|---|---|---|---|---|---|
| Active | CorePlan composition(Feature合成→Normalizerへ、仕様不変で段階導入) |
|
Phase 29ao: CorePlan composition from Skeleton/Feature (Step-C/D)
Goal: DomainPlan の “complete pattern” に寄り過ぎない形で、Skeleton + Feature から CorePlan を合成していく(仕様不変で段階導入)。
Gate(SSOT):
./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 - ねらい:
CanonicalLoopFacts(projection済み)→CorePlan合成の入口を 1 箇所に作り、以後の実装を “合成だけ” に寄せる
P1: Composer API決定 + bridge(未接続・仕様不変)✅
- 指示書:
docs/development/current/main/phases/phase-29ao/P1-COREPLAN-COMPOSER-API-BRIDGE-INSTRUCTIONS.md - ねらい:
CorePlanがBasicBlockId/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::Loop(skeleton)を 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 wire(EdgeArgs 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 wire(BlockParams 足場 + 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 wiring(block_params → MIR PHI)✅
- 指示書:
docs/development/current/main/phases/phase-29ao/P10-VALUEJOIN-BLOCKPARAMS-PHI-INSERTION-INSTRUCTIONS.md - ねらい:
Frag.block_paramsをemit_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 で固定
Next(planned)
- P12: ValueJoin の最初の実使用(Pattern7 SplitScan の step join を block_params 化)
- 指示書:
docs/development/current/main/phases/phase-29ao/P12-VALUEJOIN-FIRST-REAL-USAGE-PATTERN7-SPLITSCAN-INSTRUCTIONS.md
- 指示書: