prd
Create a formal PRD from Lark notes or user description
SKILL.mdskills/prd/SKILL.md
GitHubPRD Creator
Creates a formal Product Requirements Document from user input (pasted notes, verbal description, or a Lark doc URL read via the Lark CLI — read-only).
Before drafting, read references/conventions.md for the required frontmatter, required sections, naming rules, and the split between main PRD and service PRDs.
Commands
/prd create <slug>
Create a new PRD for a feature.
Steps:
Activate phase. Flip
features[active_feature].phase_statusto"inprogress"in.workflow-state.json.Enter plan mode (MANDATORY). Call your harness's plan mode before reading any file or forming conclusions:
- Claude Code:
EnterPlanMode - Cursor: plan mode
- OpenCode: plan mode
- Amp: no plan mode — announce an explicit "research phase" and stay read-only until Step 9.
- Claude Code:
Verify workflow state is in
prd_creationphase. Ifidle, route the user back to/workflow start <slug>so the brainstorming phase runs first.Read
features[active_feature].brainstorming.summaryand.brainstorming.questions— these are the primary inputs to the PRD. Also readfeatures[active_feature].initial_request.Ask user for additional input if needed (use your ask tool — Claude Code:
AskUserQuestion; Cursor: ask tool; OpenCode: question tool; Amp: ask as plain text and wait):- "Anything to add beyond the brainstorming summary? (e.g., Lark notes, doc URL, extra constraints)"
- If Lark CLI is connected: "Or provide a Lark doc URL"
If a Lark URL provided and the Lark CLI is connected, fetch the doc through the CLI (read-only).
Estimate PRD size. If > ~8000 tokens, propose split (MANDATORY). Rough token count ≈ char_count / 3.5. If the source material is large enough that the drafted PRD would exceed ~8000 tokens, use your ask tool to propose splitting into priority-ordered sub-PRDs:
- P0 — must-have, first release
- P1 — important, follows P0
- P2 — nice-to-have, last
Each sub-PRD becomes its own feature (own branch, own PRs). They share a parent feature slug:
<slug>-p0,<slug>-p1,<slug>-p2. Recordfeatures[<parent>].sub_featureson the parent entry andfeatures[<sub>].parent_featureon each sub. User confirms split boundaries (which sections go in which sub-PRD) before creation. Each sub-PRD goes through the full workflow independently.Research current system state (MANDATORY — BEFORE DRAFTING). Devs do this naturally, non-devs don't. Skipping produces PRDs that ignore existing behavior. Note: brainstorming already captured
service_state_snapshots— start there, then deepen as needed.- Read relevant service code (
api/app/,web/src/,ai-service/app/,data-service/app/) - Read existing PRDs in
docs/prd/— is there a related or overlapping feature? - Check recent commits on base branches (
develop/development) in affected areas - Summarize findings to the user: "Here's what already exists that this PRD must reconcile with: [list]"
- Read relevant service code (
Challenge assumptions (MANDATORY). Identify at least 3 aspects that are ambiguous, underspecified, or conflict with existing system behavior. Ask about each via your ask tool. Prefer multiple small questions.
Relentless clarifying questions (MANDATORY). Surface EVERY remaining ambiguity. Do NOT draft until ALL are answered. Also ask the baseline:
- Which services does this touch?
- Who are the primary users?
- Technical constraints?
- "Done" criteria?
Wait for user answers.
Exit plan mode. Read template from
.agentic-workflows/templates/prd/main-prd.template.md.Generate the PRD. Include a
## Brainstorming Outcomesection pulling in the brainstorming summary verbatim plus a bullet list of decided questions/answers. Also include "Existing System Reconciliation" and "Assumptions and Clarifications" subsections.Present the draft to user for review.
On approval, write to
docs/prd/<slug>.md.Update
.workflow-state.jsonwithprd_path(andparent_feature/sub_featuresif split). Flipphase_statusto"completed". Do NOT auto-advance — tell the user to run/workflow nextto advance to PRD splitting.
/prd edit
Edit the current feature's PRD.
Steps:
- Read current PRD from path in
.workflow-state.json - Ask user what to change (via your ask tool)
- Present proposed changes
- On approval, write changes