v2.2.0
What's Changed
Features
- Optional council elements: Four new opt-in behaviors for the second-opinion skill, all disabled by default and enabled only when explicitly named at launch. Includes a critic seat (four-pass adversarial review), expert lenses (domain-scoped perspectives), debate mode (contested findings go back to raisers for defense/amendment), and chair verdict scale (parseable final judgment). The skill's Stage-0 menu is now the single opt-in point, and the launch confirmation enumerates exactly what's enabled.
- Critic seat: One council member swaps to an adversarial four-pass brief (adversarial pass, edge-case hunt, consistency check, executability test), running as a concurrent solo and entering the anonymized bundle for peer adjudication like any other seat.
- Expert lenses: Each reviewer takes a distinct expert perspective (business, technical, customer, financial, or custom), with runs always passing
--no-ledgerto avoid feeding unreliable cross-review stats. The report discloses the weakened anonymity trade-off. - Debate mode: After cross-review, Contested or Disputed findings return to their raisers for a single defense/amendment/withdrawal round, followed by re-votes and final ledger-recorded tally.
- Chair verdict scale: The chair closes with 3-5 hard questions and one parseable line:
VERDICT: Ship it | Fix these first | Fundamental rethink, surfaced at the top of the report. - New SEAT-BRIEFS documentation: Added
skills/second-opinion/SEAT-BRIEFS.mdwith briefing boilerplate for all optional elements and a standard anti-sycophancy clause now required in every Stage-1 briefing. Methodologies adapted from John Renaldi's product-kit (MIT) with deliberate deviations documented. - Council art and prominence: Added visual council diagram (SVG and PNG) to README's What is Amicus section, and restructured the site's
#councilround-table section from a 50/50 grid to full-width stack positioned right after the hero as the page's visual centerpiece.
Improvements
- Zero engine changes: Optional elements are purely orchestration-level, riding on existing surfaces like free-form
runStats[].rolelabels and the--no-ledgerflag, keeping the core council engine unchanged. - Cost disclosure clarified: Pre-launch confirmation now includes any enabled optional elements in the run-shape estimate, so users see the full model-call impact upfront.
- Documentation expanded:
COUNCIL-DESIGN.mdgains section 12 documenting the elements, their caveats (critic self-identification in cross-review, lens anonymity/ledger trade-offs), and parallel panels as future work. The/councilcommand now accepts pre-requested elements in its arguments. - MODEL-NOTES updated: Fold-back from the v2.2.0 verification council, including claim-class dedup adjudication limits, minimax debut with strong critic seat, and Qwen-Coder debut.
Bug Fixes
- Windows e2e suites resurrected: Both integration test suites were silently dead since before the rebrand because Node's
spawn()cannot execute.bin/.cmdshims on Windows. The Electron toolbar suite now spawns the real binary viarequire('electron'), and the OpenCode server test helper uses the sharedensureNodeModulesBinInPath(). Also refreshed two stale pins: the wave document'sschemaVersionnow uses the shared constant instead of a hardcoded literal, and the toolbar brand assertion updated fromSidecartoAmicus.
Full Changelog: v2.1.0...v2.2.0