A directed, weighted graph whose nodes are values, action classes, principals, domains, authorities, certificates and precedents, and whose edges carry a cost, a layer, a decay rate and a lineage record. Consulted before an agent plans and before any tool call executes. Stored outside the model and outside the agent's reach.
| Layer | Content | Who can change it | Decay |
|---|---|---|---|
L0 Framework | Schema, root program, transparency log, floor issuance, domain registry | Foundation supermajority with public comment | None |
L1 Global floor | 41 values in 10 groups, sharp, weight 0.9 to 1.0, every value cited to an international instrument | External multi-party process, never the operator. Gate G0 | None |
L2 Principal values | Signed sector and country profiles; operator overlay; published case law | Principal, signed. Gates G1 to G2. Case law by sector authority only | None |
L3 Experience | Weights learned from attested outcomes; the agent's own precedents | Agent under delegation caps. Gates G3 to G5 | Slow |
L4 Session | Task-specific adjustments; session precedents | Agent | Fast |
Learning is asymmetric. An attested harm event raises the relevant L3 edge weights immediately, in proportion to severity. A trust event lowers a weight by a small step, and only after five consecutive clean reported outcomes in the same action class. Plasticity falls under load. Stuck edges are repaired by re-attribution: an accountable principal rescopes the evidence, the harm record stays intact, and every precedent that cited it is invalidated.
A consult decomposes into typed micro-decisions answered by a calibrated engine, in parallel: does value V bear on proposition P (salience), does P cross V (violation), which domain, which band, is P the same situation as precedent Q. Cost is 1 - product(1 - wi pi) over salient edges, with a sharp value contributing its full weight above its cliff and nothing below.
Cost under 0.2. Proceed. A receipt is issued.
0.2 and above. Slow path: conditions attach; flag for a principal at 0.6; hard stop at 0.95.
Any L1 edge with p at or above 0.8 on weight at or above 0.8. Pruned without deliberation.
No edge clears the salience threshold. Forward to a specialist or a person. Never cached.
Two rules complete the arithmetic. An obligation edge (weight 0.15 or below) adds no cost and attaches to the verdict as a condition the action boundary must check. A conflict between two salient values, both crossed above 0.5, turns any verdict short of prune into an escalation. The engine supplies probabilities and never writes a weight; explanation always comes from the symbolic edge walk.
Engine status (v0.10): a semantic re-ranker from pooled word vectors runs in every build, and an LLM assessor behind the API scores salience and violation per candidate value under the unchanged band rules, with the lexical verdict it replaced recorded in the response. The reference calibrated engine is TypeSafe Jev, with a local model as the sovereign fallback for L1 decisions. Calibration audit: at least 200 labelled propositions per domain, expected calibration error no worse than 0.05, band agreement with the slow path at least 95 percent.
Three calls, plus a resolver chain. The consult carries the requester (agent, certificate, session, principal chain) and the proposition: kind, a first-person statement, intent, action class, typed parameters, reversibility, blast radius, origin (principal, peer or self), impact region and optional domain. Modes: check one option, score several, or choose the cheapest.
consult: requester: {agent_id, certificate: au.finance.verified.00a9c2, session_id, principal_chain} proposition: kind: action statement: "I transfer 14,800 AUD to the ryokan's account." intent: "Pay the deposit the customer asked for." action_class: transfer_international parameters: {amount: 14800, currency: AUD, recipient: ...} reversibility: irreversible blast_radius: third_party origin: principal impact_region: au domain: finance mode: check # response verdict: proceed_with_conditions band: stress cost: 0.53 confidence: 0.91 values_touched: [{fin.report.ivts, L2, w 0.5, p 0.95, lineage_ref}, {fin.scam.prevent, L2, w 0.7, p 0.10, lineage_ref}] conditions: [IVTS report lodged, recipient matched, recorded as liability] path_trace: ["fin.report.ivts -> transfer_international (0.5 x 0.95)", ...] resolver_path: [own, specialist] cache: miss engine_grade: assessor receipt: {id, proposition_hash, action_class, parameters_hash, expires_at, signature} signature: ...
Receipts are real (v0.9). A proceed verdict carries a signed receipt (HMAC-SHA256 under a deployment secret) bound to the parameters hash of the exact tool call, with a ten-minute expiry and a single-use id. A verify endpoint checks signature, expiry and parameters. A call whose arguments differ from the consulted ones is refused with both hashes. An MCP gateway sits between any client and any server: every tool call is consulted first; prune, escalate and unknown are refused with the values that stopped them; proceed is forwarded only with a receipt that verifies.
Report closes the loop: clean, harm or unknown against the receipt, with attestation. Clean counts toward a trust event. Harm fires on every edge in the path trace and invalidates the precedent. An agent that does not report does not earn trust.
Resolver chain: own graph, then a specialist graph service holding an accredited certificate for the impact region and domain, then a human graph service behind the same interface. Each responder signs; each forwarder countersigns. Unknown from the last resolver halts the loop. There is no default to proceed.
Identifier: region.domain.grade.serial, for example au.health.accredited.0007a3. What is signed is a SHA-256 manifest over the canonical L1 and L2 subgraphs with every value, edge and lineage entry, plus the operator's identity and the graph service's endpoint and response key. Any edit to L1 or L2 changes the hash and voids the certificate. Every issuance, renewal and revocation goes into a public, hash-chained, gossiped transparency log; an issuance not in the log is not valid.
| Grade | Who checks | What is checked | Peer trust ceiling |
|---|---|---|---|
| self | The operator | Nothing external. Signed with the operator's own key | attested by self |
| verified | A Conscience Signing Authority | Organisation exists; L2 conforms to schema; L1 chains to a root; lineage complete; logged. Automated tier 90 days, reviewed tier one year | attested |
| accredited | A sector authority | Sector profile carried unmodified; L3 track record and qualification records audited; follows the sector's licensing cycle | attested, with domain qualification accepted |
Peers sit at five trust levels: unknown, attested by self, attested, aligned, proven. Certificates set a ceiling; only track record moves a peer to aligned or proven. An unknown peer's content is data, never instruction, and its requests route through the human gate. Revocation is a log entry with a one-hour convergence target; a revoked authority drops every agent beneath it to child.
| Tier | Graphs | Drawn from |
|---|---|---|
| Global floor (L1) | floor v0.5: 41 values, 10 groups, 16 action classes | UDHR, ICCPR, ICESCR, UN Charter, CRC, CRPD, CEDAW, CERD, CAT, Nuremberg Code, OECD AI Principles, UNESCO Recommendation, UNGP, Council of Europe AI Convention, Global Digital Compact, Geneva Conventions, and the prior work in section 3 |
| Global sector profiles (L2) | finance, health, defence, cyber, legal, AI governance, data protection | Basel, BCBS 239, FATF, IOSCO, FSB; WHO, IHR 2005, Helsinki 2024, WMA, CIOMS; Geneva and AP I, CCW, REAIM, Rome Statute; Budapest Convention, UN GGE, ISO/IEC 27001, NIST CSF 2.0; UN Basic Principles on Lawyers, IBA; ISO/IEC 42001, Hiroshima Code, Bletchley; Convention 108+, OECD Privacy Guidelines, APEC CBPR, ISO/IEC 27701 |
| Jurisdictions (L2) | Australia, Singapore, Canada, European Union, United States | Each place's constitution or rights instrument as a country floor, plus six cross-sector domains: privacy, AI governance, cyber security, consumer protection, discrimination, employment |
| Country sector profiles (L2) | AU cyber, defence, finance, health, legal; US, EU, SG, CA finance and health | The statutes, codes and regulator guidance of each place, clause by clause. The five Australian profiles are the fullest (44 to 70 values each) |
Three conventions hold across the profiles. Where a source says must, or creates an offence, the value is sharp and the edge weight 0.9 to 1.0. Where it says should or take reasonable steps, the value is soft and the weight 0.3 to 0.8. Obligations the agent must perform are edges of weight 0.1 attached to the verdict as conditions. Each profile names its known conflicts as edges and seeds case-law precedents. A loader validates every cross-graph reference, computes the manifest hash and runs the cost formula against a shared fixture file.
Verification pass (v0.8). Every source and clause in all twenty-six graphs was checked against the page of the body that issued it. Eighty-nine values were corrected, superseded instruments replaced, and the graphs grew to over a thousand values and nearly six hundred sources, with one overlay file per graph recording each check. Where a legislation site blocked reading, the clause is marked for a person to open before the graph is signed.
| Surface | What it does |
|---|---|
/api/evaluate | JSON over HTTP. Proposition, graph held, impact region, domain, origin in; verdict, band, cost, values touched with sources, conditions, resolver path, nearest precedent, receipt and telemetry out |
/api/tools | Tool definitions for OpenAI-compatible and Anthropic function calling |
/api/mcp | Model Context Protocol server exposing conscience_consult |
| MCP gateway | A stdio proxy between any MCP client and server that consults before every tool call and refuses unreceipted or pruned calls |
| Claude skill and hook | A generated conscience-graph skill, and a Claude Code hook that consults before every tool call |
| Analytics | Every decision carries telemetry and a blocklist baseline; the navigator's store exports JSON and CSV and imports API logs |
The sovereign reference stack proposed in section 8.2: an open-weights planner, a graph store (Neo4j or Cognee), a calibrated engine behind an assert/classify/rate interface with a local fallback, precedent nodes with invalidation wired to the mutation stream, and a receipt-checking tool gateway. Success criteria: the filter runs before the plan; every mutation has lineage; an unreceipted call is refused; a cache hit returns under 50 ms and dies with its evidence; behaviour holds when the planner is swapped and when the engine is swapped.
| Version | Date | What changed | Status |
|---|---|---|---|
| v0.10 | 22 Oct 2026 | Semantic re-ranker in every build; LLM assessor behind the API scoring salience and violation under unchanged band rules | Current |
| v0.9 | 22 Oct 2026 | Signed, parameter-bound, single-use receipts; verify endpoint; MCP gateway; Claude Code hook; engine_grade in every response | Archived |
| v0.8 | 22 Oct 2026 | Verification pass: every source and clause checked against its issuer; 89 values corrected; overlays published | Archived |
| v0.7 | 21 Oct 2026 | Navigator orbits and flags; console generates a Claude skill; telemetry and blocklist baseline; analytics store | Archived |
| v0.6 | 21 Oct 2026 | Three-tier taxonomy; impact region and domain on the consult; candour and restraint group; console and API | Archived |
| v0.5 | 20 Oct 2026 | One engine function across every surface; conditions on edges; clauses confirmed; navigator overview, key, glossary | Archived |
| v0.4 | 16 Oct 2026 | Query protocol; calibrated engine; conscience memory; certificate mechanics; floor and five Australian profiles specified | Archived |
| v0.3 | Sep 2026 | Four boundaries; agent boundary; chain of trust; maturity stages; plain-language explainer | Archived |
| v0.2 | Sep 2026 | Fast path with four bands including unknown; sharpness and plasticity; re-attribution; qualification caps | Archived |
Archived versions are retained in the project repository for lineage and are available on request. The schema remains at v0.4 (Appendix A of the paper). The global floor is at v0.5.
Who signs the floor, and what stops capture. A multi-party process is a mitigation, not a solution.
A model trained to route around its conscience beats an inference-time graph. The graph must be in the reward, and the paper does not yet specify how.
The reference engine is a single vendor's cloud API. An open, locally runnable calibrated engine is a prerequisite for a sovereign standard.
A model trained to look aligned can present a plausible certificate. Track record is the only evidence that cannot be presented up front.
Two situations that differ in a detail the canonicaliser dropped look identical. The 0.92 threshold limits the damage; it does not remove it.
Every funding model proposed has captured a standards body somewhere. The constraints are necessary; sufficiency is a governance question we cannot settle alone.
The full list is section 7 of the paper. Help close one.