adr
Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as…
Safely remove plugin assets (skill/agent/rule/script/hook) with dependency detection and reference cleanup. Use when: user says 'remove skill', 'delete skill', 'deprecate', 'clean up unused', or /safe-remove. Not for: code refactoring (use /simplify), feature removal requiring
$ npx -y skills add sd0xdev/sd0x-dev-flow --skill safe-remove --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/safe-removeContext preview
The summary Claude sees to decide when to auto-load this skill.
Safely remove plugin assets (skill/agent/rule/script/hook) with dependency detection and reference cleanup. Use when: user says 'remove skill', 'delete skill', 'deprecate', 'clean up unused', or /safe-remove. Not for: code refactoring (use /simplify), feature removal requiring
name: safe-remove description: "Safely remove plugin assets (skill/agent/rule/script/hook) with dependency detection and reference cleanup. Use when: user says 'remove skill', 'delete skill', 'deprecate', 'clean up unused', or /safe-remove. Not for: code refactoring (use /simplify), feature removal requiring architecture changes (manual)." disable-model-invocation: true allowed-tools: Bash(bash:*), Bash(git:*), Read, Grep, Glob, Edit, Write, AskUserQuestion
Safely remove plugin assets by discovering dependencies, classifying impact, and executing removal with verification.
`/safe-remove <type> <name> [--execute] [--dry-run]`
| Argument | Description | Default | |----------|-------------|---------| | `<type>` | Asset type: `skill`, `agent`, `rule`, `script`, `hook` | Required | | `<name>` | Asset name (e.g., `create-skill`, `strict-reviewer`) | Required | | `--execute` | Apply removal (with AskUserQuestion confirmation) | off | | `--dry-run` | Output plan only (default behavior) | on |
> If both `--dry-run` and `--execute` are provided, `--dry-run` wins (safe default).
sequenceDiagram
participant U as User
participant S as /safe-remove
participant C as Codebase
S->>C: Phase 1: Resolve target files
S->>C: Phase 2: Build reference graph
S->>S: Phase 3: Classify (BLOCKER/PATCHABLE)
alt Has BLOCKER
S->>U: HALT — show blockers with file:line
else Dry-run (default)
S->>U: Output removal plan
else --execute
U->>S: AskUserQuestion approval
S->>C: Phase 4: Patch → Delete
S->>C: Phase 5: Verify
S->>U: Removal complete
endValidate `<type>` and locate canonical files for the asset.
| Type | Primary Files | Secondary Files | |------|--------------|-----------------| | `skill` | `skills/<name>/` (entire directory) | — | | `agent` | `agents/<name>.md` | — | | `rule` | `rules/<name>.md` | `.claude/rules/<name>.md` (mirror) | | `script` | `scripts/<name>.*` | — | | `hook` | Entry in `hooks/hooks.json` | Hook script file |
If target not found, output error: `Target not found: <type> <name>` and stop.
Scan the entire codebase for references to the target. Use type-specific patterns from `references/removal-policy.md`.
# Core scan — find all references grep -rn "^skills:.*<name>" agents/ --include="*.md" grep -rn "/<name>" CLAUDE.md .claude/CLAUDE.md CLAUDE.template.md grep -rn "/<name>" README*.md grep -rn "/<name>\|<name>" rules/ skills/ --include="*.md" grep -rn "<name>" hooks/hooks.json grep -rn "<name>" test/ --include="*.test.js"
Apply 2-tier classification per `references/removal-policy.md`:
| Tier | Definition | Action | |------|-----------|--------| | **BLOCKER** | Structured runtime binding — removal breaks execution | HALT with file:line details | | **PATCHABLE** | Prose/documentation reference — safe to auto-edit | Include in patch plan |
**Requires AskUserQuestion confirmation before any changes.**
Execution order (patches first, deletes last):
1. **Patch** PATCHABLE references:
2. **Delete** target files:
> Note: `.claude/CLAUDE.md` must be patched directly — do not rely on hook auto-sync for content removal.
Run type-specific verification from `references/removal-policy.md`:
# Verify no residual references (excluding archived docs) grep -rn "^skills:.*<name>" agents/ --include="*.md" grep -rn "/<name>" CLAUDE.md .claude/CLAUDE.md CLAUDE.template.md README*.md skills/ --include="*.md" | grep -v "archived/" grep -n "command: /<name>" docs/skill-catalog.yml # canonical registration surface — must be empty
If residual references found, report them. If clean, output `Verification passed`.
## Safe Remove Plan: <type> <name> ### Target Files (to delete) | File | Status | |------|--------| | skills/<name>/SKILL.md | DELETE | | test/skills/<name>*.test.js | DELETE (if exists) | ### BLOCKER References (must resolve first) | File:Line | Pattern | Why | |-----------|---------|-----| | agents/foo.md:3 | skills: <name> | Agent skills field | ### PATCHABLE References (auto-fix) | File:Line | Current | Patch | |-----------|---------|-------| | CLAUDE.md:90 | \| /name \| desc \| | REMOVE ROW | | README.md:308 | \| /name \| desc \| | REMOVE ROW | ### Verdict - BLOCKER count: N → ⛔ HALT (resolve blockers first) - BLOCKER count: 0, PATCHABLE count: M → ✅ Ready to execute
| File | Purpose | When to Read | |------|---------|-------------| | `references/removal-policy.md` | BLOCKER/PATCHABLE classification rules + per-asset-type matrix | Always (Phase 2-5) |
/safe-remove skill create-skill → Dry-run plan showing skill dir + tests to delete + 12 PATCHABLE references /safe-remove skill create-skill --execute → AskUserQuestion → patch 12 r
Language: English | 繁體中文 | 简体中文 | 日本語 | 한국어 | Español The harness layer for Claude Code. Let the model choose the path. Keep "done" verifiable. Full control plane on Claude Code. Skills-only distribution for Codex CLI and other compatible agents.
Repo: sd0xdev/sd0x-dev-flow
Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as…
Architecture design and documentation. Produces 3-architecture.md with component diagrams, data flow, integration points, and architecture decisions. Reads…
Context-aware Q&A with auto context gathering. Use when: user has a quick question about codebase, git history, rules, docs, or skills during development. Not…
Industry best practices conformance audit with mandatory adversarial debate. Produces audit artifact: verdict (OK/WARN/FAIL) + gap roadmap + debate proof. Use…
Bug fix workflow. Use when: fixing bugs, resolving issues, regression fixes. Not for: new features (use feature-dev), understanding code (use code-explore).…
Bump package and plugin version in sync. Updates package.json, .claude-plugin/plugin.json, and install-state manifest to the same version. Use when: user says…