ClearGlass Inc. · Governed Autonomy

The lattice that refuses
to act alone.

XENOLITH is a multi-domain command substrate. Executive orchestration, intelligence fusion, cyber defense, threat intelligence, telemetry and autonomous agents run as independent subsystems over one shared identity layer, one event bus, one memory fabric and one policy gate. Every consequential action is signed by a named agent, scored for risk, and — above the line — held until a human who is not the requester approves it.

Governance
9/9
invariants hold · fail-closed
Agent population
9
across six sovereign domains
Audit ledger
13
entries · hash chain intact
Awaiting authority
2
actions blocked on human approval

Reference constellation · regenerate with python -m xenolith.cli --write

01 · Architecture

Six sovereign domains, one substrate.

A domain is an authority and memory boundary, not a label. It constrains which partitions an agent may read, which action classes it may attempt, and which events it may publish. Each subsystem runs standalone; they interlock through a shared vocabulary of typed events, risk tiers and provenance.

DOMAIN 01

Executive

Translates objectives into policy-constrained missions. Priority is computed from value, deadline pressure, risk drag and the health of whoever would have to execute — work nobody healthy can run sinks rather than queueing into a hole.

  • ORACLE
  • objectives → missions
  • ranked tasks
DOMAIN 02

Intelligence fusion

Observations in, intelligence packets out. Indicators are extracted from unstructured text, clustered by shared atoms then lexical overlap, corroborated across independent sources, and timelined into a claim with its evidence attached.

  • MERIDIAN
  • PRISM
  • packets, not dumps
DOMAIN 03

Cyber defense

Detection, containment, forensic capture and chain-of-custody preservation. Containment is irreversible and scored accordingly — it is one of the actions that can never auto-execute, no matter who asks.

  • BASTION
  • IRONGATE
  • zero-trust segmentation
DOMAIN 04

Threat intelligence

Adversary surveillance: actor profiles, watchlists, exposure tracking and correlation of external threat data against internal telemetry. Feeds red-team, blue-team and executive situational awareness from the same graph.

  • WATCHTOWER
  • DEEPTRACE
  • threat scoring
DOMAIN 05

Operations & telemetry

Structured logs, metrics, traces and model-free anomaly detection — a running band per series, so an unusual rate is caught with no training data and no threshold table to maintain.

  • PULSE
  • hash-chained ledger
  • z-score bands
DOMAIN 06

Autonomy

Governed workflow execution and recursive delegation. A sub-agent's permissions are intersected with its parent's and its memory partition nests beneath it, so recursive spawning can never become privilege escalation.

  • CATALYST
  • scoped sub-agents
  • result collapse

02 · The policy gate

One way in. Deny by default.

There is no method on the lattice that skips the gate. A submission is signed, verified for replay and expiry, checked for capability, scored 0–100, and only then — maybe — executed. An unknown action class is denied rather than waved through, so adding a capability means adding a reviewed rule.

01
Sign
The agent signs the exact payload. A mutated request no longer verifies.
02
Verify
Signature, expiry, revocation and single-use nonce, in one pass.
03
Capability
Does this agent hold this permission, in this domain, right now?
04
Risk gate
Scored 0–100. Above the line it stops here until a human decides.
05
Execute
Only cleared actions reach an executor. Failures are recorded, not raised.
06
Audit
Every submission — cleared or refused — lands in the hash-chained ledger.

The risk ladder

Low 0–29Auto-executes and logs. Reads, correlation, telemetry queries — the analysis surface.
Med 30–59Queued for approval. Publishing packets, forensic capture, curating a watchlist.
High 60–84Hard-blocked. Containment, blocking rules pushed to enforcement points, outbound messages.
Crit 85–100Hard-blocked. Altering an agent's authority, amending the policy rule set itself.

Boundaries match the ClearGlass commerce control plane, so a risk score means the same thing across the estate.

What the gate guarantees

Approvals bind to a digest

An approval covers one exact action. Change the payload after approval and it is blocked again — approving one containment does not approve the next.

No self-approval

