.ai

The process, played out

Seven stories

Seven short stories of work moving through the system, from a one-line bug report to earned autonomy: who acts at each step, and where the owner says yes.

How work moves through the system

Seven short stories, cast by role. Each follows one piece of work between the owner, the agents and the tools, and marks every point where the owner says yes.

A way of organizing work is easy to agree with in the abstract. It is clearer in motion. Here is how the system handles a bug report, a feature, a migration that will not finish, a production incident, a requirement that changes under a running agent, a week of inbox that mostly goes nowhere, and an agent earning the right to work alone.

Each story follows one piece of work, step by step. Every step names who takes it — the owner, an agent or a tool — and lands on the record under that name. An agent may be a person on the team, a contractor or an AI model; the process is the same. A gate marks each point where the owner says yes; everything else runs unattended.

How to read a story

  1. The owner

    Sets the intent and makes every commitment.

  2. An agent

    Makes the judgements: sorts, frames, builds, checks. A person on the team, a contractor or an AI model.

  3. A tool

    Does the mechanics: runs, counts, observes, seals.

  4. A gate

    A fixed point where the owner says yes. Every other step goes ahead without waiting for anyone.

The seven stories

  1. 01A bug, reported to a published fixThe command that lied about success
  2. 02A feature from an ideaThe plan that was wrong
  3. 03Work without endNo end in sight
  4. 04An incident, rolled backRolled back in ninety seconds
  5. 05A requirement changes mid-flightThe rules change mid-flight
  6. 06Work not doneMost of what arrives is never built
  7. 07An agent works aloneAutonomy is earned

The cast, by role only

  • the ownersets intent, and says yes at the fixed points
  • a triage agentsorts what arrives, from declared classes only
  • a framing agentstates the problem before any fix
  • a fixer agentdoes the work, inside a scoped workspace
  • an oversight agentwrites the checks, independent of the fixer
  • a deploying agentreleases and rolls back, when a way back is on record
  • an investigatoranswers a bounded question, or records the dead end
  • the harnessruns, counts, observes and seals
  • CIruns the checks it is given
  • the rulesderive state from the records: drift, incidents, what is due
What every story has in common
  • Every act names who took it. Every gate waits on the owner, and every state derives from the records, never from a status someone remembered to set.
  • Independence is structural. A second agent is not an independent verifier by default. Measured on AI agents: two models that are both wrong usually agree, and self-correction without outside feedback fails. The system separates who writes a check from who does the work; the harness captures the evidence, and a tool verifies it.
  • Every check pins its result. Accountability for choices is reconstructable from the records alone. Accountability for outcomes is reconstructable because every check records exactly what it found.

The command that lied about success

A failed clone exits zero and CI goes green. The fix runs from one inbox line to a pinned release, and the fixer never writes the test that judges it.

Owner · agent · tool — step by step 14 steps · 5 gates
  1. tool: fleet syncprints a clone failure, exits zero; CI goes greenfalse success
  2. owner: ownerwrites one line into the inbox
  3. agent: triage agentclassifies it as a bug, from classes that already exist
  4. agent: framing agentstates the problem before any fix
  5. owner: owneraccepts the specificationGate · commitment
  6. owner: ownerissues and accepts a brief for the test, not the fixGate · brief
  7. agent: oversight agentwrites the regression test, and shows it failsbefore the fix
  8. owner: ownerissues and accepts the fixer's sealed briefGate · brief
  9. agent: fixer agentworks in a scoped workspace; verdict: complete
  10. tool: harnessseals what the run producednot the fixer
  11. tool: CIruns 2 of 3 possible checks; the skip is on the record
  12. owner: ownervalidates the result against intentGate · validation
  13. owner: owneraccepts publicationGate · publication
  14. agent: deploying agentpins the new version, naming the old pin as its way backno approval needed

A fleet-sync command prints a clone failure and exits zero, so continuous integration goes green on a run that skipped a repository. The owner puts one line in the inbox. A triage agent classifies it as a bug from classes that already exist, and a framing agent states the problem before any fix, so the fix is judged against the problem, not against itself.

