一键导入
pr-summary
Summarise the commits on the current branch and write a markdown file suitable for pasting into a Pull Request description
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Summarise the commits on the current branch and write a markdown file suitable for pasting into a Pull Request description
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Bump the V.R.M version across manifest XML, Phing build file, and SQL update file for any Joomla extension project
Scan the repository for file modifications and append structured daily entries to the project work log
Regenerate the dynamic include files (available-agents.md and available-skills.md) by scanning agent and skill directories for frontmatter
Record prompts and responses from the current Claude Code session into a structured conversation log
| name | pr-summary |
| description | Summarise the commits on the current branch and write a markdown file suitable for pasting into a Pull Request description |
| when_to_use | Use when the user wants to generate a PR summary, pull request description, or changelog from the current branch commits |
| argument-hint | [base-branch] |
| arguments | ["base"] |
| disable-model-invocation | true |
| user-invocable | true |
| allowed-tools | Bash(git *) Read Write |
| model | inherit |
| shell | bash |
Analyse the commits unique to the current branch and write a structured markdown summary suitable for pasting into a Pull Request description.
$base is optional:
main, develop)git merge-base to find the exact fork point; never include commits from the parent branch--no-merges to git logRead the project's CLAUDE.md (it is auto-loaded into context). Extract:
## Project Configuration section## Directory Paths sectionIf these values cannot be found, use the current working directory as the repository and the directory name as the project name.
If $base was provided and is non-empty, use it as the base branch.
Otherwise, detect the default branch:
git -C "{Repository}" remote show origin 2>/dev/null | grep 'HEAD branch' | awk '{print $NF}'
If that fails, fall back to main.
Get the current branch name:
git -C "{Repository}" branch --show-current
If the current branch IS the base branch, report that there is nothing to summarise and stop.
Use git merge-base to find the exact commit where the current branch diverged from the base branch. This is critical for isolating only the current branch's commits:
git -C "{Repository}" merge-base {base-branch} HEAD
Store this commit hash as FORK_POINT. All subsequent git commands use FORK_POINT..HEAD as the range — not {base-branch}..HEAD — to ensure that only commits introduced on the current branch are included, even if the base branch has moved forward or been merged in.
Run these commands using the FORK_POINT..HEAD range:
Commit list — only commits on this branch, excluding merge commits:
git -C "{Repository}" log FORK_POINT..HEAD --no-merges --first-parent --pretty=format:"%h %s (%an, %ad)" --date=short
Detailed commit messages — for deeper analysis of each commit's purpose:
git -C "{Repository}" log FORK_POINT..HEAD --no-merges --first-parent --pretty=format:"%h%n%s%n%b%n---"
Diff stats — summary of files changed:
git -C "{Repository}" diff --stat FORK_POINT..HEAD
Changed file list:
git -C "{Repository}" diff --name-only FORK_POINT..HEAD
If the commit list is empty, report that the current branch has no unique commits and stop.
From the changed file list (step 5), determine which extension(s) the PR touches and read each one's current version:
<extension ...> root with a <version> tag).<name> value (which is often a language constant like COM_FORUM). Derive it from the install/folder convention: components → com_{name}, plugins → plg_{group}_{name}, modules → mod_{name}, templates → tpl_{name}.<version> value from that extension's manifest XML, read from the working tree (current state) so it matches what the PR ships._None_ in the Extensions section.Review every commit message and the diff stats. Group related commits by area of change. Common categories include:
If all commits fall into a single logical group, skip the category subheadings.
The summary file is written to {Repository}/Files/PR_SUMMARY.md.
Files/ directory does not exist, create itWrite the file using this structure:
# PR Summary: {branch-name}
**Base branch:** {base-branch}
**Commits:** {count}
## Summary
<!-- One or two sentences describing the overall purpose of this branch -->
## Extensions
- {extension-name} {version}
## Changes
### <Category>
- Description of change (`hash`)
## Files Changed
Format rules:
## Changes## Extensions section lists each extension the PR touches as - {name} {version} (e.g. - com_forum 1.0.4), one per line, using the version from each extension's manifest XML## Files Changed section contains the raw git diff --stat output in a fenced code blockAfter writing the file:
PR_SUMMARY.md to the userFORK_POINT..HEAD yields zero commits, report that the branch has no changes to summarise and stop. Do not create an empty file.origin/{base-branch}. If that also fails, report the error and stop.git branch --show-current returns empty, report that a branch checkout is required and stop.