Deferred open decision OD-2 from the S5 plan (docs/plans/p4d-s5-s8.md §17) and confirmed by the S5 code review (finding F6). Filed per Rule 18 step 9.
Scope: install.mjs --uninstall-enforcement (S5, merged in 8a6dd3b) deliberately does NOT reverse --install-second-opinion. The second-opinion review gate (second-opinion-gate.mjs + its PreToolUse registration + the ~/.claude/hooks/second-opinion-providers.json snapshot) is a separate substrate-adjacent CAPABILITY, not part of the enforcement set, so its removal belongs in its own flag.
Ask: add install.mjs --uninstall-second-opinion that removes:
- the
second-opinion-gate.mjs registration (PreToolUse) from settings,
- the deployed gate file,
- the
~/.claude/hooks/second-opinion-providers.json snapshot (this one IS global — distinct from enforcement which is per-project),
with the same containment + atomic-settings + idempotence guarantees as --uninstall-enforcement.
5-field DEFER justification:
- Run the scenario: N/A — feature request, not a bug. S5's E2E never installs second-opinion before uninstalling (correctly, since enforcement uninstall must not touch it).
- Spec check: Plan §5 Non-Goals explicitly excludes this from S5; no spec requires it in P4d S5.
- History check: Reviewer F6 flagged the uncovered scope boundary; intentional capability/enforcement separation.
- Same-class check: Only member of the "uninstall a non-enforcement capability" class today; no siblings left vulnerable.
- Residual-risk statement: Until shipped, an operator who ran
--install-second-opinion has no scripted uninstall for it (manual removal of the snapshot + registration). No safety impact; the review gate failing closed is the existing safe default.
Source: review reply episode 20260621-065756-…590e (F6); plan OD-2.
Deferred open decision OD-2 from the S5 plan (
docs/plans/p4d-s5-s8.md§17) and confirmed by the S5 code review (finding F6). Filed per Rule 18 step 9.Scope:
install.mjs --uninstall-enforcement(S5, merged in8a6dd3b) deliberately does NOT reverse--install-second-opinion. The second-opinion review gate (second-opinion-gate.mjs+ its PreToolUse registration + the~/.claude/hooks/second-opinion-providers.jsonsnapshot) is a separate substrate-adjacent CAPABILITY, not part of the enforcement set, so its removal belongs in its own flag.Ask: add
install.mjs --uninstall-second-opinionthat removes:second-opinion-gate.mjsregistration (PreToolUse) from settings,~/.claude/hooks/second-opinion-providers.jsonsnapshot (this one IS global — distinct from enforcement which is per-project),with the same containment + atomic-settings + idempotence guarantees as
--uninstall-enforcement.5-field DEFER justification:
--install-second-opinionhas no scripted uninstall for it (manual removal of the snapshot + registration). No safety impact; the review gate failing closed is the existing safe default.Source: review reply episode
20260621-065756-…590e(F6); plan OD-2.