browser-validator
Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built…
Automatically generate conventional commit messages when user has staged changes and mentions committing. Analyzes git diff and status to create properly formatted commit messages following conventional commits specification. AI attribution comes from the tool's own trailer
Claude Code
$ npx -y skills add kanopi/cms-cultivator --skill commit-message-generator --agent claude-code
Codex
$ npx skills add kanopi/cms-cultivator --skill commit-message-generator -a codex -y
Cursor
$ npx skills add kanopi/cms-cultivator --skill commit-message-generator -a cursor -y
Gemini CLI
$ npx skills add kanopi/cms-cultivator --skill commit-message-generator -a gemini-cli -y
GitHub Copilot
$ npx skills add kanopi/cms-cultivator --skill commit-message-generator -a github-copilot -y
OpenCode
$ npx skills add kanopi/cms-cultivator --skill commit-message-generator -a opencode -y
Windsurf
$ npx skills add kanopi/cms-cultivator --skill commit-message-generator -a windsurf -y
name: commit-message-generator description: Automatically generate conventional commit messages when user has staged changes and mentions committing. Analyzes git diff and status to create properly formatted commit messages following conventional commits specification. AI attribution comes from the tool's own trailer (Claude Code's Co-Authored-By); the skill never adds a second one. Invoke when user mentions "commit", "staged", "committing", or asks for help with commit messages.
Automatically generate conventional commit messages for staged changes.
Commit messages are the history and documentation of your code's evolution.
1. **Commits Tell a Story**: Each commit should explain what changed and why 2. **Conventional Format Enables Automation**: Structured messages power changelogs and semantic versioning 3. **Clarity Over Brevity**: A clear 2-line message beats a cryptic 5-word one 4. **Context Matters**: Messages should be understandable months later without additional context
Activate this skill when the user:
Before generating a commit message, ask yourself:
1. **New functionality** → `feat` type 2. **Bug fix** → `fix` type 3. **Code improvement without behavior change** → `refactor` type 4. **Documentation only** → `docs` type 5. **Tests only** → `test` type 6. **Multiple types** → Suggest splitting commits
Split if staged changes include:
User mentions commit
↓
Check: Staged changes?
↓ Yes
Check: Multiple unrelated changes?
↓ No
Check: Follows conventional commits pattern?
↓ Generate message
↓
Review with user → Commitgit status git diff --staged
If no staged changes, inform the user and suggest staging files first.
git log --oneline -10
Learn the repository's commit message conventions.
**Format**: `<type>(<scope>): <description>`
**Types**:
**Example**:
feat(auth): add two-factor authentication support - Implement TOTP-based 2FA - Add backup codes generation - Include recovery flow for lost devices - Update user profile settings UI Refs: 30024167
**Body rules**:
PR and comment bodies, which must never be hard-wrapped (`pr-create`) — don't carry one rule into the other.
branches are `<type>/<ticketID>-<short-desc>`, so `bug/30140451-menu-link-attributes` gives `Refs: 30140451`. Omit the footer when the branch carries no ticket.
**Drupal**:
**WordPress**:
Claude Code adds its own AI attribution trailer to commits it creates — by default `Co-Authored-By: Claude <model> <noreply@anthropic.com>`, carrying the session's real model, and governed by the `attribution.commit` setting. That trailer is the per-commit provenance record. The per-PR complement is the Delivery Record ([kanopi/delivery-record](https://github.com/kanopi/delivery-record)).
Rules:
`Co-Authored-By:`. Two trailers for one assistant split the audit trail.
it yourself; the tool supplies it.
last paragraph, so put `Refs:` and `BREAKING CHANGE:` footers directly above the tool's trailer, with no blank line between them and nothing after.
Specialist agents and auto-invoked skills for Drupal/WordPress development. Works in Claude Code, Claude Desktop, and OpenAI Codex. Full documentation: What changed in 2.0? CMS Cultivator now focuses on CMS development workflows.
Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built…
Run the right linting, formatting, and static-analysis commands after changing code, and check it against PHPCS, ESLint,…
Generate and maintain patches for Composer-installed packages (Drupal contrib modules, WordPress packages, PHP libraries) using…
Automatically analyze test coverage when user asks which code is tested, mentions coverage gaps, or shows code asking about…
Deterministic cleanup of DDEV and Docker disk usage on OrbStack, Docker Desktop, or any Docker provider. Safely reclaims space by…
Operate a Kanopi DDEV site day to day — get a fresh clone or worktree actually serving pages, pull a database from the hosting…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.