skills/to-prd/SKILL.md
Synthesise a PRD from grill-me / research context, write docs/prd/<slug>.md, publish a GitHub issue with prd + state:ready-for-agent + feature:<slug>. Halt after publish — do not invoke fanout.
npx skillsauth add roborew/opencode to-prdInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Publish a human-reviewable PRD before vertical slicing. This closes the gap where local .plan artifacts are not the product record.
gh CLI authenticated (gh auth status).docs/prd/ exists or will be created).docs/agents/repos.md must list every target implementation repo with application_role, agent_owner, and capabilities. If empty or incomplete, run setup-project or update the registry via scribe before drafting PRD tickets..research/<slug>.md from the research skill — load and cite in Linked artifacts.CONTEXT.md for product vocabulary (terms only — repo topology lives in docs/agents/repos.md).docs/agents/repos.md. Present a summary table: repo, application_role, key capabilities, non_goals. Ask: "Is this architecture correct for this feature?" If repos: is empty or a needed repo is missing, stop and collect roles/capabilities from the user (via scribe update to docs/agents/repos.md) before continuing.<slug>, and any user/stakeholder notes from the session.skills/to-prd/templates/prd.md — all sections must be present (use TBD only where the human must fill later; prefer concrete content from the session). Include Architecture confirmation referencing the registry.repo, capability (from that repo's registry entry), title, owner (match registry agent_owner unless justified), and acceptance as product outcomes (not file paths or shell commands). Do not put test_commands or commit_message in PRD tickets — implementation issue-expand discovers those from the codebase. Do not assign work by inferring backend/frontend from repo names.tickets: must stay indented 4 spaces under each - id: item. Quote title when it contains :. After composing, validate with python3 bin/lib/validate_prd_frontmatter.py docs/prd/<slug>.md — do not invoke scribe until it exits 0.scribe to write docs/prd/<slug>.md with the full markdown (verbatim template structure including frontmatter).bin/publish-prd-issue (not raw gh issue create):
bin/publish-prd-issue <slug> "[PRD] <slug>: <one-line summary>" /path/to/body.md
skills/to-prd/templates/prd-issue.md filled with the same sections (or link to docs/prd/<slug>.md path in repo + paste summary).fanout, orchestrate, or write .plan artifacts from this skill.docs/prd/*.md and docs/agents/repos.md.docs/agents/repos.md.docs/prd/ is missing, scribe creates the directory by writing the file path.If state:ready-for-agent does not exist, use the canonical state label from docs/agents/triage-labels.md for "AFK agent can pick up" and note the substitution in the reply.
tools
AI-powered code review using CodeRabbit CLI. Use only on explicit user request or when parent passes execution_mode orchestrate_coderabbit_gate. Do not run during orchestrated stage/issue work.
tools
Cross-repo companion to to-prd: after PRD frontmatter is filled, run bin/fanout <slug> from this spec repo to create child GitHub issues (one per ticket or legacy slice).
tools
Issue state machine — transition GitHub issue labels per docs/agents/triage-labels.md. Batch helpers via lib/triage.sh.
development
Install OpenCode templates into one implementation repo path; optional legacy .plan/docs archive moves. Invoked only from setup-project via architect.