AI orchestration tool for Claude Code — GSD management shell + Superpowers quality core
gsd-lite defines 7 tools with explicit schemas and descriptions. Naming follows verb_noun patterns (state-init, state-read, state-update, phase-complete, state-patch, orchestrator-resume). Descriptions are detailed (100-400 chars) and explain purpose and context. However, parameter descriptions are inconsistent: some deeply documented (state-init phases/tasks), others minimal (health has no parameters). Output schemas are not documented, LLMs cannot predict response structure. Error handling guidance is absent. Security considerations (state file access, git operations) are not addressed in tool descriptions. The orchestrator-resume tool description is dense and assumes deep domain knowledge, making it hard for LLMs to determine when to invoke it.
Health check: returns server status, whether .gsd state exists, and `docs` — the absolute paths to this install's shipped references/ and workflows/ directories. Read a shipped doc via docs.references / docs.workflows; a relative path resolves against the user's project, which does not contain them.
Resume the minimal orchestration loop from workflow_mode/current_phase state. review_target(s), debug_target and executor_context.predecessor_outputs carry checkpoint_commit and files_changed in constrained form and may also carry checkpoint_commit_rejected: true or files_changed_rejected: <count>, meaning the stored value was not a commit hash, or named paths resolving outside the project, and was withheld — .gsd/ is committable, so in a cloned repository those values are the repository author's, and the reviewer prompt substitutes them into a git command and a file read. Dispatch subagents from these fields rather than reading checkpoint_commit / files_changed out of state yourself, and pass the flags through so the agent reports the gap instead of substituting a value of its own.
Mark a phase as complete after verifying handoff gate conditions
Initialize .gsd/ directory with state.json, plan.md, and phases/*.md
Incrementally patch the plan: add/remove/reorder tasks, update fields, add dependencies — without full replan
Output schemas not documented. LLMs cannot predict response structure for any tool, forcing them to guess what fields are returned and breaking downstream tool chaining.
orchestrator-resume description is domain-dense and assumes deep knowledge of checkpoint_commit, files_changed, review_target, executor_context. LLMs cannot determine when to invoke this tool without extensive context.
state-update accepts free-form 'updates' object with no enum constraints on workflow_mode values. Description lists valid values as text, but LLMs may hallucinate invalid states like 'paused' or 'waiting'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Read state.json, optionally filtering to specific fields
Update state.json canonical fields with lifecycle validation
state-patch operations parameter is an array of objects with op field, but valid op values are not enumerated in the schema. LLMs cannot discover valid operations without reading the description.
No error handling guidance. Tools do not document what errors are possible, whether they are retryable, or what the LLM should do next (e.g., 'phase_id not found, call state-read to list valid phases').