write-a-prd
This skill will be invoked when the user wants to create a PRD. You may skip steps if you don't consider them necessary.
-
Ask the user for a long, detailed description of the problem they want to solve and any potential ideas for solutions.
-
Explore the repo to verify their assertions and understand the current state of the codebase.
-
Interview the user relentlessly about every aspect of this plan until you reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one.
-
Sketch out the major modules you will need to build or modify to complete the implementation. Actively look for opportunities to extract deep modules that can be tested in isolation.
A deep module (as opposed to a shallow module) is one which encapsulates a lot of functionality in a simple, testable interface which rarely changes.
Check with the user that these modules match their expectations. Check with the user which modules they want tests written for.
- Once you have a complete understanding of the problem and solution, use the template below to write the PRD. Ask the user which Linear team to create the issue in, then submit it as a Linear issue using the Linear MCP tools (save_issue with title and description).
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.
User Stories
A LONG, numbered list of user stories. Each user story should be in the format of:
- As an , I want a , so that
This list of user stories should be extremely extensive and cover all aspects of the feature.
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.
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.
More from maxmurr/agents-skills
submit-pr
Submit implementation as a pull request. Runs tests, creates a PR with the Linear issue linked, and posts the PR URL as a comment on the Linear issue. Use when implementation is complete and user wants to open a PR, submit work, or create a pull request.
2index-knowledge
Generate hierarchical AGENTS.md + CLAUDE.md knowledge base for a codebase. Creates root + complexity-scored subdirectory documentation with both file types.
2tdd
Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions "red-green-refactor", wants integration tests, or asks for test-first development.
1atdd
Outside-in TDD with double-loop (acceptance + unit). Use when user wants acceptance-test-driven development, outside-in TDD, London-school TDD, GOOS-style development, or wants to drive design from user-facing behavior inward.
1prd-to-issues
Break a PRD into independently-grabbable Linear issues using tracer-bullet vertical slices. Use when user wants to convert a PRD to issues, create implementation tickets, or break down a PRD into work items.
1start-issue
Kick off implementation of a Linear issue. Fetches the issue and its parent PRD, creates a git branch using Linear's suggested branch name, and presents a consolidated context summary ready for development. Use when starting work on a Linear issue, picking up a ticket, or when user says "start issue TEAM-123", "work on TEAM-123", or "pick up TEAM-123".
1