Export a PRD
Input
the arguments: {slug} --json or {slug} --github or just {slug} (interactive).
Flow
STEP 0 — Language
Follow <plugin-root>/references/language.md (resolve lang from
.planning/config.json; ask only if unset).
STEP 1 — Load PRD
SLUG="<slug>" # first word of the arguments
PRD_DIR=".planning/prds/$SLUG"
[ -f "$PRD_DIR/PRD.md" ] && cat "$PRD_DIR/PRD.md" || { echo "PRD_NOT_FOUND"; ls .planning/prds/ 2>/dev/null; }
If PRD_NOT_FOUND → show the available slugs and STOP.
STEP 2 — Determine export type
If --json → generate/update prd.json
If --github → create GitHub issue
If neither → ask:
Export PRD "{slug}" as:
1. JSON file (.planning/prds/{slug}/prd.json)
2. GitHub issue
3. Both
Mode: JSON Export
Generate .planning/prds/{slug}/prd.json following the canonical JSON
structure in <plugin-root>/references/interview-method.md:
- Keys in English
- Values in the PRD language (as written)
- No empty fields
- No sections that don't appear in the PRD
Mode: GitHub Issue
One issue carrying the whole PRD. For a roadmap broken into issues with dependencies, use
/pwdev-prd:publish {slug} instead — say so once before continuing.
Preflight (read-only):
command -v gh >/dev/null || echo "NO_GH"
gh auth status >/dev/null 2>&1 || echo "NO_AUTH"
gh repo view --json nameWithOwner -q .nameWithOwner 2>/dev/null || echo "NO_REPO"
gh label list --limit 200 --json name -q '.[].name' 2>/dev/null | grep -Ex 'prd|documentation'
wc -c < .planning/prds/{slug}/PRD.md
NO_GH → show the install hint below and STOP.
NO_AUTH → tell the user to run ! gh auth login and STOP.
NO_REPO → ask for the target owner/repo (pass it as --repo).
- A label from
prd, documentation missing → offer to create it
(gh label create prd --color 5319E7 --description "Product requirements"), or publish
without it. Never create labels without a yes.
- Size over 60,000 bytes (GitHub rejects bodies over 65,536 characters) → the body becomes
the Summary, Objectives, Scope and FR titles, plus a pointer to the file in the repository.
Preview and confirm — always, even when --github was passed:
Create issue in {owner/repo}?
Title: PRD: {feature name}
Labels: {labels}
Body: {full PRD | summary, N bytes}
(y/n)
On yes:
gh issue create --repo "{owner/repo}" \
--title "PRD: {feature name}" \
--body-file .planning/prds/{slug}/PRD.md \
--label "prd" --label "documentation"
(--body-file a temporary summary file in the size-limited case; drop the --label flags
the user declined.)
If gh is not available:
⚠️ GitHub CLI (gh) not found.
Install: https://cli.github.com/
Or copy the PRD from: .planning/prds/{slug}/PRD.md
STEP 3 — Summary
✅ PRD exported
Format: {JSON / GitHub Issue / Both}
Files: {list of files created/updated}
GitHub: {issue URL if created}
Prohibitions
- NEVER push to GitHub without asking
- NEVER modify the original PRD.md during export
Language: resolve lang per references/language.md before any human-facing output. Paths <plugin-root>/..., references/, scripts/, templates/ are relative to the plugin root; tool names, subagent dispatch and the command form to show the user depend on the runtime (references/runtime.md).