.gsd/ directory that acts as the living brain of your project. Whether you’re starting something greenfield or formalizing an existing codebase, /gsd new-project is the entry point.
Starting a New Project
Open a terminal in your project directory
Navigate to the root of the repository (or an empty folder for a greenfield project) and start a GSD session.
Run the new-project command
Inside the GSD session, run the bootstrapping command. Add
--deep to trigger a staged discovery flow that gathers deeper context before planning.Describe your project goals
GSD will prompt you for the information it needs. Be as specific as you like about:
- What the project does and who it’s for
- Your preferred tech stack and languages
- Constraints, non-goals, and anti-patterns to avoid
- Any existing code GSD should understand before planning
Review the generated .gsd/ directory
After your conversation, GSD creates the
In deep mode, you’ll also see:
.gsd/ directory with everything it needs to manage the project:| File | Purpose |
|---|---|
STATE.md | Current project phase and active milestone |
DECISIONS.md | Architectural decisions and rationale |
CODEBASE.md | Auto-generated codebase summary |
M001-ROADMAP.md | The first milestone’s slice-by-slice plan |
M001-CONTEXT.md | Milestone-level context GSD injects into prompts |
| File | Purpose |
|---|---|
PROJECT.md | Vision, users, anti-goals, and constraints |
REQUIREMENTS.md | Capability contract with R###-numbered requirements |
research/STACK.md | Stack and tooling research |
research/ARCHITECTURE.md | Architectural patterns and trade-offs |
Adjust the roadmap if needed
Open
M001-ROADMAP.md and review the generated milestones and slices. You can edit this file directly or use /gsd discuss to talk through any changes with GSD before committing to the plan.To reorganize or reorder milestones interactively, run:Starting a New Milestone on an Existing Project
Once your project is bootstrapped, use/gsd new-milestone to plan the next major chunk of work without losing any existing state.
--deep to run the staged discovery flow for the new milestone, which is useful when the scope has shifted significantly or you’re entering a new domain.
/gsd new-milestone --deep writes planning_depth: deep to .gsd/PREFERENCES.md so that all future milestones on this project also use the deep planning flow by default. You can remove or override this setting at any time.Managing Your Milestone Queue
After creating multiple milestones, use the queue commands to prioritize and reorder work:What Happens Under the Hood
Deep planning mode: staged discovery flow
Deep planning mode: staged discovery flow
When you run
/gsd new-project --deep, GSD runs a multi-step discovery sequence before any milestone planning begins:- Workflow preferences — captures how you like to work (test-first, documentation style, commit conventions)
- Project context — writes
.gsd/PROJECT.mdwith vision, users, and anti-goals - Requirements — writes
.gsd/REQUIREMENTS.mdwith structuredR###-numbered requirements - Research decision — decides whether to do deep technical research or proceed directly to planning
- Optional project research — if research is warranted, generates
STACK.md,FEATURES.md,ARCHITECTURE.md, andPITFALLS.mdunder.gsd/research/ - Milestone planning — generates the first milestone’s context and roadmap using all the above as input
The .gsd/ directory structure
The .gsd/ directory structure
GSD uses
.gsd/ as the single source of truth for project state. The markdown files are human-readable projections you can review, edit, and commit alongside your code.You can commit .gsd/ files to git to share planning artifacts with your team. Set git.commit_docs: false in preferences if you want to keep them local-only.