docs(phase29ao): add p29 shadow adopt tag coverage instruction

This commit is contained in:
2025-12-30 14:03:31 +09:00
parent ab745e958a
commit ac272526c1
6 changed files with 114 additions and 8 deletions

View File

@ -2,8 +2,8 @@
## Current Focus: Phase 29aoCorePlan composition
Next: Phase 29ao P29TBD
指示書: TBD
Next: Phase 29ao P29Shadow adopt tag coverage
指示書: `docs/development/current/main/phases/phase-29ao/P29-SHADOW-ADOPT-TAGS-COVERAGE-ALL-GATE-PATTERNS-INSTRUCTIONS.md`
運用ルール: integration filter で phase143_* は回さないJoinIR 回帰は phase29ae pack のみ)
運用ルール: phase286_pattern9_* は legacy pack (SKIP) を使う
移行道筋 SSOT: `docs/development/current/main/design/coreplan-migration-roadmap-ssot.md`

View File

@ -15,8 +15,8 @@ Related:
- **Phase 29aoactive: CorePlan composition from Skeleton/Feature**
- 入口: `docs/development/current/main/phases/phase-29ao/README.md`
- 状況: P0P28 ✅ 完了 / Next: P29TBD
- Next 指示書: TBD
- 状況: P0P28 ✅ 完了 / Next: P29Shadow adopt tag coverage
- Next 指示書: `docs/development/current/main/phases/phase-29ao/P29-SHADOW-ADOPT-TAGS-COVERAGE-ALL-GATE-PATTERNS-INSTRUCTIONS.md`
- **Phase 29af✅ COMPLETE: Boundary hygiene / regression entrypoint / carrier layout SSOT**
- 入口: `docs/development/current/main/phases/phase-29af/README.md`

View File

@ -34,7 +34,7 @@ Related:
## 1.1 Current (active)
- Active phase: `docs/development/current/main/phases/phase-29ao/README.md`
- Next step: TBD (Phase 29ao P29)
- Next step: `docs/development/current/main/phases/phase-29ao/P29-SHADOW-ADOPT-TAGS-COVERAGE-ALL-GATE-PATTERNS-INSTRUCTIONS.md`
## 2. すでに固めた SSOT再発防止の土台

View File

