Skip to content

source-control: PR-body "Generated with Claude Code" attribution is unconditional — no trailer_policy-equivalent seam #439

Description

@kyle-sexton

Plugin: source-control · Categories: hardcoded opinion (1), missing externalization (2)
Source: work-readiness sweep (read-only audit vs docs/PLUGIN-PHILOSOPHY.md + docs/MIGRATION-PLAYBOOK.md)

Findings

  • plugins/source-control/skills/pull-request/reference/create.md:174 (template at :167-176) — 🤖 Generated with [Claude Code](https://claude.com/claude-code) hardcoded into the PR-body heredoc appended to every skill-created PR. Grep-confirmed sole occurrence; no config key gates it.

Why it breaks agnosticism

Asymmetric with the commit trailer, which IS externalized (commit/SKILL.md:58,106 honors .claude/source-control.md trailer_policy including none; setup SKILL.md:143-145). The PR-body attribution has no such seam — a consumer wanting no Claude attribution in PR bodies (or a different one) must fork/hand-edit the plugin, violating "Configurable without editing the plugin" and the trailer-precedence rule (repo convention wins). A baked outward-artifact opinion written into every PR.

Fix direction

Gate the attribution line behind the same .claude/source-control.md seam (trailer_policy or a sibling pr_body_attribution key / userConfig), defaulting to current behavior; read the project's PR-body convention first.

Metadata

Metadata

Assignees

Labels

priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions