skills/prd-generator/SKILL.md
Generate comprehensive Product Requirements Documents with interactive discovery, progress tracking, and True Ralph Loop support for autonomous implementation. Use when user wants to (1) create a PRD for a new project/feature, (2) implement a PRD autonomously with fresh Claude sessions, (3) track implementation progress, (4) recover context after session loss. Creates docs/PRD.md and docs/PROGRESS.md.
npx skillsauth add indrasvat/claude-code-skills prd-generatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate production-quality PRDs through interactive discovery, then implement autonomously using fresh Claude sessions (True Ralph Loop).
Before generating a PRD, gather comprehensive requirements through adaptive, collaborative questioning.
Be a thought partner, not an interrogator.
Many users start with only a vague idea. Your job is to:
When a user says "I don't know" or seems unsure:
Examples:
User: "I'm not sure what tech stack to use" → "Based on [what you've described], here are three approaches that would work well:
User: "I don't know about scale requirements" → "Let's work backwards: Is this for personal use, a small team (<50 users), a growing startup (hundreds), or enterprise scale (thousands+)? For most new projects, starting with 'handles 100 concurrent users smoothly' is a reasonable baseline we can adjust."
User: "I have no idea what success looks like" → "That's normal at this stage! Let me suggest some metrics based on similar projects:
Ask questions ONE AT A TIME. Adapt based on answers. Be ready to suggest and guide.
Problem Space (Start Here - Be Exploratory)
Tell me about what you're trying to build
Who will use this?
How will you know this is working?
Technical Context (Offer Guidance)
What's the tech landscape?
Existing code or greenfield?
Scale and performance?
Scope & Constraints (Help Define Boundaries)
What should we explicitly NOT build?
Non-functional requirements?
External dependencies?
Verification (Guide Toward Testability)
Testing strategy?
What does 'done' look like?
Edge cases and failure modes?
If the user has only a vague idea, switch to brainstorming mode:
Explore the problem space: "Let's forget solutions for a moment. Tell me about the frustration or opportunity you've noticed."
Generate options: "Based on that, here are 3 different products you could build: [A], [B], [C]. Which excites you most?"
Refine iteratively: "Interesting! Let's explore [choice]. What if it also did [X]? Or would that be too much?"
Validate direction: "So the core idea is [summary]. Before we go deeper, does that capture it?"
Five Whys - When the problem is unclear, keep asking "why" to find the root:
User: "I need a dashboard"
→ Why? "To see metrics"
→ Why do you need to see metrics? "To know if campaigns are working"
→ Why do you need to know that? "To stop wasting money on bad campaigns"
→ ROOT: The real need is campaign ROI visibility, not "a dashboard"
Ask About Past Behavior - People remember the past better than they predict the future:
Jobs to Be Done (JTBD) - Frame requirements around the "job" users hire the product to do:
Opportunity Solution Tree - Connect outcomes to opportunities to solutions:
Outcome: Increase user retention
└── Opportunity: Users forget to return
└── Solution A: Email reminders
└── Solution B: Mobile push notifications
└── Opportunity: Users don't see value quickly
└── Solution A: Improved onboarding
└── Solution B: Quick wins in first session
Pre-Mortem Technique (Shreyas Doshi) - Before building, imagine it failed:
Use encouraging language throughout:
Before generating PRD, verify each section has sufficient detail:
| Section | Required Info | |---------|--------------| | Problem | Clear pain points, user impact | | Users | Persona, technical level, workflow | | Success | Measurable metrics | | Tech | Stack, architecture decisions | | Scope | In/out of scope explicit | | Testing | Strategy defined | | Done | Acceptance criteria clear |
If any section is sparse, ask targeted follow-ups.
Once discovery is complete, generate docs/PRD.md:
mkdir -p docs
Use the template in templates/PRD-TEMPLATE.md.
Critical PRD Requirements:
- [ ] Task descriptionTask X.Y (e.g., Task 1.1, Task 2.3)Immediately after PRD, create docs/PROGRESS.md:
Use the template in templates/PROGRESS-TEMPLATE.md.
Critical PROGRESS.md Requirements:
The official Anthropic Ralph plugin uses a Stop hook that keeps Claude in the SAME session. This causes:
True Ralph (Geoffrey Huntley's original vision) spawns FRESH Claude sessions:
When user wants to start Ralph loop, explain clearly:
True Ralph requires fresh Claude sessions OUTSIDE of this conversation.
This cannot run from within Claude - you need to run it from your terminal.
1. Open a NEW terminal window
2. Navigate to your project:
cd [PROJECT_PATH]
3. Run the True Ralph Loop:
~/.claude/plugins/indrasvat-skills/skills/prd-generator/scripts/true-ralph-loop.sh -n [ITERATIONS]
4. Monitor progress:
- Watch terminal output
- Check docs/PROGRESS.md
- View logs in .ralph/logs/
5. Stop gracefully: Ctrl+C
Before handing off:
If user prefers tmux and it's available:
# Check tmux availability
command -v tmux &>/dev/null || { echo "tmux not installed"; exit 1; }
# Get project name for session naming
PROJECT_NAME=$(basename "$(pwd)" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
# Spawn detached session
tmux new-session -d -s "ralph-${PROJECT_NAME}" \
"~/.claude/plugins/indrasvat-skills/skills/prd-generator/scripts/true-ralph-loop.sh -n [ITERATIONS]"
echo "Ralph loop started in tmux session: ralph-${PROJECT_NAME}"
echo "Attach: tmux attach -t ralph-${PROJECT_NAME}"
echo "Kill: tmux kill-session -t ralph-${PROJECT_NAME}"
When user asks about progress:
echo "=== PRD Status ==="
if [ -f docs/PRD.md ]; then
TOTAL=$(grep -c '^\- \[' docs/PRD.md 2>/dev/null || echo "0")
DONE=$(grep -c '^\- \[x\]' docs/PRD.md 2>/dev/null || echo "0")
PENDING=$(grep -c '^\- \[ \]' docs/PRD.md 2>/dev/null || echo "0")
echo "Total tasks: $TOTAL"
echo "Completed: $DONE"
echo "Pending: $PENDING"
if [ "$TOTAL" -gt 0 ]; then
PCT=$((DONE * 100 / TOTAL))
echo "Progress: $PCT%"
fi
else
echo "No PRD found at docs/PRD.md"
fi
echo ""
echo "=== Current State ==="
if [ -f docs/PROGRESS.md ]; then
head -25 docs/PROGRESS.md
else
echo "No PROGRESS.md found"
fi
When user returns after a break, crash, or context loss:
echo "=== Recovering Context ==="
echo ""
if [ -f docs/PROGRESS.md ]; then
echo "Quick context from PROGRESS.md:"
head -20 docs/PROGRESS.md
fi
echo ""
echo "Recent git activity:"
git log --oneline -5 2>/dev/null || echo "Not a git repo"
echo ""
echo "Uncommitted changes:"
git status -s 2>/dev/null || echo "Not a git repo"
Then summarize:
- [ ]) for ALL actionable items--max-iterations (start with 10-15).ralph/logs/ for the last iteration logclaude CLI is working: claude --versiontemplates/PRD-TEMPLATE.md - Full PRD templatetemplates/PROGRESS-TEMPLATE.md - Full progress templatescripts/true-ralph-loop.sh - The True Ralph Loop scriptreferences/discovery-questions.md - Extended question bankdevelopment
Fetch, categorize, and address PR review comments in priority order. Classifies each comment as BLOCKER, QUESTION, SUGGESTION, or NITPICK and works through blockers first. Use when the user says "address PR comments", "fix review feedback", "respond to PR", "handle review comments", "triage PR", "what does the reviewer want", "address feedback", "PR comments", "review feedback", or needs to work through pull request review comments systematically.
testing
Create a pull request with a standards compliance review gate. Reviews the diff against CLAUDE.md and repo conventions before creating the PR, stopping on discrepancies. Supports tiered PR templates (small, standard, complex). Use when the user says "create PR", "open PR", "ship it", "ship PR", "make a pull request", "push and PR", "ready for review", "send for review", "create a pull request", or wants to create a GitHub pull request from the current branch.
testing
Verify Kubernetes deployment health — pod status, rollout progress, events, readiness, HPA state, and recent errors. Use when the user says "check rollout", "is deploy healthy", "rollout status", "deployment health", "pod status", "check pods", "why is deploy failing", "k8s health", "verify deployment", "are pods ready", "check deployment", or wants to verify a Kubernetes deployment is healthy after a rollout.
testing
Analyze database schema migrations for safety — lock risk, backward compatibility, rollback path, and data preservation. Use when the user says "check migration", "migration safe", "migration review", "schema change review", "will this lock", "migration guard", "review schema changes", "database migration check", "is this migration safe", or when a migration file has been created or modified.