Install
mkdir -p .claude/skills/gsd-plan-phase-dwaytu && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13639" && unzip -o skill.zip -d .claude/skills/gsd-plan-phase-dwaytu && rm skill.zipInstalls to .claude/skills/gsd-plan-phase-dwaytu
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.
Create detailed phase plan (PLAN.md) with verification loopAbout this skill
<codex_skill_adapter>
A. Skill Invocation
- This skill is invoked by mentioning
$gsd-plan-phase. - Treat all user text after
$gsd-plan-phaseas{{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, you MUST stop and present the questions as a plain-text numbered list, then wait for the user's reply. Do NOT pick a default and continue (#3018). - 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")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.fork_context: falseby default — GSD agents load their own context via<files_to_read>blocks
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.
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>
Default flow: Research (if needed) → Plan → Verify → Done
Research-only mode (--research-phase <N>): Spawn gsd-phase-researcher for phase N, write RESEARCH.md, then exit before the planner runs. Useful for cross-phase research, doc review before committing to a planning approach, and correction-without-replanning loops where iterating on research alone is dramatically cheaper than re-spawning the planner. Replaces the deleted $gsd-research-phase command (#3042).
Research-only modifiers:
- No flag — when
RESEARCH.mdalready exists, prompt the user to chooseupdate / view / skip. --research— force-refresh: re-spawn the researcher unconditionally, no prompt. Skips the existing-RESEARCH.md menu.--view— view-only: print existingRESEARCH.mdto stdout. Does not spawn the researcher. Cheapest mode for the correction-without-replanning loop. If noRESEARCH.mdexists yet, errors with a hint to drop--view.
Orchestrator role: Parse arguments, validate phase, research domain (unless skipped), spawn gsd-planner, verify with gsd-plan-checker, iterate until pass or max iterations, present results. </objective>
<execution_context> @D:/Dwight/Capstone Main/.codex/get-shit-done/workflows/plan-phase.md @D:/Dwight/Capstone Main/.codex/get-shit-done/references/ui-brand.md </execution_context>
<runtime_note>
Copilot (VS Code): Use vscode_askquestions wherever this workflow calls AskUserQuestion. They are equivalent — vscode_askquestions is the VS Code Copilot implementation of the same interactive question API. Do not skip questioning steps because AskUserQuestion appears unavailable; use vscode_askquestions instead.
</runtime_note>
Flags:
--research— Force re-research even if RESEARCH.md exists--skip-research— Skip research, go straight to planning--gaps— Gap closure mode (reads VERIFICATION.md, skips research)--skip-verify— Skip verification loop--prd <file>— Use a PRD/acceptance criteria file instead of discuss-phase. Parses requirements into CONTEXT.md automatically. Skips discuss-phase entirely.--reviews— Replan incorporating cross-AI review feedback from REVIEWS.md (produced by$gsd-review)--text— Use plain-text numbered lists instead of TUI menus (required for/rcremote sessions)--mvp— Vertical MVP mode. Planner organizes tasks as feature slices (UI→API→DB) instead of horizontal layers. On Phase 1 of a new project, also emitsSKELETON.md(Walking Skeleton). Can be persisted on a phase via**Mode:** mvpin ROADMAP.md.
Normalize phase input in step 2 before any directory lookups. </context>
<process> Execute the plan-phase workflow from @D:/Dwight/Capstone Main/.codex/get-shit-done/workflows/plan-phase.md end-to-end. Preserve all workflow gates (validation, research, planning, verification loop, routing). </process>