council
Use when the user asks for a council, second opinions, or parallel investigation. Not for cross-examination of existing proposals: use cross-critique.
Install
npx skills add https://github.com/OutlineDriven/odin-claude-plugin/tree/main/plugins/odin-critique/skills/council
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install outlinedriven-odin-claude-plugin@llmmart
git clone https://github.com/OutlineDriven/odin-claude-plugin.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole outlinedriven/odin-claude-plugin collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Council
Contract
| Field | Bound contract |
|---|---|
| Trigger | User asks for a council, second opinions, or parallel investigation. |
| Authority | Read-only. No file, VCS, credential, paid, published, deployed, or remote mutation. Subagents inherit the same read-only posture unless the user explicitly scopes a narrower mutation. |
| Side effect | Spawns parallel subagents in chat output. No repo mutation unless the user explicitly scopes it. Deliverable is the council's decision memo. |
| Done | Decision memo with recommendation, consensus, risks, and evidence. |
Inputs
The question or decision to investigate (required). Number of council members or specific investigative stances to represent (optional; default three distinct stances). Scope constraints and admissible evidence sources (optional). The user-stated criteria bound the investigation; do not widen scope beyond them.
Procedure
- Restate the question and confirm scope against the user-stated criteria. Bound the investigation before spawning; do not widen scope. Done when: the question is restated and scope is confirmed against user criteria.
- Define council members as distinct investigative stances appropriate to the question (for example optimist, skeptic, risk-auditor, domain expert). Use the user-specified stances when supplied; otherwise default to three. Done when: each council member is assigned a distinct investigative stance.
- Spawn one subagent per stance. Each subagent investigates the question independently from its assigned stance, gathers evidence, and returns a position with supporting evidence and identified risks. Done when: one subagent is spawned per stance and each returns a position with evidence and risks.
- Collect all subagent positions without merging prematurely. Done when: every subagent position is collected unmerged.
- Compare positions across stances: mark consensus points, disagreements, and unresolved risks. Done when: consensus points, disagreements, and unresolved risks are marked across all positions.
- Synthesize a decision memo stating the recommendation, the consensus reached, dissenting views, residual risks, and the evidence supporting each. Done when: the memo states recommendation, consensus, dissent, residual risks, and per-point evidence.
- Present the memo. Do not select or execute a decision unless the user explicitly authorizes further action. Done when: the memo is presented and no decision is executed without explicit user authorization.
Failure and recovery
- Subagent returns no usable position: mark that stance as inconclusive, proceed with remaining members, and note the gap in the memo.
- All subagents inconclusive or evidence insufficient: return a non-converged memo stating the blocker; do not fabricate consensus or pretend the done predicate holds.
- Scope drift detected: stop, restate the user-stated criteria, and re-bound before continuing; never widen scope to manufacture a result.
- Subagent attempts repo mutation without user-scoped authorization: treat as out-of-scope, exclude the action, and record the violation in the memo.
- Partial-result rule: a memo with some inconclusive stances is valid as long as every gap is explicitly recorded; never silently drop a stance.
Output
A decision memo containing recommendation, consensus, dissenting views, residual risks, and evidence. Terminal classification is converged (consensus reached) or non-converged (insufficient evidence or unresolved disagreement).
Files (odin-claude-plugin)
-
agents
-
openai.yaml 142 B
interface: display_name: "Council" short_description: "Use when the user asks for a council, second opinions, or parallel investigation."
-
-
SKILL.md 3.6 KB
--- name: council description: 'Use when the user asks for a council, second opinions, or parallel investigation. Not for cross-examination of existing proposals: use cross-critique.' --- # Council ## Contract | Field | Bound contract | |---|---| | Trigger | User asks for a council, second opinions, or parallel investigation. | | Authority | Read-only. No file, VCS, credential, paid, published, deployed, or remote mutation. Subagents inherit the same read-only posture unless the user explicitly scopes a narrower mutation. | | Side effect | Spawns parallel subagents in chat output. No repo mutation unless the user explicitly scopes it. Deliverable is the council's decision memo. | | Done | Decision memo with recommendation, consensus, risks, and evidence. | ## Inputs The question or decision to investigate (required). Number of council members or specific investigative stances to represent (optional; default three distinct stances). Scope constraints and admissible evidence sources (optional). The user-stated criteria bound the investigation; do not widen scope beyond them. ## Procedure 1. Restate the question and confirm scope against the user-stated criteria. Bound the investigation before spawning; do not widen scope. Done when: the question is restated and scope is confirmed against user criteria. 2. Define council members as distinct investigative stances appropriate to the question (for example optimist, skeptic, risk-auditor, domain expert). Use the user-specified stances when supplied; otherwise default to three. Done when: each council member is assigned a distinct investigative stance. 3. Spawn one subagent per stance. Each subagent investigates the question independently from its assigned stance, gathers evidence, and returns a position with supporting evidence and identified risks. Done when: one subagent is spawned per stance and each returns a position with evidence and risks. 4. Collect all subagent positions without merging prematurely. Done when: every subagent position is collected unmerged. 5. Compare positions across stances: mark consensus points, disagreements, and unresolved risks. Done when: consensus points, disagreements, and unresolved risks are marked across all positions. 6. Synthesize a decision memo stating the recommendation, the consensus reached, dissenting views, residual risks, and the evidence supporting each. Done when: the memo states recommendation, consensus, dissent, residual risks, and per-point evidence. 7. Present the memo. Do not select or execute a decision unless the user explicitly authorizes further action. Done when: the memo is presented and no decision is executed without explicit user authorization. ## Failure and recovery - Subagent returns no usable position: mark that stance as inconclusive, proceed with remaining members, and note the gap in the memo. - All subagents inconclusive or evidence insufficient: return a non-converged memo stating the blocker; do not fabricate consensus or pretend the done predicate holds. - Scope drift detected: stop, restate the user-stated criteria, and re-bound before continuing; never widen scope to manufacture a result. - Subagent attempts repo mutation without user-scoped authorization: treat as out-of-scope, exclude the action, and record the violation in the memo. - Partial-result rule: a memo with some inconclusive stances is valid as long as every gap is explicitly recorded; never silently drop a stance. ## Output A decision memo containing recommendation, consensus, dissenting views, residual risks, and evidence. Terminal classification is converged (consensus reached) or non-converged (insufficient evidence or unresolved disagreement).
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.