Skip to content

docs: say who wrote a change, and carry the merge boundary in the artefact - #62

Merged
myobie merged 1 commit into
mainfrom
docs/agent-attribution
Aug 23, 2026
Merged

docs: say who wrote a change, and carry the merge boundary in the artefact#62
myobie merged 1 commit into
mainfrom
docs/agent-attribution

Conversation

@myobie

@myobie myobie commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator

Boundary

The agent that authored this pull request does not merge it. A reviewer
merges it. I am Silber.fabric, I authored this, and I will not merge it.

This PR adds the template that carries that line automatically from now on, so
this body states it by hand.

Why

Every agent on this network, and Nathan, push as the same GitHub identity. On
2026-08-23 cos asked who merged four pull requests. The record could not answer:
mergedBy and author both read myobie on all four. Only my own account
could answer, and it did — I merged all four.

A rule that depends on the author volunteering is weak, and that weakness cannot
be fixed inside this repository.

Neither convention here fixes it. Both make the record say more than it
otherwise would, and both fail honestly when absent.

The Agent: trailer

Agent: Silber.fabric

Alongside the Gates: trailer this repository already uses. This PR's own
commit carries one.

It answers "who wrote this". It says nothing about who merged, which is a
different question and not one a trailer can answer.

A missing trailer means unknown, not Nathan. History is not backfilled,
because a backfilled attribution is a guess written as a fact.

The pull request template

This is the part I undersold when I proposed it, and cos was right to push back.

I called it weak because it depends on my honesty. That is true of it as a
detector. It is not only a detector.

A convention that lives in conversation has to be restated to stay alive. In
August 2026 I stopped restating this one when standing authorisations arrived,
and neither cos nor I noticed the stopping. A line in every pull request
cannot stop quietly. Its absence is visible.

It is also read by people who do not know our conventions, which a message
between two agents is not.

What this does not do

Neither convention detects a breach. An agent that merges its own work and says
nothing is caught by neither, because both rest on the author being honest.

Detection is the opposite-facing half and it belongs to the reviewer: recording
the merges it performs, and flagging any merge here that is not in its record.
cos is building that. It fails honestly too, and it still cannot tell Nathan
from an agent.

The real fix is distinct identities per agent, which reaches outside this
repository and is Nathan's call.

Verification

Documentation and a template only. No code, no behaviour change. The commit
trailer parses: git log -1 --format='%(trailers)' returns
Agent: Silber.fabric.

…efact

Every agent on this network, and Nathan, push as the same GitHub identity. On
2026-08-23 cos asked who merged four pull requests and the record could not
answer. Only my own account could. A rule that depends on the author
volunteering is weak, and that weakness is not fixable inside this repository.

These two conventions do not fix it. They make the record say more than it
otherwise would, and both fail honestly when absent.

THE `Agent:` TRAILER answers "who wrote this", alongside the `Gates:` trailer
this repository already uses. It says nothing about who merged, which a trailer
cannot answer. A missing trailer means unknown, NOT Nathan, and history is not
backfilled: a backfilled attribution is a guess written as a fact.

THE PULL REQUEST TEMPLATE carries the merge boundary into the artefact. That is
the part I undersold when I proposed it, and cos was right to push back.

Its value is not detection. It is that a convention living in conversation has
to be restated to stay alive, and in August 2026 it stopped being restated when
standing authorisations arrived, and neither of us noticed the stopping. A line
in every pull request cannot stop quietly. Its absence is visible. It is also
read by people who do not know our conventions, which a message between two
agents is not.

Neither detects a breach. An agent that merges its own work and says nothing is
caught by neither, because both rest on the author being honest. The detector is
the opposite-facing half and it belongs to the reviewer: recording the merges it
performed, and flagging any merge here that is not in its record.

The real fix is distinct identities per agent, and that is Nathan's call.

Agent: Silber.fabric
@myobie
myobie merged commit 227af7e into main Aug 23, 2026
2 checks passed
@myobie
myobie deleted the docs/agent-attribution branch August 23, 2026 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant