Help us improve
Share bugs, ideas, or general feedback.
From contributor-writing
Drafts RELEASE_INFO and UPGRADE entries for Shopware core by analyzing branch diffs against trunk and synthesizing narratives calibrated to change magnitude.
npx claudepluginhub shopwarelabs/ai-coding-tools --plugin contributor-writingHow this skill is triggered — by the user, by Claude, or both
Slash command
/contributor-writing:release-info-writingsonnetThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Draft entries for `RELEASE_INFO-6.x.md` and `UPGRADE-6.x.md` in the Shopware core repository. The skill auto-generates the mechanical "what changed" from code analysis but requires human input for "why external developers should care."
Generates human-friendly changelogs from git history, PRs, or ref ranges. Follows Keep a Changelog format and polishes commit messages.
Drafts conventional commit PR titles and Shopware 5-section descriptions for core PRs targeting trunk. Analyzes branch against trunk, uses session context, asks for missing info.
Generates structured changelogs and release notes from git history and PRs by parsing conventional commits and classifying changes. Useful for preparing releases.
Share bugs, ideas, or general feedback.
Draft entries for RELEASE_INFO-6.x.md and UPGRADE-6.x.md in the Shopware core repository. The skill auto-generates the mechanical "what changed" from code analysis but requires human input for "why external developers should care."
File write scope: Edit only RELEASE_INFO-6.*.md and UPGRADE-6.*.md. Read everything else.
Parse .danger.php in the repo root to get the canonical file names CI enforces.
.danger.phpmatches('RELEASE_INFO- — extract the file name from the string argument (e.g., RELEASE_INFO-6.7.md)matches('UPGRADE- or referencing UPGRADE- in failure messages — extract the file name (e.g., UPGRADE-6.8.md)RELEASE_INFO-6.*.md and UPGRADE-6.*.md in the repo root. Pick the file with the highest version number.Verify both files exist before proceeding.
Understand the full story of the branch, not just individual changes.
trunk:
mcp__plugin_gh-tooling_gh-tooling__pr_diff and mcp__plugin_gh-tooling_gh-tooling__pr_filesgit diff trunk...HEAD --stat and git log trunk..HEAD --onelineStep 1 — Is this externally relevant?
Skip if ALL are true:
Step 2 — Which files need entries?
| Signal in diff | RELEASE_INFO | UPGRADE |
|---|---|---|
| New public feature / extension point | Yes | No |
| New/changed config option | Yes | No |
Deprecation added (@deprecated) | Yes | Yes (next major) |
| Method/class removed | No | Yes |
| Method signature changed (breaking) | Possibly | Yes |
| Behavioral change (non-breaking but notable) | Yes | No |
| Behavioral change (breaking) | Yes | Yes |
| Critical bug fix | Yes | No |
| New API endpoint | Yes | No |
| API endpoint removed/changed | Yes | Yes |
Step 3 — Present classification to user:
"Based on the branch changes, this looks like [classification]. I'd suggest entries in [file(s)]. Does that match your intent?"
The user can override — they know the story better than the diff.
references/writing-rules.md for style guidancereferences/entry-examples.md for sizing calibrationreferences/file-structure.md for heading hierarchy and placement rulesreferences/writing-rules.md, then check the draft literally (not from memory):
Edit to insert the entry under the correct heading in the correct fileDo not commit. The user decides when to commit.
changelog/_unreleased/ — warn the user if files exist there (old format rejected by CI)RELEASE_INFO-6.*.md files