一键导入
add-todos
Use when capturing ship-flow todo ideas, rabbit holes, or quick captain notes without starting a full shape cycle.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when capturing ship-flow todo ideas, rabbit holes, or quick captain notes without starting a full shape cycle.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | add-todos |
| description | Use when capturing ship-flow todo ideas, rabbit holes, or quick captain notes without starting a full shape cycle. |
| user-invocable | true |
| argument-hint | "<idea text>" | "idea 1; idea 2; idea 3" |
You are running the ADD-TODOS skill. Your job is to classify and file one or more ideas as docs/ship-flow/todos/<slug>.md files and append matching rows to ROADMAP.md later section — all in a single atomic commit.
Core contract: minimal friction. No shaping, no questions. Parse → classify → file → commit. Report slugs filed.
Use this skill for every out-of-scope finding discovered during plan/design/execute/verify/review/ship when the issue is worth preserving but does not directly belong to the active entity's acceptance criteria or fix loop. This includes pre-existing bugs, genuinely new feature requests, research rabbit holes, workflow friction, and follow-up candidates discovered by workers, reviewers, verifiers, external reviewers, or captain UAT.
Rejected alternatives are not todos. Keep rejected alternatives in the stage artifact with the reason they were rejected; only capture follow-up candidates that may become future work.
This skill captures TODOS — items deferred to later. If the item warrants immediate sharp-entity creation (claiming --next-id and writing shape.md), use /ship-flow:ship-shape <directive> instead. Decision rule:
| Condition | Use |
|---|---|
| Scope clear + design settled + starting work now | /ship-flow:ship-shape (skip todo, directly entity) |
| Scope clear + design settled + waiting on prerequisite | this skill (todo) |
| Scope fuzzy / multiple alternatives still considered | this skill (todo) |
| Depends on upstream entity outcome | this skill (todo) |
| Want to batch-process related ideas | this skill (todo) |
Why: entity creation immediately claims --next-id (MEMORY #5 atomic discipline). Don't lock IDs for work you're not about to execute — parallel sessions will be blocked or race. Todos are cheap capture + late binding via /ship-flow:ship-shape <todo-tid> when ready to start.
Failure modes: premature entity = empty placeholder folders littering docs/<wf>/; over-todo = backlog rot. Balance via the "starting now?" criterion above.
The argument may contain multiple ideas. Split on:
;)1., 2., …)-, *)Trim whitespace from each segment. Discard empty segments. Each non-empty segment is one todo.
For each idea, execute these steps in sequence:
Dispatch a haiku subagent with prompt:
Classify this todo idea for a software project:
"<idea text>"
Return JSON only:
{
"slug": "<kebab-case-slug-max-40-chars>",
"domain": "<one of: backend | frontend | dashboard-ui | infra | dx | docs | unknown>",
"guess_files": ["<path>", ...],
"suggest_done_type": "<one of: code | ui | docs | infra | research>"
}
Use the returned slug for the file name. guess_files may be empty if domain is unclear.
Check if docs/ship-flow/todos/<slug>.md already exists. If yes, append -2, then -3, etc., until a free slot is found.
Write docs/ship-flow/todos/<slug>.md:
---
tid: <slug>
captured_at: <ISO-8601 UTC timestamp>
status: pending
domain: <from classification>
guess_files: [<from classification>]
suggest_done_type: <from classification>
entity: null
---
<original idea text, trimmed>
Accumulate row: | <slug> | S | <idea text, truncated to 60 chars> | (todo) |
Use plugins/ship-flow/lib/patch-map.sh with --mode=append --section=later --no-commit to append all rows.
For each row:
sha256_of ROADMAP.md (source plugins/ship-flow/lib/map-helpers.sh)--if-hash=<hash>git add -- docs/ship-flow/todos/<slug1>.md docs/ship-flow/todos/<slug2>.md ... ROADMAP.md
git commit -m "add-todos: <slug1>[, <slug2>...] ([N] new rabbit holes)" \
-- docs/ship-flow/todos/<slug1>.md ... ROADMAP.md
Explicit pathspec only — never git add -A or git commit -am.
Output one line per todo filed:
Filed N todo(s):
- <slug1> [<domain>] <guess_files or "(no files guessed)">
- <slug2> ...
Commit: <short SHA>
If all slugs already existed (no new files written), exit without committing and report:
All ideas already exist as todos: <slug1>, <slug2>. Nothing committed.
| Condition | Action |
|---|---|
| No argument provided | Print usage and exit |
| patch-map.sh missing or not executable | Exit with "Error: patch-map.sh not found at plugins/ship-flow/lib/patch-map.sh" |
| haiku classification fails | Use slug from first 40 chars of idea text (kebab-cased), domain=unknown, guess_files=[] |
| git commit blocked | Report "Files written but commit failed — check pre-commit hook" |
Single idea:
captain: /add-todos "filter chip needs multi-select"
agent: Filed 1 todo:
- filter-chip-multi [dashboard-ui] ui/components/FilterChip.tsx
Commit: a1b2c3d
Multiple ideas (semicolon-separated):
captain: /add-todos "add dark mode; fix pagination bug; document auth flow"
agent: Filed 3 todo(s):
- add-dark-mode [frontend] (no files guessed)
- fix-pagination-bug [backend] src/api/pagination.ts
- document-auth-flow [docs] docs/auth.md
Commit: d4e5f6a
Duplicate slug:
captain: /add-todos "filter chip needs multi-select"
agent: Filed 1 todo:
- filter-chip-multi-2 [dashboard-ui] ui/components/FilterChip.tsx
Commit: b7c8d9e
(filter-chip-multi already exists — used suffix -2)
Use when writing a ship-flow plan for a shaped entity, especially implementation tasks, TDD needs, runtime commands, or scope anchoring. Layer A delegation: superpowers:writing-plans owns plan authoring; ship-flow:test-driven-development owns fallback TDD contracts.
Use when shaping vague, complex, or ambiguous ship-flow requests into a Shape Up pitch, including `/shape`, discussion, or skill-authoring work.
Use when shape finds UI, domain, contract, interface, visual ambiguity, affects_ui, design_required, or no design reference before plan.
Use when ship-flow needs execute-stage implementation from an approved plan, including wave tasks, blocked work, or PR feedback re-entry. Layer A delegation: superpowers:subagent-driven-development owns wave dispatch discipline.
Use when `/ship` should run ship-flow for an entity id or good-enough raw requirement; vague inputs need shape clarification.
Use when verify passed and ship-flow needs review, PR readiness, PR body drafting, or canonical docs sync. Layer A delegation: pr-review-toolkit:review-pr owns PR review persona philosophy.