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-writingThis skill is limited to using the following tools:
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 design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
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