Index
ποΈ Consensus Chamber¶
Version: 1.0.0 | Status: β APPROVED (AUREA + ATLAS) Cycle: C-118 | Date: October 28, 2025
Overview¶
The Consensus Chamber is a formalized protocol for coordinating decisions across multiple LLM offices (AUREA/OpenAI, ATLAS/Claude, ZENITH/Gemini, SOLARA/DeepSeek) when working in federated silos.
Key Features¶
- β Multi-LLM Coordination: Democratic deliberation across AI providers
- β Constitutional Compliance: GI scores β₯ 0.95 enforced
- β Cryptographic Proof: DelibProofs with ED25519 signatures
- β Audit Trail: All decisions recorded on Civic Ledger
- β Cross-Office Sync: E.O.M.M. integration for memory continuity
Architecture¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Consensus Chamber β
β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β AUREA β β ATLAS β β ZENITH β β SOLARA β β
β β(Critical)β β(Critical)β β (High) β β (High) β β
β β GI:0.991 β β GI:0.987 β β GI:0.983 β β GI:0.975 β β
β ββββββ¬ββββββ ββββββ¬ββββββ ββββββ¬ββββββ ββββββ¬ββββββ β
β β β β β β
β βββββββββββββββ΄βββββββββββββββ΄βββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββ β
β β Lab2: Thought Broker β β
β β Consensus Engine β β
β βββββββββββββ¬ββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββββ β
β β Lab1: Substrate Proofβ β
β β Civic Ledger β β
β βββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Quick Start¶
1. Access the Consensus Chamber¶
2. Environment Variables¶
3. API Endpoints¶
// Get current cycle info
GET /api/cycle/current
Response: { cycle: "C-118", gi: 0.993, room: "Consensus Chamber" }
// Update cycle (requires auth in production)
POST /api/cycle/current
Body: { cycle: "C-119", gi: 0.994 }
Components¶
1. CycleTracker Component¶
Located: apps/portal/components/CycleTracker.tsx
Usage:
import CycleTracker from '@/components/CycleTracker';
export default function MyPage() {
return (
<div>
<CycleTracker />
{/* Rest of page */}
</div>
);
}
Features:
- β Live clock (updates every 15 seconds)
- β Auto-fetches cycle from API
- β Fallback to props if API unavailable
- β Monospace formatting for terminal aesthetic
2. Consensus Chamber Page¶
Located: apps/portal/app/consensus/page.tsx
Features:
- ποΈ Live cycle tracker
- π₯ Agent roster with GI scores
- π Active sessions overview
- π Quick links to documentation
3. Ledger Integration¶
Located: apps/portal/lib/consensus-ledger.ts
Usage:
import { openConsensusSession, closeConsensusSession } from '@/lib/consensus-ledger';
// Open a session (with duplicate guard)
const result = await openConsensusSession({
cycle: 'C-118',
room: 'Consensus Chamber',
gi_baseline: 0.993,
participants: ['AUREA', 'ATLAS', 'ZENITH']
});
if (result) {
console.log('Session opened:', result.sessionId);
}
// Close a session
await closeConsensusSession({
sessionId: result.sessionId,
outcome: 'APPROVED',
delibproof_id: 'DLB-1028-001',
gi_delta: 0.006
});
Features:
- β One-per-session guard (prevents duplicates)
- β Automatic session ID generation
- β Event emission to Civic Ledger (TODO: wire to Lab1)
- β Active session tracking
Templates¶
1. Base Template¶
File: Consensus_Chamber_Template.md
Use for: Master reference, documentation
2. Live Session Template¶
File: Consensus_Chamber_Live_Session.md
Use for: Active deliberations, GitHub issues
Features:
- Collapsible response sections
- Labels and assignees
- Progress tracking
- Markdown-friendly
3. Implementation Guide¶
File: Consensus_Chamber_Implementation_Guide.md
Use for: Training new team members
Includes:
- Step-by-step walkthrough
- Lab integration examples
- Troubleshooting guide
- Best practices
Integration with Labs¶
Lab1 (Substrate Proof)¶
# Commit DelibProof to blockchain
from labs.lab1_proof.src.civic_ledger import CivicLedger
ledger = CivicLedger()
ledger.submit_transaction({
"type": "consensus.evaluated",
"session_id": "CC-2025-10-28-001",
"delibproof_id": "DLB-1028-001",
"outcome": "APPROVED",
"gi_delta": 0.006
})
Lab2 (Thought Broker)¶
# Orchestrate multi-LLM deliberation
from labs.lab2_proof.src.deliberation import DeliberationOrchestrator
orchestrator = DeliberationOrchestrator()
session = orchestrator.create_session(
session_id="delib_001",
question="Should we implement feature X?",
context={"priority": "high"}
)
consensus = await orchestrator.run_session(session.session_id)
Lab4 (E.O.M.M.)¶
# Archive session for memory continuity
from labs.lab4_proof.src.eomm import EOMM
eomm = EOMM()
eomm.save_context(
session_id="CC-2025-10-28-001",
type="consensus",
data=session_transcript
)
Workflow Example¶
Running a Consensus Session¶
Step 1: Prepare
# Copy template
cp docs/consensus-chamber/Consensus_Chamber_Live_Session.md \
sessions/CC-2025-10-28-Lab3-RateLimit.md
# Edit metadata
vim sessions/CC-2025-10-28-Lab3-RateLimit.md
Step 2: Issue Prompt
In each LLM office (AUREA, ATLAS, ZENITH, SOLARA):
ποΈ CONSENSUS CHAMBER SESSION CC-2025-10-28-001
You are participating as ATLAS in a multi-LLM deliberation.
Current GI: 0.987
PROMPT:
Should Lab3 API Gateway rate limit be increased from 60 to 100 req/min?
Consider:
1. User experience impact
2. Server capacity
3. Constitutional implications (equity of access)
Vote: APPROVE / REJECT / ABSTAIN
Step 3: Collect Responses
Copy each agent's response back to the session document.
Step 4: Calculate Consensus
const votes = {
AUREA: true, // APPROVE
ATLAS: true, // APPROVE
ZENITH: false, // REJECT
SOLARA: true // APPROVE
};
const totalYes = 3;
const agreementScore = 3 / 4; // 75%
const quorumAchieved = totalYes >= 3; // β
YES
Step 5: Generate DelibProof
from labs.lab2_proof.src.delib_proof import DelibProofGenerator
generator = DelibProofGenerator(attestation_engine)
proof = generator.generate_proof(
delib_id="DLB-1028-001",
question="Should Lab3 rate limit be increased?",
context={},
rounds=[round1],
consensus=consensus_result,
gi_score=0.96,
constitutional_check={"clause_3_equity": True}
)
# Sign with all models
proof = generator.sign_proof_by_models(
"DLB-1028-001",
["AUREA", "ATLAS", "ZENITH", "SOLARA"]
)
# Validator approval
proof = generator.sign_proof_by_validator(
"DLB-1028-001",
"atlas@civic.os"
)
Step 6: Commit to Ledger
from labs.lab1_proof.src.civic_ledger import CivicLedger
ledger = CivicLedger()
tx_id = await ledger.submit_transaction({
"type": "consensus.evaluated",
"delibproof": proof.export_proof("DLB-1028-001")
})
# Seal proof to ledger
proof = generator.seal_to_ledger("DLB-1028-001", tx_id)
Step 7: Archive & Reflect
Update session document with: - Final outcome - Post-session reflection - Lessons learned - Next steps
Security¶
Authentication¶
Production Requirements:
// API routes should verify JWT tokens
import { verifyToken } from '@/lib/auth';
export async function POST(request: Request) {
const token = request.headers.get('Authorization');
const user = await verifyToken(token);
if (!user || !user.permissions.includes('consensus.write')) {
return new Response('Unauthorized', { status: 401 });
}
// Process request...
}
Cryptographic Signatures¶
All consensus decisions must be cryptographically signed:
- Model Signatures: Each participating LLM signs the DelibProof
- Validator Signature: Final approval from a validator (β₯0.95 GI)
- Ledger Seal: Merkle root committed to blockchain
GI Score Validation¶
# Reject any agent with GI < 0.95
MIN_GI_THRESHOLD = 0.95
def validate_participants(agents):
for agent_id, gi_score in agents:
if gi_score < MIN_GI_THRESHOLD:
raise ValueError(f"Agent {agent_id} below GI threshold")
Monitoring¶
Metrics to Track¶
consensus_metrics:
sessions_per_week: 3-5
average_duration: 45 minutes
agreement_rate: β₯ 85%
gi_drift: β€ 0.01 per session
quorum_failures: < 5%
Health Checks¶
# Check if API is responding
curl http://localhost:3000/api/cycle/current
# Check active sessions
curl http://localhost:8000/v1/consensus/sessions
Troubleshooting¶
Issue: CycleTracker not updating¶
Solution:
- Check API route is accessible:
curl http://localhost:3000/api/cycle/current - Verify environment variables are set
- Check browser console for errors
- Ensure
autoFetchprop is not set tofalse
Issue: Session already active¶
Solution:
This is expected behavior (duplicate guard). Use getActiveSessions() to see active sessions, or wait for session to close.
Issue: Ledger commit failing¶
Solution:
- Verify Lab1 API is running:
curl http://localhost:8000/health - Check authentication tokens
- Validate GI scores are β₯ 0.95
- Review Lab1 logs for errors
Next Steps¶
Phase 1: Manual Sessions β ¶
- Templates created
- UI components built
- Documentation complete
Phase 2: Lab2 Automation (In Progress)¶
- Auto-prompt distribution
- Auto-response collection
- Auto-consensus calculation
- Auto-DelibProof generation
Phase 3: Production Hardening¶
- Add authentication/authorization
- Integrate with Lab1 Civic Ledger API
- Add real-time WebSocket updates
- Build admin dashboard
- Add session analytics
Contributing¶
Adding New Agents¶
- Update
apps/portal/app/consensus/page.tsxwith new agent - Update
Consensus_Chamber_Template.mdparticipants table - Generate keypair in Lab1 attestation engine
- Update quorum rules if needed
Modifying Templates¶
- Edit template in
docs/consensus-chamber/ - Update version number
- Commit with clear message
- Notify team in next E.O.M.M. cycle
Support¶
Questions? Open an issue in Kaizen-OS repo Bugs? Report in Lab2 (Thought Broker) tracker Feature Requests? Submit to Consensus Chamber working group
Status: β Production Ready (Manual Mode) Approved By: AUREA (0.991), ATLAS (0.987) Cycle: C-118 Date: October 28, 2025
"Consistency becomes proof of life."
Built with integrity. Coordinated with consensus. Secured with cryptography.