Releases: berrzebb/quorum
Releases · berrzebb/quorum
v0.4.4 — Parliament Protocol, Implementation Loop, Daemon Control Center
Parliament Protocol (v1-v6)
- 3-role diverge-converge deliberation (advocate/devil/judge)
- Meeting log accumulation → convergence → CPS (Context-Problem-Solution)
- Amendment propose/vote/resolve with majority voting
- Confluence verification (4-point integrity check)
- Normal Form convergence tracking with regression detection
- Blueprint naming linter (blueprint_lint — 21st MCP tool)
5 Enforcement Gates
| Gate | Blocks When | Bypass |
|---|---|---|
| Amendment | Pending amendments unresolved | --force |
| Verdict | Latest audit != approved | --force |
| Confluence | Verification failed | --force |
| Design | Design artifacts missing | --force |
| Regression | Normal-form stage regressed | alert only |
Implementation Loop
- quorum orchestrate plan — interactive Socratic planner (replaces interview)
- quorum orchestrate run — full WB execution: agent → audit → approve → next → retro → merge
- Auto-plan from CPS if no WBs exist
Daemon Control Center
- ParliamentPanel: live sessions, convergence, amendments, normal form
- AgentChatPanel: multi-pane interactive agent relay (select, pin, type, send)
- ProcessMux.split(): backend-abstracted pane splitting
- Version auto-synced from package.json
CLI
- quorum parliament — deliberation with --rounds, --mux, --resume, --history
- quorum agent attach — interactive terminal relay to mux sessions
- quorum setup — locale selection (en/ko)
- Deprecated: interview (→ orchestrate plan), ask (no quorum context)
Infrastructure
- MuxAuditor: Auditor interface backed by ProcessMux (tmux/psmux)
- Planner Phase 0: CPS auto-intake before intent capture
- Design Phase mandatory for CPS-origin tracks
- i18n: all hardcoded messages → locale keys
- npm run version-sync — auto-sync package.json version to plugins
- 7-component fitness score, 12-factor trigger scoring
1004 tests, 0 fail.
v0.4.0 — Autonomous Quality Loop, Blast Radius, Structured Orchestration
What's New
95 files changed, +10,168 -2,388. Three-pass /simplify review (reuse, quality, efficiency) — all clean.
AST Hybrid Scanning
- Regex first pass (speed, <1ms/file) → TypeScript Compiler API second pass (precision, <50ms/file)
ast-analyzer.ts: 5 single-file analyzers + 2 cross-file analyzers- Program mode: unused export detection, import cycle detection via dependency graph DFS
ast-bridge.mjs: fail-safe MJS↔TS bridge for hybrid scanningperf_scanis the first hybrid tool (regex detectswhile(true), AST verifies break/return)
Fitness Score Engine
- 5-component quality metric (typeSafety, testCoverage, patternScan, buildHealth, complexity)
FitnessLoopgates LLM audit with 3 decisions:- auto-reject: score drop >0.15 → skip LLM (cost savings)
- self-correct: mild drop (0.05–0.15) → warn agent
- proceed: stable/improved → continue to audit
- Daemon
FitnessPanelshows real-time fitness trends
Blast Radius Analysis
- BFS on reverse import graph (
inEdges) for transitive dependent discovery buildRawGraph()extracted fromdependency_graphfor reuse (5s TTL cache)- 10th trigger factor: ratio > 10% → score += up to 0.15 (auto-escalation)
- Pre-verify evidence includes blast radius section
- New MCP tool:
blast_radius(19 tools total)
Structured Orchestration
ClaimService: per-file ownership (INSERT...ON CONFLICT), TTL-based expiryParallelPlanner: graph coloring for conflict-free execution groupsOrchestratorMode: auto-selects serial / parallel / fan-out / pipeline / hybridauto-learn.ts: repeat rejection pattern detection (3+) → CLAUDE.md rule suggestions- New CLI command:
quorum orchestrate
Event Reactor
respond.mjsrewritten: SQLite verdict → side-effects only (-1043/+211 lines)MessageBus: finding-level SQLite communication replaces file-based IPC- 39 event types including finding.detect/ack/resolve + fitness signals
Marketplace
plugin.json:mcpServers+skillsdeclarations added- marketplace.json in separate repo (
berrzebb/claude-plugins) — avoids #35842
Simplify Pass
- Dedup: inline OLS →
computeTrend()reuse, pre-verify →computeBlastRadius()reuse - Cache: tool-core module lazy-load cache,
hasPlanDocsession cache - Batch:
submitFindingsN+1 transactions → single batch - Cleanup: dead
recentDetectquery, orphaned JSDoc, unused params
Tests
- 743 tests (20 new: blast-radius, claim, orchestrator, fitness, hybrid-scan, trigger-fitness)
- All passing, 0 failures
Full Changelog
v0.2.5 — Worktree Isolation, Integration Invariant, Language-Aware Quality Rules
What's New
5-round Codex audit approved. 54 files changed, +1144 -303.
Worktree Audit Isolation
- Per-worktree lock, log, session, debounce files
deriveAuditCwd()resolves worktree root from watch_file path- Codex
-Cflag uses auditCwd (not REPO_ROOT) - All pre-verification runs in worktree context
[INFRA_FAILURE]verdict with execution metadata (separated from[APPROVED])- Worktree depth=1 invariant with nesting guard
Windows Compatibility
cli-runner.mjs: PATHEXT extensions first, extensionless POSIX script fallback- All providers (Codex/Claude/OpenAI/Gemini):
.cmdwrapper resolution - Prompt via stdin (not argv) — eliminates shell interpretation risk
needsShellonly for.cmd/.batwrappers- Fixes MinGW popup + Codex STATUS_HEAP_CORRUPTION crash
Integration Invariant
- PRD template: 5 categories + 4 typed refinements (state_transition, state_machine, identifier_normalization, schema_contract)
- RTM: Runtime column (consumed/instantiated/unwired) + integration-gap status
- Audit prompt: phase-aware judgment via
integration_owner - Work Breakdown:
integration_ownerfield for convergence points
Language-Aware Quality Rules
config.jsonpresets: TypeScript, Python, Rust, Go, Node fallback- All templates/prompts/skills reference
quality_rules.presets(zero hardcoded tool names) setup.tsauto-detects project typeverify TEMPLATEcommand detects hardcoded tool referencesverify RUNTIMEcommand checks save/load boundary contracts
Protocol Improvements
- No-abandon policy: evidence submission mandatory regardless of Tier
minimum_tierexperiment setting (forces audit for A/B experiments)- Completion gate: evidence existence check in
task-completed.mjs infra_failurepropagated through all auditors, consensus, daemon, bus events
Experimental Results (tetris A/B/C)
- tetris1 (no invariant): component 0/6, runtime 0/6
- tetris2 (WB invariant): component 5/6, runtime 2/6
- tetris3 (+ integration invariant): component 6/6, runtime 2/6 (Codex review)
- Conclusion: invariant + independent audit are complementary, not substitutes
Full Changelog
v0.2.3
Full Changelog: https://github.com/berrzebb/quorum/commits/v0.2.3
Full Changelog: https://github.com/berrzebb/quorum/commits/v0.2.3
Full Changelog: https://github.com/berrzebb/quorum/commits/v0.2.3
Full Changelog: https://github.com/berrzebb/quorum/commits/v0.2.3
Full Changelog: https://github.com/berrzebb/quorum/commits/v0.2.3
Full Changelog: https://github.com/berrzebb/quorum/commits/v0.2.3
Full Changelog: https://github.com/berrzebb/quorum/commits/v0.2.3