Back to list
vm0-ai

commit

by vm0-ai

the easiest way to run natural language-described workflows automatically

191🍴 7📅 Jan 23, 2026

SKILL.md


name: commit description: Complete pre-commit workflow - run quality checks (format, lint, type, test) and validate/create conventional commit messages allowed-tools: Bash, Read, Glob, Edit 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

  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 ...

Special: Documentation App

For turbo/apps/docs changes, use feat(docs): or fix(docs): to trigger release:

  • feat(docs): add integration guide (triggers release)
  • docs: add integration guide (no release)

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.

Score

Total Score

70/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

+5
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon