This skill generates a PRD using the current conversation context and codebase understanding. Do not interview the user; only synthesize what you already know.
The issue tracker and triage label vocabulary should have been provided to you; if not, run
/setup-matt-pocock-skills
.
Process
-
If you haven't explored the repo yet, explore it first to understand the current state of the codebase. Always use the project's domain glossary vocabulary in the PRD and comply with relevant ADRs.
-
Draft the main modules that need to be built or modified to complete the implementation. Proactively look for opportunities to extract deep modules and test them independently.
A Deep module (as opposed to a shallow module) encapsulates a large amount of functionality behind a simple, testable, and rarely changing interface.
Confirm with the user whether these modules meet expectations. Confirm with the user which modules they want tests written for.
- Write the PRD using the template below and publish it to the project issue tracker. Apply the triage label; no additional triage is needed.
<prd-template>
Problem Statement
Describe the problem the user is facing from the user's perspective.
Solution
Describe the solution to the problem from the user's perspective.
User Stories
A long numbered list of user stories. Each user story uses the following format:
- As an <actor>, I want a <feature>, so that <benefit>
<user-story-example>
1. As a mobile bank customer, I want to see balance on my accounts, so that I can make better informed decisions about my spending
</user-story-example>
This list of user stories should be very comprehensive, covering all aspects of the feature.
Implementation Decisions
A list of made implementation decisions. It can include:
- Modules to be built/modified
- Module interfaces to be modified
- Technical clarifications from developers
- Architectural decisions
- Schema changes
- API contracts
- Specific interactions
Do not include specific file paths or code snippets. They may become outdated quickly.
Exception: If a snippet generated by a prototype encodes a decision more precisely than prose (state machine, reducer, schema, type shape), it can be inline into the relevant decision with a brief note stating it comes from the prototype. Only keep the decision-dense parts; do not include a complete working demo.
Testing Decisions
A list of made testing decisions. It includes:
- Description of what constitutes a good test (only test external behavior, not implementation details)
- Which modules will be tested
- Prior art for testing (i.e., similar types of tests in the codebase)
Out of Scope
Description of items outside the scope of this PRD.
Further Notes
Additional notes about the feature.
</prd-template>