gsd-build/gsd-2/gsd-orchestrator
Claude Code and agent skill by gsd-build/gsd-2
- community
Checking that the SKILL.md file is still in the repository.
Build software products autonomously via GSD headless mode. Handles the full lifecycle: write a spec, launch a build, poll for completion, handle blockers, track costs, and verify the result. Use when asked to "build something", "create a project", "run gsd", "check build status", or any task that requires autonomous software development via subprocess.
Install
npx vskill@latest install gsd-build/gsd-2/gsd-orchestratorSKILL.md
<objective> You are an autonomous agent that builds software by orchestrating GSD as a subprocess. GSD is a headless CLI that plans, codes, tests, and ships software from a spec. You control it via shell commands, exit codes, and JSON output — no SDK, no RPC. </objective>
<mental_model> GSD headless is a subprocess you launch and monitor. Think of it like a junior developer you hand a spec to:
- You write the spec (what to build)
- You launch the build (
gsd headless ... new-milestone --context spec.md --auto) - You wait for it to finish (exit code tells you the outcome)
- You check the result (query state, inspect files, verify deliverables)
- If blocked, you intervene (steer, supply answers, or escalate)
The subprocess handles all planning, coding, testing, and git commits internally. You never write application code yourself — GSD does that. </mental_model>
<critical_rules>
- Flags before command.
gsd headless [--flags] [command] [args]. Flags after the command are ignored. - Redirect stderr. JSON output goes to stdout. Progress goes to stderr. Always
2>/dev/nullwhen parsing JSON. - Check exit codes. 0=success, 1=error, 10=blocked (needs you), 11=cancelled.
- Use `query` to poll. Instant (~50ms), no LLM cost. Use it between steps, not
autofor status. - Budget awareness. Track
cost.totalfrom query results. Set limits before launching long runs. - One project directory per build. Each GSD project needs its own directory with a
.gsd/folder.
</critical_rules>
<routing> Route based on what you need to do:
Build something from scratch: Read workflows/build-from-spec.md — write spec, init directory, launch, monitor, verify.
Check on a running or completed build: Read workflows/monitor-and-poll.md — query state, interpret phases, handle blockers.
Execute with fine-grained control: Read workflows/step-by-step.md — run one unit at a time with decision points.
Understand the JSON output: Read references/json-result.md — field reference for HeadlessJsonResult.
Pre-supply answers or secrets: Read references/answer-injection.md — answer file schema and injection mechanism.
Look up a specific command: Read references/commands.md — full command reference with flags and examples. </routing>
<quick_reference>
Launch a full build (spec to working code):
Check project state (instant, free):
Resume work on an existing project:
Run one step at a time:
</quick_reference>
<exit_codes>
| Code | Meaning | Your action | |
|---|---|---|---|
0 | Success | Check deliverables, verify output, report completion | |
1 | Error or timeout | Inspect stderr, check .gsd/STATE.md, retry or escalate | |
10 | Blocked | Query state for blocker details, steer around it or escalate to human | |
11 | Cancelled | Process was interrupted — resume with --resume <sessionId> or restart |
</exit_codes>
<project_structure> GSD creates and manages all state in .gsd/:
State is derived from files on disk — checkboxes in ROADMAP.md and PLAN.md are the source of truth for completion. You never need to edit these files. GSD manages them. But you can read them to understand progress. </project_structure>
<flags>
| Flag | Description | |
|---|---|---|
--output-format <fmt> | text (default), json (structured result at exit), stream-json (JSONL events) | |
--json | Alias for --output-format stream-json — JSONL event stream to stdout | |
--bare | Skip CLAUDE.md, AGENTS.md, user settings, user skills. Use for CI/ecosystem runs. | |
--resume <id> | Resume a prior headless session by its session ID | |
--timeout N | Overall timeout in ms (default: 300000, use 0 to disable) | |
--model ID | Override LLM model | |
--supervised | Forward interactive UI requests to orchestrator via stdout/stdin | |
--response-timeout N | Timeout (ms) for orchestrator response in supervised mode (default: 30000) | |
--answers <path> | Pre-supply answers and secrets from JSON file | |
--events <types> | Filter JSONL to specific event types (comma-separated, implies --json) | |
--verbose | Show tool calls in progress output | |
--context <path> | Spec file path for new-milestone (use - for stdin) | |
--context-text <text> | Inline spec text for new-milestone | |
--auto | Chain into auto-mode after new-milestone |
</flags>
<answer_injection> Pre-supply answers and secrets for fully autonomous runs:
- questions — question ID to answer (string for single-select, string[] for multi-select)
- secrets — env var to value, injected into child process environment
- defaults.strategy —
"first_option"(default) or"cancel"for unmatched questions
See references/answer-injection.md for the full mechanism. </answer_injection>
<event_streaming> For real-time monitoring, use JSONL event streaming:
Filter to specific events: --events agent_end,execution_complete,extension_ui_request
Available types: agent_start, agent_end, tool_execution_start, tool_execution_end, tool_execution_update, extension_ui_request, message_start, message_end, message_update, turn_start, turn_end, cost_update, execution_complete. </event_streaming>
<all_commands>
| Command | Purpose | |||
|---|---|---|---|---|
auto | Run all queued units until milestone complete or blocked (default) | |||
next | Run exactly one unit, then exit | |||
query | Instant JSON snapshot — state, next dispatch, costs (no LLM, ~50ms) | |||
new-milestone | Create milestone from spec file | |||
dispatch <phase> | Force specific phase (research, plan, execute, complete, reassess, uat, replan) | |||
stop / pause | Control auto-mode | |||
steer <desc> | Hard-steer plan mid-execution | |||
skip / undo | Unit control | |||
queue | Queue/reorder milestones | |||
history | View execution history | |||
doctor | Health check + auto-fix | |||
| `knowledge <rule\ | pattern\ | lesson>` | Add persistent project knowledge |
See references/commands.md for the complete reference. </all_commands>
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckinggsd-orchestrator/SKILL.md
Popularity
- Repository stars
- 7,731
- Repository forks
- 778
- Repository npm downloads, 7 days
- 4,417
- 7-day trend score
- 66
Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 9 Jun 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/gsd-build/gsd-2/gsd-orchestrator)