Quick Links
GitHub Repository
Main repository with source code
Report Issues
Submit bug reports and feature requests
Discussions
Ask questions and share ideas
Discord Community
Join the community for real-time help
Development Setup
Prerequisites
- Node.js 16+ (LTS recommended)
- Git
- Claude Code, OpenCode, Gemini CLI, or Codex installed
- Basic familiarity with shell scripting and JavaScript
Clone and Install
Local Testing
Install GSD from your local repository:Verify Installation
Project Structure
Key Components
| Directory | Purpose |
|---|---|
commands/ | User-facing slash commands (e.g., /gsd:new-project) |
agents/ | Dedicated agents with specialized expertise |
workflows/ | Orchestration logic loaded by commands |
templates/ | Document templates for planning artifacts |
references/ | Best practices, patterns, and guidelines |
hooks/ | Runtime hooks (statusline, context monitor, etc.) |
lib/ | Shared utilities and CLI tools |
test/ | Test suite (428+ tests across 13 files) |
Testing
Run Test Suite
Test Coverage
GSD enforces 70% line coverage via CI. The test suite includes:- Core utilities (config, state, roadmap parsing)
- Command dispatch and routing
- Frontmatter parsing and validation
- Phase/milestone management
- Windows/Unix path handling
Manual Testing
-
Create a test project:
-
Install your local GSD:
-
Run a full workflow:
-
Verify outputs:
- Check
.planning/files - Review git commits
- Test generated code
- Check
Contribution Guidelines
Reporting Issues
Before submitting:- Search existing issues to avoid duplicates
- Verify you’re on the latest version:
npx get-shit-done-cc@latest
- GSD version (check
VERSIONfile in.claude/commands/gsd/or similar) - Runtime (Claude Code, OpenCode, Gemini CLI, Codex)
- Operating system (Mac, Linux, Windows, WSL)
- Command that failed (e.g.,
/gsd:execute-phase 1) - Error messages or unexpected behavior
- Steps to reproduce
Submitting Pull Requests
All contributions must include tests and maintain 70% coverage.
-
Fork and clone:
-
Make your changes:
- Follow existing code style
- Add tests for new functionality
- Update documentation if needed
-
Test thoroughly:
-
Commit with clear messages:
Commit message format:
feat:New featurefix:Bug fixdocs:Documentation changestest:Test additions/changesrefactor:Code refactoringchore:Maintenance tasks
-
Push and create PR:
Open a pull request on GitHub with:
- Clear description of changes
- Link to related issues
- Screenshots/examples if applicable
Code Style
- Markdown commands/workflows: Use consistent heading levels, clear step numbering
- JavaScript/Node.js: Follow existing patterns in
lib/gsd-tools.cjsand hooks - XML prompts: Follow existing agent patterns with clear tags and structure
- Comments: Explain why, not what
Testing New Agents
When adding a new agent:-
Create agent directory:
-
Add agent file:
- Include frontmatter (name, role, allowed-tools, skills)
- Follow thin orchestrator pattern
- Add comprehensive methodology section
-
Add tests:
-
Test spawn:
- Create a workflow that spawns your agent
- Verify context loading and output format
Architecture Guidelines
Thin Orchestrator Pattern
GSD follows a consistent pattern: Commands are thin orchestrators that:- Parse arguments
- Load necessary context
- Spawn specialized agents
- Collect results
- Update state files
- Route to next step
- Complete methodology
- Domain expertise
- No external dependencies
- Fresh context per spawn
- Validate output
- Update STATE.md
- Commit if needed
- If X, suggest
/gsd:next-command
Documentation
When adding features:- README.md: Update if it affects core workflow
- CHANGELOG.md: Add entry following Keep a Changelog format
- USER-GUIDE.md: Add to command reference and examples
- Inline docs: Update command help text
- Core docs:
README.md,docs/USER-GUIDE.md - Reference:
references/(debugging, checkpoints, etc.) - Templates:
templates/(document templates)
Release Process
For maintainers:-
Update CHANGELOG.md:
- Add version and date
- List changes by category (Added, Changed, Fixed, Removed)
-
Bump version in package.json:
-
Tag release:
-
Publish to npm:
-
Create GitHub release:
- Copy changelog section
- Attach any relevant files
Community Ports
Interested in porting GSD to a new runtime? Requirements:- Runtime must support slash commands or equivalent
- Ability to spawn subagents with fresh context
- File system access (Read, Write, Edit)
- Git integration
- Bash/shell command execution
- gsd-opencode (now officially supported)
- gsd-gemini (archived, now officially supported)
- Open a GitHub Discussion
- Join Discord
License
GSD is released under the MIT License. See LICENSE for details. By contributing, you agree that your contributions will be licensed under the same MIT License.Recognition
Contributors are recognized in:- GitHub Contributors
- Release notes for significant contributions
- CHANGELOG.md for bug fixes and features
Questions?
Discord
Real-time help from the community
GitHub Discussions
Ask questions and discuss ideas
X (Twitter)
Follow for updates and announcements
Contact the maintainer team