plan-definition
Skill17 starsChanged 3 months agoApache-2.0View on GitHub
Turn a spark (an idea, even a one-liner, in any format) into a clear product definition through a guided, Socratic discovery phase — frame the problem (users, outcome, metrics, constraints, non-goals), explore 2–4 directions with trade-offs, and produce an approved definition that then feeds plan-backlog. Facilitate, never decide. Use when a product owner wants to define a problem before breaking it into a backlog.
In this repository13 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- coverage-checkSkill
- create-prSkill
- delegate-backlogSkill
- dev-kit-setupSkill
- e2e-generateSkill
- figma-fetchSkill
- fix-prSkill
- follow-upsSkill
- issue-fetchSkill
- issue-updateSkill
- plan-backlogSkill
- pr-reviewSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 31
If the spark is thin, that's expected — the framing step (§2) is where you draw it out with questions, not where you fill it in for the PO.
- Distinctive: line 107
Facilitate, never decide: ask, offer alternatives, and let the PO make the call at each step — don't hand them a finished definition and …
- Distinctive: line 110
Approval gate: before the definition is finalized.
≈ “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.
Files
Plan Definition
Turn a spark into a clear product definition through a guided discovery phase — the most upstream step of the workflow, for the product-owner persona. It runs before plan-backlog and closes the loop define → backlog → ticket → PR.
plan-backlog starts from a defined problem and turns it into a backlog; its framing step is deliberately light ("how do we slice this"). plan-definition does the deep part: defining the problem itself — who it's for, the outcome, why now, the constraints, the success metrics, the chosen direction. Its output is a definition doc, not a backlog and not tickets. You facilitate the PO's thinking — ask, offer options, and let them decide; never decide the product for them.
Trigger
A request to define, frame, scope, or think through a product idea before there are stories — e.g. "help me define this feature", "I have a rough idea, let's shape it", "what's the problem we're solving here". If the request is already a defined problem asking for tickets, that's plan-backlog, not this.
Boundary with plan-backlog (important)
plan-definition= define the problem & direction. No backlog, no tickets. Output: a product definition.plan-backlog= turn a defined problem into a backlog. When a definition from here is handed in, it consumes it and runs a lighter framing (confirm, don't re-derive) instead of framing from scratch.
1. Intake — read the spark in whatever form it arrives
The input is deliberately vaguer than plan-backlog's — a one-liner is a valid start.
- Pasted text / chat description → use directly.
- PDF → read it (page range as needed).
- Word (
.docx) → convert first (textutil -convert txt file.docx -output -on macOS, orpandoc 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)/…) → runfigma-fetchfor design context. For a FigJam board,figma-fetchdoesn't read/board/URLs yet — ask the PO to paste the board's content as text. v1 treats any whiteboard as read-only context; nothing is written back to it.
If the spark is thin, that's expected — the framing step (§2) is where you draw it out with questions, not where you fill it in for the PO. See Grounding & provenance next; it governs the whole flow.
Grounding & provenance (the core rule — read before drafting)
A one-liner is a valid start, so most of what a definition could contain is not in the intake. That is fine — but it makes how you introduce content the thing that keeps this honest. Two moves that look identical on the page are completely different:
- Generating options for the PO to choose — proposing 2–4 framings, directions, or candidate answers and letting the PO pick — is the point of this skill. Do it freely.
- Asserting facts about the world the PO didn't give you — "no mainstream app does X", "this is why people churn", "the market for Y is underserved", a specific metric target — is fabrication when stated as established. You cannot verify market, prior-art, or novelty claims here; the skill has no research step. So:
- Offer them as the PO's to confirm ("is it true that…?"), or
- Mark them unverified in the definition, or
- Leave them out.
Every claim in the definition carries a provenance marker so a proposal never renders identically to a decision:
[PO]— the PO stated or explicitly confirmed it.[spark]— it came from the intake source.[proposed]— you generated it; the PO accepted the option but the content is yours.[unverified]— a factual claim about the world that nobody has checked (all market/novelty/prior-art claims are at least this).
The distinction to never blur: a direction the PO selected from your options is a real decision; a fact you supplied to justify it is not, until it's checked. When in doubt, mark it lower, not higher.
2. Frame the problem (zoom-out) — guided questions, proposed answers
Draw out the definition through a Socratic exchange: for each dimension, ask, propose a candidate answer, and let the PO confirm or adjust. Proposing candidates is exactly right (see Grounding & provenance) — just don't smuggle in unverifiable facts as if they were established (mark those [unverified] or ask). Offer options; don't assume. Move through:
- Users / audience — who is this for, and who is it not for?
- Problem / outcome — what problem, and what does success look like for the user?
- Why now — the trigger or opportunity.
- Constraints — technical, time, budget, compliance, existing systems.
- Success metrics — how we'll know it worked (leading + lagging where possible).
- Risks / unknowns — what could break the thesis; what we still don't know.
- Non-goals — explicitly out of scope, to keep the definition sharp.
Don't interrogate all seven in one dump — work them conversationally, a few at a time, folding the PO's answers back in. It's fine — often better — to leave an item explicitly unresolved rather than force an answer: any must-have section may carry "not established" with a note on what's needed to settle it (see §4). This applies especially to Success metrics, which POs frequently decline — record "not established (no baseline yet)", never a number you made up.
No research step. The skill fetches only PO-supplied sources (§1); it does not browse. So when a dimension turns on a fact you'd normally look up — "which segment is underserved?", "has anyone shipped this?" — you cannot answer it as fact. Say so, offer it as a question for the PO or a later research task, and mark any market/novelty claim [unverified]. Confidently reciting a competitive map from memory is the failure mode this rule exists to prevent.
3. Directions & trade-offs (zoom-in)
Propose 2–4 solution directions (as many as the situation needs, no padding). Note the object here is different from plan-backlog's framing: this is what the product is / which approach (e.g. rehab-adherence vs. general fitness; a novel core mechanic vs. a known one), not how to slice the work into a backlog — that stays downstream. Give each its trade-offs (cost, risk, time-to-value, reversibility). Recommend one with a reason, and wait for the PO to choose or refine. Ground the trade-offs the same way as everything else: option-generation is fine, but any supporting fact is [proposed]/[unverified] until the PO confirms it.
The flow is not forward-only: if, while assembling §4, the PO wants to revisit or withdraw the direction chosen here, go back and re-open §3 rather than editing around a decision that no longer holds. A definition whose Chosen direction was silently un-decided is worse than one that loops back.
4. Produce the definition (approval-gated)
Assemble a structured product definition / brief. Every line carries its provenance marker ([PO] / [spark] / [proposed] / [unverified], per Grounding & provenance) — this is what stops an approved doc from reading as sourced when it isn't. Any must-have section the PO didn't settle is recorded as "not established" with a note on what would settle it — never invented to avoid a gap.
Canonical template — must-have sections:
- Problem statement — one or two sentences.
- Target users — and non-users.
- Goals and Non-goals.
- Success metrics — or "not established" (POs often decline; that's a valid state, a fabricated number is not).
- Chosen direction — plus the alternatives considered and why this one.
- Key decisions — the calls made during framing, each with its rationale and who made it (a call the PO delegated to you is marked
[proposed], not rendered like one they made). - Risks / unknowns — what the definition rests on that could be wrong, including every
[unverified]claim that survived into the doc. Must-have: this is the section that qualifies the confident ones, so it can't be optional. - Open questions — what's still undecided.
Optional sections when the material warrants: constraints, why-now, dependencies, a rough phasing sketch.
Approval gate (mandatory). Present the full definition and wait for explicit approval; the PO may edit anything. Before asking for the OK, ask one grounding question explicitly: "what in here rests on something nobody has verified?" — walk the [unverified]/[proposed] claims so the PO approves them knowing what's assumed, not just what's asserted. Nothing is finalized — and nothing downstream (no backlog, no tickets) happens here — until they approve.
Rich review surface (when the host supports artifacts — e.g. Claude Code / claude.ai). Render the definition as a navigable artifact (collapsible sections, a table of contents, easy to scan and drill into) as the review aid — reusing the same doctrine as plan-backlog's review artifact. Load the artifact-design skill before building it. The artifact is a review aid, not the gate: still print a concise summary and ask for approval in the conversation. On hosts without artifacts (Codex / Cursor / Copilot), present the definition as Markdown.
Where it lives (v1). The definition lives in the conversation (and the artifact). If the PO wants it persisted, offer to save it as a Markdown file in the repo (e.g. docs/definitions/<slug>.md) — only on request. No Confluence/whiteboard write-back in v1.
5. Handoff to plan-backlog
On approval, hand the definition to plan-backlog as its input: "the definition is ready — run /plan-backlog on it to turn it into a backlog." Because the problem is now defined, plan-backlog's framing step is lighter — it confirms the framing rather than re-deriving it. That completes the loop define → backlog → ticket → PR.
Readiness — say it plainly. A definition can be approved without being backlog-ready: if core must-haves are still "not established", or the doc leans on [unverified] claims, tell the PO that at handoff rather than passing it downstream as settled. plan-backlog's lighter framing trusts a grounded definition; a thin one should either loop back here to firm up, or be handed on with the gaps flagged so plan-backlog re-derives instead of confirming. Don't let approval alone stand in for readiness.
Persisting for a later session. If the backlog won't be built in the same sitting, the definition needs a carrier — offer to save it to docs/definitions/<slug>.md so plan-backlog can read it as an input file later. Without that, an in-conversation-only definition can't reach a future plan-backlog run.
Guardrails
- Facilitate, never decide: ask, offer alternatives, and let the PO make the call at each step — don't hand them a finished definition and call it done.
- Grounding over fluency (see Grounding & provenance): generating options is the job; asserting unverifiable facts as established is not. Mark every claim's provenance, keep
[unverified]market/novelty claims out of the load-bearing prose (or clearly flagged), and prefer a marked gap to an invented answer. A thin spark is drawn out with questions, not filled in for the PO. - No backlog, no tickets here — that's
plan-backlog. This step stops at an approved definition. - Approval gate before the definition is finalized.
- Watch for secrets/PII in the source material; don't copy them into the definition.
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
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.