@ -0,0 +1,99 @@
---
Status: Ready
Scope: code+tests+docsstrict/dev のみ、仕様不変)
Related:
- docs/development/current/main/phases/phase-29ao/README.md
- docs/development/current/main/phases/phase-29ae/README.md
- tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh
- src/mir/builder/control_flow/joinir/patterns/router.rs
- tools/smokes/v2/lib/test_runner.sh
---
# Phase 29ao P29: Shadow adopt coverage全 gate パターンにタグ + smoke で必須化)
Date: 2025-12-30
Status: Ready for execution
Goal: JoinIR regression gatephase29ae packに含まれる全パターンについて、strict/dev の shadow adoptFacts→CorePlanが **実際に踏まれている**ことを、安定タグと smoke の期待として固定する。
## 背景
- P28 で Pattern6/7 の shadow adopt にタグを付け、専用 smoke で必須化した。
- ただし regression pack は Pattern1/2/3/5 も含むため、「pack が緑でも shadow adopt が踏めていない」抜け道が残りうる。
- P29 は “観測のみ” で、挙動は変えずに「踏んだ」を SSOT 化する。
## 非目的
- release 既定のログ/出力を増やす
- 新しい env var を追加する
- shadow adopt の適用範囲を広げるP29 はタグとテスト固定だけ)
## 実装方針
### 1) router に stable tag を追加strict/dev の adopt 成功時のみ)
対象:
- `src/mir/builder/control_flow/joinir/patterns/router.rs`
追加タグSSOT・固定:
- Pattern1 adopt: `[coreplan/shadow_adopt:pattern1_simplewhile]`
- Pattern2 subset adopt: `[coreplan/shadow_adopt:pattern2_break_subset]`
- Pattern3 adopt: `[coreplan/shadow_adopt:pattern3_ifphi]`
- Pattern5 adopt: `[coreplan/shadow_adopt:pattern5_infinite_early_exit]`
- 既存Pattern6/7 は P28 のタグを維持
注意:
- `strict_or_dev == true` かつ “Facts→CorePlan を採用して return する直前” に `eprintln!` する
- fallback 経路DomainPlan→Normalizerでは出さない
### 2) 既存 smoke の期待に「タグ必須」を追加(回帰 pack の行程を増やさない)
P28 で `tools/smokes/v2/lib/test_runner.sh` がタグをノイズとして除去するようになっているため、
**タグ検証は `filter_noise` 前の生出力で行う**こと。
対象(いずれも regression pack に既に含まれる):
- Pattern1 strict shadow:
- `tools/smokes/v2/profiles/integration/joinir/phase29ao_pattern1_strict_shadow_vm.sh`
- 生出力に `[coreplan/shadow_adopt:pattern1_simplewhile]` が含まれることを必須化
- Pattern2 subset:
- `tools/smokes/v2/profiles/integration/apps/phase29ai_pattern2_break_plan_subset_ok_min_vm.sh`
- 生出力に `[coreplan/shadow_adopt:pattern2_break_subset]` が含まれることを必須化
- 既存の promotion_hint など他の tag 期待は維持
- Pattern3:
- `tools/smokes/v2/profiles/integration/apps/phase118_pattern3_if_sum_vm.sh`
- 生出力に `[coreplan/shadow_adopt:pattern3_ifphi]` が含まれることを必須化
- Pattern5 strict shadow:
- `tools/smokes/v2/profiles/integration/joinir/phase29ao_pattern5_strict_shadow_vm.sh`
- 生出力に `[coreplan/shadow_adopt:pattern5_infinite_early_exit]` が含まれることを必須化
- Pattern6/7 strict shadowP28で追加済み:
- `tools/smokes/v2/profiles/integration/joinir/phase29ao_pattern6_strict_shadow_vm.sh`
- `tools/smokes/v2/profiles/integration/joinir/phase29ao_pattern7_strict_shadow_vm.sh`
- ここはタグ検証が既にある前提。無ければ同様に “生出力で検証” に統一する。
### 3) docs運用SSOTの追記
- `docs/development/current/main/phases/phase-29ae/README.md`
- 「shadow adopt tag は filter_noise で落ちる」こと
- 「tag を検証する smoke は生出力を参照する」こと
を 1〜2 行で明文化(迷子防止)。
## テスト(必須)
- `cargo build --release`
- `./tools/smokes/v2/run.sh --profile quick`
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
## docs 更新(追跡)
- `docs/development/current/main/phases/phase-29ao/README.md`P29 追加、Next 更新)
- `docs/development/current/main/10-Now.md` / `docs/development/current/main/30-Backlog.md` / `CURRENT_TASK.md`
- `docs/development/current/main/design/coreplan-migration-roadmap-ssot.md`Current/Next 更新)
## コミット
- `git add -A`
- `git commit -m "phase29ao(p29): require shadow adopt tags for all gate patterns"`

View File

@ -167,6 +167,13 @@ GateSSOT:
- 指示書: `docs/development/current/main/phases/phase-29ao/P28-SHADOW-ADOPT-OBSERVABILITY-TAGS-AND-GATE-SMOKES-INSTRUCTIONS.md`
- ねらい: strict/dev の shadow adopt が “実際に踏まれている” ことを安定タグと回帰スモークで SSOT 化(仕様不変)
## P29: Shadow adopt tag coverageall gate patterns
- 指示書: `docs/development/current/main/phases/phase-29ao/P29-SHADOW-ADOPT-TAGS-COVERAGE-ALL-GATE-PATTERNS-INSTRUCTIONS.md`
- ねらい: regression gate に含まれる全パターンで “shadow adopt を踏んだ” をタグ必須として固定(仕様不変)
## Nextplanned
- Next: P29TBD
- Next: P29実装
- 指示書: `docs/development/current/main/phases/phase-29ao/P29-SHADOW-ADOPT-TAGS-COVERAGE-ALL-GATE-PATTERNS-INSTRUCTIONS.md`
- After P29: P30TBD