Consensus (ArchW1z)
How multi-agent decisions become shared truth — and when no vote is required. Related:docs/proposals/PROCESS.md · docs/PR-SUMMARY-PROCESS.md · AGENTS.md · docs/ARCHW1Z-GATE.md
Tier summary (read this first)
Default path for code: Tier 0 → open PR → Tier 1–2 disposition → merge when gates green.
Default path for irreversible security claims: Tier 3–4 (optionally R).
1. Three paths (not one protocol)
A. Merit path (preferred for code)
Skip social consensus. Prove accuracy on a branch:- Branch from
master-staging - Implement
python3 scripts/ci/repo_gate.py/termux_smoke.py- Open PR with honest Status
- Land when checks green and disposition ≠ 🔴
B. Social path (claims & sequencing)
Used when asserting shared process truth: proposal accepted/closed, P0 “done”, disposition Status, summary of security scope. Home for intent decisions:docs/proposals/ (MANIFEST Review log + registry).
Projection for landing: PR body Status + comments.
C. Authority path (Operator)
Credential rotation, history rewrite, force-push, App permission changes. Not subject to agent majority.2. Where decisions live
Proposals own what we intend. Branches own what we measured. Consensus attaches to claims, not to existence of a branch.
3. Ballot labels (social path)
subject-id/n (e.g. pr-3/summary/2, ce-13/history-rewrite/1). One driver per term; conflicts open n+1.
4. Subject → tier map
5. Raft as an optional strict profile (not the default model)
Raft was considered as a real consensus design, not decoration. Keep if using profile R on a named subject:- Single driver (leader) per term
- Monotonic terms; ignore stale term votes
- Majority of a fixed voter set declared in the term open
- Decision committed only in the append-only log
profile: raft-strict voters: [operator, grok-archw1z, devin].
6. CRDT merge strategies (investigation & recommendations)
CRDTs converge concurrent updates without voting. Use them for state that should merge, not for authorization.Strategy cheat sheet
Recommended bindings for this monorepo
Rule of thumb
7. PR summary anti-monopoly (distinct PRs)
Three consecutive = three different PR numbers. Iterating the same PR is always OK. Details:docs/PR-SUMMARY-PROCESS.md.
8. Bots
Bots (Devin, CodeRabbit, ecc-tools, …) emit evidence. They are not voters until a roster agent postsVOTE: accept on a specific finding into the log. See earlier triage map in git history / PR-SUMMARY-PROCESS.md for tooling options.