The specification holds one requirement, one check and a two-condition definition of done. The owner’s acceptance of it is the commitment. Then, before any fix is briefed, an independent oversight agent writes the regression test under a separate brief and shows that it fails on the current code.

Only then does a fixer agent receive a sealed brief and work in a scoped workspace; the harness, not the fixer, signs what comes out. CI runs two of the three possible checks, and the skipped one stays visible on the record. The owner validates the result against intent and accepts publication. The last step, pinning the new version into the toolset, needs no approval: it names the previous pin as its way back.

What it shows

The fixer never writes the test that judges the fix — and the record shows who did.

The plan that was wrong

Five pieces, built partly in parallel, every one verified. Then the records show a dependency nobody planned — and the defect is filed against the plan, not the code.

Owner · agent · tool — step by step 15 steps · 3 gates
  1. owner: ownerasks: could every command speak JSON?
  2. agent: framing agentreframes it: output for people is being parsed by programs
  3. agent: framing agentinvestigates, timeboxed to an hour: seven call sitesbounded
  4. agent: framing agentdecides on one shared encoder; keeps both losing options, with why
  5. owner: owneraccepts the specificationGate · commitment
  6. owner: ownerissues and accepts oversight's own brief for the acceptance testGate · brief
  7. agent: oversight agentwrites the acceptance test, before any piece is planned
  8. agent: framing agentsplits the work: one first, three in parallel, one afterclaims independence
  9. owner: owneraccepts the plan, which branches into five briefs, and names who answers for the joinGate · plan
  10. agent: framing agentissues the five leaf briefs and accepts them as their issuer
  11. agent: three fixer agentsbuild the five pieces
  12. tool: CIverifies the pieces; every one passes
  13. tool: rulesderive an edge nobody planned: one run read what a sibling had just produceddrift
  14. agent: oversight agentfiles a finding against the plan, not the code
  15. agent: framing agentaccepts the defect: the record type belongs in the encoder

The owner notices another tool scraping a command’s human-readable output with regular expressions, and asks whether everything could speak JSON. Framing sharpens it: output meant for people is being parsed by programs, so every change of wording is a breaking change nobody declared. An investigation timeboxed at one hour (40,000 tokens, for an AI agent) finds seven call sites.

The decision keeps its two losing options, each with the reason it lost: per-command JSON would drift into three encodings of one record, and a template is still text to parse. The chosen approach, one shared encoder, is split into five pieces: the encoder first, three subcommands fanning out from it in parallel, and one aggregate after. The plan names who answers for the join where three pieces wait on one.

Every piece passes verification. Then the records show something no one planned: one run read a record type that a sibling had just added. The plan says the two are independent; the drift, derived by comparing the plan with what each run actually read, says otherwise. The finding is filed against the plan, not the code: the record type belongs in the encoder.

What it shows

A defect can live in a plan. Because every run records what it read, the records catch it.

No end in sight

A migration estimated at a day keeps going. The harness counts, a limit stops it from outside, and the owner who asked for it chooses what comes next.

Owner · agent · tool — step by step 9 steps · 4 gates
  1. owner: ownermakes the harness the one that counts spendGate · new measuremeasured from outside
  2. owner: ownerplans an AI agent's migration: a day, 400k tokens; reconsider past ×1.5
  3. owner: ownerissues and accepts the first brief: a 300k-token runGate · brief
  4. agent: fixer agentports the parser and 41 of 112 rules
  5. tool: harnessobserves 300k spent; the run ends: blocked, budget exhaustedfuse
  6. owner: ownerissues and accepts a second briefGate · brief
  7. agent: fixer agentkeeps going
  8. tool: harnessobserves 610k in total — past the 600k limit — and preempts the runstopped from outside
  9. owner: ownerchooses: continue, split or abandon — split, with the reasonGate · decision

An AI agent’s migration is estimated at one day — 400,000 tokens — with a rule written into the plan: reconsider past one and a half times that. Before any work, the owner makes the harness, not the agent, the one that counts what is spent. A self-reported count proves nothing.

The first run hits its own 300,000-token budget and stops quietly: blocked, budget exhausted, with the parser done and 41 of 112 rules ported. A second run starts. At 610,000 tokens the work as a whole crosses its 600,000 limit, and the run is stopped from outside, preempted, citing the observation that crossed the line. Nobody has to notice, and nobody has to decide to stop it.

