agentleFS
theamtheam/claude-dev-kit/skills/plan-backlog/SKILL.md

plan-backlog

Skill17 starsChanged 3 months agoApache-2.0View on GitHub

Turn an idea or description (in any format) into a well-formed backlog — epics, user stories with acceptance criteria, sub-tasks — and create it in the team's tracker after approval. Elaborates progressively (guided, the default) or in one shot (`--quick`). Supports Jira, Linear, GitHub Issues, and Azure DevOps via adapters. Use when a product owner wants to draft or create tickets from an idea, brief, or document.

2 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. leosimini/keelokit★ 2same name
    2. scharissis/polako★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository13 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 1 is distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read .claude/dev-kit.json at the consuming repo root.

    line 18
  2. Very specific:

    Don't impose a structure; mirror the team's.

    line 39
  3. Distinctive:

    Ask only what can't be discovered.

    line 45
  4. Very specific:

    Create parents before children, link children to parents, and set labels/components/points where discovered.

    line 95
  5. Very specific:

    Create with createJiraIssue (project, issue type, summary, description, the acceptance-criteria field, labels, story points).

    line 100
  6. Very specific:

    Create issues under the team.

    line 104
  7. Very specific:

    If the adapter's backend is not authenticated (MCP connector not authorized, gh/az not logged in), tell the user exactly how to …

    line 117

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Plan Backlog

Turn a product idea into a structured, well-formed backlog in the team's tracker — the upstream half of the issue-to-PR workflow, for the product-owner persona. It closes the loop idea → backlog → ticket → PR (created stories feed straight into work-story).

This is the write counterpart to issue-fetch (which reads). Nothing is created until you approve the draft. You facilitate the PO's thinking — offer options and ask for decisions; never decide the product for them.

Trigger

A request to turn an idea / brief / description / document into tickets, epics, or a backlog — e.g. "draft stories for this feature", "create Jira tickets from this doc", "break this initiative into a backlog".

Project configuration

Read .claude/dev-kit.json at the consuming repo root. The tracker block names the active adapter and its settings:

{ "tracker": { "type": "jira" | "linear" | "github" | "azure", ... } }

If the file does not exist (or has no tracker block), run dev-kit-setup first — it detects the tracker and persists the config, then returns here. Don't ask for values setup can discover.

1. Intake — read the idea in whatever form it arrives

  • Pasted text / chat description → use directly.
  • PDF → read it (page range as needed).
  • Word (.docx) → not natively readable; convert first (textutil -convert txt file.docx -output - on macOS, or pandoc file.docx -t markdown), then read. If neither tool is available, ask the user to paste the text or export a PDF.
  • Artifact / Confluence page / URL → fetch it.
  • Figma link (figma.com/(design|file)/…) → run figma-fetch for design context.
  • A plan-definition product definition — passed in chat, or a docs/definitions/<slug>.md file → read it as the source. It carries the framing already (problem, users, goals/non-goals, metrics, chosen direction), which is what triggers the lighter framing in §4a. Check its provenance markers / "not established" / [unverified] notes: a definition that flags core gaps is not ready for the light path (see §4a).

Work only from what the source says plus what the user confirms — never invent scope or acceptance criteria.

2. Discovery-first — learn the team's hierarchy and conventions

Don't impose a structure; mirror the team's. Using the adapter for tracker.type, discover:

  • the issue types available and their hierarchy (Epic / Story / Task / Feature / Sub-task, …),
  • the fields that matter (acceptance criteria, story points/estimate, epic/parent link, labels, components),
  • a sample of recent issues to calibrate granularity and writing style.

Ask only what can't be discovered.

3. Choose the mode — guided by default

Two modes; decide per invocation, never persist a mode — a mature project can still hold a brand-new feature, so there are two maturities: the project's and the feature's. Judge each run.

  • Guided (default): elaborate progressively, zoom-out → zoom-in, offering alternatives and asking for a decision at each level (§4). This is the right default; it keeps the PO doing the definition work instead of handing every decision to the agent.
  • Quick (--quick): produce the whole backlog in one draft (§4, Quick). An explicit opt-in for when the PO just wants a fast draft.

Signals for how much guidance a run needs (discovery-first, never assumed):

  • Repo docs: an empty/greenfield repo vs. one with a defined stack, conventions, and CLAUDE.md — the emptier it is, the more definition help the framing step should give.
  • Brief context: how much useful context the idea/brief already carries.

Even on a mature project, still do a light framing check (§4a) — don't skip framing on the assumption it isn't needed. If the mode is genuinely ambiguous, ask once.

4. Draft the backlog

Guided mode (default) — zoom-out → zoom-in

Move through three levels; at each, present 2–4 alternatives (as many as the situation needs, no padding), recommend one with a reason, and wait for the PO's decision before going deeper. Ground every option in the intake + discovery — never fabricate.

4a. Framing (zoom-out) — help define, not just structure. Restate the goal and map the problem space (users, outcomes, constraints, unknowns). Offer 2–4 framing alternatives — e.g. MVP vs. full, different ways to slice the initiative, different sequencing — with the trade-offs of each. → PO chooses the framing.

If a plan-definition product definition was handed in (problem statement, users, goals/non-goals, metrics, chosen direction), the problem is already framed — if it's grounded. Before taking the light path, check the definition, not just its headings: a doc whose core must-haves are "not established", or whose thesis rests on [unverified] claims, is a spark with a template around it — treat it as an ordinary idea and frame from scratch (§4a). Only when the definition is genuinely grounded, run a lighter framing: confirm its direction and slice from it rather than re-deriving. Also re-open framing if the definition leaves the backlog-relevant slicing undecided. The presence of the five sections is not the signal; their groundedness is.

