Releases: Nuralyn/Bench
Release list
Bench v1.1.0: Governance on a Claude Code Subscription
Bench now governs itself out of the box with no API key: the new claude_code provider routes the Challenger, Defender, and Oracle through the local claude CLI in headless mode, riding your Claude Code subscription. The ledger also gained an independent meta anchor, and vetoes finally speak their documented format.
What's new in v1.1.0
claude_code provider (no API key required)
- New
BENCH_PROVIDER=claude_codedispatches each pipeline stage through the localclaudeCLI in headless JSON mode - Children spawn with
BENCH_SUBPROCESS=1so Bench's own hook fails open instead of recursing - Hardened per two security audits: path sanitization, prompt-injection resistance for the judge, per-stage timeouts (
BENCH_CLAUDE_TIMEOUT) - Now the default provider for Bench's own self-governance
Ledger meta anchor
verifycross-checksledger-meta.json(latest_hash,entry_count) and fails withMETA_MISMATCH, so a wholesale chain rewrite that is internally consistent no longer passes- Writer and verifier share a single
META_FILENAMEconstant so they cannot drift
Hook output you can act on
- Vetoes now emit the documented
BENCH VETO [C-XXX]: ...format with remediation guidance - Oracle advisories are surfaced to the developer instead of stopping at the ledger
Test suite and CI
- 300+ stdlib unittest tests covering the pipeline, ledger, CLI, viewer, stats, and hook, with a GitHub Actions workflow
- Shared synthetic-chain fixture module as the single source of truth for entry shape
Hardening and fixes
call_modelresponse parsing wrapped in typed error guards on every provider path (it truly never raises)- Silent exception fallbacks in diff handling now log to stderr (constitutional constraint C-001)
- Diff paths resolve against the file-derived repo root instead of the current working directory
- Citation counting and oracle validation fixes in the pipeline
- Viewer temp file no longer deleted before the browser loads it
openaiis a true soft dependency (only needed forBENCH_PROVIDER=openrouter);anthropichas a pinned lower bound- Removed the orphaned
util/package and machine-local settings from tracking
The ledger is the proof
Every one of these changes passed through Bench's own pipeline. The shipped ledger holds 149 hash-chained verdicts spanning April 22 to July 12, and python -m cli verify confirms the chain VALID with the meta anchor verified.
Install
git clone https://github.com/Nuralyn/Bench.gitSee README.md for setup and configuration.
License
MIT
Bench v1.0.0 — Constitutional Governance for Claude Code
Bench intercepts every code change Claude Code proposes, runs it through an adversarial deliberation pipeline, and records every verdict to a tamper-evident ledger before anything touches your files.
Pipeline
- PreToolUse hook intercepts proposed changes before execution
- Challenger (Sonnet 4.6) argues against the change
- Defender (Sonnet 4.6) argues for the change
- Oracle (Opus 4.7) renders a binding verdict
- Ledger records every verdict with SHA-256 hash chaining
What's in v1.0.0
- 8 constitutional constraints (C-001 through C-008)
- Proven self-veto: C-007 blocked its own constraint violation (ledger entry #8)
- Fails open by design: if Bench crashes, Claude Code keeps working
- Dual provider support: Anthropic API and OpenRouter via
BENCH_PROVIDERenv - CLI viewer with inline HTML ledger browser
- Full hash-chain integrity across all recorded verdicts
Install
git clone https://github.com/Nuralyn/Bench.gitSee README.md for setup and configuration.
License
MIT