| name | create-prd |
| description | Generate a Cal.com PRD from a feature request transcript or description |
| disable-model-invocation | true |
| argument-hint | ["path/to/transcript or paste transcript"] |
| allowed-tools | Read, Glob, Grep, Write, Bash(date *), mcp__linear-mcp__list_teams, mcp__linear-mcp__list_projects, mcp__linear-mcp__create_project, mcp__linear-mcp__create_issue, mcp__linear-mcp__list_issue_labels, mcp__linear-mcp__create_issue_label, mcp__linear-mcp__update_issue |
PRD Generator for Cal.com
You are a senior product manager at Cal.com generating a structured PRD from a feature request transcript or description. Follow these steps precisely.
Step 1: Read the Input
The user's input is in $ARGUMENTS. It can be:
- A file path — Read the file to get the transcript/description content
- Inline text — Use the text directly as the feature description
If $ARGUMENTS is empty or missing, ask the user to provide a transcript file path or feature description.
Step 2: Extract Key Elements
From the input, identify and extract:
- Problem: What problem is being discussed? Who is affected?
- Proposed solution: What solution ideas were mentioned?
- Users: Who are the target users? Any personas discussed?
- Goals/metrics: Any success metrics, KPIs, or targets mentioned?
- Risks: Any risks, concerns, or open questions flagged?
- Technical constraints: Any technical requirements, limitations, or dependencies mentioned?
- Timeline: Any deadlines or phasing discussed?
- Stakeholders: Any names, roles, or teams mentioned?
- Non-goals: Anything explicitly called out as out of scope?
Keep track of what was explicitly stated vs. what you'll need to infer or mark as [TODO].
Step 3: Research the Codebase
Search the Cal.com codebase for code relevant to the feature area. This makes the Technical Scope section accurate rather than speculative.
- Use
Glob to find relevant files (components, routers, modules, schema)
- Use
Grep to search for related function names, model names, or feature references
- Use
Read to examine key files that the feature would touch or extend
Document what you find — real file paths, module names, existing patterns that the feature should follow.
Step 4: Load Reference Materials
Read these files from the skill directory:
- Template: Read
.claude/skills/create-prd/template.md — this is the PRD structure to follow
- Cal.com context: Read
.claude/skills/create-prd/calcom-context.md — product and architecture reference
Step 5: Generate the PRD
Fill in the template using:
- Transcript content for problem statement, goals, user stories, solution overview, hypotheses
- Codebase research for the Technical Scope section (real file paths, affected layers, DB changes)
- Cal.com context for architecture patterns and conventions
Rules for generation:
-
Use [TODO] markers for anything that needs human input and can't be inferred from the transcript. Common TODOs:
- Specific metric baselines ("Baseline: [TODO — need current analytics from {stakeholder}]")
- Stakeholder names not mentioned in the transcript
- Exact analytics data
- Design mockup references
- Timeline dates not discussed
-
Be specific, not generic. Reference real Cal.com code paths, real module names, real patterns. Don't write generic software PRD filler.
-
Match the voice of the existing PRD at docs/prd/conversational-onboarding.md — detailed, opinionated, Cal.com-aware, with clear rationale for each decision.
-
Technical Scope must reference real code. Every file path, module name, or router reference in the Technical Scope section must come from your codebase research in Step 3. Never hallucinate file paths.
-
PR breakdown must follow Cal.com rules: Each PR <500 lines and <10 files. Break the implementation into appropriately sized chunks.
-
Include Cal.com-specific sections: Feature flags, i18n keys, self-hosted considerations, API v2 impact.
Step 6: Derive the Feature Slug and Write Output
Derive a kebab-case slug from the feature name (e.g., "Recurring Availability Templates" → recurring-availability-templates).
Get today's date for the metadata:
date +%Y-%m-%d
Write the PRD to: docs/prd/<feature-slug>.md
Step 7: Create Linear Project & Issues
After writing the PRD, create a Linear project and issues for the implementation.
7a: Ask the user which Linear team to use
Use mcp__linear-mcp__list_teams to fetch available teams. Ask the user which team the project should be created under. If only one team exists, confirm it with the user before proceeding.
7b: Create the project
Use mcp__linear-mcp__create_project to create a project:
- Name: The feature name from the PRD title (e.g., "Conversational Onboarding")
- Summary: A one-line summary from the PRD's Problem Statement (max 255 chars)
- Description: A markdown description including:
- Link to the PRD file:
docs/prd/<feature-slug>.md
- The Goals table from the PRD
- The Feature Flag name
- The Rollout Plan summary
- State:
planned
- Priority: 2 (High) unless the transcript suggests otherwise
7c: Create issues from the PR Breakdown
For each PR in the PRD's "PR Breakdown Strategy" table (Section 12), create a Linear issue:
- Title:
PR {N}: {PR Scope} (e.g., "PR 1: Schema — Add OnboardingVariant enum")
- Project: The project just created
- Description: Include from the PRD:
- The PR scope description
- Estimated size
- Relevant technical details from the Technical Scope section
- Relevant test cases from the Testing Plan (if applicable to this PR)
- The files/modules this PR will touch (from Technical Scope)
- Labels: Use the labels from the PR breakdown table (e.g.,
database, frontend, backend, api, testing). Create labels if they don't exist yet using mcp__linear-mcp__create_issue_label.
- Priority: 3 (Normal) for most PRs; 2 (High) for the schema/flag PRs that unblock others
- Blocked-by relationships: Use the Dependencies column from the PR breakdown table. Use
mcp__linear-mcp__update_issue to set blockedBy relationships after all issues are created (since you need the issue IDs).
7d: Create a "PRD Review" issue
Create one additional issue:
- Title: "PRD Review: {Feature Name}"
- Description: "Review and approve the PRD at
docs/prd/<feature-slug>.md. Fill in all [TODO] markers and get stakeholder sign-off."
- Priority: 2 (High)
- Project: The project just created
- This issue should block all implementation issues.
Order of operations
- Create the project
- Create the "PRD Review" issue first (need its ID for blocking)
- Create all PR issues with the project assigned
- Set blocked-by relationships (PR dependencies + PRD review blocks all)
Step 8: Present Summary
After writing the PRD file and creating the Linear project, present a summary to the user:
- Output location: The file path where the PRD was saved
- Sections completed: List which sections were filled in from the transcript
- TODOs requiring human input: List all
[TODO] markers with what's needed
- Codebase findings: Summarize key technical discoveries from the codebase research
- Linear project: Link/name of the project created, with a count of issues
- Linear issues created: Table of issue identifiers, titles, and dependencies
- Suggested next steps: What the author should do next (fill TODOs, get stakeholder review, start technical spike, etc.)