cli-forge-quorum — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cli-forge-quorum (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Generates a multi-agent orchestration with Byzantine fault tolerance, adaptive quorum sizing per task criticality, and view-change timeouts to eliminate single-leader bottlenecks.
The pattern comes from applying distributed-systems research (PBFT, HotStuff, Mir-BFT, Mercury, BFTBrain) to LLM agent dispatch. Empirically validated by arxiv 2511.15755 — multi-agent orchestration raises actionable-recommendation rate from 1.7% to 100% with zero variance across 348 trials.
| Situation | Use |
|---|---|
| First multi-agent sprint, 2-5 workers, dev repo | `cli-forge-chef` (Brigade pattern, lighter) |
| Brigade stalled 30+ min on leader bottleneck | `cli-forge-quorum` (view-change, leaderless) |
| Compliance audit / SLA / incident response | `cli-forge-quorum` (signed trail + DQ metric) |
| > 10 parallel agents | `cli-forge-quorum` (Mir-BFT-style scaling) |
| Variable criticality (trivial-to-critical tasks mixed) | `cli-forge-quorum` (adaptive N) |
| "Just automate my git workflow" | `cli-forge-chef` |
Key test : if stalling the leader would cost > 1h of wasted sprint time, you need REC-Quorum. If the leader can stall and be manually unblocked in < 15 min, Brigade is enough.
Phase 0 — Reflect → plan signé + tickets commis (Chef + 2 Sous-Chefs plan)
Phase 1 — Execute → leaderless, tickets pré-signés, contre-chef-inter auto-approve
Phase 2 — Control → f+1 validateurs indépendants signent le résultatEach phase emits a signed certificate (hash canonique + signatures). Without the certificate, no transition to the next phase. A failing phase triggers view-change (backup takes over) or escalation (human in the loop).
Read references/rec-phases.md for the complete specification of each phase, including timeouts, hash-canonical voting, and view-change protocol.
Read references/leaderless-execute.md. Core idea: at Phase 0, the Chef signs a ticket per commis stating "commis-X is authorized to Edit files matching scope S in normal zones". During Execute, the contre-chef-inter validates tickets against edits — no round-trip to the Chef. The Chef sleeps until Phase 2 or escalation.
Read references/quorum-sizing.md. A task classifier maps incoming requests to N:
| Criticality | N | Tolerates | Example |
|---|---|---|---|
| trivial | 1 | nothing | format comment, rename var |
| routine | 3 | 1 crash | standard feature implementation |
| sensitive | 5 | 1 Byzantine | security-adjacent code, dependencies |
| critical | 7 | 2 Byzantine | auth, crypto, financial transactions |
Cost model: N=7 → 7× LLM cost. Document this in every sprint plan so operators don't casually pick critical.
Read references/petri-cwn-templates.md. PERT cannot model loops, tokens, or conditional gates — all of which REC-Quorum has. Colored Workflow Nets (van der Aalst) natively model:
For live dashboards: bpmn-js with token simulation plugin, or Renew/WoPeD for formal analysis.
Read references/bft-primitives.md. Do not re-implement consensus. Pick from:
For threshold signatures: BLS (short sigs, aggregatable) or Schnorr MuSig2 (more battle-tested).
Read references/upgrade-from-brigade.md. A working cli-forge-chef brigade can migrate to REC-Quorum incrementally:
cli-forge-chef at tier ≥ M)Each step is independently deployable and testable.
# Does this project really need REC-Quorum?
# Run the triage decision treeIf any answer is "no" that matters to the use case, stop and suggest cli-forge-chef instead.
Produce at minimum:
references/apply-quorum-rec-q.md)cli-forge-chef/references/brigade-setup-worktrees.sh, extended for REC-Q's role list)cli-forge-chef)Do not re-invent these. Import the chef versions verbatim and, where needed, extend:
| Artefact (chef source) | REC-Q use |
|---|---|
cli-forge-chef/references/ccheck-prompt-template.md | Mandatory ccheck window (G24) |
cli-forge-chef/references/contre-chef-inter-prompt-template.md | Phase 1 ticket verifier (see references/leaderless-execute.md) |
cli-forge-chef/references/tmuxinator-template.md | Base structure — uses --append-system-prompt-file (G34-safe), no wrapper script, brigade-setup-worktrees.sh in on_project_start |
cli-forge-chef/references/brigade-setup-worktrees.sh | Idempotent setup, no SIGPIPE (G35), one branch per agent (G36) |
cli-forge-chef/references/permissions-template.md | Per-worktree settings.local.json for standalone panes (gate, apply, maitre). Teammates inherit the root (G32) — so the root settings.local.json must carry the strictest deny list |
cli-forge-chef/references/maitre-dhotel.md | Post-merge watchdog, unchanged |
cli-forge-chef/references/gotchas-chef.md | Base gotchas — read alongside references/gotchas-quorum.md |
cli-forge-chef/references/apply-quorum.md | Lighter apply protocol for dev sprints; REC-Q uses references/apply-quorum-rec-q.md instead |
Never generate `scripts/brigade-launch-agent.sh` — it's the obsolete wrapper superseded by --append-system-prompt-file (see references/anti-patterns.md §22).
Before running tmuxinator start {session}:
gotchas-quorum.md Q10)ticket-template.json against JSON Schema.floor(N/2) + 1 at minimum for Control, 2 for Plan.anti-patterns.md §11)cli-forge-chef §2.6b — mandatory at tier ≥ M.anti-patterns.md §17)! grep -q '\$(cat ' ~/.config/tmuxinator/{session}.yml AND ! test -f {project}/scripts/brigade-launch-agent.sh AND grep -qc 'append-system-prompt-file' ~/.config/tmuxinator/{session}.yml. Reject legacy wrapper generation. (anti-patterns.md §18, §22)test -x {project}/scripts/brigade-setup-worktrees.sh AND ! grep -q 'pipefail' $_ AND ! grep -q 'worktree add.*| head' ~/.config/tmuxinator/{session}.yml. (anti-patterns.md §19)git branch --list 'wt/*' | wc -l equals the count of non-commis agent panes; {base_branch}-{commis_name} branches exist for each commis. (anti-patterns.md §20)grep -q 'Down Enter' ~/.config/tmuxinator/{session}.yml AND the line contains & so it doesn't block on sleep. (anti-patterns.md §21)grep -c 'Bash(tofu apply\|Bash(helm upgrade\|Bash(kubectl apply\|Bash(gh release\|Bash(git push --force' {project}/.claude/settings.local.json | (read n; [[ $n -ge 5 ]]). Teammates inherit the root — strict deny list here is the only line of defence. (gotchas-quorum.md Q4)test -f {project}-wt-apply/.claude/settings.local.json AND it allows tofu:* / helm:* / kubectl:* AND denies git push:* / git commit:*. (apply-quorum-rec-q.md)test -d {project}/.claude/rec-quorum/certificates/ AND test -d {project}/.claude/rec-quorum/plans/. (gotchas-quorum.md Q8)! grep -iE 'classify|decide.*zone|check.*sensitive' {project}/.claude/rec-quorum/orchestrator-{session}.md in the Phase 1 section. (gotchas-quorum.md Q7, anti-patterns.md §10)control-validator-*.md prompts — any two literally identical up to {role} substitution fails the gate. (gotchas-quorum.md Q6, anti-patterns.md §15)If any gate fails, do NOT proceed. Fix generation first.
| File | Content |
|---|---|
references/rec-phases.md | Phase 0 / 1 / 2 specs with timeouts, hash-canonical voting, view-change |
references/leaderless-execute.md | Tickets pré-signés, contre-chef-inter as verifier, budget enforcement |
references/quorum-sizing.md | Criticality classifier, N mapping, cost model, heterogeneous quorums |
references/bft-primitives.md | Pointers to HotStuff-lite, Mir-BFT, Mercury, BFTBrain, threshold sigs |
references/petri-cwn-templates.md | Workflow modelling with Petri / Colored Workflow Nets, soundness analysis |
references/upgrade-from-brigade.md | Six incremental migration steps from cli-forge-chef |
references/apply-quorum-rec-q.md | Phase 2 apply quorum for tofu apply / helm upgrade / kubectl apply / gh release create / feature-branch force-push |
references/gotchas-quorum.md | REC-Q-specific gotchas Q1-Q10, plus cross-reference map to cli-forge-chef/references/gotchas-chef.md G1-G38 |
references/anti-patterns.md | 22 patterns to refuse (architecture + launch-time bugs) |
Read references/anti-patterns.md. Never generate:
cli-forge-chef remains the right tool for dev workflows. cli-forge-quorum is a higher-rigor, higher-cost pattern for when Brigade is insufficient. The two skills share several templates:
contre-chef-inter-prompt-template.md (lives in cli-forge-chef/references/, reused here)tmuxinator-template.md (base structure, adapted for N validators)shared-state concept (extended to .jsonl append-only in REC-Q)cli-forge-quorum imports these via path references, not duplication. See references/upgrade-from-brigade.md for the exact reuse map.
Before generating, print to the operator:
REC-Quorum cost estimate for this sprint:
Task mix: T trivial, R routine, S sensitive, C critical
Quorum sizes: 1×T + 3×R + 5×S + 7×C agent-calls per task
Base cost: $X at N=1 (Brigade equivalent)
REC-Q cost: $Y (about 2-3× for a typical dev sprint)
Cost rationale: a Brigade sprint stalled for 45 min wastes > $Y anyway.
Ship anyway? [y/N]Do not hide the cost. Operators who pay 2-3× and still choose REC-Q do so because stall-recovery is worth more.
A generation is "done" when:
tmuxinator doctor reports clean~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.