Disable a previously enabled compliance extension pack.
/extensions disable <pack_id> [reason]
disable when the whole pack no longer applies; use waive when only one rule in it doesn’t.pack_id must be the full domain/name form shown by /extensions list (e.g. compliance/hipaa) — a bare name like hipaa won’t match.
/extensions disable compliance/hipaa "Out of scope for this project"
What you’ll see:
Archived evidence to .claude/extensions/compliance-hipaa/archive/2026-07-05T00-00-00Z/ (only if a report existed)
Disabled compliance/hipaa (reason: Out of scope for this project).
To re-enable: /extensions enable compliance/hipaa
The pack’s rules stop contributing to skill prompts, its current evidence report is archived (if one existed), and the audit trail is preserved.
/extensions disable compliance/hipaa "Out of scope for this project" # disable with inline reason
/extensions disable security/baseline # no reason given — you'll be asked for one
.claude/extensions/.enabled.json with timestamp and reason — the original entry is updated, never deleted, so a later re-enable keeps the full history..claude/extensions/<pack-kebab>/archive/<timestamp>/.Disabled {pack_id} (reason: {reason}). followed by To re-enable: /extensions enable {pack_id} — re-enabling regenerates evidence from scratch..claude/extensions/.enabled.json — entry marked with disabled_at and disabled_reason.claude/extensions/<pack-kebab>/archive/<timestamp>/evidence-report.md — archived evidence (when one existed)| Problem | Fix |
|---|---|
Pack {pack_id} is not currently enabled |
Nothing to disable — check /extensions status for what’s active |
Reason required |
Re-invoke with a quoted reason: /extensions disable <pack> "why" |
jq required for /extensions disable |
Install jq — this command manipulates JSON state |
Could not acquire lock |
Another /extensions command is running; if not, remove .claude/extensions/.lock |