Enable multiple Claude Code instances to work on the same codebase
simultaneously by scoping .planning/ state into workstreams.
Core changes:
- planningDir(cwd, ws?) and planningPaths(cwd, ws?) are now workstream-aware
via GSD_WORKSTREAM env var (auto-detected from --ws flag or active-workstream file)
- All bin/lib modules use planningDir(cwd) for scoped paths (STATE.md, ROADMAP.md,
phases/, REQUIREMENTS.md) and planningRoot(cwd) for shared paths (milestones/,
PROJECT.md, config.json, codebase/)
- New workstream.cjs module: create, list, status, complete, set, get, progress
- gsd-tools.cjs: --ws flag parsing with priority chain
(--ws > GSD_WORKSTREAM env > active-workstream file > flat mode)
- Collision detection: transition.md checks for other active workstreams before
suggesting next-milestone continuation (prevents WS A from trampling WS B)
- ${GSD_WS} routing propagation across all 9 workflow files ensures workstream
scope chains automatically through the workflow lifecycle
New files:
- get-shit-done/bin/lib/workstream.cjs (CRUD + collision detection)
- get-shit-done/commands/gsd/workstreams.md (slash command)
- get-shit-done/references/workstream-flag.md (documentation)
- tests/workstream.test.cjs (20 tests covering CRUD, env var routing, --ws flag)
All 1062 tests passing (1042 existing + 20 new workstream tests).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
64 lines
1.9 KiB
Markdown
64 lines
1.9 KiB
Markdown
---
|
|
description: Manage parallel workstreams — list, create, switch, status, progress, complete, and resume
|
|
---
|
|
|
|
# /gsd:workstreams
|
|
|
|
Manage parallel workstreams for concurrent milestone work.
|
|
|
|
## Usage
|
|
|
|
`/gsd:workstreams [subcommand] [args]`
|
|
|
|
### Subcommands
|
|
|
|
| Command | Description |
|
|
|---------|-------------|
|
|
| `list` | List all workstreams with status |
|
|
| `create <name>` | Create a new workstream |
|
|
| `status <name>` | Detailed status for one workstream |
|
|
| `switch <name>` | Set active workstream |
|
|
| `progress` | Progress summary across all workstreams |
|
|
| `complete <name>` | Archive a completed workstream |
|
|
| `resume <name>` | Resume work in a workstream |
|
|
|
|
## Step 1: Parse Subcommand
|
|
|
|
Parse the user's input to determine which workstream operation to perform.
|
|
If no subcommand given, default to `list`.
|
|
|
|
## Step 2: Execute Operation
|
|
|
|
### list
|
|
Run: `node "$GSD_TOOLS" workstream list --raw --cwd "$CWD"`
|
|
Display the workstreams in a table format showing name, status, current phase, and progress.
|
|
|
|
### create
|
|
Run: `node "$GSD_TOOLS" workstream create <name> --raw --cwd "$CWD"`
|
|
After creation, display the new workstream path and suggest next steps:
|
|
- `/gsd:new-milestone --ws <name>` to set up the milestone
|
|
|
|
### status
|
|
Run: `node "$GSD_TOOLS" workstream status <name> --raw --cwd "$CWD"`
|
|
Display detailed phase breakdown and state information.
|
|
|
|
### switch
|
|
Run: `node "$GSD_TOOLS" workstream set <name> --raw --cwd "$CWD"`
|
|
Also set `GSD_WORKSTREAM` env var for the current session.
|
|
|
|
### progress
|
|
Run: `node "$GSD_TOOLS" workstream progress --raw --cwd "$CWD"`
|
|
Display a progress overview across all workstreams.
|
|
|
|
### complete
|
|
Run: `node "$GSD_TOOLS" workstream complete <name> --raw --cwd "$CWD"`
|
|
Archive the workstream to milestones/.
|
|
|
|
### resume
|
|
Set the workstream as active and suggest `/gsd:resume-work --ws <name>`.
|
|
|
|
## Step 3: Display Results
|
|
|
|
Format the JSON output from gsd-tools into a human-readable display.
|
|
Include the `${GSD_WS}` flag in any routing suggestions.
|