事象
plugin/plangate/skills/ 配下の以下 7 件は、.agents/skills/ に正本が存在しない plugin 専用の orphanである:
context-packager / design-gate / evidence-ledger / intent-classifier / pr-decision / skill-policy-router / subagent-dispatch
scripts/sync-plugin-plangate.sh は .claude/{agents,rules,commands} と .agents/skills のみを読むため(.claude/skills/ は読まない)、これらは sync が生成しない = drift 比較の対象にならない。
問題
#842(PR #860)の B'案では、plugin 配下を「同期元のない独自実体(限定 HO で保護)」と「派生成果物(PR drift check で担保)」に 2 分した。しかし orphan SKILL.md はそのどちらにも入らない:
- 限定 HO に含められない — 他 31 件の同期対象 SKILL.md と同一パスパターン(
plugin/plangate/skills/*/SKILL.md)になり、限定 HO にすると正規 sync の書き込みまで blockしてしまう
- drift check でも検出できない — sync が生成しないため、改変しても
--dry-run の差分はゼロのまま
結果、この 7 件は AI が改変しても機械層のゲートが一切働かない(C-4 の目視のみ)。
修正案
.agents/skills/ 側に正本を立て、sync 対象に含める(真に「派生成果物」にする)。これにより PR drift check の担保下に入る。
あるいは plugin 専用であることが意図的なら、sync スクリプトに「plugin 専用 skill」の明示リストを持たせ、drift check がそれらの改変も検出できるようにする。
関連
🤖 Generated with Claude Code
事象
plugin/plangate/skills/配下の以下 7 件は、.agents/skills/に正本が存在しない plugin 専用の orphanである:context-packager/design-gate/evidence-ledger/intent-classifier/pr-decision/skill-policy-router/subagent-dispatchscripts/sync-plugin-plangate.shは.claude/{agents,rules,commands}と.agents/skillsのみを読むため(.claude/skills/は読まない)、これらは sync が生成しない = drift 比較の対象にならない。問題
#842(PR #860)の B'案では、plugin 配下を「同期元のない独自実体(限定 HO で保護)」と「派生成果物(PR drift check で担保)」に 2 分した。しかし orphan SKILL.md はそのどちらにも入らない:
plugin/plangate/skills/*/SKILL.md)になり、限定 HO にすると正規 sync の書き込みまで blockしてしまう--dry-runの差分はゼロのまま結果、この 7 件は AI が改変しても機械層のゲートが一切働かない(C-4 の目視のみ)。
修正案
.agents/skills/側に正本を立て、sync 対象に含める(真に「派生成果物」にする)。これにより PR drift check の担保下に入る。あるいは plugin 専用であることが意図的なら、sync スクリプトに「plugin 専用 skill」の明示リストを持たせ、drift check がそれらの改変も検出できるようにする。
関連
🤖 Generated with Claude Code