From fh-commons
Multi-perspective synthesis structure — Innovator (propose) → Devil-Advocate (challenge) → Mediator (synthesize) 3-layer execution. Outputs conditional verdicts without binary win/loss. Activates on "deliberation", "battle this out", "weigh the pros and cons", "review from multiple angles", "which side is right?". Optional deep-insight persona jurors for domain-specific views. Designed for design decisions, skill proposals, and architectural choices.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fh-commons:deliberationopusThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Innovator (propose) → Devil (challenge) → Mediator (synthesize) 3-layer core structure.
Innovator (propose) → Devil (challenge) → Mediator (synthesize) 3-layer core structure. The goal is not to pick a winner — it is to extract salvageable fragments from the losing argument and produce a conditional verdict. Even those who struggle to challenge assumptions can use this structure as a rope to reach better decisions.
Role distinction from sim-conductor and steel-quench
- sim-conductor: validates quality and consistency of a completed asset
- steel-quench: adversarially stress-tests a near-complete artifact (post-build defect surfacing)
- deliberation: perspective clash during the design decision process → synthesis (upstream of both)
/deliberationWave next-D automaticallyAlso activates when design decisions or perspective clashes are expressed in natural language:
| Example phrase | Intent |
|---|---|
| "I'm not sure whether to do this or not" | Decision uncertainty → multi-perspective synthesis |
| "It seems like opinions are divided" | Perspective clash → synthesis layer needed |
| "Help me decide which side is right" | Conditional synthesis, not simple winner selection |
| "Someone will probably object to this" | Request for devil's advocate perspective |
| "Is it okay to keep going in this direction?" | Re-validation of design decision |
| "Review this from multiple angles" | Multi-perspective synthesis → 3-layer default |
| "Analyze this from all sides" | Multi-perspective synthesis → 3-layer default |
| "Weigh the pros and cons" | Perspective clash → devil + innovator engaged |
| "Analyze the strengths and weaknesses" | Pro/con structure → Innovator (pros) + Devil (cons) |
| "Help me make a decision" | Decision support → conditional verdict generation |
| "pros and cons", "pros cons" | Comparative analysis → synthesis layer needed |
If no input is provided, ask:
Please provide the deliberation topic.
- Topic: What are you trying to decide or design?
- Layer: [3-layer default (recommended)] / [5-layer — includes jury]
- Jury focus (if 5-layer selected): user experience / technical feasibility / business & policy
Default: 3-layer (Innovator → Devil → Mediator). Use 5-layer only when a jury is needed.
Execution log (workers_approved pattern): Upon completing Step 0, include the following in the output:
[DELIBERATION START] Topic: {topic} | Layer: {layer} | {timestamp}
→ WORKER_CALL: Innovator (isolated instance)
→ WORKER_CALL: Devil-Advocate (isolated instance)
→ WORKER_CALL: Mediator (isolated instance — Cost of Consensus prevention)
Jury auto-selection criteria:
| Topic nature | Recommended jury personas |
|---|---|
| New user experience related | beginner + main-player |
| Technical implementation feasibility | persona-be + persona-fe |
| Business viability / policy / legal | persona-pm + persona-business |
| General design decisions | No jury (3-layer is sufficient) |
Invoke deep-insight:persona-innovator.
Fallback (if deep-insight is not installed): Claude Code performs the Innovator role inline. Same instruction template and output format apply. The deliberation pipeline is guaranteed to work without deep-insight installed.
No isolation (intentional): The Innovator is a proposal generator — it does not evaluate its own output, so Agent tool isolation is not needed. Cost of Consensus applies only to the Mediator, which evaluates its own generated content (arXiv 2605.00914). Only the Mediator (Step 3) is isolated via the Agent tool.
Instruction template (meta-prompt-builder structure):
Goal: Generate the most creative and scalable proposals for {topic}
Context: Current harness state + list of relevant assets
Constraints: No duplication of existing assets / must not violate simplification guard
Done When: 1~3 concrete proposals + 1-line rationale per proposal
Brief limit: Total Context passed to Agent must be kept under 1200 characters
Output format:
[Innovator]
Proposal 1: {content} — Rationale: {1 line}
Proposal 2: {content} — Rationale: {1 line}
(optional) Proposal 3: {content} — Rationale: {1 line}
Invoke deep-insight:persona-devil-advocate. Takes Step 1 output as input.
Fallback (if deep-insight is not installed):
fh-commons:quench-challenger(includes Devil DNA) or Claude Code performs the Devil-Advocate role inline. Same output format. Instance isolation is not required, same as Step 1.
Instruction template:
Goal: Generate the sharpest single rebuttal for each of the {N} Innovator proposals
Context: Innovator output + harness simplification guard + known failure patterns
Constraints: No emotional rebuttals / no baseless negation / must include a hint toward improvement
Done When: 1 rebuttal per proposal + 1-line core risk + 1-line acknowledgment of valid parts
Brief limit: Total Context passed to Agent must be kept under 1200 characters
Output format:
[Devil-Advocate]
Proposal 1 rebuttal: {content}
Risk: {1 line}
Acknowledgment: {1 line} ← this line is the Mediator's raw material
Proposal 2 rebuttal: ...
Acknowledgment line is mandatory: The Devil must explicitly state "this part is valid" — synthesis is impossible without it. A rebuttal with no acknowledgment is automatically flagged as
[WARN: unsynthesizable rebuttal].
[Isolation Principle — Cost of Consensus Response]
The Mediator invokes a separate instance via the Agent tool.
When the same instance evaluates its own generated content, confirmation bias occurs (demonstrated in arXiv 2605.00914).
Physical separation from the Innovator/Devil generation context is required for unbiased synthesis.
What isolation means: Blocks Self-Evaluation Bias — the tendency for an instance to favor its own output. The Mediator reads the Innovator and Devil outputs, but does not share the reasoning process that generated those outputs. Independence of the reasoning path — not mere information sharing — is the key to resolving Cost of Consensus.
Agent invocation instruction (includes Context Card):
Goal: Synthesize Innovator and Devil-Advocate outputs into a conditional verdict
Context: {full Step 1 output} + {full Step 2 output}
Constraints: No simple selection of the winning argument / must extract fragments from the losing argument / no hedge language ("balance both sides") / output under 1200 characters
Done When: All 5 sections output — Adopt / Alert absorption / Verdict / Conditions / Discard
Synthesis formula:
Core value of the Innovator proposal
+ Valid alerts from Devil's rebuttal (extracted from the acknowledgment line)
→ Conditional verdict: "{proposal} OK, provided {condition} is mandatory"
What the Mediator must not do:
Output format:
[Mediator — Synthesis Verdict]
Adopt: Core of {Innovator Proposal N} — {value, 1 line}
Alert absorption: "{acknowledgment line}" from {Devil rebuttal} → converted to condition {X}
─────────────────────────────────────────
Verdict: Proceed with {proposal} — OK
Conditions: {1~3 required conditions}
Discard: {fully rejected parts — with rationale}
Runs only when 5-layer is selected. Parallel dispatch of 2~3 selected deep-insight personas via the Agent tool.
Fallback (if deep-insight is not installed): dispatch the jury from real fh-meta agents instead —
persona-innovatorandhub-persona-auditor(andfh-commons:quench-challengerfor an adversarial juror). Same parallel-Agent dispatch, juror cap, and output format apply. The 5-layer jury is guaranteed to run without deep-insight installed — mirroring the Step 1/Step 2 fallbacks.
Juror count limit: maximum 3. If 4 or more are selected, output [WARN: jury overload — noise risk] and defer to the user.
Instruction per juror:
Goal: Review the Mediator's synthesis verdict from the perspective of {persona}
Context: Full output from Steps 1~3
Constraints: Do not overturn the already-synthesized verdict / only propose additional conditions
Done When: Agree / partial agreement / disagree + 1 line of additional conditions or risk
Output format:
[Jury: {persona name}]
Verdict: Agree / Partial agreement / Disagree
Opinion: {1~2 lines}
Additional condition: {1 line if applicable}
Incorporates jury opinions to refine the Step 3 verdict.
[Final Verdict]
Based on: Step 3 synthesis verdict
Jury input: {N agreed / N partial / N disagreed}
Added conditions: {additional conditions from jury}
Final conclusion: {1~2 lines}
| Situation | WARN content |
|---|---|
| Devil rebuttal has no "acknowledgment" line | [WARN: unsynthesizable rebuttal — Mediator lacks raw material] |
| Mediator adopts only one side's argument | [WARN: simple verdict, not synthesis — deliberation failure] |
| Innovator and Devil share the same premise | [WARN: no real clash — recommend redefining the topic] |
| 4 or more jurors selected | [WARN: jury overload — reduce to 3 or fewer?] |
| Done When contains vague expressions | [WARN: Done When is unmeasurable — share meta-prompt-builder WARN criteria] |
Add the following condition to the agent-composer Step 4-b state transition gate:
| ⑤ Design decision clash or judgment that "a battle is needed" | Wave next-D | deliberation (S) |
Wave next-D activation criteria:
It is a rope for those who have not yet dared to challenge.
Thinking alone traps you in a single perspective. Only the courageous construct counterarguments themselves. deliberation provides that counterargument as structure — even those afraid of conflict can start a battle, because the Mediator will synthesize it for them.
The Mediator's conditional verdict creates a safe entry point: "this is okay if you do it this way." The jury fills the domain blind spots that no single person can see on their own.
What the forge creates is not a winner — it is a new alloy.
All Steps 0~3 completed (Steps 4~5 added if 5-layer selected)
+ [Mediator — Synthesis Verdict] output present (Adopt / Alert absorption / Verdict / Conditions / Discard)
+ User's final decision confirmed (deliberation output must never be auto-executed)
→ When invoked from agent-composer Wave next-D: synthesis verdict is the fan-in input for Wave continuation — return the Mediator verdict + Conditions to agent-composer so the conflict is marked resolved in the fan-in result set. After this, agent-composer re-runs Step 4-b state transition evaluation with the conflict cleared; subsequent Waves (next-M / next-E / end) proceed based on the updated result.
| Situation | Related skill |
|---|---|
| Auto-triggered on design decision clash (Wave next-D) | fh-meta:agent-composer Step 4-b |
| Validate quality and consistency of a completed asset | fh-meta:sim-conductor |
| Validate skill candidates after deliberation | fh-meta:harness-doctor |
| Implementation convergence loop after a decision | fh-commons:convergence-loop |
npx claudepluginhub chrono-meta/forge-harness --plugin fh-commonsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.