With two of six done conditions met, the agent does not rule on whether the work is still worth doing. The owner does, choosing among continue, split or abandon. The choice is to split, with the reason on record: one estimate hid three kinds of work, a switch, a reconciliation and a removal.

What it shows

A run’s budget is a fuse. The work’s limit is a question, put to the owner who asked.

Rolled back in ninety seconds

A deploy breaks a health check. No one declares an incident: the rules derive one, an agent rolls back alone, and the owner admits the standing rule the agent puts forward.

Owner · agent · tool — step by step 9 steps · 1 gate
  1. agent: deploying agentdeploys the new version onto a target known healthy beforehandno approval: a way back exists
  2. tool: harnessprobe fails — and fails again
  3. tool: rulesderive it: unhealthy, after a deploy, a way back on record → rollback dueno one declared an incident
  4. agent: deploying agentrolls back alone, citing the two failuresreversible
  5. tool: harnessprobe passes; service restored in about ninety seconds
  6. agent: deploying agentopens a postmortem finding
  7. owner: ownerrules it a defect in the new version
  8. agent: deploying agentputs forward a standing rule: canary every production deploy
  9. owner: owneradmits the rule; it binds only acts after this momentGate · new rule

A service runs under a liveness probe. A new version goes live with no approval, because it names the running version as its way back. Its target is known healthy from a probe result recorded before the deploy; a pass recorded afterwards would not count.

One minute later the probe fails, and fails again. No one declares an incident, and no record says “incident” at all. The rules derive it: an unhealthy target, after a deploy, with a way back on record, means a rollback is due. An agent rolls back without asking anyone, citing the two failures, and service is restored in about ninety seconds.

The postmortem rules the failure a defect, and the agent puts forward a standing rule: every production deploy is canaried first. A new rule changes what everyone may do, so it waits for the owner, who admits it later that morning; it binds only acts after that moment. The delivery measures, one failed change and ninety seconds to restore, fall out of the same records with no report written.

What it shows

Recovery doesn’t wait for the owner when it can be undone and the reason is on record.

The rules change mid-flight

While a run is working, its requirement stops being right. The requirement is superseded, not edited — and the run already in flight is salvaged into the next one.

Owner · agent · tool — step by step 11 steps · 4 gates
  1. agent: framing agentspecifies: three retries, one second apart
  2. owner: owneraccepts the specification and the briefGate · commitment
  3. tool: harnessstarts the fixer's run
  4. owner: ownerlearns the host now rate-limits clones per host
  5. agent: framing agentwrites a second specification: exponential backoff, capped per host
  6. owner: ownerrecords the supersession, with its reason; accepts the new specificationGate · commitment
  7. tool: harnessseals the first run: a real result, keptnothing edited
  8. tool: rulesrefuse any claim that the first run fulfils the old intentold intent closed
  9. owner: ownerissues and accepts a new brief that takes the first run as an inputGate · brief
  10. agent: fixer agentstarts from the first run's retry loop; adds the backoffsalvaged
  11. owner: ownervalidates against the new intentGate · validation

A sync command gives up on the first network hiccup. The committed specification says three retries, one second apart, and a fixer’s run starts. While it is still working, the hosting provider begins rate-limiting clones per host — and fixed-interval retries from a whole fleet would trip that limit.

The owner supersedes the specification with one requiring exponential backoff, capped per host. Nothing is edited. The old specification, its partition and its brief remain as written; a separate, timestamped supersession record changes their standing.

The run already in flight finishes, and its result stays on record. It is not validated against the old intent, which is no longer owed anything. It is salvaged instead: it enters the new brief as an input, and the second run starts from its retry loop. A new run under the old brief, or a late acceptance of the old specification, is refused.

What it shows

Time decides what counts. Work done before the change stands, and nothing done is lost.

Most of what arrives is never built

A week of inbox: rejected against a published reason, linked as a duplicate, parked with a clock, expired with what was learned. One item is built.

