Skip to main content
GSD

GSD Practice Guide

AI-assisted

Complete GSD command reference, configuration details, workflow walkthroughs, and FAQ โ€” a hands-on manual from installation to project delivery

Introduction

In the previous article, we explored GSD's core principles โ€” context engineering, subagent orchestration, goal-backward planning, and atomic commits. These concepts sound elegant, but there are many operational details between "understanding the theory" and "actually delivering a project."

In this article, we get hands-on. You'll learn GSD's complete command system, configuration options, output file structure, and how to use it to deliver a complete feature from scratch.

Installation & Setup

Installation

npx get-shit-done-cc@latest

The installer will prompt you to choose:

  1. Runtime โ€” Claude Code, OpenCode, Gemini CLI, or all
  2. Scope โ€” Global (all projects) or local (current project)

After installation, type /gsd:help in your runtime to verify.

GSD is designed for frictionless automation. The recommended way to run Claude Code:

claude --dangerously-skip-permissions

If you'd rather not use this flag, you can configure fine-grained permissions in .claude/settings.json.

Updates

/gsd:update

GSD updates are very frequent (Tร‚CHES pushes 15โ€“20 updates almost every day). Run this command regularly to stay on the latest version.

Complete Command Reference

All GSD interactions use slash commands prefixed with /gsd:. Here's the complete reference organized by function.

Core Workflow Commands

These five commands form GSD's main loop, used in sequence.

CommandDescription
/gsd:new-projectInitialize a project. The system asks questions until it understands your idea, then researches, extracts requirements, and creates a roadmap
/gsd:discuss-phase [N]Discuss gray areas for phase N. Captures your implementation preferences to guide planning
/gsd:plan-phase [N]Create atomic task plans for phase N. Includes research, planning, and verification sub-steps
/gsd:execute-phase <N>Execute phase N. Subagents implement tasks in parallel, each with an independent commit
/gsd:verify-work [N]Verify deliverables for phase N. Guides you through confirmation, auto-diagnoses issues

[N] indicates an optional parameter โ€” the system auto-detects the current phase if omitted. <N> indicates a required parameter.

Milestone Management

CommandDescription
/gsd:audit-milestoneAudit current milestone progress โ€” checks all phase statuses, identifies incomplete items
/gsd:complete-milestoneArchive current milestone, tag version, prepare for the next cycle
/gsd:new-milestone [name]Create a new milestone. Optionally provide a name; the system plans based on completed work

Phase Management

CommandDescription
/gsd:add-phaseAdd a new phase at the end of the roadmap
/gsd:insert-phase [N]Insert an urgent phase at position N; subsequent phases auto-renumber
/gsd:remove-phase [N]Remove a phase and cascade-delete all related output files
/gsd:list-phase-assumptions [N]List all assumptions and dependencies for a phase, helping identify potential risks

Quick Mode & Tools

CommandDescription
/gsd:quick [--full]Quick mode โ€” skips research, plan checking, and verification. Good for small tasks. --full enables full safeguards
/gsd:debug [desc]Launch an isolated debug subagent. Optionally describe the issue; the system hypothesizes โ†’ gathers evidence โ†’ resolves
/gsd:add-todo [desc]Capture an idea to the to-do list without modifying the roadmap
/gsd:check-todosView the current to-do list
/gsd:map-codebaseAnalyze an existing codebase โ€” tech stack, architecture, conventions, potential issues

Session & Configuration Management

CommandDescription
/gsd:pause-workPause work. Saves current state to STATE.md for easy resumption
/gsd:resume-workResume work. Reads last state from STATE.md and continues where you left off
/gsd:progressView overall project progress โ€” completed phases, current position, pending items
/gsd:helpDisplay all available commands with brief descriptions
/gsd:settingsView and modify GSD configuration
/gsd:set-profileSwitch model profiles (quality / balanced / budget)
/gsd:updateUpdate GSD to the latest version

Configuration Details

Model Profiles

GSD supports three model profiles, switchable via /gsd:set-profile:

ProfilePlanningExecutionVerificationBest For
qualityOpusOpusSonnetComplex projects, critical features, first-time use
balanced (default)OpusSonnetSonnetDaily development, best balance for most scenarios
budgetSonnetSonnetHaikuSimple features, budget-sensitive, rapid iteration

Core Settings

View and modify via /gsd:settings:

SettingDefaultDescription
modebalancedModel profile selection
depthstandardResearch depth: quick / standard / deep
git.branching_strategyfeatureGit branching: feature (per feature) / phase (per phase) / none

Workflow Toggles

The following agents can be individually toggled to trade off between speed and quality:

ToggleDefaultDescription
researchOnWhether to auto-research before planning
plan_checkOnWhether to auto-verify after plan creation
verifierOnWhether to auto-verify after execution
auto_advanceOffWhether to auto-advance to the next phase after completion

Disabling research and plan_check can significantly speed things up but may reduce planning quality. Consider disabling only after you're familiar with the project.

Output File Structure

All GSD state and output is stored in the .planning/ directory. Understanding this structure helps with debugging and manual intervention.

Project-Level Files

FilePurposeCreated By
PROJECT.mdProject vision and scopenew-project
REQUIREMENTS.mdVersioned requirements with phase traceabilitynew-project
ROADMAP.mdPhase planning and progressnew-project
STATE.mdCurrent state โ€” decisions, blockers, positionnew-project, continuously updated

Phase-Level Files

Each phase produces the following files (using Phase 1 as an example):

FilePurposeCreated By
01-CONTEXT.mdDecisions from the discuss phasediscuss-phase 1
01-RESEARCH.mdResearch findings and technical investigationplan-phase 1
01-01-PLAN.mdFirst atomic task planplan-phase 1
01-02-PLAN.mdSecond atomic task planplan-phase 1
01-01-SUMMARY.mdExecution record for the first planexecute-phase 1
01-02-SUMMARY.mdExecution record for the second planexecute-phase 1
01-VERIFICATION.mdAutomated verification resultsexecute-phase 1
01-UAT.mdUser acceptance testing recordverify-work 1

Directory Structure Example

.planning/
โ”œโ”€โ”€ PROJECT.md
โ”œโ”€โ”€ REQUIREMENTS.md
โ”œโ”€โ”€ ROADMAP.md
โ”œโ”€โ”€ STATE.md
โ”œโ”€โ”€ research/
โ”‚   โ”œโ”€โ”€ tech-stack.md
โ”‚   โ”œโ”€โ”€ features.md
โ”‚   โ”œโ”€โ”€ architecture.md
โ”‚   โ””โ”€โ”€ pitfalls.md
โ”œโ”€โ”€ 01-CONTEXT.md
โ”œโ”€โ”€ 01-RESEARCH.md
โ”œโ”€โ”€ 01-01-PLAN.md
โ”œโ”€โ”€ 01-02-PLAN.md
โ”œโ”€โ”€ 01-01-SUMMARY.md
โ”œโ”€โ”€ 01-02-SUMMARY.md
โ”œโ”€โ”€ 01-VERIFICATION.md
โ”œโ”€โ”€ 01-UAT.md
โ”œโ”€โ”€ 02-CONTEXT.md
โ”œโ”€โ”€ 02-RESEARCH.md
โ”œโ”€โ”€ 02-01-PLAN.md
โ”‚   ...
โ””โ”€โ”€ todos.md

Workflow Walkthrough

Let's walk through a complete workflow using "add a comment system to a blog" as an example.

Step 1: Initialize the Project

/gsd:new-project

The system will start asking questions:

> What do you want to build?
"I want to add a comment system to my Next.js blog. Support both
 anonymous and authenticated comments, Markdown rendering, and an
 admin panel. Tech stack: Prisma + PostgreSQL."

The more detailed your description, the fewer follow-up questions. Tร‚CHES recommends preparing a rough vision document describing what you want โ€” no need for technical details.

