skills/clean/SKILL.md
Fully remove Nazgul from a project — deletes all runtime state, generated agents, MCP config, permissions, CLAUDE.md injections, and gitignore entries. Use when user says "remove nazgul", "uninstall nazgul", "clean nazgul", or wants to completely undo /nazgul:init.
npx skillsauth add OrodruinLabs/nazgul nazgul:cleanInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/nazgul:clean — Fully remove Nazgul from this project (with confirmation)/nazgul:clean --force — Remove without confirmation prompt$ARGUMENTS
test -f nazgul/config.json && echo "YES" || echo "NO"test -f nazgul/config.json && jq -r '.install_mode // "shared"' nazgul/config.json 2>/dev/null || echo "unknown"ls nazgul/tasks/TASK-*.md 2>/dev/null | wc -l | tr -d ' 'ls .claude/agents/generated/*.md 2>/dev/null | wc -l | tr -d ' 'grep -q "Nazgul Framework" CLAUDE.md 2>/dev/null && echo "YES" || echo "NO"grep -q "# Nazgul Framework (local mode)" .gitignore 2>/dev/null && echo "YES" || echo "NO"Pre-load: Run ToolSearch with query select:AskUserQuestion to load the interactive prompt tool (deferred by default). Do this BEFORE any step that uses AskUserQuestion.
Fully remove Nazgul from this project. No archiving — permanent deletion.
If none of the current state indicators show Nazgul presence (no config, no agents, no MCP entry, no CLAUDE.md section):
Check $ARGUMENTS for --force flag. If present, skip confirmation.
Unless --force is present, show what will be removed, then use AskUserQuestion to confirm:
First, display a summary of what exists:
Nazgul Clean — Full Removal
═══════════════════════════════════════════════════════
The following will be PERMANENTLY DELETED:
nazgul/ [EXISTS | not found]
.claude/agents/generated/ [N file(s) | not found]
.claude/settings.json entries [EXISTS | not found]
CLAUDE.md nazgul section [EXISTS | not found]
.gitignore nazgul entries [EXISTS | not found]
Then use AskUserQuestion:
If Abort: stop immediately.
Delete the entire nazgul/ directory:
rm -rf nazgul/
Delete the .claude/agents/generated/ directory (these are Nazgul-generated reviewer agents):
rm -rf .claude/agents/generated/
If .claude/agents/ is now empty, remove it too. Do NOT remove .claude/ itself as it may contain other settings.
If .claude/settings.json exists:
enableAgentTeams key if set to truejq 'del(.enableAgentTeams)' .claude/settings.json > .claude/settings.json.tmp && mv .claude/settings.json.tmp .claude/settings.json
{} or only has empty arrays), delete it.claude/ directory is now empty, remove it too. But be careful — check first.If the project's CLAUDE.md contains a Nazgul-injected section:
CLAUDE.md# Nazgul Framework — Project Instructions (the content from templates/CLAUDE.md.template)# Nazgul Framework — Project Instructions to the end of the file (it is always appended at the bottom by /nazgul:init).If .gitignore contains the Nazgul local mode block:
.gitignore# Nazgul Framework (local mode) and the lines that follow it (nazgul/, .claude/agents/generated/, .mcp.json).gitignore is now empty, delete itNazgul Clean Complete
═══════════════════════════════════════════════════════
Removed:
nazgul/ [DELETED | was not present]
.claude/agents/generated/ [DELETED (N files) | was not present]
.claude/settings.json entries [CLEANED | was not present]
CLAUDE.md nazgul section [REMOVED | was not present]
.gitignore nazgul entries [REMOVED | was not present]
Nazgul has been fully removed from this project.
To reinstall: /nazgul:init
testing
Human acceptance testing — structured verification that work actually works. Run standalone or integrated in HITL review cycle.
devops
Task lifecycle management — skip, unblock, add, prioritize, info, and list tasks. Use when you need to manage individual tasks in the Nazgul pipeline.
development
Check the current state of a Nazgul autonomous loop. Use when asked about loop progress, task status, iteration count, review board status, or how the Nazgul loop is going.
development
Start or resume a Nazgul autonomous development loop. Use when user says "start nazgul", "run nazgul", "begin development", "resume the loop", or passes an objective for new work. Auto-detects project state — no arguments needed.