4b. Epics / themes. For the chosen framing, propose the epics/themes with alternatives where the breakdown could reasonably differ. → PO adjusts.

4c. Stories. Within each chosen epic, propose user stories ("As a <role>, I want <capability>, so that <value>") with Given/When/Then acceptance criteria, INVEST-sized, offering scoping alternatives (split/merge, in/out) where it matters. → PO refines.

Then assemble the full draft and go to the approval gate (§5).

Quick mode (--quick) — one-shot draft

Work with a neutral backlog model and produce the whole thing at once:

  • Initiative / Epic → the outcome / theme.
  • User Story → "As a <role>, I want <capability>, so that <value>." with Given/When/Then acceptance criteria, INVEST-sized.
  • Sub-tasks → concrete steps, when they add clarity.
  • Dependencies, sizing hints, labels/components, and explicit out-of-scope notes.

Recommend a shape based on discovery and confirm it with the user — don't force one. Then go to the approval gate (§5).

5. Review & approval gate (mandatory — create nothing yet)

Present the full assembled draft: the hierarchy plus each item's title, description, acceptance criteria, labels, and links. Wait for explicit approval; the user may edit anything. Only after approval proceed to create. (Same doctrine as work-story's plan gate — never create tickets without a human OK. In guided mode the per-level decisions do not replace this final gate.)

Rich review surface (when the host supports artifacts — e.g. Claude Code / claude.ai). For anything beyond a couple of items, also render the draft as a navigable artifact so a large backlog is easy to scan and drill into — collapsible epics → stories, each showing its user story, Given/When/Then acceptance criteria, labels, sizing, and dependencies; with search/filter and a table-of-contents. Load the artifact-design skill before building it. The artifact is a review aid, not the gate itself: still print a concise hierarchy summary and ask for approval in the conversation (a page or dialog is not a substitute — the user must be able to approve in the chat). On hosts without artifacts (Codex / Cursor / Copilot), present the draft as Markdown.

6. Create — via the tracker's write adapter

Create parents before children, link children to parents, and set labels/components/points where discovered. Report each created item with its key/URL.

Jira (type: "jira") — Atlassian MCP

Config: site, cloudId, projectKey, fields.

  • Discover types/fields with getJiraProjectIssueTypesMetadata / getJiraIssueTypeMetaWithFields.
  • Create with createJiraIssue (project, issue type, summary, description, the acceptance-criteria field, labels, story points). Link stories to the epic via the epic-link field or createIssueLink; model dependencies with createIssueLink (Blocks / Relates).

Linear (type: "linear") — Linear MCP

Config: teamKey (and optionally workspace).

  • Create issues under the team; use a Project (or a parent issue) as the epic, and sub-issues for sub-tasks; set labels/estimate/state. Put acceptance criteria in the description (a checklist).

GitHub Issues (type: "github") — gh

Config: repo (owner/name; defaults to origin).

  • gh issue create --repo <owner/name> --title <t> --body-file - --label <type> (use --milestone as the epic/initiative). Acceptance criteria as a task list in the body; sub-tasks as sub-issues / task lists.
  • Verify writes by read-back — never trust the exit code. gh issue edit/label can fail while applying nothing on repos whose org ever used classic Projects. After creating/labelling, run gh issue view <number> --json labels,milestone and, on a miss, apply via REST (gh api repos/<owner>/<repo>/issues/<number>/labels -f "labels[]=<label>").

Azure DevOps (type: "azure") — Azure DevOps MCP / az boards

Config: org, project.

  • az boards work-item create --type "Epic|Feature|User Story|Task" --title <t> --fields ...; link parent/child with az boards work-item relation add. Acceptance criteria → Microsoft.VSTS.Common.AcceptanceCriteria.

Authentication

If the adapter's backend is not authenticated (MCP connector not authorized, gh/az not logged in), tell the user exactly how to authenticate — MCP connectors via /mcp or claude.ai connector settings; CLIs via gh auth login / az login — and stop. Never create partial or placeholder items.

7. Handoff

List the created items with their keys/URLs and hand off: each story is worked by running work-story <KEY> on it — one interactive session per story (the plan is approved in the chat, then it implements and opens the PR); launch-story opens a window per story to run several in parallel. That completes the loop idea → backlog → ticket → PR.

Don't invent a way to "build the backlog" automatically. The kit has no batch/async, CI, comment, label, or assignment trigger, and ships no workflow runner — never propose or scaffold one (no /builder comments, no codex-builder.yml). If the repo already has its own async coding agent (a real .github/workflows file, or GitHub Copilot's coding agent), you may point the user to its actual trigger after verifying it exists — never a fabricated one.

Guardrails

  • Never create anything before explicit approval.
  • Facilitate, don't decide: offer alternatives and ask for the PO's decision at each level — don't hand them a finished product and call it done.
  • Discovery-first: mirror the team's hierarchy and conventions; don't impose one.
  • Don't fabricate scope or acceptance criteria — ground everything in the source plus user confirmation.
  • Watch for secrets/PII in the source material; don't copy them into tickets.
  • On partial failure, report exactly what was created and what wasn't — never leave a half-built backlog unreported.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.