councillisted
Install: claude install-skill steven112163/dotharness
# Council
Coordinates an adversarial two-model debate: Claude and GPT-5.6-sol generate independent positions, challenge each other directly for up to 3 rounds, and converge on the strongest answer by argument quality — not agreement.
## When to use
- User asks a hard technical or factual question where a second perspective reduces error
- User says "council", "ask GPT", "get a second opinion", "debate this"
- On your own initiative: question is high-stakes, has conflicting priors, or your confidence is low
## When NOT to use
- Simple factual lookups (just answer directly)
- Creative or subjective tasks (debate adds noise, not signal)
- Question already well-resolved in context
## Protocol
### Phase 1 — Independent answers (parallel, round 0)
Create a temp dir under the repo's `tmp/` (gitignored, not in `/tmp`):
```bash
_repo_root=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
mkdir -p "$_repo_root/tmp"
COUNCIL_DIR=$(mktemp -d "$_repo_root/tmp/council-XXXXXX")
mkdir -p "$COUNCIL_DIR/round-0"
```
Write the question to a file first (avoids shell injection and handles multiline questions):
```bash
printf '%s' "<question>" > "$COUNCIL_DIR/question.txt"
```
**Write your own independent answer to `$COUNCIL_DIR/round-0/claude.txt` first.** Form and commit your position before spawning the GPT subagent — this is the anti-anchoring guarantee.
Then spawn a `general-purpose` subagent to get GPT's response. Provide the literal expanded path values in the prompt (subagent