2025-12-30 03:49:54 +09:00
|
|
|
|
---
|
|
|
|
|
|
Status: Active
|
|
|
|
|
|
Scope: CorePlan composition(Feature合成→Normalizerへ、仕様不変で段階導入)
|
|
|
|
|
|
Related:
|
|
|
|
|
|
- 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` を合成していく(仕様不変で段階導入)。
|
|
|
|
|
|
|
|
|
|
|
|
Gate(SSOT):
|
|
|
|
|
|
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
|
|
|
|
|
|
|
2025-12-30 04:05:49 +09:00
|
|
|
|
## P0: Composer scaffold(未接続・仕様不変)✅
|
2025-12-30 03:49:54 +09:00
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P0-COREPLAN-COMPOSER-SCAFFOLD-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: `CanonicalLoopFacts`(projection済み)→ `CorePlan` 合成の入口を 1 箇所に作り、以後の実装を “合成だけ” に寄せる
|
|
|
|
|
|
|
2025-12-30 04:12:15 +09:00
|
|
|
|
## P1: Composer API決定 + bridge(未接続・仕様不変)✅
|
2025-12-30 04:05:49 +09:00
|
|
|
|
|
|
|
|
|
|
- 指示書: `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` を呼べる形まで整える(未接続のまま)
|
2025-12-30 03:49:54 +09:00
|
|
|
|
|
2025-12-30 04:25:24 +09:00
|
|
|
|
## P2: Composer→Normalizer bridge(未接続・仕様不変)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P2-COREPLAN-COMPOSER-VIA-NORMALIZER-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: `CanonicalLoopFacts → DomainPlan → PlanNormalizer → CorePlan` の橋渡しを未接続で固定
|
|
|
|
|
|
|
2025-12-30 04:41:08 +09:00
|
|
|
|
## P3: CoreLoop skeleton を CorePlan で直接生成(未接続・仕様不変)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P3-CORELOOP-SKELETON-COMPOSE-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: `CanonicalLoopFacts` から `CorePlan::Loop`(skeleton)を direct 生成(Pattern1 subset のみ)
|
|
|
|
|
|
|
2025-12-30 04:57:53 +09:00
|
|
|
|
## P4: ExitMap presence を Frag.exits に投影(未接続・仕様不変)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P4-EXITMAP-PRESENCE-WIRE-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: `exit_kinds_present` の presence を `Frag.exits` に投影(未配線のまま語彙だけ固定)
|
|
|
|
|
|
|
2025-12-30 05:14:13 +09:00
|
|
|
|
## P5: Cleanup presence を ExitKind 語彙へ投影(未接続・仕様不変)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P5-CLEANUP-PRESENCE-WIRE-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: `cleanup_kinds_present` を ExitKind 語彙として `Frag.exits` に投影(未配線のまま語彙だけ固定)
|
|
|
|
|
|
|
2025-12-30 05:24:21 +09:00
|
|
|
|
## P6: ValueJoin presence の安全ゲート(未接続・仕様不変)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P6-VALUEJOIN-PRESENCE-GATE-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: `value_join_needed` が立つケースは direct skeleton を採用しない(fallback維持)
|
|
|
|
|
|
|
2025-12-30 05:36:06 +09:00
|
|
|
|
## P7: ValueJoin wire(EdgeArgs layout の語彙固定 + 局所 verify)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P7-VALUEJOIN-EDGEARGS-LAYOUT-VERIFY-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: `ExprResultPlusCarriers` の語彙と最小検証を PlanVerifier に追加(未接続)
|
|
|
|
|
|
|
2025-12-30 05:51:55 +09:00
|
|
|
|
## P8: compose が EdgeArgs を保持することの検証(仕様不変)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P8-VALUEJOIN-EDGEARGS-COMPOSE-PRESERVE-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: compose::seq/if_/cleanup が EdgeArgs(layout+values) を保持することをテストで固定
|
|
|
|
|
|
|
2025-12-30 06:42:00 +09:00
|
|
|
|
## 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 で固定
|
|
|
|
|
|
|
2025-12-30 06:58:50 +09:00
|
|
|
|
## 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 に落とす唯一の接続点を追加(未接続のまま)
|
|
|
|
|
|
|
2025-12-30 07:12:12 +09:00
|
|
|
|
## 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 で固定
|
|
|
|
|
|
|
2025-12-30 07:32:57 +09:00
|
|
|
|
## P12: ValueJoin の最初の実使用(Pattern7 SplitScan の step join を block_params 化)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P12-VALUEJOIN-FIRST-REAL-USAGE-PATTERN7-SPLITSCAN-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: step join の 2 PHI を `Frag.block_params + EdgeArgs` で表現し、emit_frag() の挿入経路を 1 件固定
|
|
|
|
|
|
|
2025-12-30 07:59:47 +09:00
|
|
|
|
## P13: ValueJoin expr_result の実使用(Pattern3 If‑Phi の merge join を block_params 化)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P13-VALUEJOIN-REAL-USAGE-PATTERN3-IFPHI-MERGE-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: merge join の 1 PHI を `Frag.block_params + EdgeArgs` で表現し、expr_result 的な join 値の経路を 1 件固定
|
|
|
|
|
|
|
2025-12-30 08:09:40 +09:00
|
|
|
|
## P14: ValueJoin exit の実使用(Pattern2 Break の after join を block_params 化)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P14-VALUEJOIN-REAL-USAGE-PATTERN2-BREAK-EXITJOIN-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: after join の 1 PHI を `Frag.block_params + EdgeArgs` で表現し、exit join の経路を 1 件固定
|
|
|
|
|
|
|
2025-12-30 08:16:00 +09:00
|
|
|
|
## P15: JoinIR 回帰パックに Pattern3(If‑Phi, VM) を追加 ✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P15-REGRESSION-PACK-INCLUDE-PATTERN3-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: P13 の実経路(Pattern3 If‑Phi)が回帰ゲート(phase29ae pack)で必ず実行されるようにする
|
|
|
|
|
|
|
2025-12-30 08:31:00 +09:00
|
|
|
|
## P16: ValueJoin exit の実使用(Pattern5 Infinite Early-Exit の after join を block_params 化)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P16-VALUEJOIN-REAL-USAGE-PATTERN5-EXITJOIN-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: after join の 1 PHI を `Frag.block_params + EdgeArgs` で表現し、exit join の経路を 1 件固定
|
|
|
|
|
|
|
2025-12-30 08:52:21 +09:00
|
|
|
|
## P17: Pattern1 を Facts→CorePlan へ寄せる(strict/dev のみ shadow adopt)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P17-COMPOSER-PATTERN1-STRICT-SHADOW-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: strict/dev のみ Facts→CorePlan(skeleton) を採用し、既定経路は維持
|
|
|
|
|
|
|
2025-12-30 09:00:12 +09:00
|
|
|
|
## P18: single_planner が planner outcome(facts+plan)を返す(P17の二重planner呼び出し撤去)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P18-SINGLE_PLANNER-OUTCOME-PLUMBING-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: planner outcome を single_planner から受け取り、router の二重実行を撤去
|
|
|
|
|
|
|
2025-12-30 09:12:54 +09:00
|
|
|
|
## P19: 回帰ゲートに Pattern1 strict/dev shadow adopt を含める ✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P19-REGRESSION-PACK-ADD-PATTERN1-STRICT-SHADOW-INSTRUCTIONS.md`
|
|
|
|
|
|
- 変更:
|
|
|
|
|
|
- `tools/smokes/v2/profiles/integration/joinir/phase29ao_pattern1_strict_shadow_vm.sh` を追加
|
|
|
|
|
|
- `tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` に組み込み
|
|
|
|
|
|
- `docs/development/current/main/phases/phase-29ae/README.md` の回帰セットに追記
|
|
|
|
|
|
- ねらい: P17/P18 の strict/dev shadow adopt が回帰ゲートで必ず踏まれる状態を SSOT 化
|
|
|
|
|
|
|
2025-12-30 09:20:24 +09:00
|
|
|
|
## P20: CoreLoop ExitMap composition(docs-first)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P20-CORELOOP-EXITMAP-COMPOSITION-SSOT-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: Loop skeleton に対する ExitMap/Cleanup/ValueJoin の合成規約を SSOT として固定
|
|
|
|
|
|
|
2025-12-30 09:38:27 +09:00
|
|
|
|
## P21: Pattern1 subset body is step-only(shadow adopt safety)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P21-PATTERN1-SUBSET-BODY-IS-STEP-ONLY-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: Pattern1 subset を body=step のみに引き締め、strict/dev shadow adopt の誤マッチを遮断
|
|
|
|
|
|
|
2025-12-30 09:58:25 +09:00
|
|
|
|
## P22: Dedup Pattern1 CoreLoop construction(SSOT統一)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P22-DEDUP-PATTERN1-CORELOOP-CONSTRUCTION-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: DomainPlan/Facts 経路の CoreLoop 構築を 1 箇所へ統一し divergence を防ぐ
|
|
|
|
|
|
|
2025-12-30 10:15:23 +09:00
|
|
|
|
## P23: strict/dev Pattern3 adopt from facts(If‑Phi)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P23-STRICT-ADOPT-PATTERN3-IFPHI-FROM-FACTS-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: Pattern3 を strict/dev で Facts→CorePlan に寄せ、DomainPlan とのズレを早期検知
|
|
|
|
|
|
|
2025-12-30 10:34:31 +09:00
|
|
|
|
## P24: strict/dev Pattern7 adopt from facts(SplitScan)✅
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P24-STRICT-ADOPT-PATTERN7-SPLITSCAN-FROM-FACTS-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: Pattern7 を strict/dev で Facts→CorePlan に寄せ、fallback/近似マッチによるズレを早期検知(既定挙動は不変)
|
|
|
|
|
|
|
2025-12-30 10:50:21 +09:00
|
|
|
|
## P25: strict/dev Pattern5 adopt from facts(Infinite Early-Exit)
|
|
|
|
|
|
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P25-STRICT-ADOPT-PATTERN5-INFINITE-EARLY-EXIT-FROM-FACTS-INSTRUCTIONS.md`
|
|
|
|
|
|
- ねらい: Pattern5 を strict/dev で Facts→CorePlan に寄せ、DomainPlan 経路との差分を早期検知(既定挙動は不変)
|
|
|
|
|
|
|
2025-12-30 04:05:49 +09:00
|
|
|
|
## Next(planned)
|
2025-12-30 03:49:54 +09:00
|
|
|
|
|
2025-12-30 10:50:21 +09:00
|
|
|
|
- Next: P25(実装)
|
|
|
|
|
|
- 指示書: `docs/development/current/main/phases/phase-29ao/P25-STRICT-ADOPT-PATTERN5-INFINITE-EARLY-EXIT-FROM-FACTS-INSTRUCTIONS.md`
|
|
|
|
|
|
- After P25: P26(TBD)
|