← All posts

axiom: authority for agentic work

An agent writes a patch.

The tests pass.

It updates the handoff note, marks the blocker closed, and says the work is ready.

Two hours later you find the problem: the tests were focused, not full-suite. The handoff note was local, not accepted by the downstream system. The blocker was a release blocker, not a planning blocker. The agent did useful work, but the authority attached to that work was wrong.

Nothing malicious happened.

The system just had no hard boundary between "produced", "checked", "accepted", and "allowed to affect the next thing".

That is the failure axiom is built around.

Why prompts are not enough

Most agent setups treat authority as a behavioural problem.

Write better instructions.

Tell the agent to be careful.

Ask it not to overclaim.

Make it summarize what changed.

That helps, but it is still discipline-as-security. It works until a task gets large, the context gets compressed, a downstream system has its own rules, or twenty background agents are all producing evidence at once.

The failure is structural.

If the only thing separating a draft from accepted evidence is wording, the boundary is not real. If the only thing stopping a dry run becoming a live write is a reminder in a prompt, the runtime does not have a safety model. If a local green check can be mistaken for downstream acceptance, the system is already leaking authority.

The problem is not that agents need more confidence.

The problem is that confidence is being used where authority should be.

axiom’s model

axiom is an authority runtime for agentic work.

Not a chatbot wrapper.

Not a memory dump.

Not a list of clever commands.

The core idea is simple: every output has a lifecycle, every lifecycle has a ceiling, and every ceiling has to be backed by evidence.

A candidate packet is not accepted evidence.

A local test is not release proof.

A dry-run manifest is not permission to write runtime roots.

A downstream response belongs to the downstream system, not the local sender.

A same-loop success cannot promote itself into trusted history.

That sounds fussy until you run a real multi-agent workflow. Then it becomes the difference between work you can consume and work you have to manually reconstruct.

What authority means here

Authority is not a vibe.

It is a declared relationship between an artifact, its evidence, and the thing it is allowed to affect.

In axiom, that means a tool or packet has to be explicit about the boring parts that usually get hand-waved:

  • what it read
  • what it changed
  • what it refused
  • what proof it has
  • what proof is missing
  • what system owns the next decision
  • what claims are forbidden even if the local check passes

The important part is the last one.

Most systems record success. Fewer record the things success does not mean.

axiom makes that negative space part of the contract.

The lifecycle

The lifecycle is deliberately blunt.

StateMeaning
candidatelocally produced or observed, not accepted as durable truth
advisoryuseful for planning, not authority-bearing
partial_locallocally checked, still bounded by missing external proof
acceptedaccepted by the authority that owns the surface
quarantinedpreserved for diagnosis, blocked from promotion
rejectedfailed a hard gate

The exact names matter less than the invariant: a record cannot quietly climb the ladder because the text around it sounds convincing.

Promotion needs a gate.

The gate needs evidence.

The evidence needs to belong to the right authority domain.

Why local proof is not enough

Local proof is still valuable.

It can show that a schema validates, a fixture fails closed, a command contract exists, a focused test passes, or a release blocker is still present.

But local proof has a ceiling.

If axiom prepares a packet for another system, axiom can prove the packet shape. It cannot prove the receiver accepted it until the receiver returns its own receipt.

If axiom builds a runtime write manifest, axiom can prove the manifest is well-shaped. It cannot treat the manifest as approval to write live runtime roots.

If axiom runs focused tests, axiom can prove those tests passed. It cannot turn that into full-suite proof.

This is where a lot of agent systems get sloppy. They compress evidence into a single word: done.

axiom keeps the edges visible.

What it looks like in practice

A normal agent workflow wants to move quickly:

  • understand the task
  • split it into lanes
  • dispatch workers
  • integrate results
  • run checks
  • summarize status

axiom adds the missing authority layer:

  • declare owned paths and denied paths
  • bind each lane to a proof command
  • keep runtime roots and downstream-owned repos out of scope unless explicitly authorized
  • record whether evidence is candidate, advisory, partial, accepted, quarantined, or rejected
  • fail closed when a required contributor is missing
  • preserve residual risk instead of smoothing it into a success story

That is not slower in practice.

It is faster than discovering after the handoff that half the work was unconsumable because nobody knew which system had accepted what.

The Cortex example

Cortex is a useful boundary because it is downstream-owned.

axiom can prepare a Cortex handoff. It can validate the local packet. It can check the expected fields, forbidden uses, source pins, and failure cases. It can produce candidate evidence.

What it cannot do is accept on Cortex’s behalf.

That distinction is the whole point.

The sender does not get to declare receiver truth. The local repo does not get to promote downstream memory. A corrected receipt from Cortex has to be treated as Cortex-owned evidence, with its own implementation pin and its own command surface.

Without that boundary, cross-system work becomes theatre.

Everyone has a packet.

Nobody knows who accepted it.

What axiom refuses

The refusals are not incidental.

They are the product.

axiom refuses to treat a local candidate as durable truth.

It refuses to treat dry-run output as runtime authority.

It refuses to import logs, sessions, caches, memory, auth state, or runtime exhaust as clean source.

It refuses same-loop promotion when independent evidence is required.

It refuses to call release readiness from partial proof.

These refusals are what let the useful parts move faster.

If the system knows what must not be promoted, the agent can do more work inside the boundary without turning every result into a judgement call.

The invariant

Every agentic system eventually needs to answer the same question:

What is this output allowed to mean?

axiom exists to make that answer explicit.

Not by making agents timid.

Not by wrapping everything in ceremony.

By giving the work a lifecycle, the lifecycle a ceiling, and the ceiling an evidence requirement.

Useful agents do not just need tools.

They need boundaries that survive success.