.claude/skills/commitlint/SKILL.md
Validate commit messages against the Conventional Commits specification. Auto-detects and installs commitlint CLI if missing. Checks project config or falls back to sensible defaults. Use when validating commit messages, preparing PRs, or enforcing commit conventions.
npx skillsauth add dirien/yet-another-agent-harness commitlintInstall 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.
Validate commit messages follow the Conventional Commits specification. Enables automatic changelog generation, semantic versioning, and clean git history.
@commitlint/cli and @commitlint/config-conventional are
installed; installs them if missing.# Check if commitlint is available
npx commitlint --version 2>/dev/null
If not installed, install globally:
npm install -g @commitlint/cli @commitlint/config-conventional
If installation fails (permissions, no npm), stop validation and report the issue with remediation steps:
sudo npm install -g ... or fix npm permissionsDo not silently skip validation.
commitlint.config.js in project root.commitlintrc.json in project root.commitlintrc.yaml in project root.commitlintrc in project rootcommitlint field in package.jsonreferences/conventional-commits.md)If no project config exists, create a temporary .commitlintrc.json using
the default config from the reference document before running validation.
1. Check commitlint installation
├─ Installed → continue
└─ Missing → install, then continue (fail if install fails)
2. Detect project config
├─ Found → use it
└─ Not found → use default config from references/
3. Run validation
├─ From a string:
│ echo "<message>" | npx commitlint
├─ From a file:
│ cat <file> | npx commitlint
└─ From last git commit:
git log -1 --format=%B | npx commitlint
4. Report results
├─ Valid → confirm and proceed
└─ Invalid → show errors, suggest fixes, re-validate after correction
echo "feat(api): add login endpoint" | npx commitlint
cat path/to/message-file.txt | npx commitlint
git log -1 --format=%B | npx commitlint
If commitlint cannot be installed, report the error and provide remediation steps. Do not proceed with validation.
When validation fails, report each error with:
type-enum, header-max-length)feature is not allowed)feat instead)Example:
Validation failed:
1. type-enum: type 'feature' is not allowed
Allowed: feat, fix, docs, style, refactor, perf, test, build, ci,
chore, revert
Fix: use 'feat' instead of 'feature'
2. header-max-length: header is 72 characters (max 50)
Fix: shorten to 'feat: add user authentication with JWT'
After reporting errors, suggest a corrected message and re-validate.
See references/conventional-commits.md for the full Conventional Commits
format specification, type descriptions, rules, default config, and
examples.
tools
Implements advanced TypeScript type systems, creates custom type guards, utility types, and branded types, and configures tRPC for end-to-end type safety. Use when building TypeScript applications requiring advanced generics, conditional or mapped types, discriminated unions, monorepo setup, or full-stack type safety with tRPC.
development
Use when challenging ideas, plans, decisions, or proposals using structured critical reasoning. Invoke to play devil's advocate, run a pre-mortem, red team, or audit evidence and assumptions.
development
Systematic technical debt analysis across architecture, testing, documentation, and infrastructure. Investigates the codebase, scores findings by impact and effort, and generates a prioritized TECH_DEBT.md remediation plan. Delegates to specialized skills for code quality (scout) and linting (lint-fix). Use when assessing overall project health, planning cleanup sprints, or onboarding to an unfamiliar codebase.
testing
Install and configure Tailscale across platforms. Detects OS, distro, and environment (including WSL2 and containers). Verifies existing installations, performs platform-appropriate install, and guides initial connection. Use when setting up Tailscale on a new machine, onboarding a server to a tailnet, or verifying an existing install.