Development record
The attribution gate refuses a legitimate, exact model identifier: TRAILER_RE ('^Assisted-by: [A-Za-z][A-Za-z0-9._-]*:[A-Za-z0-9._-]+$', scripts/check-attribution.sh) has no bracket in its character class, so 'Assisted-by: Claude:claude-opus-5[1m]' FAILS while 'Assisted-by: Claude:claude-opus-5' passes. Verified 2026-08-11 by running the script's own body check over seven trailer variants. The bracketed form is not a typo — it is the exact identifier of the 1M-context Opus variant, and 'git log' shows 33 commits in this repo's own history already using it (claude-opus-5[1m] x33, claude-opus-4-8[1m] x5). The convention AGENTS.md:132 and CONTRIBUTING.md:31 state is to name the model VERSION, so an agent that reports its precise identifier is following the prose and failing the gate. Consequence is a PR blocked mid-run for correct disclosure, and the obvious workaround — silently truncating the suffix — degrades the very disclosure the trailer exists to provide, since [1m] distinguishes a materially different model configuration. This will bite an autonomous multi-agent run, where the failure surfaces as a red gate on a PR nobody is watching. Fix direction: widen the version half of TRAILER_RE to admit a bracketed context suffix (e.g. allow a trailing '\[[A-Za-z0-9._-]+\]'), rather than asking contributors to drop it; and add the two historical forms to the script's own test corpus so the regex is proven against identifiers actually in use rather than only against the happy path. NOT a defect, recorded here so it is not re-raised: the gate's rejection of a bare 'Assisted-by: Claude' with no version (9 commits in history) is CORRECT — the convention requires a model version, and those nine commits are non-conformant record rather than gate error. History is not re-checked; the gate runs on pull requests only.
The attribution gate refuses a legitimate, exact model identifier: TRAILER_RE ('^Assisted-by: [A-Za-z][A-Za-z0-9.-]*:[A-Za-z0-9.-]+$', scripts/check-attribution.sh) has no bracket in its character class, so 'Assisted-by: Claude:claude-opus-5[1m]' FAILS while 'Assisted-by: Claude:claude-opus-5' passes. Verified 2026-08-11 by running the script's own body check over seven trailer variants. The bracketed form is not a typo — it is the exact identifier of the 1M-context Opus variant, and 'git log' shows 33 commits in this repo's own history already using it (claude-opus-5[1m] x33, claude-opus-4-8[1m] x5). The convention AGENTS.md:132 and CONTRIBUTING.md:31 state is to name the model VERSION, so an agent that reports its precise identifier is following the prose and failing the gate. Consequence is a PR blocked mid-run for correct disclosure, and the obvious workaround — silently truncating the suffix — degrades the very disclosure the trailer exists to provide, since [1m] distinguishes a materially different model configuration. This will bite an autonomous multi-agent run, where the failure surfaces as a red gate on a PR nobody is watching. Fix direction: widen the version half of TRAILER_RE to admit a bracketed context suffix (e.g. allow a trailing '[[A-Za-z0-9._-]+]'), rather than asking contributors to drop it; and add the two historical forms to the script's own test corpus so the regex is proven against identifiers actually in use rather than only against the happy path. NOT a defect, recorded here so it is not re-raised: the gate's rejection of a bare 'Assisted-by: Claude' with no version (9 commits in history) is CORRECT — the convention requires a model version, and those nine commits are non-conformant record rather than gate error. History is not re-checked; the gate runs on pull requests only.
Frontmatter
| id | iss-214 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | major |
.abcd/work/issues/resolved/iss-214-attribution-gate-rejects-bracketed-model.md
open on GitHub ↗ · commit history ↗