sdd-prd
Create or revise the problem-first SDD Composy PRD (tasks/prd-SLUG/prd.md) with stable RF/CA identifiers, stopping at the human approval gate. Use when a user problem needs a product contract — 'criar
SKILL.mdplugins/sdd-composy/skills/sdd-prd/SKILL.md
GitHubSDD PRD
Create or revise the human product contract at tasks/prd-<slug>/prd.md: problem-first, with
stable RF-NNN requirements and CA-NNN acceptance criteria, stopping at an explicit human
approval gate. This skill interprets product evidence and makes no architecture decisions.
Inputs
- A user problem is required: who experiences it, its impact, and the available evidence.
- A short stable slug names the artifact directory. Reuse the existing slug when revising; never silently create a second contract.
- Codebase and domain context are optional evidence; include in
sourcesonly what was consumed. - The configured OKF actor identifier and an ISO 8601 timestamp with explicit UTC offset.
If the problem, intended outcomes, or product boundaries cannot be stated without guessing, ask focused questions before writing. Technical uncertainty never becomes a chosen solution in the PRD.
Procedure
- Run
scripts/sdd_language.py <repo-root>and use the persisted language for every human-facing sentence; onnot_initialized, stop and returnnext_action: run_init(rules:references/language.md). - Resolve
tasks/prd-<slug>/prd.md. Read an existing PRD before revising it; preserve its identifiers and useful human content; do not touch other artifacts in the directory. - Read
templates/prd.mdand render it as an OKF v0.2PRD: keep its frontmatter keys and section headings exactly (translate prose only), complete every section, and remove unused optional source entries. Never write a PRD from memory without the template. - Assign stable
RF-NNNandCA-NNNidentifiers; every CA names its RF. Never renumber, reuse, or silently replace an assigned ID; mark obsolete entries explicitly. - Keep solution design out: constraints may be recorded, but components, libraries, interfaces, data models, and deployment belong to the TechSpec.
- Write only
tasks/prd-<slug>/prd.md. A new or revised document starts atDRAFTwithhuman_approval: PENDINGand no invented approval event; artifact existence never implies approval. - Present the draft and its unresolved questions to a human. Do not route stories, TechSpec, tasks, or implementation while approval is pending.
- Only after a human explicitly approves this exact PRD: set
human_approval: APPROVED,lifecycle.status: APPROVED, and append averifiedevent with the human actor inbyand the approval timestamp inat; the generating agent is never the approving human. On rejection set both fields toREJECTED, record the human event, and stop downstream work until the PRD is revised and approved.
Read when
references/product.md— writing a new PRD or changing its structure, or a content or gate question is not answered above.references/workflow.md("Human-contract lifecycle vocabulary") — recording an approval or rejection.references/okf.md— a frontmatter question the template does not answer.
Output
Return the PRD path, slug, consumed sources, generated actor and timestamp, lifecycle status,
human_approval value, unresolved questions, and the next permitted stage; when the gate is not
approved, state that downstream generation remains blocked.
Safety: Do not commit, push, or publish. Do not read or expose .env, credentials, tokens, private keys, certificates, or fleet environment files. Full contract: references/safety.md.