From mateonunez-skills
Generates Conventional Commits with repo-specific scopes from git log or commitlint config. Use when staging/proposing commits, writing PR titles, or user says 'commit'.
npx claudepluginhub mateonunez/skillsThis skill uses the workspace's default tool permissions.
> `chore: stuff` is not a commit message.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Processes PDFs: extracts text/tables/images, merges/splits/rotates pages, adds watermarks, creates/fills forms, encrypts/decrypts, OCRs scans. Activates on PDF mentions or output requests.
Share bugs, ideas, or general feedback.
chore: stuffis not a commit message.
A commit should answer "what changed, in what area, why" at a glance. The scope tells me the area; the type tells me the kind of change; the subject tells me what I'll see in the diff. Without a scope, I'm reading every commit subject in the dark.
Format:
<type>(<scope>): <imperative subject>
<optional body explaining why, not what>
You are about to:
Before writing the message, read the most recent ~30 commits to see which scopes the repo actually uses:
git log -30 --pretty=format:'%s' | grep -oE '^[a-z]+\([a-z0-9-]+\):' | sort -u
Use one of those. If the change doesn't fit any existing scope, tell me — I'd rather expand the catalogue deliberately than have you guess.
If a commitlint.config.{js,cjs,ts} exists, read its scope-enum for the canonical list.
feat, fix, chore, refactor, docs, test, perf, build, ci, style, revert. Lowercase. Imperative.
add, not adding or adds.chore: bump deps → chore(deps): bump zod to 3.23.feat(api): Add endpoint → feat(api): add endpoint.feat(auth): adding refresh token → feat(auth): add refresh token.feat(stuff) is worse than no scope. If nothing fits, ask.feat: WIP, chore: misc, fix: bug — non-messages. Reject.fix(auth): fixed token expiry → fix(auth): fix token expiry.Don't introduce them silently. Match the existing style. If I want to switch the repo to Conventional Commits, that's a separate conversation (and likely an ADR).
The exception: my own repos (agentfiles, mateonunez.co, ait, my Fastify plugins) all use Conventional Commits with scopes. If you're in one of mine, this skill is non-optional.