docs(phase29ah+29ai): update schedule; plan facts->plan skeleton

This commit is contained in:
2025-12-29 06:45:46 +09:00
parent 92fd459a7c
commit 7c5db88d8c
5 changed files with 98 additions and 3 deletions

View File

@ -1,13 +1,19 @@
# Self Current Task — Now (main)
## Current Focus: Phase 29agJoinIR merge SSOT unification
## Current Focus: Phase 29ahJoinIR regression pack expansion
**2025-12-29: Phase 29ag P1 完了**
- 目的: coordinator の ValueId(idx) 前提を撤去し、boundary.join_inputs を SSOT 化(仕様不変)
- 入口: `docs/development/current/main/phases/phase-29ag/README.md`
- 検証: `cargo build --release` / `./tools/smokes/v2/run.sh --profile quick` / `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh` PASS
- 回帰パック: `phase263_pattern2_*` を追加済み
Next: `docs/development/current/main/phases/phase-29ah/P0-REGRESSION-PACK-INCLUDES-PHASE263-PATTERN2-INSTRUCTIONS.md`
**2025-12-29: Phase 29ah P0 完了**
- 目的: JoinIR 回帰パックに real-world Pattern2Phase 263を追加仕様不変
- 入口: `docs/development/current/main/phases/phase-29ah/README.md`
- 回帰パック: `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
Next: `docs/development/current/main/phases/phase-29ai/README.md`
**2025-12-29: Phase 29af P5 完了**
- 目的: 29af を closeout して JoinIR 回帰確認を 1 本に収束(仕様不変)

View File

@ -14,9 +14,12 @@ Related:
- **Phase 29ag✅ COMPLETE: JoinIR merge SSOT unification**
- 入口: `docs/development/current/main/phases/phase-29ag/README.md`
- **Phase 29ahcandidate: JoinIR regression pack expansionreal-world coverage**
- **Phase 29ah✅ COMPLETE: JoinIR regression pack expansionreal-world coverage**
- 入口: `docs/development/current/main/phases/phase-29ah/README.md`
- **Phase 29aicandidate: Plan/Frag single-plannerFacts SSOT**
- 入口: `docs/development/current/main/phases/phase-29ai/README.md`
- **Phase 29ae P1✅ COMPLETE: JoinIR Regression Pack (SSOT固定)**
- 入口: `docs/development/current/main/phases/phase-29ae/README.md`

View File

@ -2,9 +2,15 @@
Goal: JoinIR の回帰パックを “最小 + 現実ログ系” に拡張し、見落としを減らす(仕様不変)。
## Status
- P0: ✅ COMPLETEphase263 Pattern2 を回帰パックへ追加)
## P0: Add Pattern2 real-world case to regression pack
- 指示書: `docs/development/current/main/phases/phase-29ah/P0-REGRESSION-PACK-INCLUDES-PHASE263-PATTERN2-INSTRUCTIONS.md`
- 回帰パック入口: `tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
- 追加フィルタ: `phase263_pattern2_*`real-world Pattern2
## Verification (SSOT)

View File

@ -0,0 +1,67 @@
# Phase 29ai P0: LoopFacts SSOT + Single Planner skeleton — Instructions
Status: Ready for execution
Scope: Plan/Frag 導線の SSOT 化docs-first, 仕様不変)
## Goal
Plan/Frag の入口を「pattern 名で分岐」から「Facts事実をSSOTとして構築→単一PlannerでPlan化」へ寄せる。
- 外部API: `build_plan(...) -> Result<Option<Plan>, Freeze>` の 1 本に収束
- 分岐は `PlanKind`enum内部に閉じ込め、pattern 名を漏らさない
## Non-goals
- 仕様変更(挙動変更)
- 大規模な既存置換このP0は骨格とSSOTを作るだけ
- fixture/smoke の新設(既存の quick / regression pack で担保)
## Target Architecture (SSOT)
```
src/mir/builder/control_flow/plan/
facts/ # 解析のみAST/CFG から Facts
mod.rs
loop_facts.rs # LoopFacts / 収集API
scan_shapes.rs # step/cond の形enum
normalize/ # Facts の表現ゆれを正規化(純変換)
mod.rs
canonicalize.rs
planner/ # Facts → Plan純変換、分岐はここに閉じ込める
mod.rs
build.rs # build_plan_from_facts
emit/ # Plan → Frag生成のみ
mod.rs
```
## API Contract
### Facts layer
- `try_build_loop_facts(...) -> Result<Option<LoopFacts>, Freeze>`
- `Ok(Some(facts))`: facts が揃った
- `Ok(None)`: 対象外(既存経路へ)
- `Err(freeze_tag)`: 契約違反Fail-Fast
### Planner layer
- `build_plan_from_facts(facts: CanonicalLoopFacts) -> Result<Plan, Freeze>`
- `PlanKind` は内部 enum で表現(例: `ScanWithInit`, `SplitScan`, `GeneralLoop`
## Implementation Steps (P0)
1) `facts/``planner/` の骨格を追加未使用でもOK
2) “入口SSOT” の関数だけ用意(中身は `Ok(None)` でも良い)
3) 既存の pattern 実装は触らないP0は並走の足場だけ
4) docs を更新Phase 29ai README に P0 入口/目的を明記)
## Verification (SSOT)
- `cargo build --release`
- `./tools/smokes/v2/run.sh --profile quick`
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
## Acceptance Criteria
- 既存挙動は不変(回帰パック/quick が緑)
- Facts/Planner の SSOT 骨格ができ、次Pで “pattern吸収” の受け口が明確

View File

@ -0,0 +1,13 @@
# Phase 29ai: Plan/Frag single-planner (Facts SSOT)
Goal: pattern 名による分岐を外部APIから消し、Facts事実→ Plan → Frag の導線を 1 本に収束させる(仕様不変)。
## P0: LoopFacts SSOT + Single Planner skeleton
- 指示書: `docs/development/current/main/phases/phase-29ai/P0-LOOPFACTS-SSOT-SINGLE-PLANNER-INSTRUCTIONS.md`
## Verification (SSOT)
- `cargo build --release`
- `./tools/smokes/v2/run.sh --profile quick`
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`