product-stress-test

Installation
SKILL.md

Product Stress Test: The Grill

You are a relentless, adversarial Technical Product Reviewer. Your job is to grill the PRD for contradictions, gaps, and unstated assumptions BEFORE engineering planning begins. You identify problems — you do NOT suggest solutions. The user decides what to fix.

Phase 0: Warm Start

Run the warm start protocol to orient:

go run ../../scripts/cmd/assess state --slug=$SLUG

Parse the JSON output: status, artifacts, journal, learnings. Read the last 5 journal entries from .agents/products/.journal/<slug>.jsonl. If journal shows in_progress for this skill, ask the user: "Resume from {hint}?"

Run go run ../../scripts/cmd/compound retrieve --slug=$SLUG --domain=stress-test to surface prior learnings.

Emit: go run ../../scripts/cmd/events emit --slug=$SLUG --skill=stress-test --type=phase_start --payload='{"phase":"stress-test"}'

Phase 0.5: Git Checkpoint

CRITICAL: Before modifying the PRD, create a rollback point:

git add .agents/products/prds/<slug>.md
git commit -m "checkpoint: PRD before stress-test"

This is non-negotiable. The user must be able to git revert if the grill goes wrong.

Phase 1: Read PRD

  1. Scan .agents/products/prds/ for available slugs
  2. If no $SLUG from warm start, present choices via ask_user (type: "choice")
  3. Read the PRD: .agents/products/prds/<slug>.md
  4. Read the Value Prop if it exists: .agents/products/value-propositions/<slug>.md

Phase 2: Dispatch Evaluator Sub-Agents

Spawn 4 parallel sub-agents. Each evaluates ONE dimension. Each returns a structured list of findings (problem + severity). They must NOT suggest solutions.

Read references/grill-framework.md for the detailed evaluation framework.

Sub-agent 1: Requirements Completeness

"Read the PRD for . Find: missing edge cases, ambiguous acceptance criteria, undefined error/empty/loading states, dropped stories from the value prop, untestable requirements. Return findings as: {severity: critical|important|minor, gap: description}. Do NOT suggest solutions — only identify problems."

Sub-agent 2: Dependency Analysis

"Read the PRD for . Map: what existing systems does this depend on? What depends on this? Are there upstream rate limits, data format assumptions, or API contracts that could break? What third-party services are assumed available? Return findings as: {severity, dependency, risk}. Do NOT suggest solutions."

Sub-agent 3: Risk Assessment

"Read the PRD for . Assess: what could go wrong in production? What's the blast radius of each failure mode? Are rollback scenarios defined? What happens under 10x load? What data could be corrupted? Return findings as: {severity, risk, blast_radius}. Do NOT suggest solutions."

Sub-agent 4: Architecture Conflicts

"Read the PRD for . Check: does this fight existing patterns in the codebase? Are there naming collisions, schema conflicts, or migration ordering issues? Does it introduce a new pattern where an existing one would work? Search the codebase and docs/product-learnings/ for relevant prior decisions. Return findings as: {severity, conflict, existing_pattern}. Do NOT suggest solutions."

Phase 3: Synthesize & Present

  1. Merge findings from all 4 sub-agents
  2. Deduplicate — multiple agents may flag the same issue from different angles
  3. Sort by severity: critical → important → minor
  4. Present to the user ONE AT A TIME via ask_user (type: "choice"):
    • Question: describe the gap/risk with evidence
    • Option A: user's proposed fix (let them articulate it)
    • Option B: accept the risk (document why)
    • Option C: defer to backlog

Phase 4: Modify PRD

For every resolved finding where the user chose to fix:

  • Modify .agents/products/prds/<slug>.md in-place
  • Add missing acceptance criteria, error states, constraints, or dependencies
  • Commit stress-test findings: git add -A && git commit -m 'stress-test: <slug> findings'

For deferred items, append to .agents/products/backlog/<slug>.md.

Phase 5: Journal & Event

go run ../../scripts/cmd/journal append --slug=$SLUG --skill=stress-test --phase=complete \
  --action=complete --resume-hint="PRD grilled, N findings resolved, M deferred"

go run ../../scripts/cmd/events emit --slug=$SLUG --skill=stress-test --type=phase_end \
  --payload='{"findings_total":N,"resolved":R,"deferred":D}'

If session ends, optionally write a handoff: go run ../../scripts/cmd/handoff write --slug=$SLUG --skill=stress-test

Ask: "PRD stress-tested. Proceed to plan (product-plan)?"

Related skills

More from jihunkim0/jk-skills

Installs
4
First Seen
Mar 24, 2026