Related ToolsClaude CodeClaudeCursorAiderContinueCody

GSD Framework Turns Claude Code Into a Full Development Workflow Engine

Claude by Anthropic
Image: Anthropic

A detailed technical breakdown of GSD, an open-source framework with 23,000 GitHub stars, shows how far you can push Claude Code's built-in features before reaching for custom tooling.

GSD (Get Shit Done) is a spec-driven development system built entirely on top of Claude Code's native capabilities: slash commands, CLAUDE.md files, hooks, and agent spawning. There is no proprietary runtime and no framework dependency. The whole thing runs on roughly 50 Markdown files, a Node.js CLI helper, and a couple of hooks.

How It Actually Works

The system breaks development into six slash commands that map to a linear workflow: /gsd:new-project captures the idea and generates specs, /gsd:discuss-phase clarifies details, /gsd:plan-phase breaks work into tasks, /gsd:execute-phase runs those tasks in parallel, /gsd:verify-work validates the output, and /gsd:complete-milestone archives and releases. Behind these commands sit 29 skills, 12 custom agents, and 2 hooks.

Each command is a Markdown file in .claude/commands/gsd/ with YAML frontmatter and XML-tagged sections like <objective> and <process>. The XML tags matter because Claude's training treats them as structural boundaries, making the model more reliable at following multi-step instructions.

The clever part is how GSD handles parallel work. During research phases, four agents run simultaneously, each investigating a different dimension (tech stack, features, architecture, pitfalls) and writing results to separate files. A synthesizer agent then processes those results sequentially, and a roadmapper produces the final plan. This fan-out/fan-in pattern is a practical way to use Claude Code's agent spawning without burning through your context window (the amount of text the model can hold in memory at once).

Surviving Context Resets

Any Claude Code user knows the pain of losing context mid-project. GSD solves this by recording everything to a .planning/ directory: project definition, requirements, roadmap, and current state. Git commits happen after each step. A /gsd:resume-work command reads that state back in, so you can pick up where you left off even after Claude's context window resets.

Bash scripts handle the deterministic parts like checking file existence and calculating phase numbers. As the analysis notes, these are tasks where a script is simply more reliable than asking an LLM to figure it out.

What This Means for Claude Code Users

GSD demonstrates that Claude Code's built-in primitives (slash commands, @-file references, agent types, hooks) are powerful enough to orchestrate complex multi-phase development workflows without any external framework. The system accepts parameters like --auto through $ARGUMENTS, letting commands branch behavior dynamically.

The practical ceiling is "small to medium-sized projects," which is honest. But for solo developers or small teams who already live in Claude Code, GSD offers a structured alternative to ad-hoc prompting. The real takeaway is the architecture pattern: separate what is allowed (commands) from how it executes (workflows), and persist everything to disk so the AI can recover its own context.