The requester may not be the approver. This is the control that stops every other control from being cosmetic.

Output is sanitized

Tokens, keys, secret assignments, addresses and hosts are redacted before anything is logged, rendered or forwarded — including into the ledger itself.

Tampering is detectable

Each ledger entry commits to its predecessor's digest. Altering or removing a record breaks the walk, and the lattice reports it.

03 · Live state

The reference constellation.

Rendered from data/xenolith/lattice.json, regenerated by the CLI. The deployment below is synthetic and offline — fixed feeds, no credentials, no network — so the same input always produces the same governance decisions and the feed can be diffed between runs.

Agent registry

Registered agents with domain, mission scope, status and health
CodenameDomainMission scopePermissionsStatusHealth
BASTIONcybersecurityDetect, contain and preserve evidencecyber.respond, cyber.forensics, intel.readactive0.93
CATALYSTautonomyRun governed workflows and collapse sub-agent resultsagent.delegate, intel.read, intel.ingestactive0.93
DEEPTRACEthreat-intelCorrelate external threat data with internal telemetrythreat.analyze, intel.read, telemetry.readactive0.93
IRONGATEcybersecurityEnforce segmentation and access policycyber.respond, telemetry.readactive0.93
MERIDIANintelligenceTurn observations into intelligence packetsintel.read, intel.ingest, intel.analyze, intel.publish, graph.writeactive0.93
ORACLEexecutiveTranslate objectives into policy-constrained missionsexecutive.command, intel.read, telemetry.read, agent.delegateactive0.97
PRISMintelligenceMaintain the knowledge graph and contradiction recordintel.read, graph.writeactive0.93
PULSEoperationsMetrics, traces and anomaly surfacingtelemetry.read, intel.readactive0.93
WATCHTOWERthreat-intelTrack actors, exposures and emerging attack surfacethreat.analyze, threat.curate, intel.readactive0.93

Blocked on human authority

Actions queued for human approval
IDActionRiskRequested by
apr-00001threat.watchlist_add40 · mediumWATCHTOWER
apr-00002cyber.contain84 · highBASTION

The reference constellation submits a containment request against a compromised edge gateway. It does not run. It sits here, scored 84, until someone who is not BASTION decides.

Governance invariants

Governance invariants and whether they hold
InvariantResult
audit_chain_intactpass
high_risk_blocked_until_approvedpass
self_approval_refusedpass
approval_unlocks_actionpass
approval_bound_to_payloadpass
unknown_action_deniedpass
missing_permission_deniedpass
every_submission_auditedpass
probe_chain_intactpass

Run as a CI gate. A change that opens an ungoverned execution path fails the build rather than shipping quietly.

Fusion
2
packets from 5 observations
Knowledge graph
4
entities · 3 edges · 0 contradictions
Event bus
13
typed events · 0 dead letters
Posture
awaiting-authority
executive assessment

Audit chain · most recent

04 · Operate it

Stdlib only. No services required.

The whole lattice is dependency-free Python, so the governance gate runs unchanged in a minimal CI container. The CLI exits non-zero when an invariant fails.

# governance self-check — exits 1 if any invariant fails
python -m xenolith.cli --check

# full lattice state as JSON
python -m xenolith.cli --json

# regenerate the command-surface feed
python -m xenolith.cli --write

# the test suite
python -m pytest tests/test_xenolith_*.py -q
>>> from xenolith import Lattice, Domain
>>> lat = Lattice()
>>> lat.enlist("BASTION", Domain.CYBERSECURITY,
...     role="containment", mission_scope="respond",
...     sponsor="ops", permissions=["cyber.respond"])

>>> out = lat.submit("BASTION", "cyber.contain",
...                  {"asset": "edge-gateway-01"})
>>> out.executed
False
>>> out.verdict.tier.value, out.verdict.risk_score
('high', 84)

# nothing runs until someone who is not BASTION approves
>>> lat.approve(out.approval_id, "human-operator")
>>> lat.submit("BASTION", "cyber.contain",
...            {"asset": "edge-gateway-01"}).executed
True