gsd-workspace
Tools to manage and isolate development workspaces within the GSD system.
Install
mkdir -p .claude/skills/gsd-workspace && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18621" && unzip -o skill.zip -d .claude/skills/gsd-workspace && rm skill.zipInstalls to .claude/skills/gsd-workspace
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Manage GSD workspaces — create, list, or remove isolated workspace environmentsKey capabilities
- →Create isolated GSD workspace environments
- →List active GSD workspaces and their status
- →Remove GSD workspaces and clean up worktrees
- →Translate Task() to spawn_agent
How it works
The skill parses arguments to determine the desired workspace operation and executes the corresponding workflow for creation, listing, or removal.
Inputs & outputs
When to use gsd-workspace
- →Create new workspace
- →Remove old workspaces
- →List active environments
About this skill
<codex_skill_adapter>
A. Skill Invocation
- This skill is invoked by mentioning
$gsd-workspace. - Treat all user text after
$gsd-workspaceas{{GSD_ARGS}}. - If no arguments are present, treat
{{GSD_ARGS}}as empty.
B. AskUserQuestion → request_user_input Mapping
GSD workflows use AskUserQuestion (Claude Code syntax). Translate to Codex request_user_input:
Parameter mapping:
header→headerquestion→question- Options formatted as
"Label" — description→{label: "Label", description: "description"} - Generate
idfrom header: lowercase, replace spaces with underscores
Batched calls:
AskUserQuestion([q1, q2])→ singlerequest_user_inputwith multiple entries inquestions[]
Multi-select workaround:
- Codex has no
multiSelect. Use sequential single-selects, or present a numbered freeform list asking the user to enter comma-separated numbers.
Execute mode fallback:
- When
request_user_inputis rejected or unavailable, activate TEXT_MODE: append--textto{{GSD_ARGS}}so the workflow's built-in text-mode branching takes over. Present everyAskUserQuestioncall as a plain-text numbered list, then stop and wait for the user's reply. Do NOT pick a default and continue (#3018 / #3808). - You may only proceed without a user answer when one of these is true:
(a) the invocation included an explicit non-interactive flag (
--autoor--all), (b) the user has explicitly approved a specific default for this question, or (c) the workflow's documented contract says defaults are safe (e.g. autonomous lifecycle paths). - Do NOT write workflow artifacts (CONTEXT.md, DISCUSSION-LOG.md, PLAN.md, checkpoint files) until the user has answered the plain-text questions or one of (a)-(c) above applies. Surfacing the questions and waiting is the correct response — silently defaulting and writing artifacts is the #3018 failure mode.
C. Task() → spawn_agent Mapping
GSD workflows use Task(...) (Claude Code syntax). Translate to Codex collaboration tools:
Direct mapping:
Task(subagent_type="X", prompt="Y")→spawn_agent(agent_type="X", message="Y")Agent(subagent_type="X", prompt="Y")→spawn_agent(agent_type="X", message="Y")Task(model="...")→ omit.spawn_agenthas no inlinemodelparameter; GSD embeds the resolved per-agent model directly into each agent's.tomlat install time somodel_overridesfrom.planning/config.jsonand~/.gsd/defaults.jsonare honored automatically by Codex's agent router.- Resolved
reasoning_effort="low|medium|high|xhigh"(xhighis a GSD/Codex tier, not a generic runtime enum) → passreasoning_efforttospawn_agentwhen the runtime/tool supports it. Omit missing, empty, inherited, or unsupported values; do not invent one-off effort literals in workflow prose. fork_context: falseby default — GSD agents load their own context via<files_to_read>blocksTask(isolation="worktree")/Agent(isolation="worktree")→ no direct Codex mapping. Codexspawn_agentdoes not create or bind a git worktree automatically. Workflows that require this isolation must fail closed or use an explicit manual worktree protocol before spawning (#3360).
Spawn restriction:
- Codex restricts
spawn_agentto cases where the user has explicitly requested sub-agents. When automatic spawning is not permitted, do the work inline in the current agent rather than attempting to force a spawn. - In some Codex sessions, multi-agent tooling can be deferred. If
spawn_agentis not currently visible, discover tools first viatool_searchbefore defaulting to inline execution.
Parallel fan-out:
- Spawn multiple agents → collect agent IDs →
wait(ids)for all to complete
Result parsing:
- Look for structured markers in agent output:
CHECKPOINT,PLAN COMPLETE,SUMMARY, etc. close_agent(id)after collecting results from each agent </codex_skill_adapter>
Mode routing:
- --new: Create an isolated workspace with repo copies and independent .planning/ → new-workspace workflow
- --list: List active GSD workspaces and their status → list-workspaces workflow
- --remove: Remove a GSD workspace and clean up worktrees → remove-workspace workflow </objective>
| Flag | Action | Workflow |
|---|---|---|
| --new | Create workspace with worktree/clone strategy | new-workspace |
| --list | Scan ~$gsd-workspaces/, show summary table | list-workspaces |
| --remove | Confirm and remove workspace directory | remove-workspace |
<execution_context> @/Users/mali/Development/xai-bookkeeping/.codex/get-shit-done/workflows/new-workspace.md @/Users/mali/Development/xai-bookkeeping/.codex/get-shit-done/workflows/list-workspaces.md @/Users/mali/Development/xai-bookkeeping/.codex/get-shit-done/workflows/remove-workspace.md @/Users/mali/Development/xai-bookkeeping/.codex/get-shit-done/references/ui-brand.md </execution_context>
<context> Arguments: {{GSD_ARGS}}Parse the first token of {{GSD_ARGS}}:
- If it is
--new: strip the flag, pass remainder (--name, --repos, --path, --strategy, --branch, --auto flags) to new-workspace workflow - If it is
--list: execute list-workspaces workflow (no argument needed) - If it is
--remove: strip the flag, pass remainder (workspace-name) to remove-workspace workflow - Otherwise (no flag): show usage — one of --new, --list, or --remove is required </context>
When not to use it
- →When `spawn_agent` is not currently visible and `tool_search` has not been used
Limitations
- →Codex `spawn_agent` does not create or bind a git worktree automatically
- →Requires explicit user confirmation for certain actions when `request_user_input` is rejected
How it compares
This skill provides a consolidated command for GSD workspace management, abstracting the underlying workflows for creating, listing, and removing environments.
Compared to similar skills
gsd-workspace side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| gsd-workspace (this skill) | 0 | 1mo | No flags | Intermediate |
| setup | 12 | 1mo | No flags | Beginner |
| tmux | 20 | 2mo | Review | Intermediate |
| macos-cleaner | 16 | 1mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by xai-bookkeeping
View all by xai-bookkeeping →You might also like
setup
barefootford
Sets up a Mac for ButterCut. Installs all required dependencies (Homebrew, Ruby, Python, FFmpeg, WhisperX). Use when user says "install buttercut", "set up my mac", "get started", "first time setup", "install dependencies" or "check my installation".
tmux
openclaw
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
macos-cleaner
daymade
Analyze and reclaim macOS disk space through intelligent cleanup recommendations. This skill should be used when users report disk space issues, need to clean up their Mac, or want to understand what's consuming storage. Focus on safe, interactive analysis with user confirmation before any deletions.
ms365-tenant-manager
alirezarezvani
Microsoft 365 tenant administration for Global Administrators. Automate M365 tenant setup, Office 365 admin tasks, Azure AD user management, Exchange Online configuration, Teams administration, and security policies. Generate PowerShell scripts for bulk operations, Conditional Access policies, license management, and compliance reporting. Use for M365 tenant manager, Office 365 admin, Azure AD users, Global Administrator, tenant configuration, or Microsoft 365 automation.
agent-workflow-automation
ruvnet
Agent skill for workflow-automation - invoke with $agent-workflow-automation
tmux-terminal
mikeyobrien
Interactive terminal control via tmux for TUI apps, prompts, and long-running CLI workflows.