Skip to content

Architecture

ElmatadorZ edited this page Jul 24, 2026 · 2 revisions

Architecture

The request path

flowchart TB
    D([Directive]) --> RQ["Recall Quality<br/><i>justified prior memories</i>"]
    RQ --> BR["Briefing Engine<br/><i>lessons · repeated errors · blind spots</i>"]
    BR --> HM["House Mind<br/><i>shared current understanding</i>"]
    HM --> C["Council of 14<br/><i>parallel deliberation → convergence</i>"]
    C --> G{"Governance Engine<br/><i>constitution enforced</i>"}
    G -->|rejected| C
    G -->|passes| W["Write: memory · predictions · reputation<br/>House Mind update"]
    W --> V([Verdict])
    W -.->|"7 / 30 / 90 / 180 days"| OT["Outcome Tracking<br/><i>graded against reality</i>"]
    OT -.->|"revises"| HM
Loading

The dotted edge is the part most systems do not have: the loop closes. A verdict is not the end — it becomes a prediction that gets graded later, and the grade feeds back into what the House believes.

Layers

Layer Responsibility
Recall retrieve prior memories, weighted by whether they turned out to be justified
Briefing synthesise the House's own graded history into a brief the council reads first
House Mind the single shared model of current understanding
Council fourteen members deliberating in parallel, then converging
Governance the constitution, enforced — not advisory
Reputation per-member calibrated skill estimates
Outcome predictions graded at fixed horizons

The modules

One SQLite database, schema v5, with reversible migrations.

Module Role
institutional_db.py schema owner · migrations · the single connection layer
council_memory.py persists sessions · outcome-weighted recall
recall_quality.py the 5 recall scores + 5 validity states
deliberation_briefing.py synthesises history into a council brief
house_state.py the House Mind · belief evolution
governance_engine.py enforces the constitution · minority tracking
agent_reputation.py Bayesian, calibrated, recency-weighted
outcome_tracker.py 7 / 30 / 90 / 180-day reviews
scheduler.py the durable Outcome Clock
council_intelligence_api.py /api/council/* and the dashboard

The kernel gates

Seven policies run at three fixed hooks, not one. Which hook a policy sits on is the whole point of it — a fabrication guard that fired before the action would be guarding the wrong boundary:

Hook Fires Policies
PRE_ACT before a side effect leaves the House governance.gps2 · shadow.fabrication · approvals.prior_deny · run.tool_allow
PRE_VALIDATE before output is accepted as valid cvl.quality_gate
PRE_COMMIT before a claim is committed as belief guidance.g1 · warrant.cee_c1

Most-restrictive-wins, deny-by-default, every decision audited. The boot log prints each hook with its own policies; kernel_policy.registered_by_hook() is the authority. See Security Model and Governance Engine.

Prompt composition

The system prompt is assembled from files rather than hardcoded:

IDENTITY.md → AGENTS.md → TOOLS.md → SOUL.md → USER.md

Two variants are built and selected per task — roughly 22k characters full and 13k compact on a default install — because a long prompt plus many tool schemas can exceed a local model's context ceiling. The exact sizes are yours, not fixed: they move with your skills, USER.md, and the generated SELF.md. The boot log prints the real numbers.

→ Next: The Council

Clone this wiki locally