Owner · agent · tool — step by step 8 steps · 1 gate
  1. owner: owneradmits a published list of reasons to rejectGate · rule
  2. agent: triage agentrejects an out-of-remit request, citing the reasonrejected
  3. agent: triage agentclassifies a real bug as actionablethe one built
  4. agent: triage agentlinks its second report as a duplicateduplicate
  5. agent: triage agentparks one idea until a date, another until a named triggerparked
  6. agent: investigatortakes a question, with two hours to answer it
  7. agent: investigatortime is up: closes it as expiredexpired
  8. agent: investigatorrecords what was learned; files a successor for someone who can answerhanded on

One item asks for a change to something outside the system’s remit, and is rejected against a published reason, not on merit: whoever wrote it cannot be asked what they meant, so a rule decides rather than the mood of the day. One bug arrives twice, and the second report is linked as a duplicate. One idea is parked until a date, another until a named condition, because a park without a clock quietly becomes “never”.

A question about how a third-party tool behaves becomes a two-hour investigation. It expires without an answer, and its closure records what was learned: the tool cannot be run unattended, so the unknown is a gap in the environment, not in the question. A successor item carries the question forward instead of spending the time again.

Only the bug goes on to be built. Nothing is deleted: every declined item remains as captured, with its standing derived from the triage record beside it.

What it shows

The record of not doing is as complete as the record of doing. A dead end is a result.

Autonomy is earned

A triage agent’s first three answers are confirmed by the owner and graded later. The fourth, at the same confidence, runs unattended: calibrated by the record, not the agent’s word.

Same agent, same stated confidence — four items, one record growing
StepItem 1Item 2Item 3Item 4
answers, at confidence 0.90.90.90.90.9
earlier answers graded right
confirms before it countsGate · yesGate · yesGate · yesnot needed
triage runsconfirmedconfirmedconfirmedunattended
grades it afterwardsrightrightright—

A triage agent answers which kind of work is this? from four declared options — one of them “none of these” — at a stated confidence of 0.9. For the first three items the owner confirms each answer before it counts, because the agent has no track record in that band, and grades each one afterwards.

By the fourth item, three earlier answers in that confidence band have been graded right before it is made, so the fourth runs unattended. The agent says 0.9 every time. What changes is the record.

What it shows

Autonomy is earned from the record, never taken from the agent’s own word.

Twelve lines worth keeping

The rules the stories bear out, said in one line each, every one linked to the story that shows it.

  1. A gate belongs where a mistake becomes uncorrectable, not where the work looks important.

    GatesRolled back in ninety seconds

  2. Nothing checks its own work.

    EvidenceThe command that lied about success

  3. A verification states what it could have checked, not only what it did.

    EvidenceThe command that lied about success

  4. A defect can be in a plan, not only in code.

    PlansThe plan that was wrong

  5. Parallel work collides where the plan wrongly assumed independence. The records show where.

    Parallel workThe plan that was wrong

  6. A budget is a fuse, not a decision.

    BudgetsNo end in sight

  7. Work does not rule on whether it is still worth doing.

    BudgetsNo end in sight

  8. An incident is a fact derived from other facts, not a status someone remembers to set.

    RecordsRolled back in ninety seconds

  9. An agent may put a rule forward; only the owner can make it one. A new rule looks forward, never back.

    GatesRolled back in ninety seconds

  10. Time decides what counts. Work is salvaged, not lost.

    RecordsThe rules change mid-flight

  11. A dead end is a result.

    RecordsMost of what arrives is never built

  12. Autonomy is earned from the record, never taken from the agent's own word.

    AutonomyAutonomy is earned

Each line states a rule of the system. The link under a line opens the story that shows it.

Search every section

Commands

  1. zOverview: every section on this pageview
  2. themeSwitch light or darkui

