Skip to content

chore(disk-hygiene): decide guard registration surface — skill-scoped vs plugin-level hooks.json (F1/F5) #1106

Description

@kyle-sexton

Parent

Source: handoff-inbox item 20260723-021058-disk-hygiene-0-6-4-consumer-audit (findings F1, F5 — priority call-out: "one structural decision resolves lockout scope, kill-switch delivery, and data-root authority simultaneously").

Decision to resolve

Maintainer decision (interview round with the user — not agent-resolvable): where does destructive_guard.py register?

  • Option A — move to plugin-level hooks.json exec-form: delivers --disk-hygiene-enabled ${user_config.disk_hygiene_enabled} (guard-enforced audit-only mode) and --authorized-data-root ${CLAUDE_PLUGIN_DATA} directly; observed firing is session-long anyway (per F1), so real scope cost is low. Fixes the misleading GuardTests situation (suite currently proves toggle-denial only via channels the shipped skill hook never receives).
  • Option B — keep skill-scoped registration; document observed session-long persistence + release path; accept kill-switch non-delivery as a known limitation.

Decision inputs come from the verification issue (blocker). NOTE: Option A changes when/where a hook fires — likely re-triggers the plugin-acceptance security review (MIGRATION-PLAYBOOK); run and record the review delta as part of the decision record.

Acceptance criteria

  • Decision made by maintainer and recorded as a closing comment with rationale
  • Security-review re-trigger question answered and recorded
  • Implementation issue unblocked with the chosen shape

Blocked by

  • Verification issue (F1/F5 harness-behavior verification)

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: highSignificant impact, or blocks an imminent release; staff this cycle.status: readyTriaged, unblocked, and fully specified; eligible to pick up.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions