hermes

Write a PRD

Writes a product requirements document that an engineering team can build from, with the problem, goals, success metrics, testable requirements, edge cases and open questions.

context

A PRD aligns product, design and engineering on what to build and why, before the expensive work starts. Engineers use it to find edge cases and push back on scope; testers use it to know what "done" means. It is only as trustworthy as its evidence, so gaps must be visible rather than papered over.

task

Write a PRD for: Only if [CONTEXT] is given: Material to work from:

  1. Problem: who has it, when it happens, what they do today, and the evidence that it matters, using only the material given.
  2. Goals and non-goals: the outcomes this release must achieve, and things it deliberately will not do.
  3. Success metrics: for each, the metric, its current baseline, the target, and how it will be measured. Include one guardrail metric that must not get worse.
  4. Users and use cases: the specific user types and the main scenarios, written as short flows.
  5. Requirements: numbered, each one testable, each with a priority (must, should, could). Add non-functional requirements (performance, security, privacy, accessibility, localisation) only where they apply.
  6. Edge cases: empty states, errors, permissions and roles, limits, existing users and data, concurrent edits.
  7. Risks and dependencies, a rollout plan (flag, beta group, migration of existing data, how to roll back), and open questions with an owner where one is known.

For a one-pager, keep Problem, Goals and non-goals, Success metrics, the must-have requirements and Open questions, in under 500 words.

constraints
  • Describe what and why, not how. Mention implementation only when it is a real constraint.
  • Never invent research, user quotes, numbers, dates or names. Write TODO: … with what is needed, and repeat important gaps under Open questions.
  • Mark assumptions with "Assumption:" so reviewers can challenge them.
  • Use plain language a new engineer understands. No marketing tone.
  • Separate what you verified from what you inferred. Mark inferences as such.
  • When you do not know, say "I don't know" once and state what would settle it.
output format

[Feature name]

A status line: Draft · Owner: [TODO unless given] · Last updated: [TODO unless known]. Then the sections in this order, each as ##: Problem, Goals and non-goals, Success metrics (as a table: metric, baseline, target, how measured), Users and use cases, Requirements (as a table: id, requirement, priority), Edge cases, Risks and dependencies, Rollout, Open questions. For a one-pager, include only the sections named in the task.

1 required value still a placeholder; the assistant will ask for it.

details

kind
Prompt: a task you run by name to get one finished thing back
domain
Software engineering
category
Product (engineering)
level
Intermediate
made for
Product manager, Founder / business owner, Tech lead / staff engineer
risk
read-only
version
v1.0.0 · experimental
reviewed
2026-10-02
works in
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install write-prd --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill write-prd -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the software-engineering plugin
claude plugin install hodios-software-engineering@hodios

The plugin brings every entry in this domain at once.

PersonaProduct (engineering)

Product manager

Acts as a product manager who starts from the user problem and evidence, writes requirements engineers can build and test, and cuts scope to the smallest valuable release.

product-manager
PromptProduct (engineering)

Write user stories

Turns a feature description into small, independent user stories for specific users, each with acceptance criteria, and splits stories that are too big. Use when preparing a backlog.

write-user-stories
PromptPlanning

Break down an epic

Splits an epic into small, ordered vertical slices that each deliver testable value, with acceptance checks, dependencies and spikes. Use when an epic or large feature is too big to start.

break-down-epic
PromptProduct (engineering)

Write acceptance criteria

Writes testable acceptance criteria for a user story or ticket, covering the main path, alternatives, validation, boundaries, permissions and empty states. Use before a story enters development.

write-acceptance-criteria
PromptProduct (engineering)

Define non-functional requirements

Writes measurable non-functional requirements for a feature, covering availability, latency, throughput, security, privacy, accessibility and operability, each with a target, verification and cost.

define-non-functional-requirements
PromptProduct (engineering)

Refine a backlog ticket

Turns a vague ticket into a ready-for-development one with the user problem, scope and non-scope, open questions, acceptance criteria and a definition-of-ready check. Use in backlog refinement.

refine-backlog-ticket