chore(source-control): declare pr_body_required_sections for the PR-body gate - #240
Conversation
…ody gate The source-control plugin's portable default PR body scaffolds only `## Summary` and `## Test plan`, so plugin-created PRs omit the `## Related` section this repo's pr-issue-linkage gate requires and trip it on creation (PR #234 here; dotfiles #301 in a sibling repo). Declare the team-tracked `pr_body_required_sections` list — the plugin's designed per-repo seam (reference/config-resolution.md) — so `/source-control:pull-request create` both drafts `## Related` and pre-checks it before `gh pr create`. The key is a closed list that replaces the default wholesale, so the portable `Summary`/`Test plan` sections are re-declared alongside `Related`. The closing-keyword / "No linked issue" half of the gate is a separate mechanism the plugin already satisfies natively and is not expressible via this heading-only key. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0169XBydnqC5S6bkHDz1TDwL
|
Claude finished @kyle-sexton's task in 1m 34s —— View job PR Review
Reviewed: This is a clean, correctly-scoped config addition. No blocking findings. What the change doesDeclares Correctness
One thing worth noting (not blocking)The PR description correctly flags that this key is a closed list — it replaces the plugin's portable default wholesale, meaning Overall: LGTM. The change is minimal, purposeful, and the PR body itself is live proof that it works. |
Summary
Plugin-created PRs in this repo trip the
pr-issue-linkagegate because thesource-control plugin's portable default PR body scaffolds only
## Summaryand
## Test plan, omitting the## Relatedsection this repo requires.This declares the team-tracked
pr_body_required_sectionskey in.claude/source-control.md— the plugin's designed per-repo seam(
reference/config-resolution.md) — so/source-control:pull-request createboth drafts a
## Relatedsection and pre-checks it beforegh pr create.The key is a closed list that replaces the plugin's default wholesale, so
the portable
Summary/Test plansections are re-declared alongsideRelated.The closing-keyword /
No linked issuehalf of the gate is a separate,independent mechanism the plugin already satisfies natively (its create logic
always emits a
Closes #Nline or aNo related issue:opt-out marker); it isnot expressible through this heading-only key, so no attempt is made to encode
it here.
Test plan
## Summary,## Test plan, and a non-empty## Relatedsection plus theNo linked issuemarker, so thepr-issue-linkage / pr-issue-linkagerequired checkmust pass on it.
Related
No linked issue.
This closes no GitHub issue; it is a convention-config change. It exists
because the gate previously tripped on plugin-composed bodies: PR #234 in this
repo and dotfiles #301 in a sibling repo both failed the same
closing-keyword-plus-
## Relatedvalidation on creation.🤖 Generated with Claude Code
https://claude.ai/code/session_0169XBydnqC5S6bkHDz1TDwL