After completion, the system produces four files and asks you to approve the roadmap. Once approved, building begins.

Already have a codebase? Run /gsd:map-codebase first. The system will analyze your existing architecture and conventions, then new-project can plan based on your existing code.

Step 2: Discuss Phase

/gsd:discuss-phase 1

The system identifies gray areas and asks questions one by one:

> Comment nesting: support multi-level nesting or single-level replies only?
> Anonymous comments: require CAPTCHA or direct submission?
> Admin panel: need bulk operations or one-by-one moderation?

Every decision here directly affects planning quality. If unsure, let the system use defaults โ€” but deeper discussion significantly reduces rework during execution.

Step 3: Plan Phase

/gsd:plan-phase 1

The system will:

  1. Research how to implement a comment system with Prisma + PostgreSQL
  2. Create 2โ€“3 atomic task plans (e.g., data model, API routes, frontend components)
  3. Auto-verify that the plans cover all requirements

Each plan is small enough to complete in a single fresh context window.

Step 4: Execute Phase

/gsd:execute-phase 1

The system begins wave execution:

  • Wave 1 (no dependencies): Database schema, Prisma models โ€” executed in parallel
  • Wave 2 (depends on Wave 1): API routes, comment CRUD โ€” executed in parallel
  • Wave 3 (depends on Wave 2): Frontend comment component โ€” executed independently

Each task runs in a fresh 200k token context and gets an independent git commit.

Step 5: Verify Phase

/gsd:verify-work 1

The system guides you through confirmation:

> โœ… Database tables created
> โœ… API routes return correct status codes
> โ“ Can you see the comment input box below blog posts? [yes/no/describe issue]
> โ“ Does the page update in real-time after submitting a comment? [yes/no/describe issue]

If any checks fail, the system auto-diagnoses and creates a fix plan. Run /gsd:execute-phase 1 again to execute the fix.

Common Scenarios

Insert an urgent phase: Requirements changed โ€” need to insert new work before the current phase.

/gsd:insert-phase 2

Subsequent phases auto-renumber (original Phase 2 becomes Phase 3, and so on).

Pause and resume: Need to interrupt work to handle something else.

/gsd:pause-work    # Save current state
# ... handle other things ...
/gsd:resume-work   # Resume from where you left off

Roll back unsatisfactory results:

git reset --hard HEAD~3    # Return to pre-execution state
/gsd:remove-phase 2        # Cascade-delete all output files for this phase

Tร‚CHES demonstrated this multiple times in his livestream โ€” if you don't like it, roll back. Clean and decisive.

Debugging Workflow

When verification finds issues, or you encounter bugs during development, GSD provides a dedicated debugging workflow.

/gsd:debug Page doesn't update in real-time after comment submission

The system launches an isolated debug subagent with the following workflow:

  1. Hypothesize โ€” Generate multiple possible root cause hypotheses based on the problem description
  2. Gather evidence โ€” Verify hypotheses one by one, checking code, logs, network requests
  3. Resolve โ€” After pinpointing the root cause, create a fix plan

Key features:

  • Context isolation: The debug agent has its own context window and won't pollute your main development context
  • Documentation: Creates independent debug documents tracking the entire investigation
  • Fix plan: Produces a directly executable fix plan after diagnosis

This is far more efficient than debugging in the main context โ€” debug information doesn't accumulate in your main window.

Practical Tips

Drawing from Tร‚CHES's livestreams and Chase AI's hands-on experience, here are some practical recommendations.

Slow Down to Speed Up

Tร‚CHES admits that when he first started using GSD, his mindset was "go go go" โ€” but he later discovered that spending more time in the research and discuss phases actually reduced rework during execution. Newer versions of GSD added research-project and define-requirements steps specifically to get the direction right before writing any code.

"I was definitely when I first started doing things with GSD, I was very much like move fast, move fast, move fast. But I'm just finding that taking these extra steps... I think you're going to really really love to see the results."

โ€”โ€” Tร‚CHES

Clear Context Between Phases

