Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Collect independent perspectives for an
.claude/skills/boshu2-council/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -27% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -20% | 0% |
Council is an optional judgment strategy, not a lifecycle or delivery gate. Use it when one fresh validator is insufficient for a named irreversible, high-blast-radius, or genuinely contested decision. Do not convene a council for a routine or reversible decision that a single fresh validator can settle: the cost of independent contexts is warranted only by a named one-way door.
judgment without seeing other answers first.
minority evidence and unresolved assumptions.
council-report.v1 and return it to the caller.Agreement across differing evidence methodologies counts more than agreement within one. Record each judge's evidence methodology (for example: static reading, executing the subject, tracing history) alongside its judgment. A consensus claim must name at least two distinct methodologies among its supporting judges; otherwise report it as single-method agreement and weight it as one confirmation, however many judges share it. The named failure mode is echo consensus: unanimous judgment produced from identical inputs by one shared method, laundered as independent confirmation.
When the caller pins judges to model profiles, record each judge's model_identity beside its methodology and context ID (see the agent-native model-dispatch recipe). Cross-model agreement is an additional diversity axis: single-model unanimity is weighted as one confirmation with the same anti-echo-consensus rationale, regardless of how many judges share that model. If a requested profile has no live adapter, disclose diversity_unsatisfied on the report and continue single-model — never silently, never via claude -p.
Every judging round uses fresh judge contexts with new context IDs, distinct from the author, the synthesizer, and every prior round. A judge that has seen another judge's answer, or its own prior-round answer, is no longer independent: exclude its judgment from agreement counting and admit it only as labeled commentary. Reused or colliding context IDs are a checkable stop condition — repair the isolation or report the round as non-independent.
The report ends with an explicit consensus/divergence synthesis: consensus points with their methodology spread, divergence points with each side's cited evidence, minority findings preserved in their own words, and unresolved assumptions. Synthesis is complete when every judge finding lands in exactly one of those buckets; a finding silently dropped from synthesis is majority laundering.
.agents/scratch/council/<run-id>/.council-report.json.council-report.v1 JSON — the frozen question and subject digest,every judge's context ID, evidence methodology, cited evidence, and disclosed omissions, plus the consensus/divergence/minority/unresolved synthesis. It carries no verdict, readiness, or PASS field; the validator rejects one.
skills/council/scripts/validate-output.sh <council-report.json>.
A judge that times out, errors, or returns an evidence-free judgment is excluded from agreement counting and recorded as non-returning; if fewer than two independent judgments remain, report the round as insufficient rather than synthesize a thin consensus.
Council does not mint a verdict of any version — no PASS/FAIL/NOT_PROVEN, no verdict.v* — edit the subject, retry work, choose a next action, or authorize Git, closure, release, or delivery. When Council is used as a Validate strategy, one accountable fresh validator consumes its report and Validate remains the sole semantic result owner and the only optional verdict.v2 writer.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→fail | 31,957 | 7,108 | -78% | 1 | 1 | 0% | 5,669 | 1,392 | -75% | 0 | 0 | — |
case-02 | fail→fail | 3,723 | 7,537 | +102% | 1 | 1 | 0% | 236 | 1,351 | +472% | 0 | 0 | — |
case-03 | fail→fail | 20,637 | 8,508 | -59% | 1 | 1 | 0% | 3,625 | 1,239 | -66% | 0 | 0 | — |
case-04 | fail→pass | 27,860 | 4,435 | -84% | 1 | 1 | 0% | 2,243 | 1,647 | -27% | 0 | 0 | — |
case-09 | fail→pass | 9,966 | 3,377 | -66% | 1 | 1 | 0% | 1,679 | 1,443 | -14% | 0 | 0 | — |
case-05 | fail→pass | 8,681 | 4,422 | -49% | 1 | 1 | 0% | 1,383 | 1,611 | +16% | 0 | 0 | — |
case-06 | fail→fail | 33,261 | 4,677 | -86% | 1 | 1 | 0% | 6,320 | 1,046 | -83% | 0 | 0 | — |
case-07 | fail→pass | 10,459 | 5,688 | -46% | 1 | 1 | 0% | 1,567 | 1,764 | +13% | 0 | 0 | — |
case-08 | pass→pass | 12,599 | 6,344 | -50% | 1 | 1 | 0% | 2,123 | 2,065 | -3% | 0 | 0 | — |
case-10 | fail→pass | 12,730 | 4,064 | -68% | 1 | 1 | 0% | 1,892 | 1,510 | -20% | 0 | 0 | — |
case-11 | pass→pass | 12,822 | 6,876 | -46% | 1 | 1 | 0% | 2,017 | 2,030 | +1% | 0 | 0 | — |
case-12 | fail→pass | 9,134 | 4,985 | -45% | 1 | 1 | 0% | 1,389 | 1,697 | +22% | 0 | 0 | — |
case-13 | fail→pass | 7,869 | 3,890 | -51% | 1 | 1 | 0% | 1,220 | 1,601 | +31% | 0 | 0 | — |
case-14 | fail→pass | 19,969 | 3,142 | -84% | 1 | 1 | 0% | 1,212 | 1,445 | +19% | 0 | 0 | — |
case-15 | pass→pass | 9,544 | 2,732 | -71% | 1 | 1 | 0% | 1,498 | 1,367 | -9% | 0 | 0 | — |
case-16 | fail→pass | 10,281 | 4,348 | -58% | 1 | 1 | 0% | 1,634 | 1,602 | -2% | 0 | 0 | — |
case-17 | fail→pass | 8,136 | 2,071 | -75% | 1 | 1 | 0% | 1,137 | 1,147 | +1% | 0 | 0 | — |
case-18 | fail→fail | 10,468 | 5,797 | -45% | 1 | 1 | 0% | 1,606 | 1,863 | +16% | 0 | 0 | — |
case-19 | fail→pass | 14,019 | 2,036 | -85% | 1 | 1 | 0% | 1,079 | 1,248 | +16% | 0 | 0 | — |
case-20 | fail→pass | 8,514 | 2,065 | -76% | 1 | 1 | 0% | 1,340 | 1,162 | -13% | 0 | 0 | — |
case-21 | fail→pass | 13,502 | 2,810 | -79% | 1 | 1 | 0% | 1,977 | 1,362 | -31% | 0 | 0 | — |
case-22 | pass→pass | 13,126 | 5,156 | -61% | 1 | 1 | 0% | 2,010 | 1,793 | -11% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 17 counted toward the lift figure. The other 5 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +55 percentage points is the difference between those two pass rates over the 17 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.