[BUG] VSCode extension / Agent SDK: attribution settings never injected — Co-Authored-By added despite attribution.commit set to ""
Description
In the VSCode native extension environment (Claude Agent SDK harness), the attribution setting from .claude/settings.json appears to never be injected into the model's instructions. As a result, the model falls back to its trained default and appends the standard attribution block to commit messages:
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This happens even with attribution explicitly disabled in project settings:
{
"attribution": {
"commit": "",
"pr": ""
}
}
How this differs from existing issues
Existing reports (#83813, #79909, #65657, #18253, #45137) describe the attribution instruction losing to the built-in system prompt trailer instruction in the CLI. This report is about a different surface and mechanism: in the VSCode extension / Agent SDK environment, the system prompt contains no commit-attribution guidance at all (neither the default trailer instruction nor the settings-derived override). The attribution setting is therefore silently unenforceable on this surface — the model simply reproduces the attribution block from its training prior.
Steps to reproduce
- In a project, set
.claude/settings.json:
``json``
{ "attribution": { "commit": "", "pr": "" } }
- Open the project in the VSCode extension.
- Stage some changes and ask Claude to commit.
Expected behavior
No attribution line or Co-Authored-By trailer in the commit message (per the attribution.commit: "" docs), on every surface — CLI, extension, SDK.
Actual behavior
The full default attribution block is appended. The user has to amend the commit to strip it.
Suggested fix
Inject the commit/PR workflow guidance (including the resolved attribution values, and honoring the deprecated includeCoAuthoredBy) into the system prompt on the VSCode extension / Agent SDK surface, the same way the CLI does — or at minimum inject an explicit "no attribution" instruction when attribution.commit is "".
Workaround
Adding an explicit rule to the checked-in agent instructions file (AGENTS.md / CLAUDE.md): "Never add AI attribution to commits or MRs — no Generated-with line, no Co-Authored-By trailer." This works because instruction files are loaded on every surface.
Environment
- Surface: VSCode native extension (Claude Agent SDK harness)
- Extension/CLI version: <!-- fill in from the extension's version -->
- Model: claude-fable-5
- OS: macOS (Darwin 25.5.0)
- Settings file: project
.claude/settings.json