Development record
The attribution gate (scripts/check-attribution.sh) is CI-only: no local hook mirrors it, so a commit whose git AUTHOR/COMMITTER is an AI identity (Claude <noreply@anthropic.com>) is only caught in CI, where it presents as an unmergeable-looking PR (a failing required check), not a merge conflict. The pre-commit hook runs only the name-guard; make preflight / the pre-push hook run record-lint + docs-lint + reviews-charter but NOT check-attribution. This cost a full diagnosis on #391 (AI-authored cloud-routine commits) and a reauthor+new-branch repair (#402), because force-push to fix in place is refused by policy. Fix: mirror check-attribution into the pre-push gate (as make preflight already mirrors record-lint), so an AI author identity or a forbidden Generated-by/Co-Authored-By footer fails locally before the round-trip. See memory cloud-routine-git-identity; relates itd-91.
The attribution gate (scripts/check-attribution.sh) is CI-only: no local hook mirrors it, so a commit whose git AUTHOR/COMMITTER is an AI identity (Claude noreply@anthropic.com) is only caught in CI, where it presents as an unmergeable-looking PR (a failing required check), not a merge conflict. The pre-commit hook runs only the name-guard; make preflight / the pre-push hook run record-lint + docs-lint + reviews-charter but NOT check-attribution. This cost a full diagnosis on #391 (AI-authored cloud-routine commits) and a reauthor+new-branch repair (#402), because force-push to fix in place is refused by policy. Fix: mirror check-attribution into the pre-push gate (as make preflight already mirrors record-lint), so an AI author identity or a forbidden Generated-by/Co-Authored-By footer fails locally before the round-trip. See memory cloud-routine-git-identity; relates itd-91.
Grounds
- pursued: an AI author identity, a Co-authored-by trailer or a missing Assisted-by trailer now fails locally before the push; shown wrong if such a commit passes make preflight on a branch
Frontmatter
| id | iss-2608210738363966 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2608210738363966-attribution-gate-has-no-local-mirror.md
open on GitHub ↗ · commit history ↗
mentions2
- iss-2608210923437502The bundled COMMITTING rules domain (the defaults every managed repo inherits from the binary) says Assisted-by-not-Co-Authored-By but omits the two attribution failures that keep recurring operationally and are currently patched by per-agent memory and per-routine prompt text: (1) the harness auto-appends a Generated-by footer plus session link to PR bodies and issue comments it creates — the domain should instruct the post-write read-back-and-strip (iss-178 remedy a, as an injected rule rather than every routine prompt re-carrying it); (2) autonomous runs default their git identity to the tool, which the attribution gate rejects (iss-193's class) — the domain should name the commit-as-the-human requirement. Prevention rung, complementing iss-178's detection remedy b; prompt-carried and memory-carried safety is the anti-pattern itd-114 just retired for minting
- itd-91A Project Declares Once How It Wants AI Acknowledged — And Every Commit, PR, And Record Follows