Skip to main content
skill CX Codex

deliberation — Claude Code skill for decision analysis

This skill puts a proposal through critique and synthesis, producing a conditional verdict. Use it to compare design or architecture options from several angles.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add chrono-meta/forge-harness --skill deliberation -a claude-code
Open on GitHub

What deliberation does

The default flow has three roles: Innovator suggests proposals, Devil-Advocate challenges them and identifies valid points, and Mediator combines the arguments. The aim is to retain useful parts of weaker proposals rather than declare a winner. Mediator runs in a separate instance through the Agent tool.

A five-layer run can add a jury of domain-focused personas. If deep-insight is unavailable, the skill provides fallback approaches for Innovator and Devil-Advocate. The separate Mediator instance depends on access to Agent; without it, that isolation step cannot run as described.

What it helps with

  • compare architecture options
  • surface risks in a proposed design
  • turn conflicting arguments into a conditional verdict
  • review a decision from several perspectives

Example prompts for the agent

  • Run deliberation on whether to split this module into services.
  • Review this design from several angles and synthesize the arguments.
  • Use /deliberation to compare these options.

How to install deliberation

1Skills CLI (Vercel)

npx skills add chrono-meta/forge-harness --skill deliberation -a claude-code

2Manually: put the files in place

~/.claude/skills/deliberation/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/deliberation/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about deliberation

How do I install deliberation in Claude Code?

Run npx skills add chrono-meta/forge-harness --skill deliberation -a claude-code. The skill file is located at ~/.claude/skills/deliberation/SKILL.md.

What does deliberation do?

It uses proposal, challenge, and synthesis roles to examine a decision and produce a verdict that depends on the conditions. The synthesis can preserve valid points from proposals it does not favor.

Does deliberation require deep-insight?

No. The skill describes fallback approaches for Innovator and Devil-Advocate, including handling those roles inline in Claude Code. Mediator uses the Agent tool for a separate instance.

Source text

SKILL.md · MIT
---
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

Each condition declares its check class (mandatory-pass / measured / judged); every judged condition
names its adversarial pairing — no judge-only path.

```
All Steps 0~3 completed (Steps 4~5 added if 5-layer selected)
  (mandatory-pass — each layer's output block is present in the declared format; a skipped layer is
   a FAIL, not a default pass)
+ Every Innovator proposal carries a Devil-Advocate rebuttal AND an acknowledgment line
  (measured: rebuttal count == proposal count, and acknowledgment count == rebuttal count. A
   rebuttal without an acknowledgment is already flagged `[WARN: unsynthesizable rebuttal]` in
   Step 2 — this condition is what makes that flag block completion instead of decorating it)
+ [Mediator — Synthesis Verdict] output present (Adopt / Alert absorption / Verdict / Conditions / Discard)
  (judged — adversarial pairing: the Devil-Advocate layer is the standing opposition to the
   Innovator, and the Mediator's synthesis is re-attacked by `fh-commons:quench-challenger` on the
   one axis the Devil conceded; a synthesis that only restates the concessions is not a verdict)
+ User's final decision confirmed (deliberation output must never be auto-executed)
  (mandatory-pass — an explicit user utterance selecting an option; silence, absence, or the
   session's own inference does NOT satisfy it)
```

**→ 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` |

© chrono-meta · MIT · chrono-meta/forge-harness

Similar skills

All skills for Design →

From the same set40

contention-layer Turns conflicting outputs from two skills or research tracks into candidate skills and draft SKILL.md files. CX Codex +1 ★ 30repo stars auto-decorrelation The skill recruits an available verifier from a different model family for consequential changes. External CLI calls require prior consent. CX Codex +1 ★ 30repo stars asset-placement-gate Tells you whether a proposed skill, plugin or agent deserves a place in the shared collection, should stay project-local, or should not exist at all. CX Codex +1 ★ 30repo stars apex-review Reviews technical proposals from executive decision-maker viewpoints and builds an HTML slide deck. Useful for surfacing leadership objections before pitching. CX Codex +1 ★ 30repo stars agent-composer This skill maps a task to available agents and proposes a dispatch plan, including parallel work for independent tasks. It can ask follow-up questions when the request is unclear. CX Codex +1 ★ 30repo stars token-budget-gate Works out roughly how many tokens a multi-step task will burn and returns a gate verdict before the agent starts spending. CX Codex +1 ★ 30repo stars mcp-circuit-breaker Halts cascading MCP tool retry loops and prevents wasted session tokens. The skill proposes fallback actions and resets once the tool recovers. CX Codex +1 ★ 30repo stars convergence-loop Turns a one-shot gate check into repeated FAIL→FIX rounds. The gate only counts as passed once a round needs no fixes at all. CX Codex +1 ★ 30repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor