From contributor-writing
Drafts conventional commit PR titles and narrative descriptions for Shopware core PRs targeting non-trunk feature branches. Analyzes diffs, detects related PRs in chain, asks questions. Use for feature-branch PRs only.
npx claudepluginhub shopwarelabs/ai-coding-tools --plugin contributor-writingThis skill is limited to using the following tools:
Draft a PR title (conventional commit format) and description (narrative prose with topical subsections) for PRs targeting non-trunk feature branches. Analyzes the diff against the target branch, detects related PRs in the chain, and asks targeted questions for missing context.
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 a PR title (conventional commit format) and description (narrative prose with topical subsections) for PRs targeting non-trunk feature branches. Analyzes the diff against the target branch, detects related PRs in the chain, and asks targeted questions for missing context.
Output scope: Presents formatted title + description text. Does not create or update PRs on GitHub. Does not write to any files.
Determine what we're working with: branch, target, PR status, diff, and chain.
git branch --show-currenttrunk, stop: "This skill works on feature branches. Switch to a feature branch first."pr_view to read itpr_list filtered to the current branchtrunk, stop: "This PR targets trunk. Use the pr-description-writing skill for trunk-targeting PRs."pr_diff and pr_filesgit diff <target>...HEAD --stat and git log <target>..HEAD --onelinepr_list filtered to PRs targeting the same feature branch. Record titles, numbers, merge state, and any cross-references in bodies. Identify predecessor/successor relationships.Understand the full story of the branch relative to the target.
| File path pattern | Scope |
|---|---|
src/Core/Checkout/Cart/ | cart |
src/Core/Checkout/Order/ | order |
src/Core/Checkout/Promotion/ | promotion |
src/Core/Content/Product/ | product |
src/Core/Content/Media/ | media |
src/Core/Content/Category/ | category |
src/Core/Content/Cms/ | cms |
src/Core/Content/Mail/ | mail |
src/Core/Framework/DataAbstractionLayer/ | dal |
src/Core/Framework/App/ | app-system |
src/Core/System/SystemConfig/ | system-config |
src/Core/System/NumberRange/ | number-range |
src/Storefront/ | storefront |
src/Administration/ | admin |
src/Elasticsearch/ | elasticsearch |
For changes spanning multiple areas, use the scope of the primary story. If no specific scope fits, omit the parenthetical scope entirely: fix: description.
"This branch contains: (a) ..., (b) .... What's the primary story?"
Fill the gaps. Ask targeted questions only for information not in the diff, chain detection, or session context.
references/writing-rules.md to internalize style constraints and anti-slop rules.Generate the conventional commit title and narrative description.
references/description-examples.md for sizing calibration<type>(<scope>): <description>| Type | When to use |
|---|---|
fix | Bug fix |
feat | New feature or capability |
refactor | Code restructuring with no behavioral change |
perf | Performance improvement |
chore | Maintenance, dependency updates, tooling |
docs | Documentation only |
test | Test additions or corrections |
style | Code style (formatting, semicolons, etc.) |
Title description rules: imperative mood, lowercase first letter, no period, under ~60 characters after type/scope. Describe the behavioral change, not the implementation.
### subsections: each covers one concern or aspect of the change. Choose headers based on what the PR actually does, not from a fixed list. Good: "Event-based type override", "DI decentralization". Bad: "Changes", "What changed", "Updates".## References section at the end with cross-references: Ref #issue, Blocked by #PR, Follows #PR, Follow-up: #PR. Never use closes or fixes.Verify the draft against anti-slop rules, then deliver.
references/writing-rules.md, then check the draft literally (not from memory):