project-write-prd

Turn an idea into a product requirements doc (PRD) for a project

SKILL.md

GitHub

Goal

  • Given an idea, write docs/01-prd.md: what the product must and must not do
  • Do not design the solution and do not write code

Input

  • <IDEA>: an idea file (e.g., research/ideas/<name>.md) or a free-text description
  • <DOCS_DIR>: the project's docs/ dir, optional
    • If missing, use docs/ in the current dir

Workflow

Read the Idea

  • Read <IDEA> and the files it links to (papers, related ideas, existing code)
  • Read the existing docs in <DOCS_DIR>, if any, to avoid repeating them

Ask If the Idea Is Unclear

  • If the goal, users, or scope is not perfectly clear, do not write the PRD. Ask the user for clarification and wait for the answers
  • Do not guess a requirement to fill a section. Put each unresolved item in "Open Questions"

Write the PRD

  • Create <DOCS_DIR>/01-prd.md
  • Follow .claude/skills/project.rules.md section "Write a PRD" and the template .claude/templates/project_prd.template.md
  • Follow .claude/skills/markdown.rules.md and .claude/skills/text.rules.md
  • Point to the idea file and background instead of copying them

Update the Index

  • If <DOCS_DIR>/README.md exists, add a row for 01-prd.md, per .claude/skills/project.rules.md section "Write an Index in docs/README.md"

Conventions

  • Say in the PRD how it was generated, with this line right after the title:
    - Generated by `.claude/skills/project.write_prd/SKILL.md`
    

Constraints

  • Do not describe the solution. That is the job of architecture.write_design
  • Do not commit any change
  • Do not create a GitHub issue

Verification

  • Every requirement is an H3 ### `R<N>` (<short description>) and a test can check it
  • The non-goals are listed
  • Every open question is numbered
  • The PRD does not contain design or code
  • The row for 01-prd.md is in <DOCS_DIR>/README.md, if the file exists
  • The PRD says that it was generated by .claude/skills/project.write_prd/SKILL.md