writing-prds
Use when the user wants to draft, scope, or formalize a feature — "write a PRD for X", "let's plan X", "scope this out", "what should X do", or when a tracker issue needs to be fleshed out before an agent plans it. Writes a PRD that a planning agent can consume in one shot without re-elicitation. Do NOT use for code edits, debugging, or PR reviews.
What this skill does
# Writing PRDs A PRD is the input contract for the planning phase. A good PRD lets a planning agent produce a usable plan in one shot instead of burning turns asking "what did you mean by X?". A bad PRD causes planner thrash, review rejection, and verification failures downstream. This skill is platform-agnostic. It assumes a plan → review → verify → ship flow where a PRD is written first, a planner decomposes it into steps, and a verifier checks the result against the PRD's acceptance criteria. Adapt the storage and field mechanics below to whatever tracker you use. ## Storage Location **Prefer making the tracker issue body the PRD.** One document per work item, one location: the body of an issue in the project's tracker (a GitHub issue is the recommended default). Avoid scattering PRDs across local sidecar files that drift out of sync the moment work starts. - **Create** a PRD by creating an issue whose body is clean PRD markdown. - **Edit** a PRD by editing that issue's body. - **Version history** is the tracker's edit history — no manual `updated` field. - **The planner reads the issue body verbatim.** What you write in the body is exactly what the planning agent sees, so it must stand alone. If there is no connected tracker, decide on the single canonical location for the PRD before writing — do not draft into a throwaway scratch file that nobody will find again. ## Native Tracker Metadata Do not put YAML frontmatter at the top of issue bodies. Trackers render issue-body frontmatter as visible noise and already have native fields for this metadata. Use native tracker / project-board fields instead: - **Issue type:** `Feature`, `Bug`, or `Task`. - **Status:** `Todo`, `In Progress`, `Done`, or `On hold`. - **Priority:** `P0`, `P1`, `P2`, or `P3`. - **Complexity:** `Low`, `Medium`, or `High`. - **Blast radius:** `Contained`, `Cross-package`, `Cross-app`, or `Infra`. Rules: - The PRD body starts with `# PRD: <name>` and contains only human-readable PRD content. - Put card/list summaries in the issue title, project fields, or a short Executive Summary, not in hidden metadata. - If you cannot estimate complexity, set the field to `Medium` and explain why in Risks & Open Questions. - `Draft` is workflow state, not body text. Keep draft PRDs off the runnable board path through status fields, not by editing the body. ## Issue Title Style The issue title is what the board shows most of the time. Keep it short. - Prefer **4-7 words** when possible. - Prefer an **imperative verb + object** shape: `Add pipeline checkpoints`, `Track CI blockers on issues`, `Expose model selectors in settings`. - Put the detail in the Executive Summary and body, not in the title. - Avoid titles chained together with `and` / `while` / `during` unless the feature is truly one inseparable unit. - Avoid titles that restate the full implementation loop. The title names the work item; the PRD explains it. - Keep the `# PRD:` name aligned with the final issue title's slugified form. If you shorten the title, shorten the PRD heading too. Bad: - `Open draft PR during execution and ingest PR feedback into stabilization loop` - `Treat CI failures as blocker state on GitHub issue tasks` Better: - `Add draft PR feedback loop` - `Track CI blockers on issues` ## Required Sections Every PRD must have these sections, in this order. Missing sections fail quality gate. ```markdown # PRD: <name> ## Executive Summary <2–4 sentences. What is this feature, why now, who wins.> ## Problem Statement <The concrete pain. Reference real incidents, real users, real metrics where possible. Avoid "users might want..." — if you can't name the user, you don't have a problem yet.> ## Goals - <measurable, verifiable goal> - <measurable, verifiable goal> ## Non-Goals - <thing this explicitly does NOT do — the more you list, the less scope creep downstream> ## User Stories - As a <role>, I want <capability> so that <outcome>. - Each story ends with "**Acceptance:**" followed by 1–3 concrete checks. ## Functional Requirements <Numbered list. Each item must be verifiable by reading code or running it. NO implementation details — "the system must do X", not "use Zustand to do X".> ## Non-Functional Requirements <Performance, accessibility, error-handling, offline, observability. Only list the ones that actually matter for this feature.> ## Success Criteria <The bar the verification phase will check against. Every bullet here becomes an acceptance criterion the verifier asserts on. Write them like test assertions.> ## Out of Scope <Be ruthless. Future-proofs the review phase against scope creep.> ## Dependencies <Other PRDs, packages, external APIs, feature flags. Reference by path or URL.> ## Verification Plan <How the verifier will know this shipped correctly. `tests`: list the test files/suites that must exist and pass. `manual`: list the manual QA steps a human will run post-merge. `both`: both sections. The clearer this section, the fewer verification retries you burn.> ## Risks & Open Questions <Unknowns, edge cases, things that could kill the plan mid-execution. Open questions get tracked here until answered, then deleted.> ``` ## Mapping PRD Sections to the Plan A PRD is read by the planning agent. Every section has a downstream consumer: | PRD section | Feeds | Consumer | |---|---|---| | Executive Summary | Plan objective | Plan display, PR title, board card | | Goals + Functional Requirements | Plan steps | Planner decomposition | | Success Criteria | Acceptance criteria | Verification phase | | Out of Scope | Plan out-of-scope list | Review phase (rejects scope creep) | | Complexity field | Estimated complexity | Review rubric, retry budget | | Verification Plan | Verification prompt input | Verification phase | | Non-Goals + Out of Scope | Review gate | Reviewer rejects patches that violate these | **Do not write sections that describe files to change, function names, or implementation choices.** Those belong in the plan, not the PRD. If you can't resist writing pseudo-code, put it under "Risks & Open Questions" as "I suspect we'll need to touch X" — not as a requirement. ## Quality Gates Before marking a PRD ready for a planner to consume, every one of these must be true: - [ ] No placeholder text (`TODO`, `TBD`, `<fill this in>`) remains in any section. - [ ] `Goals` has at least one measurable bullet. - [ ] `Success Criteria` has at least one bullet, and every bullet is **verifiable without judgement** — it either passes or fails. "Feels fast" is not verifiable. "p95 latency < 300ms on the issues query" is. - [ ] `Out of Scope` has at least one bullet. Empty `Out of Scope` is a tell that the author didn't scope the feature. - [ ] `User Stories` has at least one story with explicit Acceptance bullets. - [ ] Every external dependency in `Dependencies` is named (package, PRD path, or URL), not described vaguely. - [ ] `Verification Plan` names either test file paths, suite names, or concrete manual steps — not "write some tests". If any gate fails, keep it in draft/on-hold workflow state and do not mark it ready to plan. ## Workflow ### When the user says "write a PRD for X" 1. **Confirm where the PRD will live.** If using a tracker, confirm the target repo/project. If nothing is connected, agree on the single canonical location first — there must be exactly one. 2. **Do not start writing immediately.** Run a short elicitation pass first — you need answers before section-filling is meaningful: - What problem does this solve, and for whom specifically? - What does success look like — how would we measure it? - What is explicitly out of scope? - What's the complexity gut feel (low/medium/high) and why? - Any hard constraints — deadlines, other projects in flight, package boundaries? 3. **Check for an existing issue.** If using GitHub, run `gh issue list --search "<keywords>" --state all` in the target repo. If a matching issue already exists,
Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.