skills/pr-description/SKILL.md
Generate a pull request description markdown file from the repository's PR template, auto-filled with context from git diff and commit history. Use when the user says "write a PR description", "fill out the PR template", "create a PR description", "draft a PR", "make a PR doc", or asks you to prepare a pull request. Also trigger when the user says "/pr-description" or references preparing changes for review. Works with any repository that has a PR template.
npx skillsauth add dfitchett/agent-skills pr-descriptionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate a ready-to-use pull request description by finding the repo's PR template and filling it in with context from the current branch's changes.
Search for PR templates in these locations:
.github/PULL_REQUEST_TEMPLATE.md
.github/pull_request_template.md
.github/PULL_REQUEST_TEMPLATE/*.md
docs/pull_request_template.md
pull_request_template.md
PULL_REQUEST_TEMPLATE.md
If multiple templates are found (common with .github/PULL_REQUEST_TEMPLATE/ directories that contain bug_fix.md, feature.md, etc.), present the list to the user and let them pick which one to use.
If no template is found, tell the user and ask if they'd like a generic PR description instead.
Run these git commands in parallel to collect the information needed to fill out the template:
git status — see what files are changed and whether there are uncommitted changesgit diff --stat — summary of what changed (vs the base branch if on a feature branch)git log --oneline <base>..HEAD — all commits on this branch (use main or master as base, whichever exists)git diff <base>...HEAD — the full diff of everything on this branchbasename $(git rev-parse --show-toplevel) — the repo name, used for the output pathTo detect the base branch, check which of main or master exists:
git rev-parse --verify main 2>/dev/null && echo "main" || echo "master"
If the branch has many commits or a large diff, focus on understanding the overall intent rather than cataloging every line. Read the commit messages — they often capture the "why" better than the diff.
Save the file to temp/<repo-name>/ relative to the workspace root (the parent of the git repo, or the repo root itself if there's no workspace).
File naming convention: The filename is based on the issue/ticket number(s). Try to extract them automatically from the branch name, commit messages, or user context. Look for common patterns: #123, PROJ-456, bare numbers at the start of branch names (e.g., 12345-fix-thing), or GitHub issue URLs.
pr-description-12345.mdpr-description-12345-12346-12347.mdIf no issue number can be extracted, ask the user how they'd like to name the file. Present these options:
pr-description-fix-bolding-in-need-help.md)Read the PR template and fill in each section based on the gathered context. The goal is a description that a reviewer can read and immediately understand what changed and why.
Guiding principles:
#123, PROJ-456, or URLs)Tone: Write as if you're the author of the PR explaining your own changes to a colleague. Professional but not stiff. Match the tone of the existing template — if it's casual, be casual.
After writing the file, tell the user:
Then ask the user if they'd like to create the PR now. If yes:
main or master)git push -u origin <branch>)gh pr create --draft, passing the generated description as the bodydata-ai
Post a Zoom meeting recap (TLDR, summary link, recording link, password) to a Slack channel via a Slack bot. Designed to be invoked from a cron-scheduled routine that fires ~30 min after a recurring meeting ends. Pulls the most recent Zoom recording, then prompts a configurable Slack target (group of handles or a channel) for any missing details — the recording password if needed, the presenter's Slack handle for crediting, and the TLDR text itself when neither Zoom's AI summary nor the transcript yields a usable one — and posts the assembled recap exactly once. Use when the user says "post the meeting recap to Slack", "publish the Zoom summary", "/zoom-meeting-slack-recap", or wires up a new recurring-meeting routine.
data-ai
Create GitHub issues using data-driven templates. Supports any issue type via configurable template configs. Use when the user asks to create a GitHub ticket, issue, or support ticket, or when they want to add a new issue template.
documentation
Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
documentation
Maintain the OpenClaw memory wiki vault with deterministic pages, managed blocks, and source-backed updates.