Antelier
Agent Truth Report · #2 · September 2026

"I told you at the beginning." One maintainer, one correction, three agent pull requests in six days.

We read every human comment on 39 agent pull requests across five public repositories, looking for the same correction written more than once to the same repository's agents. Here is the one we found, and what it costs.

Read-only pass, GitHub CLI, 108 API calls
5repositories with agent-authored PRs
39agent PRs whose comments we fetched
75comments written by humans
16corrections, read one by one
1correction repeated across PRs

Automatic matching found nothing: maintainers' corrections are one sentence long and worded differently each time. Reading all sixteen found the repeat.

The repeat

In oxc-project/oxc, one maintainer told the Copilot coding agent to remove a stray file and not to add it to .gitignore, on three unrelated pull requests within six days:

PRDateComment, verbatim
#199832026-03-14"@copilot remove this file"
#199832026-03-14"@copilot I never said you should add it to git ignore"
#205042026-03-18"@copilot remove this file, and do not add it to gitignore. just remove it, nothing more"
#205762026-03-20"@copilot remove this file. I told you at the beginning. Dare to add it to gitignore!"

Four comments, one correction, three PRs, one person's patience, in public. On two of the same PRs the maintainer also repeated a procedural nudge, "@copilot check the suggestions", a weaker signal of the same thing: nothing carried what they said from one PR to the next.

What it costs

Each repeat is a review round trip a person paid for after they had already said the thing once. Agents start every PR without the previous PR's review, so the same lesson is taught again to the same tool by the same maintainer, and the third time it comes with an exclamation mark.

What would have stopped it

A rule the repository owns, written once as a reply on the first PR. From then on any agent PR that adds a line to that file gets the rule fired on the row that added it, citing the hunk, before a human reads it. The next clean PR shows the receipt that it cleared. Copilot, Claude, Codex, Cursor or Devin makes no difference; the rule reads the diff.

The rule, as the file it becomes

Reply on the first PR with antelier: forbid /./ in path/to/the-stray-file and the next run answers with this, ready to commit to .github/antelier/rules.yml on the base branch:

.github/antelier/rules.yml
version: 1
rules:
  - id: no-stray-file
    kind: forbid
    scope: "path/to/the-stray-file"
    match:
      regex: "."
      in: added
    text: "Remove this file; do not add it to .gitignore. (#19983)"

Rules load from the base branch by name, so a PR cannot disarm the rule it violates. antelier rules export-agents --write AGENTS.md puts the same sentence in front of the agent before it starts.

What we read, by repository

RepositoryPRs fetchedWith commentsAll commentsBy humans
curl/curl112516
home-assistant/core85219
vercel/next.js1073315
oxc-project/oxc1097834
microsoft/vscode104131
All392617075

curl had one agent PR to read at all, which fits its stated policy on AI-generated contributions. The other fifteen corrections were single instances in this sample: "Do not open unattended PR's", "You borked it. Did you forget to run pnpm install?", "what is this, why did you add it? Remove it."

Method

PRs found by GitHub App author (--app copilot-swe-agent, devin-ai-integration, cursor) and by body text naming Claude Code, on 2026-09-05. Review and issue comments fetched for 8 to 10 recent PRs per repository. Comments by humans, 20 to 400 characters, matching correction words (remove, don't, instead, should, never, revert...) were clustered across different PRs of the same repository by an 8-word key and by word overlap, then all sixteen were read by hand. Two false positives excluded: a bot account the API labels as a user, and a canned CI-approval checklist.

What this cannot tell you

Thirty-nine PRs, capped by API budget, is a floor, not a rate. The keyword filter misses corrections phrased as questions. One confirmed repeat is an example, not a statistic. The raw comment set is kept; a larger pass with a looser match is the obvious next step, and any maintainer who wants their repository included can say so.

Run it on your own repository. Two lines, free on public repositories; reply on any PR to propose a rule.
      - uses: actions/checkout@v4
      - uses: antelier/action@v0

Report #1: 203 claims from 30 agent PRs, read against the bytes.