CHRIS HAY

IDEAS · SYSTEMS · OBJECTS / LONDON · 2026

My CI has to undo my coding agent.

commit a83c19…Author: Chris Hay
Co-authored-by: Claude <noreply@anthropic.com>. Removed in CI.
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?

N-ATTRIBUTIONONGOINGRECORDED 2026-09-07DRAFT · V0.1REFERENCE DRAFTFOLLOW ↓
01 / WHAT HAPPENED

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.

02 / THE AUTHORITY CHAIN

Who
decides?

USER INSTRUCTIONDo not add co-author trailers.
AGENT SESSIONAdd co-author trailer.
GIT COMMITCo-authored-by: Claude
REPOSITORY POLICY× rejected
The strange part isn’t the trailer.
It’s which instruction won.

Authority resolved at the last possible boundary.

03 / THE CORRECTION

A policy,
made executable.

LARQL / REQUIRED PULL-REQUEST CHECK.github/workflows/
commit-messages.yml
GITHUB 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).",
  );
}
Selected lines from the live guard, pinned at revision d413e6e8f224. The complete check also inspects the pull-request title and body for generated credit lines and session URLs.
INPUT / PULL REQUESTSigned-off-by: Chris Hay
Co-authored-by: Claude …
1 marker found
CI / BLOCKEDRemove it by rewriting
the affected commit.
× not mergeable
REWRITE / CLEANSigned-off-by: Chris Hay0 markers found
04 / THE WRONG TYPE

Assistance and authorship
are different types.

ONE FIELD DOING TWO JOBS
commit {
  author: Chris Hay
  co_author: Claude Code   ← ?
}
A CONCEPTUAL SEPARATION
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.

Co-authored-by: Claude <noreply@anthropic.com>. Removed in CI.

SOURCES & PROVENANCE

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
DOWNLOAD
ShareLinkedIn ↗X ↗
Copy
Post drafts and social card

Start with the idea. Keep its source attached. These excerpts are ready to edit before posting.

OPEN SOCIAL CARD ↗

LinkedIn

32 WORDS · DRAFT

I say no. The agent adds it. The repository refuses it. The strange part isn't the Git trailer. It's which instruction won. A short note on coding agents, authority and provenance. https://chrishayuk.com/notebook/my-ci-has-to-undo-my-coding-agent

X

I say no. The agent adds it. The repository refuses it. Working note · v0.1. https://chrishayuk.com/notebook/my-ci-has-to-undo-my-coding-agent

A thread

  1. I say no. The agent adds it. The repository refuses it. Working note · v0.1.
  2. A short visual note about a coding agent adding generated-attribution metadata after being told not to.
  3. 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.
  4. The mundane disagreement exposes the real question: which instruction is allowed to decide?
  5. DRAFT · V0.1 · RECORDED 2026-09-07 Read the complete record, evidence and scope: https://chrishayuk.com/notebook/my-ci-has-to-undo-my-coding-agent
EXPORT THE DRAFTS ↗