phase29ao(p35): ssot tag coverage and pattern1 negative gate

This commit is contained in:
2025-12-30 16:55:38 +09:00
parent 3bbd501479
commit f6adf2a43f
9 changed files with 146 additions and 6 deletions

View File

@ -22,6 +22,7 @@ Goal: JoinIR の最小回帰セットを SSOT として固定する。
- phase286_pattern9_* は plugins disabled 経路の mismatch があるため legacy pack 側で SKIPphase29ae pack には含めない)
- shadow adopt tag`[coreplan/shadow_adopt:*]`)は `filter_noise` で除去される
- タグ検証が必要な smoke は raw outputfilter 前)を参照する
- タグ coverage SSOT: `docs/development/current/main/design/coreplan-shadow-adopt-tag-coverage-ssot.md`
## Header PHI Entry/Latch Contract (SSOT)

View File

@ -0,0 +1,72 @@
---
Status: Ready
Scope: strict/dev の shadow adopt 観測を SSOT 化し、negative ケースを回帰で固定する(仕様不変)
Related:
- docs/development/current/main/phases/phase-29ao/README.md
- docs/development/current/main/phases/phase-29ae/README.md
- docs/development/current/main/design/coreplan-shadow-adopt-tag-coverage-ssot.md
---
# Phase 29ao P35: Shadow-adopt tag coverage SSOT + Pattern1 negative gate
## 目的
- strict/dev の shadow adopt は「通った/通ってない」が出力で観測できるが、回帰で “どの smoke が何を保証するか” が曖昧になりやすい。
- P35 は「タグの必須/禁止」の責務と対応 smoke を SSOT として固定し、抜けを 1 件Pattern1 subset reject埋める。
## 非目的
- release の既定挙動・エラー文字列・恒常ログの変更
- 新しい環境変数追加
- by-name のパターン名分岐追加
## 成果物
1. SSOT 追加(表形式)
- `docs/development/current/main/design/coreplan-shadow-adopt-tag-coverage-ssot.md`
2. negative gate 追加Pattern1 subset reject
- `tools/smokes/v2/profiles/integration/joinir/phase29ao_pattern1_subset_reject_extra_stmt_vm.sh`
3. 参照導線の追記(任意)
- `docs/development/current/main/design/planfrag-ssot-registry.md`
## 実装手順
### Step 1: coverage SSOT を追加
- 新規作成:
- `docs/development/current/main/design/coreplan-shadow-adopt-tag-coverage-ssot.md`
- 内容:
- “必須タグ / 禁止タグ / 対応 smoke / raw output 参照の理由” を 1 枚にまとめる
### Step 2: Pattern1 subset reject を negative gate にする
- 変更:
- `tools/smokes/v2/profiles/integration/joinir/phase29ao_pattern1_subset_reject_extra_stmt_vm.sh`
- 追加するチェック:
- strict/dev 実行の raw output に `[coreplan/shadow_adopt:pattern1_simplewhile]` が出たら FAIL
- 既存の exit code=3 期待は維持(副作用 drop 誤マッチ検出の本体)
### Step 3: SSOT registry に参照追加(任意)
- 更新:
- `docs/development/current/main/design/planfrag-ssot-registry.md`
- `References` に coverage SSOT を 1 行追加
### Step 4: Phase 29ao の進捗を更新
- 更新:
- `docs/development/current/main/phases/phase-29ao/README.md`
- `docs/development/current/main/10-Now.md`
- `docs/development/current/main/30-Backlog.md`
- `docs/development/current/main/design/coreplan-migration-roadmap-ssot.md`Next のみ)
## 検証(必須)
- `cargo build --release`
- `./tools/smokes/v2/run.sh --profile quick`
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
## コミット
- `git add -A`
- `git commit -m "phase29ao(p35): ssot shadow-adopt tag coverage and pattern1 negative gate"`

View File

@ -196,7 +196,12 @@ GateSSOT:
- 指示書: `docs/development/current/main/phases/phase-29ao/P34-PATTERN2-NEGATIVE-SHADOW-ADOPT-TAG-GATES-INSTRUCTIONS.md`
- ねらい: `phase29ab_pattern2_seg_{freeze,notapplicable}` で shadow adopt タグが出ないことを回帰で固定(仕様不変)
## P35: Shadow-adopt tag coverage SSOT + Pattern1 negative gate ✅
- 指示書: `docs/development/current/main/phases/phase-29ao/P35-SHADOW-ADOPT-TAG-COVERAGE-SSOT-AND-PATTERN1-NEGATIVE-GATE-INSTRUCTIONS.md`
- ねらい: タグ必須/禁止を SSOT 化し、Pattern1 subset reject の negative gate を回帰で固定(仕様不変)
## Nextplanned
- Next: P35TBD
- After P35: TBD
- Next: P36TBD
- After P36: TBD