Remove the session-link trailer from the decision log, and gate the tree and PR text against attribution - #451
Draft
nyblnet wants to merge 1 commit into
Draft
Remove the session-link trailer from the decision log, and gate the tree and PR text against attribution#451nyblnet wants to merge 1 commit into
nyblnet wants to merge 1 commit into
Conversation
…contents and PR text against attribution The trailer reached docs/DECISIONS.md through #415: Claude Code's attribution.sessionUrl setting (default true) injects a session-start instruction to append the link, and one session wrote its entry like a commit message. Set the option off in the tracked .claude/settings.json, and add scripts/test-no-attribution.ts to CI: it scans every tracked file and the PR title/body (the text a squash-merge copies into main), self-tests its patterns first, and was verified by re-injecting the actual line.
Build size
Updated: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
docs/DECISIONS.mdended with aClaude-Session:line inside the file body, added by #415 and copied into that PR's squash commit from its description. Removed.Cause. Claude Code's
attribution.sessionUrlsetting (defaulttrue) injects a session-start instruction to append the session link to commits and PR bodies from Remote Control sessions. The maintainer's settings hid the co-author text (attribution.commit/prempty) but leftsessionUrlat its default, so the instruction kept arriving; one session wrote its DECISIONS entry like a commit message and put the trailer where the message would have ended.Fix, three layers.
.claude/settings.json(tracked, new):attribution.sessionUrl: false, so every clone and session gets it. Also set in the maintainer's user settings..githooks/) covers local commits — it cannot see file contents and does not run for a GitHub squash.scripts/test-no-attribution.tsin CI: scans every tracked text file and the PR title/body from thepull_requestevent (the text a squash-merge copies into main). Self-tests its patterns first; negative-controlled by re-injecting the actual line frombde4dce(2 findings). Registered inci.ymlin the same PR becausetest-ci-registered.tsfails on an unregistered rig.DECISIONS entry included. Paths touched outside slides:
scripts/,.github/workflows/ci.yml,.claude/— claimed by path on the board.