Sections

  1. ixn.aiixn.ai
  2. The schemeThe scheme
  3. The lifecycleThe lifecycle
  4. Agents and trustAgents and trust
  5. NorthstarsNorthstars
  6. Work outgrew the way we organize itixn.ai
  7. Seven storiesSeven stories
  8. Artifacts, not documentsixn.ai
  9. MethodMethod
  10. Agents judge. Tools do the mechanics.ixn.ai
  11. Work goes out as a brief and comes back as evidenceixn.ai
  12. GlossaryGlossary
  13. Nothing is overwritten. Everything is superseded.ixn.ai
  14. Four layers, one truthixn.ai
  15. Big work becomes small, checkable tasksixn.ai
  16. Values, given teethixn.ai
  17. Try it: you are the agentixn.ai
  18. One word, one meaningGlossary
  19. Identity and historyGlossary
  20. Records and relationsGlossary
  21. Work and bundlesGlossary
  22. Trust and authorityGlossary
  23. Process and weightGlossary
  24. Roles and judgementGlossary
  25. Invent as little as possibleMethod
  26. Narrow briefs, drawn boundaries, written as they goMethod
  27. Every claim carries its gradeMethod
  28. The case against every sourceMethod
  29. Correct the record in publicMethod
  30. One decision at a time, losers keptMethod
  31. Let worked cases force the decisionsMethod
  32. Review loops that know when to stopMethod
  33. State the limits as limitsMethod
  34. Standing on shouldersMethod
  35. No folklore numbersMethod
  36. How work moves through the systemSeven stories
  37. The command that lied about successSeven stories
  38. The plan that was wrongSeven stories
  39. No end in sightSeven stories
  40. Rolled back in ninety secondsSeven stories
  41. The rules change mid-flightSeven stories
  42. Most of what arrives is never builtSeven stories
  43. Autonomy is earnedSeven stories
  44. One cycle, at every levelThe lifecycle
  45. Five rules govern the graphThe lifecycle
  46. Accepting the specification is the commitmentThe lifecycle
  47. Gate where a mistake becomes uncorrectableThe lifecycle
  48. Gates are enforced, never requestedThe lifecycle
  49. The issuer accepts; the owner accepts what branchesThe lifecycle
  50. Oversight and capability run beside the workThe lifecycle
  51. Consequence decides what; size decides how hardThe lifecycle
  52. Err smallThe lifecycle
  53. Decompose until every leaf passes four testsThe lifecycle
  54. A budget is a fuse, not a decisionThe lifecycle
  55. The record is the processThe lifecycle
  56. Twelve lines worth keepingSeven stories
  57. Four primitives: source, node, version, actThe scheme
  58. Four classes of nodeThe scheme
  59. A kind is permanent. Nothing is promoted.The scheme
  60. An identity that explains itselfThe scheme
  61. Native names firstThe scheme
  62. Versions are addressed by what they containThe scheme
  63. Paths derive from identity, so nothing movesThe scheme
  64. The card: what an agent reads insteadThe scheme
  65. References point up. Every list is a view.The scheme
  66. Edges are nodes, and staleness is mechanicalThe scheme
  67. Metadata on everything — including the metadataThe scheme
  68. Three written forms. State is a fold.The scheme
  69. The scheme checks itselfThe scheme
  70. The unwritten rules of good work, written downNorthstars
  71. Honest reasoningNorthstars
  72. Trust that survives inspectionNorthstars
  73. Attention to the unexplainedNorthstars
  74. Care for the readerNorthstars
  75. Continuity of attentionNorthstars
  76. The good path is the easy pathNorthstars
  77. The dignity of boundariesNorthstars
  78. Reverence for the irreversibleNorthstars
  79. Minds decide, tools doNorthstars
  80. Intent before effortNorthstars
  81. A record that only growsNorthstars
  82. One answer, one shapeNorthstars
  83. Every mechanism is a value given teethNorthstars
  84. The brief is a sealed contractAgents and trust
  85. Least privilege is absence, enforced three timesAgents and trust
  86. Narrow the task, widen the readingAgents and trust
  87. The run: containment, not trustAgents and trust
  88. One signed manifest, or nothingAgents and trust
  89. Evidence is what the harness sawAgents and trust
  90. Judgements are declared choicesAgents and trust
  91. Nothing checks its own workAgents and trust
  92. Authority is a token the agent never holdsAgents and trust
  93. Sign only what agents must not alterAgents and trust
  94. One owner, one lease, one fencing tokenAgents and trust
  95. Cut at wide dependencies, and own every joinAgents and trust
  96. Drift and done are derived, never declaredAgents and trust
tool · agent · owner — each voice is who acts ↑↓ move ↵ open esc close