はじめる
multi-perspective-stress-test

multi-perspective-stress-test

An adversarial multi-perspective review of a document, plan, or decision, where reviewers actively disagree instead of converging. Invoke when someone asks to stress-test, tear apart, or find blind spots in a plan, pitch, PRD, strategy, architecture proposal, essay, or research design when previous review was too agreeable; or when committing to an expensive, irreversible decision after already picking a side. Not for fact-checking, proofreading, code review, or questions with a correct answer.
#分析#生産性#コンサルティング
評価
さらに評価が必要です
販売数
0
利用方法
Capafy で実行
外部アプリでも利用可能
パブリッシャー提供
Claude Opus 5

Multi-Perspective Stress Test

A review protocol for artifacts where the failure mode is agreement, not error.

Ask a model for "five perspectives on this plan" and you get one voice wearing five hats. Multi-Perspective Stress Test makes the reviewers actually disagree — by preventing them from reading each other's reasoning.


The problem

Perspective 2 reads perspective 1's full reasoning, finds it sound, and elaborates on it. By perspective 3 the panel has a house position. You end up with a document that looks multi-angle and contains one opinion.

The cause is mechanical: reasoning propagates. A reviewer who sees why someone concluded something inherits their frame and argues inside it. A reviewer who sees only what they concluded can reject it wholesale.

How you know it worked

The output of a converged run and a properly isolated run differ in shape, before you evaluate a single argument:

  • Converged — every reviewer after the first restates the same position in its own vocabulary. The tell is the phrase "I agree with X, and would add…". Findings accumulate but never collide, and nothing in the report can stop you.
  • Isolated — at least two conclusions recommend actions that cannot both be taken. Not different emphases; incompatible instructions. That collision is the product. It is also the pass/fail test: if no two reviewers contradict each other, the panel was miscast and the run is worthless regardless of how thorough it reads.

Agreement-shaped criticism is noise. Structural conflict is signal.

Quick start

Drop the skill folder where your agent runtime discovers skills:

cp -r multi-perspective-stress-test ~/.claude/skills/

Then invoke it by describing the situation — no command needed:

Stress-test docs/pricing-2025.md with the full panel — I think I've already decided and I want something that can stop me.

It also self-triggers on phrasings like "poke holes in this", "what am I missing", "play devil's advocate", "tear this apart", "give me the honest version".


What you get

Output What it is
Disagreement map Who is opposed to whom, and what each side would have to be wrong about
Load-bearing structure The points no reviewer attacked — your actual foundation
Unanswered anchor If the whole panel dodged the central question, that absence is reported as a finding
The one thing that has to be said A single blunt sentence, written before any softening

Not produced: a score, a ranking, a go/no-go verdict, or a tidy resolution of real splits. The protocol is deliberately non-deciding — an unresolved split, clearly mapped, beats a compromise nobody on the panel actually holds.

Cost: 3–5 reviewers × 2–3 rounds plus synthesis — roughly 8–18 model calls, materially more than a single review pass. The protocol states this cost to you and asks before running whenever it inferred the need rather than being asked. Not something to invoke reflexively on anything reviewable.


What's in the box

multi-perspective-stress-test/
├── SKILL.md                        # the protocol
├── references/
│   ├── execution-modes.md          # full procedure per mode, read after mode selection
│   ├── casting.md                  # starter cast, ordering, worked examples
│   └── manual-audit.md             # the same audit by hand, for shell-less environments
├── scripts/
│   ├── panel_init.py               # scaffolds the Mode B layout (stdlib only)
│   └── panel_audit.py              # conclusion caps + reasoning bleed + leakage audit
└── evals/
    ├── evals.json                  # 4 task cases, including one that must NOT trigger
    └── trigger-evals.json          # 20 trigger queries, 11 of them near-misses

Self-contained. Nothing outside this folder is referenced, and the scripts import only the Python standard library — no pip install, no config, no network. The only prerequisite is Python 3.6+ if the scripts are used at all; every check they perform has a hand-run equivalent in references/manual-audit.md, so the protocol still completes in a plain chat window with no shell.

The scripts exist because Mode B's guarantee rests on a file discipline — conclusions and reasoning in separate files, reasoning never reread until synthesis — that is easy to get subtly wrong by hand. panel_audit.py runs before synthesis in any mode and is deterministic: it flags conclusions over the cap, reasoning that bled into the conclusions file, and distinctive phrasing shared between two reviewers (excluding wording already in the artifact, since shared source vocabulary is expected and shared reviewer-introduced vocabulary means one voice wearing two labels).


Running it without subagents

The isolation rule is the whole product, so the honest question is what happens when the environment cannot isolate. The skill picks a mode by environment rather than assuming:

Environment Subagents Can clear context mid-task Mode
Claude Code Yes Yes A
Cowork Yes Varies A
Claude.ai chat No No C, or manual B
API with an orchestrator Caller-controlled Yes A or B
Unknown — — C (assume the weakest)

Three modes, with different guarantees:

Mode Requires Isolation May be called
A — Subagents Subagent/task tool Structural — other reviewers' reasoning is never in context Isolated run
B — Fresh-context relay Ability to clear context or open new sessions, plus file access Structural — context is genuinely emptied between reviewers Isolated run
C — Single context, blind round Nothing Partial — prior reasoning stays in the window "Sequential blind review — reduced independence"

Mode B is the one most environments can actually reach. Reasoning is written to files that are not read again until synthesis; conclusions accumulate in a separate file; context is cleared between reviewers. The discipline required is "clear the context" — a verifiable action — rather than "ignore what you just read," which is not one.

