My CI has to undo my coding agent.
ABOUT THIS NOTE +
A short visual note about a coding agent adding generated-attribution metadata after being told not to. LARQL’s required pull-request check cannot edit immutable commits; it rejects Claude co-author trailers, session metadata, generator credit lines and session URLs until the affected metadata is rewritten. The mundane disagreement exposes the real question: which instruction is allowed to decide?
You tell the agent
not to add something.
It adds it.
Your CI
refuses it.
CI cannot edit an immutable commit in place. The required check blocks the pull request until the metadata is rewritten.
Who
decides?
Authority resolved at the last possible boundary.
A policy,
made executable.
commit-messages.ymlGITHUB API · NO CHECKOUT
TIMEOUT / 2 MINUTES
const forbidden = [
{
label: "Claude co-author trailer",
pattern: /^co-authored-by:\s*claude(?:\s|$)/im,
},
{
label: "Claude session metadata",
pattern: /^claude-session:/im,
},
];
for (const commit of commits) {
inspect(commit.sha.slice(0, 12), commit.commit.message);
}
if (findings.length > 0) {
core.setFailed(
`${findings.length} generated attribution marker(s) found. ` +
"Remove them by rewriting the affected commit message(s).",
);
}Signed-off-by: Chris Hay
Co-authored-by: Claude …1 marker foundRemove it by rewriting
the affected commit.× not mergeableSigned-off-by: Chris Hay0 markers foundAssistance and authorship
are different types.
commit {
author: Chris Hay
co_author: Claude Code ← ?
}commit {
author: Chris Hay
tools_used: [Claude Code]
accountable_party: Chris Hay
}We have sophisticated agents and surprisingly primitive vocabulary for authority and authorship.
Not a proposed Git schema. A distinction the existing schema cannot express cleanly.
SOURCES & PROVENANCE
- LARQL / required generated-attribution check ↗
Pinned at revision d413e6e8f224. The workflow inspects pull-request commit messages plus the pull-request title and body, and fails when a forbidden marker is found.
- LARQL / commit that introduced the attribution guard ↗
Recorded 2 September 2026. The commit describes a required PR check while allowing human co-authors.
AUTHOR / CHRIS HAY · VERSION / 0.1
REFERENCE THIS DRAFT
An unpublished working record. These references identify the draft and omit a publication date. They become version-specific publication citations when the record is released.
Chris Hay. My CI has to undo my coding agent. [Unpublished draft, version 0.1. First publicly recorded 2026-09-07]. https://chrishayuk.com/notebook/my-ci-has-to-undo-my-coding-agent
FOLLOW THE WORK
New notebook entries and recorded work, as they appear. Point a feed reader — or an agent of your own — at an address below. No account, no email address, nothing for this site to keep.
The notebook
New ideas, experiments and essays, as they are recorded. Includes labelled working drafts.
OPEN FEEDhttps://chrishayuk.com/notebook/feed.xmlThe record
Everything published to the Chris Hay record.
OPEN FEEDhttps://chrishayuk.com/record/feed.xml
FOR PROGRAMS · follow.json · JSON Feed