-
Notifications
You must be signed in to change notification settings - Fork 4.1k
chore: add Claude Code skills for PR descriptions and release notes #8920
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| --- | ||
| name: pr-description | ||
| description: Generate a PR description following the project's GitHub PR template. Analyzes the current branch's changes against the base branch to produce a complete, filled-out PR description. | ||
| user_invocable: true | ||
| --- | ||
|
|
||
| # PR Description Generator | ||
|
|
||
| Generate a pull request description based on the project's PR template at `.github/pull_request_template.md`. | ||
|
|
||
| ## Steps | ||
|
|
||
| 1. **Determine the base branch**: Prefer the PR's actual `baseRefName` (via `gh pr view <PR> --json baseRefName`) when a PR exists. Otherwise default by intent — feature PRs target `preview`, release PRs target `master`. If still ambiguous, ask the user. | ||
|
|
||
| 2. **Analyze changes**: Run the following to understand what changed: | ||
| - `git log <base>...HEAD --oneline` to see all commits on this branch | ||
| - `git diff <base>...HEAD --stat` to see which files changed | ||
| - `git diff <base>...HEAD` to read the actual diff (use `--no-color`) | ||
| - If the diff is very large, focus on the most important files first | ||
|
|
||
| 3. **Fill out the PR template** with the following sections: | ||
|
|
||
| ### Description | ||
|
|
||
| Write a clear, concise summary of what the PR does and why. Focus on the "what" and "why", not line-by-line changes. Mention any important implementation decisions. | ||
|
|
||
| ### Type of Change | ||
|
|
||
| Check the appropriate box(es) based on the changes: | ||
| - Bug fix (non-breaking change which fixes an issue) | ||
| - Feature (non-breaking change which adds functionality) | ||
| - Improvement (non-breaking change that improves existing functionality) | ||
| - Code refactoring | ||
| - Performance improvements | ||
| - Documentation update | ||
|
|
||
| ### Screenshots and Media | ||
|
|
||
| Leave this section for the user to fill in, preserving the existing placeholder comment from `.github/pull_request_template.md` verbatim rather than introducing different text. | ||
|
|
||
| ### Test Scenarios | ||
|
|
||
| Based on the code changes, suggest specific test scenarios that should be verified. Be concrete (e.g., "Navigate to project settings and verify the new toggle works") rather than generic. | ||
|
|
||
| ### References | ||
| - If commit messages or branch name reference a work item identifier (e.g., `WEB-1234`), include it | ||
| - If the user provides a linked issue, include it | ||
| - If Sentry issue links or IDs (e.g., `SENTRY-ABC123`, Sentry URLs) were mentioned earlier in the conversation, include them as references | ||
|
|
||
| 4. **Output format**: Print the filled-out markdown template so the user can copy it directly. Do NOT wrap it in a code fence — output the raw markdown. | ||
|
|
||
| ## Guidelines | ||
|
|
||
| - Keep the description concise but informative | ||
| - Use bullet points for multiple changes | ||
| - Focus on user-facing impact, not implementation details | ||
| - If the branch has a Plane work item ID in its name (e.g., `WEB-1234`), reference it | ||
| - Don't fabricate test scenarios that aren't relevant to the actual changes | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,147 @@ | ||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||
| name: release-notes | ||||||||||||||||||||||||||||||||||
| description: "Generate release notes for a Plane release PR in `makeplane/plane` (semver, e.g. `release: vX.Y.Z`). Reads PR commits, filters out noise, categorizes by conventional-commit type, optionally enriches via Plane MCP, and writes the result as the PR description." | ||||||||||||||||||||||||||||||||||
| user_invocable: true | ||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| # Release Notes Generator | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Generate structured release notes from a Plane release PR by parsing its commit list, then update the PR description. | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| ## Versioning | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Plane community uses **semver** (`vX.Y.Z`, major.minor.patch) for releases. | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| - PR title format: `release: vX.Y.Z` | ||||||||||||||||||||||||||||||||||
| - Source branch: `canary` | ||||||||||||||||||||||||||||||||||
| - Target branch: `master` | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| ## When to Use | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| - User links/mentions a Plane release PR (e.g. `release: v1.3.0`) and asks for release notes | ||||||||||||||||||||||||||||||||||
| - User asks to "create release notes" / "update PR description" for a release PR in `makeplane/plane` | ||||||||||||||||||||||||||||||||||
| - The branch is named `canary` or `release/x.y.z` and the base is `master` | ||||||||||||||||||||||||||||||||||
|
Comment on lines
+16
to
+23
|
||||||||||||||||||||||||||||||||||
| - Source branch: `canary` | |
| - Target branch: `master` | |
| ## When to Use | |
| - User links/mentions a Plane release PR (e.g. `release: v1.3.0`) and asks for release notes | |
| - User asks to "create release notes" / "update PR description" for a release PR in `makeplane/plane` | |
| - The branch is named `canary` or `release/x.y.z` and the base is `master` | |
| - Source branch: use the PR's actual `headRefName` from `gh pr view` (often `uat` or `release/x.y.z`) | |
| - Target branch: use the PR's actual `baseRefName` from `gh pr view` (typically `master` or `preview`) | |
| ## When to Use | |
| - User links/mentions a Plane release PR (e.g. `release: v1.12.0`) and asks for release notes | |
| - User asks to "create release notes" / "update PR description" for a release PR in `makeplane/plane` | |
| - The PR's `headRefName`/`baseRefName` from `gh pr view` indicate a release flow (for example, head `uat` or `release/x.y.z` with base `master` or `preview`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: makeplane/plane
Length of output: 151
Update
.github/pull_request_template.mdto match the correct definition of "Improvement"The skill file at
.claude/skills/pr-description.mdline 32 correctly defines "Improvement" as a "non-breaking change that improves existing functionality", but.github/pull_request_template.mdline 8 still displays the incorrect text: "change that would cause existing functionality to not work as expected". Update the template to align with the skill's correct interpretation.🧰 Tools
🪛 LanguageTool
[style] ~30-~30: Consider using a different verb for a more formal wording.
Context: ... - Bug fix (non-breaking change which fixes an issue) - Feature (non-breaking ch...
(FIX_RESOLVE)
🤖 Prompt for AI Agents