Mode C is honestly degraded and the skill says so rather than pretending otherwise. It requires four compensations: a blind round 1 (no reviewer sees any conclusion — the one part of Mode C that is structurally sound), stance emitted before reasoning, named contradiction in round 2, and a leakage audit that pairwise-checks conclusions for shared distinctive phrasing and collapses flagged pairs into a single voice. Output is labeled "sequential blind review - reduced independence", never "isolated run".

For high-stakes work where Mode C is the only option, the skill instructs the agent to say so and offer manual Mode B — you run each reviewer yourself in separate chat sessions, pasting artifact + anchor + accumulated conclusions. Tedious, and genuinely isolated.


How it works

Four rules. Full protocol in SKILL.md.

1. Cast by loss function, not by job title.
"Marketing view / engineering view / legal view" agree with each other because they each look at a different part of the artifact and never make contact. Cast instead by what would make this reviewer sad. Two reviewers with the same answer are one reviewer.

2. One anchor question, given to everyone.
Derived before casting: find the largest unresolved state, find where the artifact skips, synthesize into "if we could only answer one thing, it is: ___?" This is what makes their disagreement be about the same thing.

3. Conclusions travel, reasoning does not. ← load-bearing
Each reviewer sees the artifact, the anchor, their own role, and the bare conclusions of whoever spoke before them. Never the reasoning. Everything else in this protocol is tuning; this rule is the protocol.

4. Cap the conclusion, not the thinking.
150 tokens in round 1, 100 after. Not for cost — a short conclusion cannot carry its own justification, so it has to be a stance. A long one becomes an argument that absorbs the next reviewer, reintroducing exactly what rule 3 removes.

anchor question → cast panel → order speakers
   → round 1 (isolated) → convergence check
   → round 2 … max round 3 → synthesis

A completed run is two or three rounds. Round 1 is positions; round 2 is where the real content appears, when reviewers meet conclusions that contradict theirs. A fourth round does not resolve anything — it launders fatigue into consensus.

If round 1 produces no incompatible actions, the run has not finished early — the panel is miscast, sharing a loss function. Re-cast and rerun round 1 once. If it happens again, the honest output is "no structural conflict found," reported as such. A single round is never presented as panel output.


When to invoke

Runs after a cost notice:

  • Explicit adversarial request — "poke holes in this", "what am I missing", "be brutal"
  • A commitment point on an open judgment call: ship, sign, price, publish, hire, quit, pivot
  • A previous review came back agreeable and the requester is dissatisfied with it

Offers first, never auto-runs:

  • The artifact distributes costs across parties and the requester represents only one
  • Asymmetric presentation — option A gets three paragraphs, option B gets half a sentence
  • Repeated single-pass reviews keep returning the same note

That second group is inferred rather than requested, so it authorizes asking, not running. Lopsided presentation is textually observable, but it does not distinguish "already decided and seeking agreement" from "did the work and reached a conclusion" — and firing a 10-call adversarial process at the second one is an overreaction to someone who was simply being thorough. The skill states what it noticed, names the cost, and lets the user choose.

Minimum input: ~500+ words, or a decision with at least two articulated options, containing at least one consequential choice.

When not to

Situation Instead
Fact-checking, "are these numbers right" Go check the source — five confident opinions are worse than one lookup
Anything with a correct answer (math, compliance, does-it-compile) One competent pass
Proofreading, tone, clarity Direct editing
An email, a Slack message, an unwritten idea Too small — no surface to disagree about
Medical, legal, financial, safety-critical A qualified human
The requester wants encouragement, or is struggling Don't. This protocol is built to find what hurts

Limits

Read these before trusting output.

  1. Judgment, not evidence. No retrieval, no verification. Reviewers state facts confidently and can be wrong about all of them.
  2. There is no null result. Strong and weak artifacts both come back with findings, because reviewers are instructed to find things. "The panel had objections" is not evidence the plan is bad. Severity comes from the same process that produced the findings — weight them yourself.
  3. Quality is capped by casting, and it fails silently. A miscast panel still produces a thorough-looking, well-formatted, useless report, with no internal signal distinguishing it from a good run. Check the cast before trusting the output.
  4. Naming a role does not summon expertise. "The Money" does not know your unit economics unless the artifact contains them.
  5. Isolation is only as good as the mode. Mode C output is a structured brainstorm with partial independence, and is labeled as such. Do not read it as more.
  6. Scales badly with size. Past roughly a chapter, reviewers drift to different sections and stop disagreeing. Split by decision, not by length.
  7. It cannot tell you that you are fine. If what you need is a stopping point, this will not give you one.
  8. The numbers are defaults; tune them. If round 2 still produces genuinely new positions rather than restatements, extend the bound rather than forcing closure. If conclusions read as summaries instead of stances, tighten the cap.

FAQ

Why not just tell the model "disagree with each other"?
Because it complies at the surface and converges underneath — you get "I disagree, and would add…" which is agreement wearing a disclaimer. Disagreement has to be made structurally possible, not requested.

What if all reviewers agree in round 1?
The panel is miscast — the reviewers share a loss function. Re-cast; do not run more rounds. Extra rounds cannot create disagreement that was never there, they only manufacture artificial dissent.

Can I use fewer reviewers?
Three sharply differentiated ones beat six overlapping ones. Panel size should scale with the artifact's surface area, not with how important it feels.

Does it work without subagents?
Yes — via Mode B, which gives real isolation by clearing context between reviewers and keeping reasoning in files that are not reread until synthesis. Mode C (single context, no clearing) is the genuinely degraded one; it runs a blind first round and a leakage audit, and labels its own output accordingly.

Will it just tell me my plan is bad?
It will always find something (limit 2). What distinguishes a real problem from panel noise is whether two reviewers recommend incompatible actions. Agreement-shaped criticism is noise; structural conflict is signal.