with one click
gsd-plan-phase
Create detailed phase plan (PLAN.md) with verification loop
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Create detailed phase plan (PLAN.md) with verification loop
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Generate tests for a completed phase based on UAT criteria and implementation
Generate an AI-SPEC.md design contract for phases that involve building AI systems.
Autonomous audit-to-fix pipeline — find issues, classify, fix, test, commit
Audit milestone completion against original intent before archiving
Cross-phase audit of all outstanding UAT and verification items
Run all remaining phases autonomously — discuss→plan→execute per phase
| name | gsd-plan-phase |
| description | Create detailed phase plan (PLAN.md) with verification loop |
| metadata | {"short-description":"Create detailed phase plan (PLAN.md) with verification loop"} |
<codex_skill_adapter>
$gsd-plan-phase.$gsd-plan-phase as {{GSD_ARGS}}.{{GSD_ARGS}} as empty.GSD workflows use AskUserQuestion (Claude Code syntax). Translate to Codex request_user_input:
Parameter mapping:
header → headerquestion → question"Label" — description → {label: "Label", description: "description"}id from header: lowercase, replace spaces with underscoresBatched calls:
AskUserQuestion([q1, q2]) → single request_user_input with multiple entries in questions[]Multi-select workaround:
multiSelect. Use sequential single-selects, or present a numbered freeform list asking the user to enter comma-separated numbers.Execute mode fallback:
request_user_input is rejected or unavailable, activate TEXT_MODE: append --text to {{GSD_ARGS}} so the workflow's built-in text-mode branching takes over. Present every AskUserQuestion call as a plain-text numbered list, then stop and wait for the user's reply. Do NOT pick a default and continue (#3018 / #3808).--auto or --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).GSD workflows use Task(...) (Claude Code syntax). Translate to Codex collaboration tools:
Schema detection (required first step): Codex exposes two spawn_agent schemas:
multi_agent_v2): spawn_agent accepts agent_type, message, reasoning_effort, fork_context, etc. — typed GSD agent dispatch is available.multi_agent_v1): spawn_agent accepts only message, items, fork_context — there is no agent_type field. Typed GSD agent dispatch is unavailable in this session.Before spawning, inspect the spawn_agent tool's visible parameter schema (via tool_search or the tool list) to determine which form is active.
Typed mapping (agent_type-capable schema only):
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_agent has no inline model parameter;
GSD embeds the resolved per-agent model directly into each agent's .toml
at install time so model_overrides from .planning/config.json and
~/.gsd/defaults.json are honored automatically by Codex's agent router.reasoning_effort="low|medium|high|xhigh" (xhigh is a GSD/Codex tier, not a generic runtime enum) → pass reasoning_effort
to spawn_agent when the runtime/tool supports it. Omit missing, empty,
inherited, or unsupported values; do not invent one-off effort literals in
workflow prose.fork_context: false by default — GSD agents load their own context via <files_to_read> blocksTask(isolation="worktree") / Agent(isolation="worktree") → no direct Codex mapping.
Codex spawn_agent does 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).Generic-agent workaround (multi_agent_v1 schema — NO agent_type field):
When only the generic multi_agent_v1 schema is available, typed GSD agent dispatch
(gsd-planner, gsd-executor, etc.) is NOT possible. This is a known Codex limitation
(openai/codex#15250). This workaround is NOT equivalent to typed gsd-planner/gsd-executor
execution — GSD agents carry project-aware prompts, audit logging, and workflow context
that a generic subagent lacks. Use the following fallback:
config.toml.
This directory is determined in priority order: $CODEX_HOME (if set), the path given
by --config-dir (if passed on invocation), a local .codex directory in the current
project (if --local was used), or the default global config directory. Read
agents/<agent-name>.toml relative to that config root to extract the agent's system
instructions.spawn_agent(message=...) call.Spawn restriction:
spawn_agent to 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.spawn_agent
is not currently visible, discover tools first via tool_search before
defaulting to inline execution.Parallel fan-out:
wait(ids) for all to completeResult parsing:
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 research-phase command (#3042).
Research-only modifiers:
RESEARCH.md already exists, auto-uses it: emits a one-line notice and exits cleanly, no prompt.--research — force-refresh: re-spawn the researcher unconditionally, no prompt. Bypasses the existing-RESEARCH.md auto-use path.--view — view-only: print existing RESEARCH.md to stdout. Does not spawn the researcher. Cheapest mode for the correction-without-replanning loop. If no RESEARCH.md exists 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.
<execution_context> @/home/user/projects/temp/ai-apps/.personal-projects/registry-atlas/.codex/gsd-core/workflows/plan-phase.md @/home/user/projects/temp/ai-apps/.personal-projects/registry-atlas/.codex/gsd-core/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.--ingest <path-or-glob> — Use one or more ADR files instead of discuss-phase. Parses locked decisions + scope fences into CONTEXT.md automatically. Skips discuss-phase entirely.--ingest-format <auto|nygard|madr|narrative> — Optional ADR parser format override (auto default).--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 /rc remote 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 emits SKELETON.md (Walking Skeleton). Can be persisted on a phase via **Mode:** mvp in ROADMAP.md.Normalize phase input in step 2 before any directory lookups.
Execute end-to-end. Preserve all workflow gates (validation, research, planning, verification loop, routing).