| name | deliberation |
| description | 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. |
| user-invocable | true |
| allowed-tools | ["Read","Bash","Agent"] |
| model-note | session-inherit — Sonnet base is first-class (sonnet_floor_doctrine.md); depth-critical judged steps route to dispatch (opus agent / cross-family sidecar, consent-gated), never a substrate requirement |
| origin | fh-meta |
deliberation — The Forge Skill
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)
Triggers
/deliberation
- "battle this out", "make them argue", "clash and synthesize"
- "review this decision from multiple angles"
- When agent-composer Step 4-b proposes
Wave next-D automatically
Natural Language Triggers (for general users — activates without internal vocabulary)
Also 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 |
Step 0. Receive Topic + Select Layer
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) |
Step 1. Innovator Layer — Propose
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}
Step 2. Devil-Advocate Layer — Challenge
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].
Step 3. Mediator Layer — Synthesize (Core)
[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:
- Simply select the winning argument as-is (simple verdict = deliberation failure)
- Discard the losing argument (fragment extraction is mandatory)
- Use hedge expressions like "we should consider both sides in a balanced way"
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}
Step 4 (Optional). Jury Layer — Domain Perspectives
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-innovator and hub-persona-auditor (and fh-commons:quench-challenger for 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}
Step 5 (Optional). Mediator Final Synthesis
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}
Automatic WARN Detection Patterns
| 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] |
agent-composer Integration — Wave next-D
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:
- M/S/R results contain "2 or more mutually conflicting proposals"
- User utterance includes "which side is right?", "they conflict", "both seem valid"
- agent-composer cannot synthesize the fan-in results and is about to defer the decision to the user
Design Principle — Why This Skill Exists
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.
Done When
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.
Simplification Guard
- Simple information queries → deliberation is unnecessary. Respond directly.
- Cases where the answer is already clear → route to sim-conductor (validation) or harness-doctor (diagnosis).
- If resolvable without a jury, 3-layer default is sufficient.
- deliberation output always completes with the user's final decision. Auto-execution is prohibited.
Related Skills
| 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 |