From hyperloop
Multi-phase PRD generator. Outputs plans/<branch>-prd.md ready for /hyperteam.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hyperloop:prdThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create detailed Product Requirements Documents that are clear, actionable, and suitable for implementation by junior
Create detailed Product Requirements Documents that are clear, actionable, and suitable for implementation by junior developers or AI agents.
Your primary job is to critique the requirements you receive — not simply agree with them. The user is paying for your judgement, not your compliance. An agent that rubber-stamps every input is worse than useless: it lets conflicting requirements slip through and causes implementing agents to get stuck with irreconcilable constraints.
Before accepting any requirement at face value, actively search for and surface:
CLAUDE.md, conflict with the current domain model in the project source tree, or violate conventions in
CONTRIBUTING.md. Read CLAUDE.md, scan docs/adrs/, and search the project source directories (as identified in
CLAUDE.md) before accepting any requirement.
(Full ADR scan is intentional here: PRD work is design work and warrants full architectural context.)If ambiguities are hiding conflicts, interview the user instead with clarifying questions via AskUserQuestion to
disambiguate and reveal the missing requirements and/or new conflicts.
When conflicts are detected, push back — use AskUserQuestion to clearly state the conflict, why it matters, and
propose concrete alternatives, blocking until the user resolves it.
Do not proceed to the next phase until all ambiguities and conflicts are resolved.
Seedling philosophy: A seedling PRD or external document source such as a GitHub or JIRA issue is the operator's intent distilled into a draft document — it gives the skill a head start with more details. But a seedling is not sacred: challenge them just as you would any other input.
$ARGUMENTS (the text typed after /prd). If empty, use AskUserQuestion to gather input.$ARGUMENTS is a path to an existing .md file → seedling mode (use the file as a baseline draft).<slug> as a short, lowercase-kebab-case label:
account-rollover).<branch> as feat-<slug> (e.g., feat-account-rollover).$ARGUMENTS for all URLs matching the pattern https://github.com/{owner}/{repo}/issues/{N} (where
{N} is a positive integer).<source_issues>, a list of owner/repo#N references
(e.g., ["samrom3/claude-hyper-plugs#13"]).<source_issues> to null — the metadata table will be omitted from the PRD.<source_issues>, immediately run:
gh issue edit <N> --repo <owner>/<repo> --add-assignee @me
If this command fails (e.g., unauthenticated gh, insufficient permissions), print a visible warning line
(⚠ Warning: could not assign issue — <error>) but do NOT block PRD creation.git fetch origin main to pull latest remote state.git log main..origin/main --oneline — if any commits are listed, main is behind; use AskUserQuestion to
surface this to the user and stop until they confirm how to proceed (typically git merge origin/main or
git rebase origin/main).main is up to date with origin/main.git checkout -B <branch> main
(If the branch already exists, -B resets it to main — this is intentional when re-running /prd to avoid
inheriting stale state.)
After running, verify with git branch --show-current — the output must equal <branch>. If it doesn't, use
AskUserQuestion to surface the error and stop.plans/ directory if it does not exist:
mkdir -p plans
plans/<branch>:
ln -sf ~/.claude/tasks/<branch> plans/<branch>
After running, verify the symlink:
plans/<branch> exists and is a symlink: test -L plans/<branch>readlink plans/<branch> returns a path ending in .claude/tasks/<branch>.AskUserQuestion to surface the error and stop — do not proceed to Phase 1.If plans/<branch>-prd.md already exists, move it to plans/archive/<branch>-prd.md before continuing.
Before generating anything: Read CLAUDE.md, scan docs/adrs/, and search the project source directories (as
identified in CLAUDE.md) for existing code related to the feature. Identify any conflicts between what is being
requested and what already exists. This research is mandatory in both modes. (Full ADR scan is intentional: PRD work
is design work — the author is actively making architectural decisions and full ADR context is worth the token cost.)
Branch on input mode:
Seedling mode:
AskUserQuestion to ask 2–3 targeted clarifying questions focused on conflicts, gaps, and ambiguities (not
repeating what the seedling already says).Text description mode:
AskUserQuestion to ask 3–5 clarifying questions (focus on: problem/goal, core functionality,
scope/boundaries, success criteria). At least one question must probe potential conflicts with existing
functionality uncovered in step 2.The generated PRD must follow the annotated example in references/example-prd.md and include Design
Considerations and Open Questions.
Developer stories should follow the scaffold-first / implement-second pattern for any new or changed API surface:
the first story creates typed stubs (interfaces, API contracts) with NotImplementedError bodies and skeleton tests;
subsequent stories implement the business logic against those stable contracts via TDD.
Save to plans/<branch>-prd.md.
If <source_issues> is non-null and non-empty, write a metadata table immediately after the H1 heading
and before section ## 1., with one | Source Issue | row per issue, using exactly this format:
# <Title>
| Field | Value |
| ------------ | ------------------------------ |
| Source Issue | owner/repo#N |
| Source Issue | owner/repo#M |
## 1. Introduction/Overview
For a single issue, the table has exactly one Source Issue row.
If <source_issues> is null or empty, omit the metadata table entirely — the H1 heading is followed directly
by ## 1. Introduction/Overview with no table in between.
Reading note for agents and future readers: The metadata table, if present, appears immediately after the H1 heading and before the first
##section heading. Parsers should locate the H1, then scan forward collecting all| Source Issue |rows before encountering a##line; if none are found,source_issuesisnull.
AskUserQuestion to ask a targeted series of design questions.CLAUDE.md patterns. If a design
choice contradicts an existing decision, surface this as a conflict requiring resolution (potentially via a new ADR
that supersedes the old one).plans/<branch>-prd.md with the refined design considerations and updated open questions.AskUserQuestion to ask the user all remaining Open Questions.plans/<branch>-prd.md.Important: Do NOT start implementing. Just create the PRD.
<branch> chosen (feat-<slug>), main synced from origin, branch checked out and verified,
plans/ directory exists, symlink plans/<branch> → ~/.claude/tasks/<branch> created and validated$ARGUMENTS: <source_issues> set to ["owner/repo#N", ...] if found, null otherwise;
for each issue, gh issue edit assignment attempted (warning printed on failure, PRD creation not blocked)CLAUDE.md, docs/adrs/, and project source directories searched for conflicts before generatingreferences/example-prd.md), including Design Considerations and Open
Questions<source_issues> is non-null: metadata table present immediately after H1 heading and before ## 1., one row per issue; if null:
no metadata table in PRDCLAUDE.md patternsFR-###) and unambiguousplans/<branch>-prd.md is archived to plans/archive/npx claudepluginhub samrom3/claude-hyper-plugs --plugin hyperloopGenerates a PRD from the current conversation context and codebase understanding, then publishes it to the project's issue tracker (GitHub, GitLab, or local) after user confirmation.
Generates a structured Product Requirements Document (PRD) from feature descriptions. Analyzes codebase (package.json, configs, README), processes references, asks clarifying questions, saves to .plans/. Use for new feature planning.