Synthesize the CURRENT conversation into a Product Requirements Document and save it to the project's plans location — no fresh interview, it crystallizes what's already been discussed. Quizzes only about which modules the change touches (a design-first nudge) before writing. TRIGGER when: the user says "turn this into a PRD", "write this up", "document what we decided", or wants a durable doc out of a discussion that's already happened. DO NOT TRIGGER when: requirements are still unclear and...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add mik2win/foureyes --skill to-prd --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of To Prd?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mik2win-to-prd)More formats (shields.io, HTML) on the badges page.
---
name: to-prd
disable-model-invocation: true
description: >-
Synthesize the CURRENT conversation into a Product Requirements Document and save it to the
project's plans location — no fresh interview, it crystallizes what's already been discussed.
Quizzes only about which modules the change touches (a design-first nudge) before writing.
TRIGGER when: the user says "turn this into a PRD", "write this up", "document what we decided",
or wants a durable doc out of a discussion that's already happened.
DO NOT TRIGGER when: requirements are still unclear and need an interview (use /analyst), or the
user wants to break an existing plan into work items (use /to-issues).
allowed-tools: Read, Grep, Glob, Write, AskUserQuestion, Agent
effort: medium
---
# To PRD: $ARGUMENTS
Turn what you and the user have **already discussed** into a clean PRD. This is a *synthesis* skill,
not an interview — the thinking happened in the conversation (often a `/grill` or `/analyst`
session); your job is to capture it precisely. The one thing you do ask about is **which modules
the change touches**, because naming the design surface up front is what keeps a PRD from becoming
a wish-list that ignores the codebase.
`$ARGUMENTS` may point at a source (a brief/spec path, an issue file) to fold in; otherwise work
from the conversation context.
This skill carries only invariant logic. The plans location and naming convention come from
`.claude/PROJECT.md`; the domain vocabulary comes from `CONTEXT.md`.
---
## Phase 0 — Load profile
1. Read `.claude/PROJECT.md` — **Plans location** + naming convention (the PRD is a plan),
**Architecture** (module map, for the modules-touched question), **Domain** (roles/vocabulary).
If missing or `TEMPLATE`, fall back to the root `CLAUDE.md` (always in context) when it carries
the plans location and architecture — note you're running without a kit profile; **STOP** →
`/bootstrap` first only if *neither* has them.
2. If `CONTEXT.md` exists, read it and write the PRD in its **ubiquitous language**.
3. Read any source passed in `$ARGUMENTS` (brief, spec, issue) and fold it in.
---
## Phase 1 — Gather from context (no interview)
Pull the substance from the conversation: the problem, the decisions already made, the scope
agreed, constraints, and any open questions raised. Don't re-ask what's already settled — if the
conversation answered it, capture it. If the conversation is thin and the PRD would be mostly
guesswork, **stop and route to `/analyst`** (the interview skill) instead of inventing requirements.
---
## Phase 2 — The one quiz: modules touched
Before writing, ask the user which **modules / layers** this change touches (offer your best guess
from `PROJECT.md` → Architecture and the conversation, via `AskUserQuestion`). Naming the design
surface now:
- grounds the PRD in the real codebase,
- surfaces ripple effects and reuse early,
- and flags if the change is bigger than the discussion assumed.
If a touched module is unfamiliar, Grep/Glob to confirm it exists and what it does — cite `path`.
---
## Phase 3 — Write the PRD
Write to the **plans location from `PROJECT.md`** using its naming convention (e.g.
`<plans>/<YYYY-MM-DD>-<slug>-prd.md`; prefix a ticket id if the conversation had one). For a longer
PRD, delegate the drafting to the **`docs-writer`** agent, then review it. Structure:
```markdown
# <Feature> — PRD
- **Date:** <today> · **Status:** Draft · **Source:** <conversation | brief path>
## Problem & value
<the pain/gap, who it's for, why now — from the discussion>
## Goals / non-goals
- **Goals:** <what success looks like>
- **Non-goals:** <explicitly out of scope>
## Requirements
- Numbered user stories (US-1, US-2…) and behaviour, in the domain vocabulary.
## Modules touched
- `<module/layer per PROJECT.md>` — <what changes there> (from Phase 2)
## Constraints & assumptions
<decisions taken as given, deadlines, dependencies>
## Open questions
<unresolved forks that still affect scope or design>
## Acceptance criteria
<verifiable, each traceable to a user story (AC-n → US-n)>
```
Keep it factual and traceable — number user stories, reference them from acceptance criteria.
---
## Phase 4 — Route onward
| Next need | Route |
|-----------|-------|
| Break the PRD into independently-grabbable work items | **`/to-issues <prd-path>`** |
| Codebase-readiness / impact analysis before building | **`/prepare <prd-path>`** |
| Requirements still have real gaps | **`/analyst`** (proper interview) |
State the recommendation and the PRD path.
---
## Hard rules
- **Synthesize, don't interview.** The only question you ask is *modules touched*. Everything else
comes from the conversation — if it isn't there, route to `/analyst`, don't invent it.
- **Ground in the codebase.** Modules-touched must reference real paths from `PROJECT.md` →
Architecture; confirm unfamiliar ones.
- **Domain vocabulary.** Write in the `CONTEXT.md` language.
- **Facts from PROJECT.md.** Plans location and naming convention come from the profile.
## See also
- **Before:** `/grill` or `/analyst` (where the discussion happens). **`/discover`** brief as a source.
- **After:** `/to-issues` (split into work items) or `/prepare` (plan the build).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!