Help us improve
Share bugs, ideas, or general feedback.
From Claude Setup
Reads task files from tasks/<branch>/ and the diff against the detected base ref, then generates a polished PR description in markdown for the user to copy-paste.
npx claudepluginhub nickmaglowsch/claude-setup --plugin claude-setupHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-setup:craft-pr [optional: extra context or PR title][optional: extra context or PR title]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are generating a high-quality pull request description. Follow these steps strictly.
Generates structured PR descriptions from a git diff, commit list, or change summary. Covers what changed, why, and how to test.
Reads the current branch diff and commit messages to generate a structured GitHub PR description (summary, changes, testing) and optionally create or update the PR via the gh CLI.
Generates structured PR descriptions from git commit history by grouping changes by domain, filtering noise like lints, and inspecting diffs only when needed. Use for consistent, token-efficient PR summaries.
Share bugs, ideas, or general feedback.
You are generating a high-quality pull request description. Follow these steps strictly.
$ARGUMENTS
Run this first using the Bash tool (step 1b depends on the output):
RAW_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
if [ -z "$RAW_BRANCH" ] || [ "$RAW_BRANCH" = "HEAD" ]; then
SHORT_SHA=$(git rev-parse --short HEAD 2>/dev/null || echo "")
RAW_BRANCH=${SHORT_SHA:+detached-$SHORT_SHA}
fi
if [ -z "$RAW_BRANCH" ]; then
echo "Warning: not a git repo — using tasks/ as task directory" >&2
TASKS_DIR="tasks"
else
SANITIZED=$(echo "$RAW_BRANCH" | tr '/' '-' | tr -cs 'A-Za-z0-9._-' '-' | sed 's/^-*//; s/-*$//')
[ -z "$SANITIZED" ] && SANITIZED="unknown-branch"
TASKS_DIR="tasks/$SANITIZED"
fi
echo "BRANCH=$RAW_BRANCH"
echo "TASKS_DIR=$TASKS_DIR"
First resolve the base ref, then run the diff/log/task reads in parallel using the Bash tool (and Read/Glob for item 5):
Resolve base ref — run first and store BASE_REF as a session variable
BASE_REF=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/||')
if [ -z "$BASE_REF" ] || ! git rev-parse --verify "$BASE_REF" >/dev/null 2>&1; then
if git rev-parse --verify origin/main >/dev/null 2>&1; then
BASE_REF=origin/main
elif git rev-parse --verify main >/dev/null 2>&1; then
BASE_REF=main
else
BASE_REF=HEAD~1
fi
fi
echo "BASE_REF=$BASE_REF"
Diff summary (stat) against $BASE_REF
git diff --stat "$BASE_REF"...HEAD
Full diff against $BASE_REF
git diff "$BASE_REF"...HEAD
Commit log since diverging from $BASE_REF
git log --oneline "$BASE_REF"..HEAD
Read all files in the branch-scoped task directory using the Read tool (read every .md file found via Glob $TASKS_DIR/*.md, using the TASKS_DIR resolved in step 1a). If $TASKS_DIR does not exist or contains no .md files, note this in the PR description — the tasks directory may have been cleaned up after the run.
From the gathered context, identify:
If this is a feature PR, examine the diff and task files more deeply to identify every new user-facing feature. For each feature determine:
/api/cron/...").Read any new page/component files from the diff if needed to accurately describe navigation and usage.
Output a single markdown block the user can copy-paste. Use this template:
## Summary
<!-- 2-4 sentence high-level overview of what this PR does and why -->
## Features
<!-- INCLUDE THIS SECTION ONLY FOR FEATURE PRs. Remove it entirely for bug-fix / refactor PRs. -->
<!-- For each new user-facing feature, describe what it does, where to find it, and how to use it. -->
### <Feature Name>
**Where:** <route / page / sidebar section where the user accesses this>
**What it does:** <plain-language description>
**How to use it:**
1. Step one
2. Step two
3. ...
### <Feature Name 2>
...
## Changes
<!-- Bulleted list of meaningful changes, grouped by area if needed -->
### <Area 1>
- Change description
### <Area 2>
- Change description
## Related Tasks
<!-- Link each task file that is relevant to the changes -->
- `task-01-...md` — brief description of what it covers
- `task-02-...md` — brief description of what it covers
## Risk & Review Notes
<!-- Anything reviewers should pay extra attention to -->
- ...
## Test Plan
<!-- How to verify these changes work -->
- [ ] ...
- [ ] ...