Execute all plans in a phase with wave-based parallelization
<codex_skill_adapter>
$gsd-execute-phase.$gsd-execute-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 (Execute mode), present a plain-text numbered list and pick a reasonable default.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 (Codex uses per-role config, not inline model selection)fork_context: false by default — GSD agents load their own context via <files_to_read> blocksParallel 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>Orchestrator stays lean: discover plans, analyze dependencies, group into waves, spawn subagents, collect results. Each subagent loads the full execute-plan context and handles its own plan.
Optional wave filter:
--wave N executes only Wave N for pacing, quota management, or staged rolloutFlag handling rule:
{{GSD_ARGS}}{{GSD_ARGS}}, treat it as inactiveContext budget: ~15% orchestrator, 100% fresh per subagent. </objective>
<execution_context> @/Users/luca/dev/worktrees/brave-dots-talk-ep7/.codex/get-shit-done/workflows/execute-phase.md @/Users/luca/dev/worktrees/brave-dots-talk-ep7/.codex/get-shit-done/references/ui-brand.md </execution_context>
Available optional flags (documentation only — not automatically active):
--wave N — Execute only Wave N in the phase. Use when you want to pace execution or stay inside usage limits.--gaps-only — Execute only gap closure plans (plans with gap_closure: true in frontmatter). Use after verify-work creates fix plans.--interactive — Execute plans sequentially inline (no subagents) with user checkpoints between tasks. Lower token usage, pair-programming style. Best for small phases, bug fixes, and verification gaps.Active flags must be derived from {{GSD_ARGS}}:
--wave N is active only if the literal --wave token is present in {{GSD_ARGS}}--gaps-only is active only if the literal --gaps-only token is present in {{GSD_ARGS}}--interactive is active only if the literal --interactive token is present in {{GSD_ARGS}}Context files are resolved inside the workflow via gsd-tools init execute-phase and per-subagent <files_to_read> blocks.
</context>