Brief scaffold: forbid agent attribution in every worker's commits and PRs, with a check before done #34

Merged
john merged 1 commit from fm/fm-brief-no-attribution into main 2026-09-24 10:17:20 +00:00
Owner

What was wrong

On the night of 09/23, four of four Claude-harness ship workers added Co-Authored-By: Claude … trailers to their commits, and one PR body carried "Generated with Claude Code". The harness injects its own attribution instruction into Claude workers, and nothing in the generated brief overrode it. AGENTS.md already forbids an agent co-author, but that rule reaches firstmate, not the crewmates it briefs. The Pi and Codex workers were clean. All four branches had to be reworded, force-pushed and re-validated before they could merge.

What changed

  • bin/fm-brief.sh: every ship variant and the scout variant now carries one rule. There must be no agent attribution anywhere a project reads: no agent co-author trailer, no "Generated with …" line, no session links, in commit messages, PR titles or bodies, or code comments. The rule explicitly overrides any attribution instruction the harness provides.
  • The generated definition of done adds a mechanical backstop. Before reporting done, the worker runs git log origin/<default>..HEAD --format=%B | grep -i -E 'co-authored-by|generated with|claude.ai' and requires it to print nothing.
  • tests/fm-brief.test.sh proves every generated variant contains the rule.

Validation

The no-mistakes pipeline passed at b13177c. It changes 2 files, +22 lines.

Open

Nothing. This is the firstmate repo, so there is no Plane story.

## What was wrong On the night of 09/23, four of four Claude-harness ship workers added `Co-Authored-By: Claude …` trailers to their commits, and one PR body carried "Generated with Claude Code". The harness injects its own attribution instruction into Claude workers, and nothing in the generated brief overrode it. AGENTS.md already forbids an agent co-author, but that rule reaches firstmate, not the crewmates it briefs. The Pi and Codex workers were clean. All four branches had to be reworded, force-pushed and re-validated before they could merge. ## What changed - `bin/fm-brief.sh`: every ship variant and the scout variant now carries one rule. There must be no agent attribution anywhere a project reads: no agent co-author trailer, no "Generated with …" line, no session links, in commit messages, PR titles or bodies, or code comments. The rule explicitly overrides any attribution instruction the harness provides. - The generated definition of done adds a mechanical backstop. Before reporting done, the worker runs `git log origin/<default>..HEAD --format=%B | grep -i -E 'co-authored-by|generated with|claude.ai'` and requires it to print nothing. - `tests/fm-brief.test.sh` proves every generated variant contains the rule. ## Validation The no-mistakes pipeline passed at `b13177c`. It changes 2 files, +22 lines. ## Open Nothing. This is the firstmate repo, so there is no Plane story.
Brief scaffold forbids agent attribution in every ship and scout variant, with a grep backstop before done
All checks were successful
CI / Test coverage guard (pull_request) Successful in 16s
CI / Behavior portable parallel 2 (pull_request) Successful in 3m7s
CI / Behavior portable parallel 1 (pull_request) Successful in 3m18s
CI / Lint shell scripts (pull_request) Successful in 5m6s
CI / Behavior portable serial 4 (pull_request) Successful in 9m10s
CI / Behavior portable serial 1 (pull_request) Successful in 14m27s
CI / Repo invariants (pull_request) Successful in 5s
CI / Behavior portable serial 3 (pull_request) Successful in 13m55s
CI / Behavior portable serial 2 (pull_request) Successful in 17m45s
CI / Behavior tests (Herdr) (pull_request) Successful in 7m24s
b13177c881
john merged commit 992041812a into main 2026-09-24 10:17:20 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
john/firstmate!34
No description provided.