
pr-squash-commit-message
by acevif
Generate .gitignore file
SKILL.md
name: pr-squash-commit-message description: Draft a high-quality squash merge commit message for a GitHub PR using Conventional Commits format. Analyzes PR title/body, diff, and changed files to generate a structured commit message. metadata: version: "1.0" intent: "commit-message"
Goal
Produce a clean, informative squash merge commit message for a GitHub Pull Request following this project's commit message conventions.
References
- Conventional Commits v1.0.0
- Chris Beams: How to Write a Git Commit Message (especially "what" and "why")
Inputs to use (in priority order)
- Diff (
gh pr difforgit diff origin/main) - Linked issues (e.g., #123)
- Key changed files / modules (high-level)
- PR title
- PR description/body
If some inputs are missing, ask the user to provide them OR infer conservatively from what is available.
CHANGELOG.md handling
When a PR includes changes to CHANGELOG.md:
-
Omit from commit message: Routine entry additions under
[Unreleased]that simply document the PR's other changes. This is expected for every PR and adds no information. -
Include in commit message: Structural changes, format updates, past entry corrections, or any changes unrelated to the PR's primary purpose.
Output format
The commit message MUST follow Conventional Commits v1.0.0 format:
Structure
<type>: <description> (#<PR-number>)
<body>
<footers>
First line (subject)
- Format:
<type>: <description> (#<PR-number>) - Length: <= 72 characters preferred
- Type: One of
feat,fix,docs,style,refactor,perf,test,build,ci,chore,revert - Description: Imperative mood ("Add", "Fix", "Update", not "Added", "Fixes", "Updated")
- MUST end with PR number in parentheses:
(#123)
Body
2–8 short lines or bullet points covering:
- Why: Problem or motivation (see Chris Beams: How to Write a Git Commit Message)
- What: Changes made (see Chris Beams: How to Write a Git Commit Message)
- Impact: Effects on users, system, or development (SHOULD include)
Use bullets for multiple changes. Keep it scannable.
Footers
Fixes: #123/Closes: #123/Resolves: #123— use when this PR resolves an issue (issues should generally be created before PRs)Related: #123/Reference: #123— use to reference related issues not fully resolved by this PRBREAKING CHANGE: <what/why/migration>— only if applicable
Language policy
Always write commit messages in English.
Title policy (how to craft the subject line)
Use imperative mood:
- "Add …", "Fix …", "Refactor …", "Improve …"
Title must be specific:
- Avoid vague words: "update", "tweak", "misc", "fix bug"
- Include the user-visible or system-visible effect
- If relevant, include subsystem/module as scope or in wording
Type selection guide
feat: New feature for users or significant new capabilityfix: Bug fixdocs: Documentation only changesstyle: Code style changes (formatting, missing semicolons, etc.) that don't affect code executionrefactor: Code change that neither fixes a bug nor adds a featureperf: Performance improvementtest: Adding or updating testsbuild: Changes to build system or dependenciesci: Changes to CI configuration files and scriptschore: Other changes that don't modify src or test filesrevert: Reverts a previous commit
Body policy
Keep it scannable:
- Prefer bullets when listing changes
- Mention notable tradeoffs, migrations, or risk
- Include impact on users, system, or development workflow
Examples
Example A: Feature addition
Input:
- PR #20
- Diff: Adds homebrew-tap directory to workspace configs
- Linked issue: (none)
- Key changed files: .devcontainer/devcontainer.json, devcontainer.json
- PR title: Add homebrew-tap directory to workspace access configs
- PR body: Enables access to acevif/homebrew-tap for formula updates
Output:
feat: Add homebrew-tap directory to workspace access configs (#20)
- Enable access to acevif/homebrew-tap repository in dev container
- Add workspaceFolder to both root and nested devcontainer configs
Impact: Developers can now update Homebrew formula from within the dev container
Example B: Bug fix with issue
Input:
- PR #456
- Diff: (omitted)
- Linked issue: #400
- Key changed files: src/validation.rs, tests/validation_tests.rs
- PR title: Fix passphrase validation for WPA3
- PR body: Enforce 8-63 ASCII or 64 hex; align with spec; update error messages
Output:
fix: Correct WPA3 SAE passphrase validation rules (#456)
- Enforce 8-63 ASCII or 64-hex passphrase requirements per spec
- Add comprehensive validation tests for edge cases
- Surface clearer validation errors to users
Impact: WPA3 password validation now correctly rejects invalid inputs
Fixes: #400
Example C: Breaking change
Input:
- PR #789
- Diff: Changes API response format
- Linked issue: #700
- Key changed files: src/api/response.rs, docs/API.md
- PR title: Migrate API responses to JSON:API format
- PR body: Standardize on JSON:API v1.1 for consistency
Output:
refactor: Migrate API responses to JSON:API format (#789)
- Adopt JSON:API v1.1 specification for all endpoints
- Update response serializers and documentation
- Add migration guide for API consumers
Impact: All API consumers must update their response parsing logic
BREAKING CHANGE: API response format changed from custom structure to JSON:API v1.1.
See docs/MIGRATION.md for upgrade instructions.
Fixes: #700
Workflow
- Fetch PR information (diff, title, body, linked issues)
- Analyze the changes:
- Identify the type (feat, fix, docs, etc.)
- Determine the core problem and solution
- Note the impact on users/system
- Draft the commit message following the format above
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です



