背景 / Why
PR #875(#861 是正)の merge 前敵対的レビューで検出された major 2 件 + minor 2 件 + 既知課題 1 件のうち、TC-05 sandbox 化・safety guard 本体のみが merge され、以下が未反映のまま残っている。全指摘は sandbox 実験で実測 CONFIRMED 済み。
What(Scope)
F1 [major] guard 発火が silent(exit 0)で恒久 drift を生む
F4 [major] DELETE 正常系の負側テストが皆無
- TC-08 は guard「発火する側」のみ。guard が常時発火する回帰(不等号逆転等)でも TA-26 は全 PASS する
- 対応案: TC-09 追加 — guard 不発条件(src=2 / stale=1)で stale が削除され WARN が出ないことを assert
F2 [minor] dst カウントが copy 後で dry-run と実行が乖離
- カウントを「stale 数(src に存在しない dst ファイル数)」に変更すると dry-run/実行が一致しコメントと実効条件も揃う
F3 [minor] 単体実行判定が汎用変数 FIXTURES_DIR 依存
- 環境に FIXTURES_DIR が export されていると standalone 判定が壊れ全 FAIL でも exit 0。専用フラグ(例 PG_HARNESS_SOURCED=1)へ変更
F5 [既知課題] references 系 2 経路に #861 同型の無ガード大量削除が残存
- skills references 同期(src 空で dst 全削除)/ ai-loop-cycle references(正本 docs 不在で全削除)。guard 適用範囲は sync_dir(agents/rules/commands)のみ
受入基準
- guard 発火時に sync が非 0 exit し、CI sync job が fail する(実測)
- PLANGATE_ALLOW_MASS_DELETE=1 で意図的大量削除が実行できる
- TC-09(DELETE 正常系)が追加され、guard 常時発火の回帰を検出できる
- F2/F3 の是正または明示的な見送り記録
- F5 の references 経路 guard(または別 issue 分離の判断記録)
参照
🤖 Generated with Claude Code
背景 / Why
PR #875(#861 是正)の merge 前敵対的レビューで検出された major 2 件 + minor 2 件 + 既知課題 1 件のうち、TC-05 sandbox 化・safety guard 本体のみが merge され、以下が未反映のまま残っている。全指摘は sandbox 実験で実測 CONFIRMED 済み。
What(Scope)
F1 [major] guard 発火が silent(exit 0)で恒久 drift を生む
sync_dirの guard 発火は WARN ログ +return 0のみ。copy でchanged=1になるため CI 自動 PR は新旧混在の plugin 状態のまま生成され、以後毎 run guard が発火し続けて削除が永久スキップされる(fix(tests): ta-26 TC-05 が実リポジトリの plugin/plangate/ を rm -rf している(データ損失リスク) #861 の一回性データ損失を検知手段のない恒久不整合に置き換えるリスク)PLANGATE_ALLOW_MASS_DELETE=1override を用意F4 [major] DELETE 正常系の負側テストが皆無
F2 [minor] dst カウントが copy 後で dry-run と実行が乖離
F3 [minor] 単体実行判定が汎用変数 FIXTURES_DIR 依存
F5 [既知課題] references 系 2 経路に #861 同型の無ガード大量削除が残存
受入基準
参照
🤖 Generated with Claude Code