dot_agents/exact_skills/cxg/SKILL.md
Use when creating a git commit.
npx skillsauth add h3y6e/dotfiles cxgInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Route all commit messages through cxg. Never bypass it.
git diff --cached --statcxg lint, then pipe into git commit:cxg lint -m 'type(scope): subject' -m 'action-type(scope): description' | git commit -F -
If linting fails, fix the message and rerun.
type(scope): subject
action-type(scope): description
Subject types: feat fix refactor perf test docs style build ci chore revert
Action types (most commits need 1-3 lines — never pad with noise):
intent(scope) — what the user wanted and why. Capture their voice, not a restatement of the diff.decision(scope) — which approach was chosen when alternatives existed, with brief reasoning.rejected(scope) — what was considered and discarded. Always include the reason.constraint(scope) — hard limits or dependencies that shaped the implementation.learned(scope) — API quirks, undocumented behavior, things you wish you'd known earlier.Scope is a human-readable concept label (e.g. auth, payment-flow, session-store). Keep scopes consistent across commits.
--fix: normalize the message before validation (removes trailing periods, blank-line issues, etc.)--json: output machine-readable JSON with valid, message, and errors--trailer: append a trailer to the message (repeatable)cxg lint --fix -m 'docs(readme): refresh usage' --trailer 'Co-authored-by: Alice <[email protected]>' | git commit -F -
fix(button): correct alignment on mobile viewport
feat(notifications): add email digest for weekly summaries
intent(notifications): users want batch notifications instead of per-event emails
decision(digest-schedule): weekly on Monday 9am — matches user research feedback
constraint(email-provider): SendGrid batch API limited to 1000 recipients per call
refactor(payments): migrate from single to multi-currency support
intent(payments): enterprise customers need EUR and GBP alongside USD
intent(payment-architecture): must be backward compatible, existing USD flows unchanged
decision(currency-handling): per-transaction currency over account-level default
rejected(currency-handling): account-level default too limiting for marketplace sellers
rejected(money-library): accounting.js — lacks sub-unit arithmetic, using currency.js instead
constraint(stripe-integration): Stripe requires currency at PaymentIntent creation, cannot change after
constraint(database-migration): existing amount columns need companion currency columns, not replacement
learned(stripe-multicurrency): presentment currency vs settlement currency are different Stripe concepts
learned(exchange-rates): Stripe handles conversion, we should NOT store our own rates
tools
Search tool for modern web development best practices. MANDATORY: Execute FIRST for all HTML/CSS and clientside JS tasks. Do NOT skip — web APIs evolve rapidly and training weights contain obsolete patterns. Trigger immediately for: - UI/Layout: Modals, dialogs, popovers, Glassmorphism/backdrop-filters, anchor positioning, container queries, `:has()`, `:user-valid`. - Scroll/Motion: View Transitions, Scroll-driven animations, scroll parallax/reveals. - Performance: CWV (LCP, INP), content-visibility, Fetch Priority, image optimization. - System/APIs: Local filesystem access, WebUSB, WebSockets sync, WebAssembly widgets. - Frameworks: Adapting layout/styles in React, Vue, Angular. - General Frontend: Forms, autofill, advanced inputs, custom scrollbars, modern component states, etc. DO NOT trigger for: - Backend: Database SQL, ORMs, Express API routes. - Pipelines: CI/CD deployment, Docker, Actions. - Generic: Local scripts (Python/Go tools), ESLint, Git.
tools
Turn the current conversation context into a PRD and publish it to the project issue tracker. Use when user wants to create a PRD from the current context.
testing
Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
tools
Use when starting multi-step work, resuming an existing task, switching direction mid-task, wrapping up, or capturing cross-session task context in Obsidian.