→ was asked who made a change and under what policy, and had only a commit
- cost when it happens
- high
- how often
- common
"Who made this change, what authorised it, and what verified it?" The available answer is a
commit with a human author, a message written by a worker, and a merged pull request with
one approval. None of those is the answer to any of the three questions.
Git records authorship of a patch, which was a good proxy while a person typed every line.
It is no longer: the author field records who ran the worker, and everything else that
matters — the objective, the boundary, the policy in force, the verification that ran — is
either in a conversation or nowhere.
There is no inference that recovers what was never recorded. Asking a model to reconstruct
provenance from a diff produces a plausible story, which in an audit is worse than nothing.
In a regulated setting, the ability to demonstrate a control at all. Everywhere else, the
ability to answer the most common question in incident review: what did we think we were
doing, and what checked it.
Identity fields are computed from git and never authored: a record that names a branch, a
head, a working tree or a set of changed files had those values computed at the moment it
was written, and a worker supplying them is an error rather than an override. A commit
carries the task that produced it. The task carries its objective, its declared scope and
the profile it ran under. The ledger carries the events — started, checkpointed, decided,
handed over, finished with a typed outcome, and the verification command with its exit code
and duration. The generated instruction files carry the hash of the policy that produced
them, so which rules were in force is a tracked fact.
before commit 8c31f0e "fix auth" author: a person
after $ majordomus history --task t-20260903193012-a4f1
task_started objective="split the callback validation" profile=implementation
scope=lib/auth,test/auth head=1f0a3c2
decision "normalise before comparing" why=... rejected=...
task_finished outcome=completed verify="make test" exit=0 1m12s head=8c31f0e
It does not identify which model or vendor produced a change, and it does not sign anything.
It records what this repository decided, bounded, ran and accepted, with the identity fields
computed rather than asserted.
What this looks like
Concrete situations, one per audience. Each is declared in the moment's front matter, so the before and the after are data rather than prose a page could drift from.
-
Six months later
enterprise
- before
- An auditor asks what authorised a change and what verified it; the artefacts are a commit and a merged pull request.
- after
- The commit carries its task; the task carries the objective, the scope, the profile and the outcome; the ledger carries the verification that ran.
-
The client asks what was done and why
agency
- before
- Reconstructing an engagement means reading diffs and remembering conversations.
- after
- The events are structured and readable back per task, with the decisions and questions that governed them.
-
Which rules were in force
platform-team
- before
- The rules changed twice during the project and nothing records which version any change was made under.
- after
- The projections carry the policy hash they were generated from, and the policy is a tracked file with a history.
How you would know
The observable symptoms this moment declares. They are the questionnaire on the index and the input of majordomus why diagnose; nothing else defines them.
-
◻
The whole record of a change is its commit message.
only-a-commit
-
◻
Nobody can say which version of the rules was in force when a change was made.
which-policy-applied
-
◻
Work produced by a worker is attributed to whoever pressed the button.
human-author-machine-work
Where this lives in the tool
Everything below is read out of this moment's own front matter and resolved against the repository. A name here that did not exist would fail validation.
the commands that answer it
the capabilities of the executable that answer it
what it supervises — derived from the claims below
the claims that back this page, and the evidence behind each
-
planned
A task will know which commits it produced, rather than inferring them from a range
- proved by
- no test — this is a target, not a guarantee
-
guaranteed
Identity fields on every state record are computed from git and never authored
-
guaranteed
The ledger is readable back as operational history, filtered by task, event and time
-
guaranteed
A closed execution episode is a shared object of the layer, written by the tool from git and the ledger, valid against a contract that admits no conversation and no absolute path, and discovered rather than registered
-
advisory
A decision record without a task, a head and a reason is reported, and does not block
-
guaranteed
Every generated instruction file carries its own stamp, and a hand edit is detected
the rules that govern it
- project.never-author-identity
- majordomus.ledger-integrity
- majordomus.session-records
- majordomus.projection-integrity
the use cases that show the way out
If this one is familiar, so is the next
What this moment names, what names it, and what shares its area, audience or tags. The second and third are derived; only the first is written down.
All 38, and how they connect to the tool →