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

83 lines
4.3 KiB
Markdown
Raw Normal View History

---
Status: Active
Scope: CorePlan Step-BFacts を 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`
Status: ✅ COMPLETE実装コミット: `f866badb3`
## Nextplanned
## P3: Add Freeze tag `unstructured` (taxonomy alignment)
- 指示書: `docs/development/current/main/phases/phase-29an/P3-FREEZE-UNSTRUCTURED-TAG-SSOT-INSTRUCTIONS.md`
- ねらい: taxonomy SSOT とコード語彙を一致(まずは未使用の足場)
Status: ✅ COMPLETE実装コミット: `aa8c12bcf`
## P4: Require Skeleton/Feature in LoopFacts (type-level SSOT)
- 指示書: `docs/development/current/main/phases/phase-29an/P4-LOOPFACTS-REQUIRE-SKELETON-FEATURES-INSTRUCTIONS.md`
- ねらい: LoopFacts が Some のとき、Skeleton/Feature は必ず揃っているOption剥がしの散在を止める
- 重要: `Ok(None)` gate は不変
Status: ✅ COMPLETE実装コミット: `5ea120ca1`
## P5: SkeletonFacts — classify `if` without `else` as If2 (SSOT correctness, unused)
- 指示書: `docs/development/current/main/phases/phase-29an/P5-SKELETON-IF-WITHOUT-ELSE-INSTRUCTIONS.md`
- ねらい: SkeletonFacts の If2 判定を “else有無に依存しない” 形に修正し、SSOTとしての正しさを上げる未接続・仕様不変
Status: ✅ COMPLETE実装コミット: `1319cbfb2`
## P6: Planner skeleton gate (Loop only)
- 指示書: `docs/development/current/main/phases/phase-29an/P6-PLANNER-SKELETON-GATE-INSTRUCTIONS.md`
- ねらい: skeleton.kind が Loop 以外なら `Ok(None)` に倒して fallback を維持(仕様不変)
Status: ✅ COMPLETE実装コミット: `80c879fdb`
## P7: CanonicalLoopFacts projections (skeleton_kind / exit_usage)
- 指示書: `docs/development/current/main/phases/phase-29an/P7-CANONICAL-LOOPFACTS-PROJECTIONS-INSTRUCTIONS.md`
- ねらい: normalize SSOT に “骨格/特徴” の入口を揃える(候補/順序/挙動は不変)
## Nextplanned
- P8: Skeleton 一意化0/1/2+ → None/Some/Freezeを “骨格推論” に限定して SSOT 化
- P9: Feature 合成ExitMap / ValueJoin / Cleanupを CorePlan 合成へ繋ぐ