--- Status: Active Scope: CorePlan Step-B(Facts を Skeleton+Feature SSOT に寄せる、仕様不変) 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/planfrag-ssot-registry.md - docs/development/current/main/phases/phase-29ae/README.md --- # Phase 29an: Skeleton/Feature Facts (SSOT) Goal: Facts を “complete pattern 列挙” ではなく **Skeleton + Feature** として表現できる状態へ寄せ、CorePlan 合成に向けた SSOT の足場を作る(仕様不変)。 SSOT 道筋: `docs/development/current/main/design/coreplan-migration-roadmap-ssot.md` ## P0: Add SkeletonFacts (Loop/If/BranchN/StraightLine) as SSOT (code, no wiring) - 指示書: `docs/development/current/main/phases/phase-29an/P0-SKELETONFACTS-SSOT-INSTRUCTIONS.md` - ねらい: planner/emit が CFG を覗き直さなくても良いよう、骨格(Skeleton)の観測/導出を Facts に集約する - 重要: **既定挙動は不変**(Ok(None) のまま、既存 planner-first/legacy ルーティングは触らない) - Gate: `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` Status: ✅ COMPLETE(実装コミット: `ea32d61a5`) ## P1: Add FeatureFacts (ExitMap/ValueJoin/Cleanup materials) as SSOT (code, no wiring) - 指示書: `docs/development/current/main/phases/phase-29an/P1-FEATUREFACTS-SSOT-INSTRUCTIONS.md` - ねらい: Skeleton に直交する “特徴” を Facts に寄せ、complete pattern 増殖を止める(まずは ExitUsage から) - 重要: **既定挙動は不変**(features だけで Ok(Some) にしない) - Gate: `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` Status: ✅ COMPLETE(実装コミット: `c7fbcf3c8`) ## P2: Planner staging for Skeleton→Feature inference (structure only, behavior preserved) - 指示書: `docs/development/current/main/phases/phase-29an/P2-PLANNER-SKELETON-FEATURE-STAGING-INSTRUCTIONS.md` - ねらい: planner の内部構造を Skeleton→Feature→CandidateSet の段取りへ寄せる(候補/順序/挙動は不変) - Gate: `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` ## Next(planned) - P3: Skeleton 一意化(0/1/2+ → None/Some/Freeze)を “骨格推論” に限定して SSOT 化 - P4: Feature 合成(ExitMap / ValueJoin / Cleanup)を CorePlan 合成へ繋ぐ