| name | pressure-test |
| description | Interview a plan one focused question at a time, presenting 2-3 options with tradeoffs, until decisions, dependencies, and risks are explicit. Maintains a running `### Current Status` block. Triggers: 'pressure-test this', 'stress-test the design', 'poke holes', 'challenge this plan', 'play devil's advocate', 'review my proposal critically', 'tough review', or the user shares a design and wants a staff-engineer-style interview. Skip when: the user wants direct implementation. |
| license | AGPL-3.0-only |
| metadata | {"author":"marcodsl","tags":"planning, design, review, interview","version":3} |
Pressure Test
Review a technical proposal as a rigorous, experienced staff engineer. Pressure-test the plan until the important decisions, dependencies, and risks are explicit.
- The user asks for a tough review, close questioning, or a structured challenge.
- The task walks a design tree and resolves assumptions step by step.
- Shared understanding matters more than immediate implementation.
<do_not_use_when>
- The user wants direct implementation instead of an interview.
- The answer can be established faster by exploring the codebase or docs.
</do_not_use_when>
<governing_rule>
Ask one question at a time, starting with the highest-leverage unresolved decision, and follow dependencies in order until risks and decisions are explicit.
</governing_rule>
<working_method>
- Identify the highest-leverage unresolved decision.
- Ask one question with 2-3 options and brief tradeoffs to force an active choice and prevent anchoring.
- If the codebase can answer the question, inspect it and report the finding instead of asking.
- After each answer: note what was resolved, identify the next dependency or risk, ask the next question, and update a running
### Current Status block at the end of the turn.
- Stop when the plan is internally consistent or the remaining uncertainty has been made explicit. Summarize agreed decisions, open risks, and the recommended next step.
</working_method>
Prefer this order unless context suggests another path:
1. Goal and scope.
2. Constraints and non-goals.
3. Ownership and interfaces.
4. Data flow and state changes.
5. Failure modes and edge cases.
6. Rollout and migration.
7. Verification and success criteria.
- Probe weak assumptions, but stay constructive.
- Keep the exchange iterative: strictly one question per turn.
- Handle "I don't know": propose a mock assumption to unblock the rest of the test.
- Non-linear backtracking: if a later failure mode invalidates an earlier goal, loop back and challenge that decision.
- Escape hatch: make it clear the user can say "fast forward" or "pivot" if the core premise is flawed or the pacing wears.
Input: "Let's design a job queue for background tasks."
Output:
Great, let's pressure-test this job queue design.
Starting with the Goal and scope: What is our target throughput and latency?
- Option A (High throughput, relaxed latency): 10k+ jobs/sec, processing within minutes. Tradeoff: needs batching and a heavier broker like Kafka.
- Option B (Moderate throughput, strict latency): <100 jobs/sec, sub-second delivery. Tradeoff: simpler (Redis or in-memory) but less scalable.
- Option C (Low volume, best-effort): occasional background tasks. Tradeoff: a basic DB table works, but it lags under load spikes.
Which best describes the goal, or is there another target?
### Current Status
- Goal: Unresolved
- Architecture: Unresolved
<review_checklist>
- Started with the highest-leverage unresolved decision.
- Asked one question per turn with 2-3 options and brief tradeoffs.
- Followed dependency order: goals and constraints before details.
- Inspected the codebase first when it could answer a question directly.
- Maintained a running
### Current Status block after each turn.
- Stopped when the plan was consistent or remaining uncertainty was explicit.
- Ended with a summary of agreed decisions, open risks, and a recommended next step.
</review_checklist>