To prd
Ship code structurally with parallel agents
npx -y skills add rengwu/iudex --skill to-prdAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 29 days oldThe repository was created 29 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Turn the current conversation context into a PRD and write it to .context/prd/ so it can be sliced into iudex tickets. Use when the user wants to create a PRD from the current context.
SKILL.md
6.0 KB, as published. Nobody here has run it
This skill takes the current conversation context and codebase understanding and produces a PRD. Do NOT interview the user — just synthesize what you already know. (If the idea still needs hardening, run grill-me or grill-with-docs first.)
Where the PRD goes
PRDs are tracked project documentation, written to .context/prd/<slug>.md (kebab-case slug derived from the feature name, e.g. .context/prd/agent-spawn-templates.md). Create .context/prd/ lazily if it doesn't exist.
.context/ is committed (unlike the gitignored .iudex/), so the PRD travels into iudex ticket worktrees and an impl or QA agent can read the originating spec. Keep PRDs in the prd/ subfolder — every top-level *.md directly in .context/ is read as domain glossary, so a PRD must never sit at the top level.
Requirement format
Capture the hard requirements as requirement headings the iudex CLI can parse. This is what makes a PRD a browsable, trackable spec — surfaced by the GUI's Specifications view — instead of just prose. The rule is tiny:
- A requirement is a heading whose text is
REQ-<n>: <title>(any heading level). Write the number as a placeholder —### REQ-?: <title>— and assign real, file-scoped ids in the numbering pass (step 4). Never hand-number, and never reuse or renumber an existing id. - Optionally mark status with a
> status:line directly under the heading:active(the default — omit it),parked(deferred but intended), orout-of-scope(deliberately won't build). - Everything else is free prose. This section and the numbering pass (step 4) are the canonical definition of the format.
### REQ-?: Card payment via Stripe
Users complete purchase with a saved or new card; failures surface a retryable error.
### REQ-?: Gift receipts
> status: parked
Hide prices on a printable receipt.
Process
-
Explore the repo to understand the current state of the codebase, if you haven't already. Read the domain glossary — every top-level
*.mdin.context/— and use its vocabulary throughout the PRD. Respect any ADRs in.context/adr/that touch the area you're working in. -
Sketch out the seams at which you're going to test the feature. Existing seams should be preferred to new ones. Use the highest seam possible. If new seams are needed, propose them at the highest point you can.
Check with the user that these seams match their expectations.
-
Write the PRD using the template below to
.context/prd/<slug>.md. -
Number the requirement ids. Ids are scoped to this one file — other PRDs' numbers are irrelevant. Do this as a final pass, never while drafting: a. Find the highest id already in the file:
grep -oE 'REQ-[0-9]+' .context/prd/<slug>.md | grep -oE '[0-9]+' | sort -n | tail -1If there is no match, the highest is 0. b. Replace eachREQ-?placeholder with the next integer, in the order the placeholders appear in the file: the first gets highest+1, the next highest+2, and so on. c. Hard rules: NEVER renumber or reuse an id that already has a number, even if its requirement is out-of-scope or struck through. NEVER restart at 1 when editing an existing PRD. NEVER leave aREQ-?in the finished file. d. Verify:grep -c 'REQ-?' .context/prd/<slug>.mdmust print 0, andgrep -oE 'REQ-[0-9]+:' .context/prd/<slug>.md | sort | uniq -dmust print nothing (no duplicate ids). Fix and re-verify if either check fails. -
Tell the user the PRD path and that the next step is to-issues — it slices this PRD into independently-grabbable iudex tickets and registers them in the queue.
Problem Statement
The problem that the user is facing, from the user's perspective.
Solution
The solution to the problem, from the user's perspective.
Requirements
The hard requirements, each a ### REQ-?: heading (see "Requirement format" above). Be extensive — cover every aspect of the feature, one requirement per distinct capability. Frame each requirement's body as the user value it delivers ("As an <actor>, I want <capability>, so that <benefit>"), plus whatever pins down what "done" means. Mark anything deferred or cut with a > status: line rather than dropping it, so the spec records the decision instead of losing it.
REQ-?: Gift receipts
status: parked Hide prices on a printable receipt. Revisit post-launch.
</requirements-example>
Implementation Decisions
A list of implementation decisions that were made. This can include:
- The modules that will be built/modified
- The interfaces of those modules that will be modified
- Technical clarifications from the developer
- Architectural decisions
- Schema changes
- API contracts
- Specific interactions
Do NOT include specific file paths or code snippets. They may end up being outdated very quickly.
Exception: if a prototype produced a snippet that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape), inline it within the relevant decision and note briefly that it came from a prototype. Trim to the decision-rich parts — not a working demo, just the important bits.
Testing Decisions
A list of testing decisions that were made. Include:
- A description of what makes a good test (only test external behavior, not implementation details)
- Which modules will be tested
- Prior art for the tests (i.e. similar types of tests in the codebase)
Out of Scope
A description of the things that are out of scope for this PRD.
Further Notes
Any further notes about the feature.
</prd-template>