GSD makes Claude Code reliable. Ultra makes it extraordinary.
3x quality. 2.5x speed. Same no-BS philosophy.
npx get-shit-done-cc@latestWorks on Mac, Windows, and Linux.
"If you know clearly what you want, this WILL build it for you. No bs."
"I've done SpecKit, OpenSpec and Taskmaster — this has produced the best results for me."
"By far the most powerful addition to my Claude Code. Nothing over-engineered. Literally just gets shit done."
Trusted by engineers at Amazon, Google, Shopify, and Webflow.
Why Ultra · How It Works · The Ultra Pipeline · Commands · Knowledge Flywheel · When to Use What
GSD is a solid foundation — context rot solved, fresh context per plan, atomic commits, structured plans. It works. Engineers at real companies use it every day.
But after running it on complex, multi-domain builds, I kept hitting the same four walls:
- Blind spots — A single researcher misses what a team of four would catch. One perspective isn't enough for complex phases.
- Weak plans — Plans look good until you're three tasks in and realize the architecture doesn't hold. No one challenged the assumptions.
- Bugs slip through — A single verifier does its best, but it can't simultaneously be the defender, the attacker, and the impartial judge.
- No learning — Phase 8 is as expensive as Phase 1. The system doesn't get smarter from what it's already built.
Ultra is my fix for all four:
| Problem | GSD | Ultra |
|---|---|---|
| Blind spots | 1 researcher | 4-perspective research swarm |
| Weak plans | Single planner | Builder/Critic adversarial debate |
| Bugs slip | Single verifier | Defender + Attacker + Auditor triple-check |
| No learning | Fresh start every phase | Knowledge flywheel — conventions compound |
Ultra is GSD's natural evolution, not a bolt-on. Every Ultra command enriches what's already there. You can use GSD commands, Ultra commands, or mix them freely.
npx get-shit-done-cc@latestThe installer prompts you to choose:
- Runtime — Claude Code, OpenCode, Gemini, or all
- Location — Global (all projects) or local (current project only)
Verify with /gsd:help inside your chosen runtime.
GSD evolves fast. Update periodically:
npx get-shit-done-cc@latestNon-interactive Install (Docker, CI, Scripts)
# Claude Code
npx get-shit-done-cc --claude --global # Install to ~/.claude/
npx get-shit-done-cc --claude --local # Install to ./.claude/
# OpenCode (open source, free models)
npx get-shit-done-cc --opencode --global # Install to ~/.config/opencode/
# Gemini CLI
npx get-shit-done-cc --gemini --global # Install to ~/.gemini/
# All runtimes
npx get-shit-done-cc --all --global # Install to all directoriesUse --global (-g) or --local (-l) to skip the location prompt.
Use --claude, --opencode, --gemini, or --all to skip the runtime prompt.
Development Installation
Clone the repository and run the installer locally:
git clone https://github.com/bslevin87/get-shit-done_ultra.git
cd get-shit-done_ultra
node bin/install.js --claude --localInstalls to ./.claude/ for testing modifications before contributing.
Ultra can use Claude Code's native Agent Teams for inter-agent coordination — live messaging instead of file relay, shared task lists instead of manual orchestration. This is experimental (Opus 4.6+, Feb 2026).
Enable:
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1Or add to ~/.claude/settings.json:
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}
}When enabled, all Ultra workflows use native teammate coordination. When disabled (default), existing Task() subagent behavior is unchanged. Both modes produce identical output files.
| Feature | Task() Subagents | Agent Teams |
|---|---|---|
| Communication | File relay | Native mailbox |
| Debate (verify) | Moderator reads 3 files | Live messaging |
| RELAY (research) | Written sections in files | Direct messages |
| Task management | Orchestrator manages | Shared task list |
| Display | Sequential | Split-pane |
Ultra works out of the box. For multi-domain phases, add a gsd-ultra.json to your project root:
{
"domains": {
"auth": { "paths": ["src/features/auth/"], "owner": "teammate-1" },
"tasks": { "paths": ["src/features/tasks/"], "owner": "teammate-2" }
},
"shared_paths": ["src/types/", "src/lib/"],
"pipeline": {
"adversarial_plan": { "max_rounds": 5 },
"adversarial_verify": { "max_debate_rounds": 3 }
}
}Not required. Without it, Ultra uses smart defaults and auto-discovers domains from your codebase.
GSD is designed for frictionless automation. Run Claude Code with:
claude --dangerously-skip-permissionsTip
This is how GSD is intended to be used — stopping to approve date and git commit 50 times defeats the purpose.
Alternative: Granular Permissions
If you prefer not to use that flag, add this to your project's .claude/settings.json:
{
"permissions": {
"allow": [
"Bash(date:*)",
"Bash(echo:*)",
"Bash(cat:*)",
"Bash(ls:*)",
"Bash(mkdir:*)",
"Bash(wc:*)",
"Bash(head:*)",
"Bash(tail:*)",
"Bash(sort:*)",
"Bash(grep:*)",
"Bash(tr:*)",
"Bash(git add:*)",
"Bash(git commit:*)",
"Bash(git status:*)",
"Bash(git log:*)",
"Bash(git diff:*)",
"Bash(git tag:*)"
]
}
}The complete GSD Ultra flow — from idea to shipped code with compound learning:
┌── GSD FOUNDATION ──┐ ┌─────────── ULTRA PIPELINE ───────────┐
│ │ │ │
/gsd:new-project ──▶ /gsd:discuss-phase ──▶ RESEARCH ──▶ PLAN ──▶ EXECUTE ──▶ VERIFY ──▶ FIX ──▶ LEARN
or (your vision) Swarm ×4 Builder Parallel Defender Cluster Flywheel
/gsd:map-codebase vs domains vs + Ralph
Critic Attacker
vs Auditor
New project? →
/gsd:new-project— In-depth interview about your idea. CreatesPROJECT.md,REQUIREMENTS.md,ROADMAP.md,STATE.md.Existing code? →
/gsd:map-codebasefirst — Spawns parallel agents to analyze your stack, architecture, conventions, and concerns. Then/gsd:new-projectknows your codebase.
/gsd:discuss-phase 1
This is where you shape the implementation. Your roadmap has a sentence or two per phase. That's not enough context to build something the way you imagine it.
The system analyzes the phase and identifies gray areas based on what's being built:
- Visual features → Layout, density, interactions, empty states
- APIs/CLIs → Response format, flags, error handling, verbosity
- Content systems → Structure, tone, depth, flow
- Organization tasks → Grouping criteria, naming, duplicates, exceptions
For each area, it asks until you're satisfied. The output — CONTEXT.md — feeds directly into every downstream stage. The deeper you go here, the more the system builds what you actually want. Skip it and you get reasonable defaults. Use it and you get your vision.
/ultra:research-swarm 1
Four researchers investigate simultaneously, each bringing a different lens:
| Researcher | Answers |
|---|---|
| Pattern Analyst | How have others solved this? Libraries, patterns, anti-patterns |
| Domain Expert | What does this domain require? Best practices, compliance |
| Risk Analyst | What could go wrong? Security, performance, dependencies |
| UX Investigator | How should users experience this? Accessibility, interactions |
Cross-perspective RELAY protocol — when a researcher discovers info affecting another's domain, they flag it. Synthesizer resolves conflicts (safety > convenience, evidence > opinion).
/ultra:adversarial-plan 1
Builder creates the plan. Critic attacks it with BLOCKER / WARNING / SUGGESTION findings. Builder revises. Critic re-reviews. Loop until zero BLOCKERs or max 5 rounds.
Plans include interface contracts between domains, file ownership declarations, and domain-to-wave assignment. Result: plans that survive scrutiny before a single line of code is written.
/ultra:parallel-execute 1
Domains execute in parallel with strict file ownership:
| Level | Permission |
|---|---|
| OWN | Full read/write |
| SHARED | Append only — add new, don't modify existing |
| READ-ONLY | Import and reference only |
| DO NOT TOUCH | No access |
Deferred integration — teammates build domains independently, lead wires them together after all complete. No merge conflicts, no race conditions.
/ultra:adversarial-verify 1
Three independent assessors, then structured debate:
- Round 1: Defender, Attacker, and Auditor assess independently (parallel)
- Round 2: Attacker presents ATK-N findings → Defender responds (Concede/Dispute/Mitigate) → Auditor rules (SUSTAINED/OVERRULED/SPLIT)
- Round 3: Consensus resolution for any SPLIT rulings
When all three flag the same issue = consensus failure (strongest signal). Verdict: PASS (90%+) / CONDITIONAL_PASS (70%+) / FAIL.
/ultra:gap-close 1
Clusters related bugs by file and domain — fixes root causes, not symptoms. Selects the right agent (executor for missing features, debugger for logic bugs). Each fixer runs Ralph 3-level self-verify: code review → logical walk-through → runtime verification. Up to 5 retries with escalation analysis.
/ultra:retrospective 1
The compound learning mechanism. Extracts conventions from completed code, proposes CLAUDE.md additions (you approve each one), logs architectural decisions as DEC-{NNN} to STATE.md. Every phase makes the next one faster.
/gsd:discuss-phase 2
/ultra:research-swarm 2
/ultra:adversarial-plan 2
/ultra:parallel-execute 2
/ultra:adversarial-verify 2
/ultra:gap-close 2
/ultra:retrospective 2
...
/gsd:complete-milestone
Or chain everything for a phase:
/ultra:full-pipeline 2
/gsd:quick
For ad-hoc tasks that don't need the full pipeline. Same agents, same quality — skips research, debate, and verification. Use for bug fixes, small features, config changes.
| Agent | Role | Tier |
|---|---|---|
gsd-planner |
Creates atomic task plans with XML structure | Architect |
gsd-executor |
Implements plans in fresh context windows | Builder |
gsd-debugger |
Investigates bugs with scientific method | Specialist |
gsd-verifier |
Checks codebase delivers what phase promised | Quality |
gsd-plan-checker |
Verifies plans achieve goals before execution | Quality |
gsd-integration-checker |
Verifies cross-phase E2E flows | Quality |
gsd-roadmapper |
Creates phased roadmaps from requirements | Architect |
gsd-phase-researcher |
Investigates how to implement a phase | Research |
gsd-project-researcher |
Investigates domain ecosystem for new projects | Research |
gsd-research-synthesizer |
Synthesizes parallel researcher outputs | Research |
gsd-codebase-mapper |
Explores and documents existing codebases | Research |
| Agent | Role | Composite Behavior |
|---|---|---|
ultra-pattern-analyst |
Research — finds patterns in ecosystem | — |
ultra-domain-expert |
Research — deep domain knowledge | — |
ultra-risk-analyst |
Research — identifies risks and trade-offs | — |
ultra-ux-investigator |
Research — UX patterns and accessibility | — |
ultra-builder |
Planning — creates plans with interface contracts | — |
ultra-critic |
Planning — attacks plans until zero BLOCKERs | — |
ultra-defender |
Verification — evidence matrix with file:line refs | Advocate + Evidence Collector |
ultra-attacker |
Verification — finds bugs with ATK-N IDs | Critic + Security Auditor + Edge-Case Hunter |
ultra-auditor |
Verification — weighted compliance score | Code Reviewer + Standards Checker + Accessibility Auditor |
| Command | What it does |
|---|---|
/gsd:new-project [--auto] |
Full initialization: questions → research → requirements → roadmap |
/gsd:discuss-phase [N] |
Capture implementation decisions before planning |
/gsd:plan-phase [N] |
Research + plan + verify for a phase |
/gsd:execute-phase <N> |
Execute all plans in parallel waves, verify when complete |
/gsd:verify-work [N] |
Manual user acceptance testing |
/gsd:audit-milestone |
Verify milestone achieved its definition of done |
/gsd:complete-milestone |
Archive milestone, tag release |
/gsd:new-milestone [name] |
Start next version |
| Command | What it does |
|---|---|
/ultra:research-swarm <N> |
4-perspective research swarm with RELAY + conflict resolution |
/ultra:adversarial-plan <N> |
Builder/Critic debate until APPROVED (max 5 rounds) |
/ultra:parallel-execute <N> |
Domain-parallel execution with file ownership |
/ultra:adversarial-verify <N> |
3-round debate: Defender vs Attacker vs Auditor |
/ultra:gap-close <N> |
Bug clustering + ralph self-verify (max 5 retries) |
/ultra:retrospective <N> |
Knowledge flywheel: conventions + decisions + domain review |
/ultra:full-pipeline <N> |
Chain all 6 Ultra stages for a phase |
| Command | What it does |
|---|---|
/gsd:progress |
Where am I? What's next? |
/gsd:help |
Show all commands and usage guide |
/gsd:update |
Update GSD with changelog preview |
/gsd:join-discord |
Join the GSD Discord community |
| Command | What it does |
|---|---|
/gsd:map-codebase |
Analyze existing codebase before new-project |
/gsd:add-phase |
Append phase to roadmap |
/gsd:insert-phase [N] |
Insert urgent work between phases |
/gsd:remove-phase [N] |
Remove future phase, renumber |
/gsd:list-phase-assumptions [N] |
See Claude's intended approach before planning |
/gsd:plan-milestone-gaps |
Create phases to close gaps from audit |
| Command | What it does |
|---|---|
/gsd:pause-work |
Create handoff when stopping mid-phase |
/gsd:resume-work |
Restore from last session |
/gsd:settings |
Configure model profile and workflow agents |
/gsd:set-profile <profile> |
Switch model profile (quality/balanced/budget/eco) |
/gsd:add-todo [desc] |
Capture idea for later |
/gsd:check-todos |
List pending todos |
/gsd:debug [desc] |
Systematic debugging with persistent state |
/gsd:quick |
Execute ad-hoc task with GSD guarantees |
Ultra's secret weapon. Each completed phase feeds lessons back into the system:
Phase 1 → RETROSPECTIVE → 3 conventions added to CLAUDE.md
Phase 2 → Research swarm reads those conventions → finds patterns 20% faster
Phase 3 → Planner reads 5 conventions + 4 decisions → better first-draft plans
Phase 5 → Verifier checks against conventions → finds issues faster
Phase 8 → Research 60% faster, verification 75% fewer findings
How it works:
/ultra:retrospectiveanalyzes completed work- Extracts patterns from the code you just built
- Proposes CLAUDE.md convention additions — you approve each one
- Logs architectural decisions to STATE.md as
DEC-{NNN}entries - Reviews domain boundaries for shifts
The math: Each convention eliminates a class of errors. Five conventions compounding across three phases = exponential improvement. By Phase 8, the system knows your codebase so well that plans converge in 1-2 rounds instead of 5.
Skipping retrospectives costs ~40% of Ultra's long-term value. Don't skip them.
| Criterion | Raw Claude Code | GSD | GSD Ultra |
|---|---|---|---|
| Files touched | 1-2 | 3-10 | 5-30+ |
| Domains | 1 | 1-2 | 2-6 |
| Quality needs | Prototype | Production | Production+ |
| Research | Ad hoc | Single researcher | 4-perspective swarm |
| Planning | Inline | Single planner | Builder/Critic debate |
| Execution | Single thread | Wave-parallel | Domain-parallel + deferred integration |
| Verification | Manual | Single verifier | Triple-check debate |
| Learning | None | STATE.md | Full flywheel |
| Cost | $0.50-2 | $2-8 | $5-20 |
| Time | 5-15 min | 15-45 min | 30-90 min |
Quick rules:
- Bug fix or small feature? →
/gsd:quick - Standard phase, 1-2 domains? → GSD workflow
- Complex phase, 3+ domains, quality critical? → Ultra pipeline
- Want maximum quality with zero manual orchestration? →
/ultra:full-pipeline
GSD stores project settings in .planning/config.json. Configure during /gsd:new-project or update later with /gsd:settings.
| Setting | Options | Default | What it controls |
|---|---|---|---|
mode |
yolo, interactive |
interactive |
Auto-approve vs confirm at each step |
depth |
quick, standard, comprehensive |
standard |
Planning thoroughness (phases × plans) |
Control which Claude model each agent uses. Balance quality vs token spend.
| Profile | Planning | Execution | Verification | Research | Est. Cost/Phase |
|---|---|---|---|---|---|
quality |
Opus | Opus | Sonnet | Opus | ~$27 |
balanced (default) |
Opus | Sonnet | Sonnet | Sonnet | ~$13 |
budget |
Sonnet | Sonnet | Haiku | Haiku | ~$8 |
eco |
Sonnet | Sonnet | Haiku | Haiku | ~$4 |
Switch profiles:
/gsd:set-profile eco
Eco is for well-established projects with strong CLAUDE.md conventions. The knowledge flywheel makes planning and verification easier, so cheaper models still deliver good results. Don't use eco for Phase 1 of a new project.
These spawn additional agents during planning/execution. They improve quality but add tokens and time.
| Setting | Default | What it does |
|---|---|---|
workflow.research |
true |
Researches domain before planning each phase |
workflow.plan_check |
true |
Verifies plans achieve phase goals before execution |
workflow.verifier |
true |
Confirms must-haves were delivered after execution |
Use /gsd:settings to toggle these, or override per-invocation:
/gsd:plan-phase --skip-research/gsd:plan-phase --skip-verify
| Setting | Default | What it controls |
|---|---|---|
parallelization.enabled |
true |
Run independent plans simultaneously |
planning.commit_docs |
true |
Track .planning/ in git |
| Setting | Options | Default | What it does |
|---|---|---|---|
git.branching_strategy |
none, phase, milestone |
none |
Branch creation strategy |
git.phase_branch_template |
string | gsd/phase-{phase}-{slug} |
Template for phase branches |
git.milestone_branch_template |
string | gsd/{milestone}-{slug} |
Template for milestone branches |
Claude Code is incredibly powerful if you give it the context it needs. Most people don't.
GSD handles it for you:
| File | What it does |
|---|---|
PROJECT.md |
Project vision, always loaded |
research/ |
Ecosystem knowledge (stack, features, architecture, pitfalls) |
REQUIREMENTS.md |
Scoped v1/v2 requirements with phase traceability |
ROADMAP.md |
Where you're going, what's done |
STATE.md |
Decisions, blockers, position — memory across sessions |
PLAN.md |
Atomic task with XML structure, verification steps |
SUMMARY.md |
What happened, what changed, committed to history |
RETROSPECTIVE.md |
Patterns, decisions, conventions — flywheel fuel |
Single-perspective verification misses things. Ultra's triple-check debate catches what individuals can't:
- Defender builds an evidence matrix — requirement → file:line proof
- Attacker hunts bugs with composite expertise (security + edge cases + code quality)
- Auditor rules on disputes with a weighted compliance score
When all three flag the same issue, it's a consensus failure — the strongest signal that something needs fixing.
Most AI systems have no memory. They repeat the same mistakes, explore the same dead ends, rediscover the same patterns. Ultra's flywheel breaks this cycle:
10% improvement per stage: 1.1 × 1.1 × 1.1 × 1.1 = 1.46× overall
20% improvement per stage: 1.2 × 1.2 × 1.2 × 1.2 = 2.07× overall
The multiplicative effect is why skipping stages destroys more value than it saves — you're not losing one stage's benefit, you're losing its compounding effect on everything downstream.
Every plan is structured XML optimized for Claude:
<task type="auto">
<name>Create login endpoint</name>
<files>src/app/api/auth/login/route.ts</files>
<action>
Use jose for JWT (not jsonwebtoken - CommonJS issues).
Validate credentials against users table.
Return httpOnly cookie on success.
</action>
<verify>curl -X POST localhost:3000/api/auth/login returns 200 + Set-Cookie</verify>
<done>Valid credentials return cookie, invalid return 401</done>
</task>Precise instructions. No guessing. Verification built in.
Every stage uses the same pattern: a thin orchestrator spawns specialized agents, collects results, and routes to the next step.
The orchestrator never does heavy lifting. It spawns agents, waits, integrates results. The result: entire phases run — deep research, adversarial planning, thousands of lines of code across parallel domains, triple-check verification — and your main context window stays at 30-40%.
Each task gets its own commit immediately after completion:
abc123f docs(08-02): complete user registration plan
def456g feat(08-02): add email confirmation flow
hij789k feat(08-02): implement password hashingNote
Benefits: Git bisect finds exact failing task. Each task independently revertable. Clear history for Claude in future sessions.
GSD's codebase mapping and analysis commands read files to understand your project. Protect files containing secrets by adding them to Claude Code's deny list:
- Open Claude Code settings (
.claude/settings.jsonor global) - Add sensitive file patterns to the deny list:
{
"permissions": {
"deny": [
"Read(.env)",
"Read(.env.*)",
"Read(**/secrets/*)",
"Read(**/*credential*)",
"Read(**/*.pem)",
"Read(**/*.key)"
]
}
}This prevents Claude from reading these files entirely, regardless of what commands you run.
Important
GSD includes built-in protections against committing secrets, but defense-in-depth is best practice. Deny read access to sensitive files as a first line of defense.
Commands not found after install?
- Restart Claude Code to reload slash commands
- Verify files exist in
~/.claude/commands/gsd/(global) or./.claude/commands/gsd/(local)
Commands not working as expected?
- Run
/gsd:helpto verify installation - Re-run
npx get-shit-done-ccto reinstall
Updating to the latest version?
npx get-shit-done-cc@latestUsing Docker or containerized environments?
If file reads fail with tilde paths (~/.claude/...), set CLAUDE_CONFIG_DIR before installing:
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global# Global installs
npx get-shit-done-cc --claude --global --uninstall
npx get-shit-done-cc --opencode --global --uninstall
# Local installs (current project)
npx get-shit-done-cc --claude --local --uninstall
npx get-shit-done-cc --opencode --local --uninstallOpenCode and Gemini CLI are now natively supported via npx get-shit-done-cc.
| Project | Platform | Description |
|---|---|---|
| gsd-opencode | OpenCode | Original OpenCode adaptation |
| gsd-gemini (archived) | Gemini CLI | Original Gemini adaptation by uberfuzzy |
MIT License. See LICENSE for details.
Claude Code is powerful. GSD makes it reliable. Ultra makes it extraordinary.