docs(phase29ah+29ai): update schedule; plan facts->plan skeleton
This commit is contained in:
@ -1,13 +1,19 @@
|
||||
# Self Current Task — Now (main)
|
||||
|
||||
## Current Focus: Phase 29ag(JoinIR merge SSOT unification)
|
||||
## Current Focus: Phase 29ah(JoinIR 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 Pattern2(Phase 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 本に収束(仕様不変)
|
||||
|
||||
@ -14,9 +14,12 @@ Related:
|
||||
- **Phase 29ag(✅ COMPLETE): JoinIR merge SSOT unification**
|
||||
- 入口: `docs/development/current/main/phases/phase-29ag/README.md`
|
||||
|
||||
- **Phase 29ah(candidate): JoinIR regression pack expansion(real-world coverage)**
|
||||
- **Phase 29ah(✅ COMPLETE): JoinIR regression pack expansion(real-world coverage)**
|
||||
- 入口: `docs/development/current/main/phases/phase-29ah/README.md`
|
||||
|
||||
- **Phase 29ai(candidate): Plan/Frag single-planner(Facts 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`
|
||||
|
||||
|
||||
@ -2,9 +2,15 @@
|
||||
|
||||
Goal: JoinIR の回帰パックを “最小 + 現実ログ系” に拡張し、見落としを減らす(仕様不変)。
|
||||
|
||||
## Status
|
||||
|
||||
- P0: ✅ COMPLETE(phase263 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)
|
||||
|
||||
|
||||
@ -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吸収” の受け口が明確
|
||||
13
docs/development/current/main/phases/phase-29ai/README.md
Normal file
13
docs/development/current/main/phases/phase-29ai/README.md
Normal 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`
|
||||
Reference in New Issue
Block a user