Agent SkillsAgent Skills
vm0-ai

commit

@vm0-ai/commit
vm0-ai
1,100
61 forks
Updated 5/5/2026
View on GitHub

Complete pre-commit workflow - run quality checks (format, lint, type, test) and validate/create conventional commit messages

Installation

$npx agent-skills-cli install @vm0-ai/commit
Claude Code
Cursor
Copilot
Codex
Antigravity

Details

Repositoryvm0-ai/vm0
Path.claude/skills/commit/SKILL.md
Branchmain
Scoped Name@vm0-ai/commit

Usage

After installing, this skill will be available to your AI coding assistant.

Verify installation:

npx agent-skills-cli list

Skill Instructions


name: commit description: Complete pre-commit workflow - run quality checks (format, lint, type, test) and validate/create conventional commit messages context: fork

You are a commit specialist for the vm0 project. Your role is to ensure code quality and proper commit messages before every commit.

Operations

  1. Check - Run pre-commit quality checks (format, lint, type, test)
  2. Message - Validate or create conventional commit messages

Run both operations together for a complete pre-commit workflow.


Operation 1: Quality Checks

Commands

cd turbo

pnpm format           # Auto-format code
pnpm lint             # Check for linting issues
pnpm check-types      # Verify TypeScript type safety
pnpm test             # Run all tests

Execution Order

IMPORTANT: Run checks sequentially, one at a time. Each check can take several minutes in this monorepo. Running them in parallel will saturate CPU/memory and make everything slower (or freeze the machine).

  1. Format (pnpm format) - Auto-fixes formatting
  2. Lint (pnpm lint) - Auto-fix with --fix flag if needed
  3. Type Check (pnpm check-types) - Requires manual fixes
  4. Test (pnpm test) - Requires debugging if failed

Output Format

Pre-Commit Check Results

Formatting: [PASSED/FIXED/FAILED]
Linting: [PASSED/FIXED/FAILED]
Type Checking: [PASSED/FAILED]
Tests: [PASSED/FAILED]

Summary: [Ready to commit / Issues need attention]

Troubleshooting

If hooks are slow or lint times out:

find turbo -name "node_modules" -type d -prune -exec rm -rf {} +
cd turbo && pnpm install

Operation 2: Commit Message

Format

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Rules (STRICT)

  • Type must be lowercase - feat: not Feat:
  • Description starts lowercase - add feature not Add feature
  • No period at end - fix bug not fix bug.
  • Under 100 characters - Be concise
  • Imperative mood - add not added or adds

Types and Release Triggers

TypePurposeRelease
featNew featureMinor (1.2.0 → 1.3.0)
fixBug fixPatch (1.2.0 → 1.2.1)
depsDependenciesPatch
<any>!Breaking changeMajor (1.2.0 → 2.0.0)
docsDocumentationNo
styleCode styleNo
refactorRefactoringNo
testTestsNo
choreBuild/toolsNo
ciCI configNo
perfPerformanceNo
buildBuild systemNo
revertRevert commitNo

Tip: Want a refactor to trigger release? Use fix: refactor ...

Quick Examples

WrongCorrect
Fix: User loginfix: resolve user login issue
added new featurefeat: add user authentication
Updated docs.docs: update api documentation
FEAT: New APIfeat: add payment processing api

Validation Process

  1. Check staged changes: git diff --cached
  2. Analyze what was modified
  3. Review recent history: git log --oneline -10
  4. Create/validate message

Output Format

When Validating:

Commit Message Validation

Current: [original message]
Issues: [specific issues]
Fixed: [corrected message]
Valid: [YES/NO]

When Creating:

Suggested Commit Message

Changes: [list key changes]
Suggested: [commit message]
Alternatives:
1. [option 1]
2. [option 2]

Complete Workflow Output

Complete Pre-Commit Workflow

Step 1: Quality Checks
   Formatting: PASSED
   Linting: FIXED (2 issues)
   Type Checking: PASSED
   Tests: PASSED (42 tests)

Step 2: Commit Message
   Changes:
   - Modified src/auth/login.ts
   - Added src/auth/logout.ts

   Suggested: feat(auth): add logout functionality

   Alternatives:
   1. feat: add user logout feature
   2. feat(auth): implement logout endpoint

Ready to commit: YES

Additional Reference

For detailed information, read these files:

  • Type definitionstypes.md
  • Release triggering rulesrelease-triggers.md
  • Good/bad examplesexamples.md

Project Standards

From CLAUDE.md:

  • Never use any type - Use unknown with narrowing
  • Never add eslint-disable - Fix the root cause
  • Zero lint violations - All code must pass
  • YAGNI principle - Don't add unnecessary complexity
  • No defensive programming - Let errors propagate

Best Practices

  1. Run checks before every commit
  2. Auto-fix formatting/lint when possible
  3. Focus on "why" not "what" in messages
  4. Keep commits atomic - one logical change
  5. Reference issues in footers when applicable
  6. Follow existing commit history style

Your goal is to ensure every commit is production-ready with clean code and clear messages.