docs(git-and-github): plain-language-first PR/issue body templates#76
Merged
Conversation
Replace the "Why this PR exists" skeleton with TL;DR -> User story -> Reproduction scenario (Base flow / Actual behavior / Expected behavior) -> Detailed discussion. The first four sections stay jargon-free for a technical PM or external reviewer; implementation detail (What was done/Testing/Breaking changes/Checklist/Attribution) now nests under Detailed discussion for implementors and AI agents. push/SKILL.md and gh-cli-fallback.md updated to match; the pinning test rewritten for the new contract. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ario" "Reproduction" presumes a bug and reads oddly on feature PRs (nothing is being reproduced). "Scenario" keeps the Base flow/Actual/Expected behavior substructure and applies equally to bugs and features. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…e skeleton Move the literal PR-body skeleton out of SKILL.md prose into references/pr-body-template.md; SKILL.md and gh-cli-fallback.md now link to it instead of inlining a copy (gh CLI fallback fills the template and passes it via --body-file). Unify the Issues section onto the same TL;DR -> User story -> Scenario -> Detailed discussion shape as PRs (references/issue-body-template.md), replacing the old bare "feature/enhancement issues need a User Story" bullet. Scenario doubles as the bug-report reproduction; feature requests with nothing to reproduce may drop it. tests/test_pr_body_template.py repointed at the external template file; new tests/test_issue_body_template.py pins the issue template's contract. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ates Links to possibly related/similar PRs or issues, each with a one-sentence summary of how it relates to the one being filed. Last section in both pr-body-template.md and issue-body-template.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fixes CI's ruff format --check failure on PR #76. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…nguage-template # Conflicts: # CHANGELOG.md
Contributor
There was a problem hiding this comment.
Pull request overview
This PR restructures how Claudius-authored pull request and issue bodies are generated by the git-and-github (and indirectly push) skill, adopting a shared “plain-language-first” template and externalizing the literal skeletons into reference files to avoid duplication.
Changes:
- Externalized PR/issue body skeletons into
skills/git-and-github/references/{pr,issue}-body-template.mdand updatedgit-and-github+ CLI fallback docs to link to them. - Updated
pushand added/updated regression tests to pin the new heading set and prevent templates from being inlined back into skill prose. - Bumped plugin version to
5.13.0and documented the behavioral change inCHANGELOG.md.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
tests/test_pr_body_template.py |
Updates regression guard to validate the externalized PR template structure and prevent inlining in skills. |
tests/test_issue_body_template.py |
Adds a matching regression guard for the externalized issue template. |
skills/push/SKILL.md |
Updates PR-body guidance to reference the new template structure. |
skills/git-and-github/SKILL.md |
Replaces the inlined PR/issue-body guidance with links and plain-language-first requirements. |
skills/git-and-github/references/pr-body-template.md |
Adds the canonical PR body template. |
skills/git-and-github/references/issue-body-template.md |
Adds the canonical issue body template. |
skills/git-and-github/references/gh-cli-fallback.md |
Updates CLI fallback instructions to use --body-file and link to templates. |
CHANGELOG.md |
Documents the template overhaul and externalization under 5.13.0. |
.claude-plugin/plugin.json |
Version bump 5.12.1 → 5.13.0. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…s true footer Addresses Copilot review comments on #76: - "Copy pr-body-template.md and fill it in" (and the issue/gh-cli-fallback equivalents) was ambiguous — could be read as copying the whole file, including its title and explanatory prose, not just the fenced skeleton. Both template files and all four pointer sentences now say explicitly to copy only the fenced block. - Prior work sat after Attribution in both templates, contradicting the skill's "append the attribution footer" contract (the footer should be the true last section). Moved Prior work to just before Attribution in both templates; tests updated to assert Attribution is last. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.
TL;DR: PR and issue descriptions now share one plain-language-first template — TL;DR, user story, scenario, then technical detail — and the templates live in their own files instead of being copy-pasted inside the skill instructions.
User story
As a developer or reviewer reading a Claudius-authored PR or issue, I want to understand what changed/what's wrong and why in one glance, without wading through implementation detail, to achieve a quick approve/triage decision.
Scenario
Base flow
Claudius (or any agent using the
git-and-githubskill) opens a pull request or an issue.Actual behavior
PR descriptions led with a "Why this PR exists" section mixing plain rationale with technical language, with no separation from the rest of the body. Issues only had a bare one-line rule ("feature/enhancement issues need a User Story section") and no real structure otherwise. Both the PR skeleton and its
ghCLI fallback example duplicated the same markdown block in two places inside the skill.Expected behavior
PRs and issues both lead with a one-sentence TL;DR, a plain-language user story, and a scenario (base flow / actual behavior / expected behavior) any reader can follow at a glance — technical/bug-repro terminology optional depending on doc type. Everything technical (what was done, testing, breaking changes, checklist, attribution, prior work for PRs; free-form notes for issues) nests under "Detailed discussion" for implementors and AI agents. The literal skeletons live once each, in
references/pr-body-template.mdandreferences/issue-body-template.md;SKILL.mdand theghCLI fallback doc just link to them.Detailed discussion
What was done
skills/git-and-github/SKILL.md§Creating a PR withTL;DR→## User story→## Scenario(### Base flow/### Actual behavior/### Expected behavior) →## Detailed discussion(nestsWhat was done/Testing/Breaking changes/Checklist/Attribution/Prior work).Scenariodoubles as the reproduction; feature requests with nothing to reproduce may drop it.SKILL.mdprose intoskills/git-and-github/references/pr-body-template.mdandreferences/issue-body-template.md—SKILL.mdandreferences/gh-cli-fallback.mdnow link to them instead of inlining copies (theghCLI fallback now fills in the template and passes it via--body-fileinstead of a giant inline heredoc).skills/push/SKILL.mdupdated to reference the new skeleton by name.### Prior worksection to both templates — links to possibly related/similar PRs or issues, each with a one-sentence summary of how it relates to the one being filed (see this PR's ownPrior workbelow for a worked example).mainin:#75landedagent-watchdog --dump-jobonmainwith its ownplugin.jsonbump to5.13.0— collided with this branch's own5.12.1→5.13.0bump (identical target version, different content, no merge-conflict marker since the value matched). Re-bumped this branch to5.14.0and reordered theCHANGELOG.mdentries so5.14.0(this PR) sits above the now-merged5.13.0(#75). Also fixed a CIruff format --checkfailure on the two new test files.Testing
python3 -m pytest tests/test_pr_body_template.py tests/test_issue_body_template.py -v— 9/9 pass.python3 -m pytest tests/ -q— 614 passed (611 + 3 from the merged-in#75), 2 skipped, 4 pre-existing failures unrelated to this change (missingpython3-reportlabapt package in this environment, not caused by this diff).ruff format --check .— clean after fixing the two flagged test files.plugin-dev:plugin-validatorandplugin-dev:skill-reviewerafter each round of edits; both flagged nitpicks (duplication, wording) which were fixed before this description was written.Breaking changes
None — this changes the default PR/issue-body skeleton produced by the
git-and-github/pushskills going forward. No code interface changes; existing PR/issue descriptions are untouched.Checklist
tests/test_pr_body_template.py,tests/test_issue_body_template.py)CHANGELOG.md,references/pr-body-template.md,references/issue-body-template.md,references/gh-cli-fallback.md,push/SKILL.md)Attribution
🤖 Co-authored by Claudius the Magnificent AI Agent
Prior work
Detailed discussion.review-pr's parsing of PR-body## Summary/## What changedheaders with a bullet-list fallback; this PR's new skeleton doesn't use either heading, so it falls through to that same bullet-list fallback unaffected — confirmed during this PR's own review, no changes needed there.mainwhile this PR was open; caused the version-bump collision described above, resolved by mergingmainin and re-bumping to5.14.0.