Use when the user wants to capture a brainstormed idea, feature, or solution into a durable backlog/spec doc under docs/backlog — a human-facing reference that combines context, chosen solution, key decisions (ADR-lite), scope, acceptance criteria, and optional feature/integration/contract/use-case/handoff modules. Drafts the whole doc autonomously from the current conversation and persists docs/backlog/<slug>.md; asks the user only when blocked or a decision genuinely needs their input. NOT a low-level implementation plan (that is superpowers:writing-plans / x-do).
64
78%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/x-backlog/SKILL.mdx-backlog turns a discussed idea into a durable, human-facing reference doc at
docs/backlog/<slug>.md. It sits between research/brainstorming and the low-level
implementation plan: it records the why and the what — context, chosen solution,
key decisions, scope, acceptance, and the relevant contracts/integrations/use-cases —
so you can return to it months later or hand it off cleanly.
x-backlog is not an implementation plan. It does not produce per-file, per-step,
"for an agent to execute" instructions. When the doc is ready, the next step is
superpowers:writing-plans or /x-do.
Before walking, load:
references/template.md — the canonical CORE + MODULES skeleton and the index format.gotchas.md — known failure patterns.No capability-loading / OMO / agy dispatch is needed. x-backlog is Claude-native: it drafts and writes a markdown file. It never delegates to sub-agents.
The one exception is the Memory Reflex (../x-shared/mcp-toolbox.md § Memory Reflex): its
recall (step 2) and persist (step 6) are gated on mcp.basic_memory being in the
bootstrap-active capability set — the [x-skills/capabilities] snapshot line, or its
~/.config/x-skills/capabilities.json fallback (per ../x-shared/capability-loading.md) when
the line isn't in context. Consult the pinned set for this gate only — no full
capability-loading walk, no sub-agent dispatch. When basic_memory is absent, both beats skip
silently and x-backlog behaves exactly as before.
If the request is closer to one of these, route there instead and stop:
| User intent | Route to |
|---|---|
| "Write the per-file/per-step plan to build this" | superpowers:writing-plans or x-do |
| "Just build it / implement this" | x-do |
| "Review this code / plan / PR / doc" | x-review |
| "Explain / walk me through this input" | x-guide |
| "Research / investigate how X works" | x-research |
| "Architect-review this AI-produced plan before I build" | x-mindful |
| "Still deciding what to build / haven't chosen a solution yet" | superpowers:brainstorming |
docs/backlog/<slug>.md (create docs/backlog/ if absent).references/template.md. Do not invent sections.created/updated.Run these six steps in order, autonomously. The user is not interviewed section by section; the only pause is the blocker checkpoint in step 3, and only when a blocker actually exists.
<slug> from the feature name (e.g. user-billing-portal).docs/backlog/<slug>.md already exists, this is an update: read it and merge new
conversation material into the existing content instead of drafting from scratch.Backlog doc: docs/backlog/<slug>.md (new | update).mcp.basic_memory pinned in the bootstrap-active set — see the Bootstrap note): one mcp__basic-memory__search_notes({ query: "<feature slug/name>", page_size: 5 }) call over prior decisions/<project-slug>/ notes BEFORE drafting — surface cross-session contradictions with earlier decisions as leads for the step-3 blocker checkpoint (blocker #1 Contradiction), not verdicts, per ../x-shared/mcp-toolbox.md § Memory Reflex. Skip silently when not pinned.Ask the user only when one of these blockers holds:
If any blocker exists, batch every question into ONE checkpoint (one message / AskUserQuestion) before writing — never a per-section drip. If none exists, say nothing and proceed. Default when unsure: record it under Handoff Notes / Open Questions and keep going.
docs/backlog/<slug>.md from references/template.md with the drafted content.
Include only the modules that passed triage.type in frontmatter from the nature of the work: fix for bug specs, refactor,
chore, etc. as appropriate, feat otherwise. Downstream skills consume it: x-worktree
derives the branch name <type>/<slug> and x-do picks the archival folder on completion.related with any research docs, PRs, plans, or tickets referenced in the
conversation (leave [] if none).status: ready only if the Acceptance criteria are grounded in real conversation
material — criteria you had to invent from thin context are not ready, so use backlog.docs/backlog/README.md — if the index is in its empty state, delete the
"no unshipped backlog items" line as you add the first row back (see references/template.md
§ "Index file" → Empty-state line). Then add this doc's row, or replace the existing
row matched by slug (never append a duplicate).Fresh-eyes pass on the written file: any leftover <placeholder>, contradiction between
sections (e.g. a scope bullet that fights a decision), or vague acceptance criterion?
Fix inline. No re-review loop — fix and move on.
Persist Key Decisions (only when mcp.basic_memory pinned in the bootstrap-active set — see the Bootstrap note): for each decision block drafted in step 4, one mcp__basic-memory__write_note({ title: "<slug>: <decision title>", directory: "decisions/<project-slug>", content: "<decision + rationale + rejected alternative>", tags: ["<project-slug>", "x-backlog", "<slug>"] }) call (project-slug per § Consumer rules). Persist the decision + rationale only — not the whole doc; if this run's recall already surfaced a note for the same decision, edit_note it rather than writing a duplicate — per the Update over duplicate shape in § Memory Reflex (the recall hit's permalink as identifier, operation: "append"; it cannot retag or move a note, so write fresh if the surfaced note is misfiled — and never append across kinds, e.g. onto a notes/ research note on the same topic: cite its permalink in content instead, per § Memory Reflex "Chained skills link, don't restate"). Placement + tagging per ../x-shared/mcp-toolbox.md § Memory Reflex / § Consumer rules. Skip silently when not pinned.
Report the path, status, a one-screen summary of what was drafted, and any Open Questions recorded — then invite edits and offer the downstream handoff:
Backlog doc written to
docs/backlog/<slug>.md(status: ). Tell me what to change and I'll update it in place. Next → [C] commit doc on current branch · [W] worktree + implement (/x-worktree <doc>) · [P] plan first (superpowers:writing-plans) · [D]/x-do <doc>here · [N] stop.
Handoff behavior per letter:
docs(backlog): add <slug> (or update <slug>
on a re-run). Then re-offer [W] / [D] / [N] once — capture-and-park is a valid end state.Skill: x-skills:x-worktree docs/backlog/<slug>.md. Two doc states carry
cleanly: an untracked new doc is migrated + committed inside the new worktree; a committed
clean doc is inherited via the base branch. The third state does not: an update run
(step 1 re-rendered an already-committed doc) leaves it tracked + modified, which x-worktree
step 2.5 hard-rejects — so on an update run, do [C] first to commit the change, then [W].
Note the difference in one line when offering: [C] then [W] keeps the doc on the current
branch too; [W] alone carries only the doc to the new branch until merge. The README.md
index row from step 5 is a separate modified file x-worktree does not migrate — prefer
[C] first so doc + index travel together; with bare [W] the row stays on the current branch
and the archival row-deletion on the worktree branch harmlessly no-ops. On a bare [W] with
an untracked doc, also revert the step-5 README row in the source checkout after the
migration (the doc no longer exists on this branch, so a committed row would dangle at a
moved-away file); the index re-syncs when the branch merges. On x-worktree's
success envelope, follow its /x-do handoff suggestion.superpowers:writing-plans on the doc. This path does not run x-do
Mode A, so nothing auto-flips status or archives the doc: flip status: in-progress by hand
when the build starts, and archive per references/template.md § "Archival on done" when it
ships — otherwise the doc silently rots in docs/backlog/ after implementation.Skill: x-skills:x-do docs/backlog/<slug>.md in the current dir
(x-do Mode A; it applies its Backlog Doc Lifecycle — status flip, archival on completion).references/template.md — canonical CORE + MODULES skeleton, index format, status lifecycle.See gotchas.md.
Task: {{ARGUMENTS}}
667abc8
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.