/new-plan
Queue a UNIT OF WORK in the plan/todo queue of a documentation-led repo, tracing to an existing ADR — names the owning ADR(s), scope, exit criteria mapped to acceptance criteria, dependencies, and queue position. Use when the user says "add a plan item", "queue this work",
Claude Code
$ npx -y skills add EvolveHQ/docflow --skill new-plan --agent claude-code
Codex
$ npx skills add EvolveHQ/docflow --skill new-plan -a codex -y
Cursor
$ npx skills add EvolveHQ/docflow --skill new-plan -a cursor -y
Gemini CLI
$ npx skills add EvolveHQ/docflow --skill new-plan -a gemini-cli -y
GitHub Copilot
$ npx skills add EvolveHQ/docflow --skill new-plan -a github-copilot -y
OpenCode
$ npx skills add EvolveHQ/docflow --skill new-plan -a opencode -y
Windsurf
$ npx skills add EvolveHQ/docflow --skill new-plan -a windsurf -y
SKILL.md
new-plan.SKILL.mdname: new-plan
description: Queue a UNIT OF WORK in the plan/todo queue of a documentation-led repo, tracing to an existing ADR — names the owning ADR(s), scope, exit criteria mapped to acceptance criteria, dependencies, and queue position. Use when the user says "add a plan item", "queue this work", "create a todo for ADR X", "new plan", "put this on the backlog", or invokes /new-plan. NOT for recording the decision itself (use /new-adr) and NOT for shipping/completing an item already queued (use /ship-item).
new-plan
Add one item to the implementation queue.
Step 0 — Preconditions and context
1. Confirm the repo is bootstrapped and a `plan/` queue exists. If the repo was bootstrapped without a plan folder (Q4a = skip), stop and say so — there is no queue to add to. 2. Read `CONVENTIONS.md` for the plan-folder convention and the completion event, and `plan/README.md` if present. Resolve `plan/` against the **artefact root** recorded there (default: repository root). 3. `ls plan/todo/` to learn the queue's priority ordering, and read the titles in `plan/done/` as well: shipped items keep their number only in the title (the filename carries a date). The next number is one above the highest number used in either place — an empty queue does not restart the sequence, and numbers are never reused.
Step 0.5 — Assessment (run first)
Run the shared assessment protocol before queueing:
- **Reuse supplied answers first.** Treat applicable choices already supplied
in the request or this session, including depth, as answered. Summarise them without asking again; defaults never replace explicit choices. If every material choice is supplied, proceed. Ask only about a material missing or conflicting choice. A repository preference alone is not a current answer or execution grant.
- **Depth selector for unresolved choices.** If depth is not supplied and
choices remain, ask how deep this assessment should go: **express** — every choice takes its recommended default; only questions with no derivable default (the free-text essentials) are still asked; **guided** — only the questions marked high-impact below, plus the free-text essentials; **full** — every question below. If the repo's `CONVENTIONS.md` records an `Assessment depth:`, pre-select it as the recommended option when asking; a recorded depth is never applied silently. Otherwise recommend **full** when the request arrived with little or no context and **express** when it is already fully specified. At any question the operator may answer "defaults from here" or "go deeper"; honour the switch immediately.
- Ask the questions below **one at a time**, each with a **recommended
option** and a one-line reason; wait for each answer.
- Use **structured selection** (single- or multiple-choice). If the host
exposes a structured single-/multi-select question tool, use it and mark the recommended option; otherwise list options A/B/C in plain text and name the recommended one. Use **free text only** where an enumerable set is impossible (e.g. the scope summary).
- **The operator decides.** Never proceed past a question without an
answer, and never guess scope when invoked with no context.
Questions (skip any the request already answers): 1. **Owning ADR(s)** — select from the catalogue (single or multiple). *Recommended: the ADR named in the request.* *(High-impact — asked in guided: the trace to a decision is the item's identity.)* 2. **Dependencies** — none, or select the plan items / ADRs that must land first. *Recommended: none.* 3. **Priority / position** — next number, or insert ahead of existing items. *Recommended: next number.* 4. **Scope & exit criteria** — free text, mapped to the owning ADR's numbered acceptance criteria where possible (free-text essential; asked at every depth).
Step 1 — Identify the owning ADR(s)
- Use the owning ADR(s) already supplied or selected; ask only if missing
or conflicting. Validate they exist in `adr/`.
- Normally a queue item tracks an **Accepted** ADR. If the named ADR is
still `Proposed`, warn — you can queue ahead of acceptance, but the work is not yet authorised. If it has no ADR at all, suggest running the **new-adr** skill first; plan items should trace to a decision.
- **In a federation** (a `federation.md` exists): the owning ADR may live
in **another** repo (the home/central). Name it by its **federation identity** (`<repo-id>/NNNN-slug`); the plan item itself lives in **this** repo — the one whose code the work changes. A decision spanning several repos gets **one item per affected repo**, each tracing to the same owning ADR (the grouping point — no umbrella record).
Step 2 — Pick number and position
- `plan/todo/NNNN-<slug>.md`, zero-padded, `NNNN` being the next number
after the highest across `plan/todo/` filenames and `plan/done/` titles. **Lower numbers run first** — ask where this sits in priority and renumber neighbours only if the user wants it inserted ahead of existing items.
Step 3 — Write the item
The file names, at minimum:
- Owning ADR(s) by relative path.
- Scope — what is in, what is explicitly out.
- Exit criteria — map directly to the ADR's numbered acceptance
criteria where possible.
- Dependencies — other plan items or ADRs that must land first.
Item status
Every new queue item carries this section, initially empty:
## Status
- Claimed by:
- Blockers:
- Stopped:
At start, record actor, date and actual branch in Claimed by (no invented claim branch for shared checkouts or single writers). The owner maintains Blockers. On stop, record date and reason in Stopped with the three Status at a glance labels. Commit status with the work. Remove the section in the completion move to plan/done; the shipped footer replaces it.
Step 4 — Commit
Conventional Commit. If the file references an ADR by number in its body
Read more
name: new-plan description: Queue a UNIT OF WORK in the plan/todo queue of a documentation-led repo, tracing to an existing ADR — names the owning ADR(s), scope, exit criteria mapped to acceptance criteria, dependencies, and queue position. Use when the user says "add a plan item", "queue this work", "create a todo for ADR X", "new plan", "put this on the backlog", or invokes /new-plan. NOT for recording the decision itself (use /new-adr) and NOT for shipping/completing an item already queued (use /ship-item).
new-plan
Add one item to the implementation queue.
Step 0 — Preconditions and context
1. Confirm the repo is bootstrapped and a `plan/` queue exists. If the repo was bootstrapped without a plan folder (Q4a = skip), stop and say so — there is no queue to add to. 2. Read `CONVENTIONS.md` for the plan-folder convention and the completion event, and `plan/README.md` if present. Resolve `plan/` against the **artefact root** recorded there (default: repository root). 3. `ls plan/todo/` to learn the queue's priority ordering, and read the titles in `plan/done/` as well: shipped items keep their number only in the title (the filename carries a date). The next number is one above the highest number used in either place — an empty queue does not restart the sequence, and numbers are never reused.
Step 0.5 — Assessment (run first)
Run the shared assessment protocol before queueing:
- **Reuse supplied answers first.** Treat applicable choices already supplied
in the request or this session, including depth, as answered. Summarise them without asking again; defaults never replace explicit choices. If every material choice is supplied, proceed. Ask only about a material missing or conflicting choice. A repository preference alone is not a current answer or execution grant.
- **Depth selector for unresolved choices.** If depth is not supplied and
choices remain, ask how deep this assessment should go: **express** — every choice takes its recommended default; only questions with no derivable default (the free-text essentials) are still asked; **guided** — only the questions marked high-impact below, plus the free-text essentials; **full** — every question below. If the repo's `CONVENTIONS.md` records an `Assessment depth:`, pre-select it as the recommended option when asking; a recorded depth is never applied silently. Otherwise recommend **full** when the request arrived with little or no context and **express** when it is already fully specified. At any question the operator may answer "defaults from here" or "go deeper"; honour the switch immediately.
- Ask the questions below **one at a time**, each with a **recommended
option** and a one-line reason; wait for each answer.
- Use **structured selection** (single- or multiple-choice). If the host
exposes a structured single-/multi-select question tool, use it and mark the recommended option; otherwise list options A/B/C in plain text and name the recommended one. Use **free text only** where an enumerable set is impossible (e.g. the scope summary).
- **The operator decides.** Never proceed past a question without an
answer, and never guess scope when invoked with no context.
Questions (skip any the request already answers): 1. **Owning ADR(s)** — select from the catalogue (single or multiple). *Recommended: the ADR named in the request.* *(High-impact — asked in guided: the trace to a decision is the item's identity.)* 2. **Dependencies** — none, or select the plan items / ADRs that must land first. *Recommended: none.* 3. **Priority / position** — next number, or insert ahead of existing items. *Recommended: next number.* 4. **Scope & exit criteria** — free text, mapped to the owning ADR's numbered acceptance criteria where possible (free-text essential; asked at every depth).
Step 1 — Identify the owning ADR(s)
- Use the owning ADR(s) already supplied or selected; ask only if missing
or conflicting. Validate they exist in `adr/`.
- Normally a queue item tracks an **Accepted** ADR. If the named ADR is
still `Proposed`, warn — you can queue ahead of acceptance, but the work is not yet authorised. If it has no ADR at all, suggest running the **new-adr** skill first; plan items should trace to a decision.
- **In a federation** (a `federation.md` exists): the owning ADR may live
in **another** repo (the home/central). Name it by its **federation identity** (`<repo-id>/NNNN-slug`); the plan item itself lives in **this** repo — the one whose code the work changes. A decision spanning several repos gets **one item per affected repo**, each tracing to the same owning ADR (the grouping point — no umbrella record).
Step 2 — Pick number and position
- `plan/todo/NNNN-<slug>.md`, zero-padded, `NNNN` being the next number
after the highest across `plan/todo/` filenames and `plan/done/` titles. **Lower numbers run first** — ask where this sits in priority and renumber neighbours only if the user wants it inserted ahead of existing items.
Step 3 — Write the item
The file names, at minimum:
- Owning ADR(s) by relative path.
- Scope — what is in, what is explicitly out.
- Exit criteria — map directly to the ADR's numbered acceptance
criteria where possible.
- Dependencies — other plan items or ADRs that must land first.
Item status
Every new queue item carries this section, initially empty:
## Status - Claimed by: - Blockers: - Stopped:
At start, record actor, date and actual branch in Claimed by (no invented claim branch for shared checkouts or single writers). The owner maintains Blockers. On stop, record date and reason in Stopped with the three Status at a glance labels. Commit status with the work. Remove the section in the completion move to plan/done; the shipped footer replaces it.
Step 4 — Commit
Conventional Commit. If the file references an ADR by number in its body
New to Docflow? Start here explains the terms, helps you choose one repository or several, and shows setup for your coding agent. Follow the prompt-first guides for a first task and expected result.
Other skills on docflow.
More skills from other plugins.
codebase-wiki
How to work in a Codebase Wiki project (the `codebase-wiki` starter pack): an agent-authored, source-grounded wiki of the…
academic-paper-reviewe…
Simulates academic peer review, evaluating papers across Originality, Methodology, Results, and Writing to provide Major/Minor…
Questions about new-plan.
- Which coding agents can use new-plan?
- new-plan installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

