# Uninstall

> Cleanly remove the Exosuit framework from a project while preserving project-specific content.

- Skill: `joris887/uninstall` (Agent Skill)
- Install (CLI): `npx skillmds@latest add joris887/uninstall`
- Raw SKILL.md: https://api.skillmd.com/api/skills/joris887/uninstall/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: joris887 (https://skillmd.com/u/joris887)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/joris887/uninstall

---

______________________________________________________________________

## uninstall

Remove the Exosuit framework from this project.

## Phase 0: Confirm Intent

<HARD-GATE>
This will remove framework files from the project. Present what will happen and require explicit confirmation before proceeding.
</HARD-GATE>

Ask the user to confirm using AskUserQuestion:

- **"Full removal"** — description: "Remove all framework files (.claude/, framework docs, scripts). Keep source code, tests, and project docs untouched."
- **"Keep documentation"** — description: "Remove framework machinery (.claude/) but keep generated docs (ARCHITECTURE.md, CODING_STANDARDS.md, GROUND_RULES.md, etc.)"
- **"Cancel"** — description: "Don't remove anything"

## Phase 1: Inventory

Before removing, inventory what exists:

### Framework Files (will be removed)
```bash
# Core framework
echo "=== Core Framework ==="
ls -d .claude/skills/ .claude/hooks/ .claude/rules/ .claude/agents/ .claude/prompts/ .claude/commands/ .claude/output-styles/ .claude/scripts/ 2>/dev/null

# Settings and config
echo "=== Settings ==="
ls .claude/settings.json .claude/settings.local.json.template .claude/keybindings.json.template 2>/dev/null

# Framework scripts
echo "=== Scripts ==="
ls scripts/pm/*.sh 2>/dev/null

# Framework root files
echo "=== Root Files ==="
ls install.sh AGENTS.md llms.txt CLAUDE.local.md.template 2>/dev/null
```

### Project-Specific Content (will be PRESERVED)
```bash
echo "=== Preserved ==="
ls docs/architecture/ docs/reference/ docs/context/ docs/testing/ docs/sessions/ docs/adr/ docs/progress.md docs/technical-debt.md CLAUDE.md 2>/dev/null
```

### Technology-Specific Skills (ask user)
```bash
# Skills generated by /skill-create for the project's stack
echo "=== Technology Skills (project-specific) ==="
for skill_dir in .claude/skills/*/; do
    skill_name=$(basename "$skill_dir")
    # Check if it's a framework skill or a tech skill
    case "$skill_name" in
        bootstrap|sprint-start|story-cycle|sprint-end|continue|handoff|brainstorm|ideate|research|skill-create|code-quality|test-validator|security-audit|architecture-check|manual-test|testing-cycle|UAT-cycle|claude-sense-check|debug-session|fix-issue|undo-work|commit|parallel-work|weekly-maintenance|retrospective|backlog-review|doctor|framework-upgrade|pr-status|skill-eval|refine-loop|optimize|quickstart|help-me|dashboard|custom-hooks|uninstall|performance-check)
            ;; # Framework skill — will be removed
        *)
            echo "  $skill_name (technology-specific)"
            ;;
    esac
done
```

Present the inventory and ask: "Technology-specific skills were generated for your stack. Should I preserve or remove them?"

## Phase 2: Remove Framework Files

Based on user's choice:

### Full Removal
```bash
# Remove core framework (preserve settings.local.json if it exists)
cp .claude/settings.local.json /tmp/claude-settings-backup.json 2>/dev/null
rm -rf .claude/skills/ .claude/hooks/ .claude/rules/ .claude/agents/ .claude/prompts/ .claude/commands/ .claude/output-styles/ .claude/scripts/
rm -f .claude/settings.json .claude/settings.local.json.template .claude/keybindings.json.template
rm -rf .claude-plugin/

# Remove framework scripts
rm -rf scripts/pm/

# Remove framework root files
rm -f install.sh AGENTS.md llms.txt CLAUDE.local.md.template

# Remove vision (if user confirms it's not needed)
# Ask: "Remove vision/ directory? (Contains braindump templates)"
```

### Keep Documentation Mode
Same as above, but ALSO preserve:
- `docs/architecture/ARCHITECTURE.md`
- `docs/reference/CODING_STANDARDS.md`
- `docs/reference/TESTING_STRATEGY.md`
- `docs/reference/GROUND_RULES.md`
- `docs/context/*`
- `docs/progress.md`
- `docs/technical-debt.md`

## Phase 3: Clean Up CLAUDE.md

If CLAUDE.md exists, offer to simplify it:
- Remove the Skills section (skill references won't work)
- Remove the Compaction Directive (framework-specific)
- Keep: Project Overview, Commands, Architecture, Git Workflow, Current Focus, Backlog references, Testing
- The result is a standard project CLAUDE.md without framework workflow references

## Phase 4: Clean Up .gitignore

Remove framework-specific patterns from .gitignore:
- `CLAUDE.local.md`
- `.claude/settings.local.json`
- `*.session-handoff.md`

Only remove these if no other tool uses them.

## Phase 5: Summary

```markdown
### Framework Removed

**Removed:**
- .claude/skills/ ([N] skills)
- .claude/hooks/ ([N] hook scripts)
- .claude/rules/ ([N] rules)
- .claude/agents/ ([N] agents)
- .claude/prompts/ ([N] prompt snippets)
- scripts/pm/ ([N] PM scripts)
- [other removed files]

**Preserved:**
- [list of preserved docs/files]
- [technology-specific skills if kept]

**CLAUDE.md:** [Simplified / Untouched]

**To re-install later:**
```bash
curl -fsSL https://raw.githubusercontent.com/joris887/exosuit/main/install.sh | bash
```
(Windows: `powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/joris887/exosuit/main/install.ps1 | iex"`)
```

## Rules

- NEVER remove files without explicit user confirmation
- ALWAYS show what will be removed AND what will be preserved before acting
- NEVER remove source code, test files, or non-framework project files
- ALWAYS offer to backup .claude/settings.local.json (contains user customizations)
- If .claude/ directory has non-framework files, warn and skip those files
- After removal, verify the project still has a valid .git directory