Tร‚CHES's habit is to run clear between every phase to keep the main context lean. He uses the Warp terminal, with each window full-screened (Command+Shift+Enter), executing the current phase in one window while researching the next phase in another.

The Token Cost Tradeoff

GSD's subagent approach does consume more tokens than using Claude Code directly. But Chase AI makes a compelling argument: "plan twice, prompt once" is cheaper in the long run than "prompt once, then patch and patch." Doing it right in fresh context is far more efficient than repeatedly fixing things in a degraded one.

Handling Unsatisfactory Results

If you're unhappy with a phase's results, you can git reset --hard and then use /gsd:remove-phase to cascade-delete all output files for that phase. Tร‚CHES demonstrated this live โ€” he didn't like a particular visual effect, so he rolled back to the last satisfactory state, clean and decisive.

The To-Do System

/gsd:add-todo lets you capture ideas to a to-do list at any time without modifying the roadmap. These ideas can be pulled up during /gsd:discuss-milestone as input for the next milestone. Tร‚CHES's strategy is "build the features first, polish the UI in milestone 2."

FAQ & Best Practices

Best Practices

Provide detailed initial descriptions. The quality of /gsd:new-project depends on the quality of your input. Prepare a rough vision document โ€” describe goals, users, core features, known constraints. The more precise your description, the fewer follow-up questions and the better the planning.

Clear context between phases. After completing each phase, run clear or /compact to keep the main context window lean. Tร‚CHES's habit is to keep the main context at 30โ€“40%.

Test with Quick Mode first. For uncertain small features, use /gsd:quick to test the waters. If it works well, incorporate it into the formal roadmap.

Map existing codebases first. Before using GSD on an existing codebase, run /gsd:map-codebase. The system will analyze your tech stack, architecture, and conventions, making subsequent planning more aligned with existing code.

FAQ

Q: What runtimes does GSD support?

A: Claude Code, OpenCode, and Gemini CLI. You can choose one or all during installation.

Q: What's the difference between Quick Mode and full mode?

A: Quick Mode provides GSD's basic safeguards (atomic commits, state tracking) but skips research, plan checking, and verification. Ideal for bug fixes, small features, and config changes that don't need full planning.

Q: Can I pause mid-execution?

A: Yes. /gsd:pause-work saves the current state to STATE.md. Next time you run /gsd:resume-work, the system continues from where you left off.

Q: How do I control token costs?

A: Three approaches โ€” (1) Switch to budget profile: /gsd:set-profile budget; (2) Disable research or plan_check agents; (3) Use /gsd:quick for simple tasks.

Q: Can GSD and Ralph be used together?

A: Yes. GSD and Ralph solve different problems โ€” GSD handles planning and structured execution, Ralph handles autonomous loop execution. You can use GSD's new-project and plan-phase to generate a complete plan, then use Ralph loops to execute phases that don't require human intervention.

Q: What about multi-person collaboration?

A: The .planning/ directory can be committed to Git. Multiple people can run different phases and merge results via Git. However, avoid running the same phase simultaneously.

Summary

GSD's core value lies in hiding complexity in the system while keeping simplicity for the user. You only need a few commands โ€” new-project, discuss-phase, plan-phase, execute-phase, verify-work โ€” while the system handles all context management, subagent orchestration, and quality verification behind the scenes.

From installation to delivery, GSD provides a clear path: describe what you want โ†’ discuss implementation details โ†’ generate atomic plans โ†’ execute in parallel โ†’ verify deliverables. Every step gives you the opportunity to intervene, and every step is documented.

This isn't "press one button and it's done" magic. It's a system that needs your participation but shoulders most of the cognitive load. As Tร‚CHES puts it: you're the high-level project manager, GSD is your execution team.


Further Reading:

GSD - Get Shit Done

A light-weight and powerful meta-prompting, context engineering and spec-driven development system for Claude Code, OpenCode, and Gemini CLI.

Tร‚CHES (glittercowboy)GitHub
Visit

Comments

Table of Contents