|
download
raw
3.6 kB
metadata
name: run-pre-commit-checks
description: >-
  Run the mandatory pre-commit checks before committing code. Includes lint,
  type checking, and unit tests. MUST be run before every commit.
argument-hint: '--fix to auto-fix lint issues'

Run Pre-Commit Checks

This skill defines the mandatory checks that must pass before any commit.

When to Use

  • ALWAYS before committing code changes
  • After fixing reviewer or Copilot review comments
  • Before pushing changes
  • When the maintainer agent requests pre-commit validation

Required Checks

All three checks must pass before committing:

1. Lint Check (Required)

npm run lint

What it checks:

  • ESLint rules defined in eslint.config.mjs
  • TypeScript-specific linting rules
  • Import ordering and unused imports
  • Code style consistency

To auto-fix issues:

npm run lint -- --fix

2. Type Check (Required)

npm run compile-tests

What it checks:

  • TypeScript type errors
  • Missing imports
  • Type mismatches
  • Strict null checks

Output location: out/ directory (not used for production)

3. Unit Tests (Required)

npm run unittest

What it checks:

  • All unit tests in src/test/ pass
  • Tests run with Mocha framework
  • Uses configuration from build/.mocha.unittests.json

Full Pre-Commit Workflow

# Run all checks in sequence
npm run lint
npm run compile-tests
npm run unittest

# If all pass, commit
git add -A
git commit -m "feat: your change description (Fixes #N)"

Common Failures and Fixes

ESLint Errors

Error Fix
@typescript-eslint/no-unused-vars Remove unused variable or prefix with _
import/order Run npm run lint -- --fix
@typescript-eslint/no-explicit-any Add proper type annotation
no-console Use traceLog/traceVerbose instead of console.log

Type Errors

Error Fix
TS2339: Property does not exist Check property name or add type guard
TS2345: Argument type not assignable Check function parameter types
TS2322: Type not assignable Add type assertion or fix type mismatch
TS18048: possibly undefined Add null check or use optional chaining

Test Failures

  1. Read the test failure message carefully
  2. Check if you changed behavior that tests depend on
  3. Update tests if behavior change is intentional
  4. Fix code if behavior change is unintentional

Integration with Review Process

The maintainer agent workflow requires:

Code Change → Reviewer Agent → Pre-Commit Checks → Commit
                    ↓
              Fix Issues → Re-run Reviewer → Pre-Commit Checks

Never skip pre-commit checks. They catch:

  • Type errors that would break the extension
  • Style inconsistencies
  • Regressions in existing functionality

Automation Note

These checks should also be run:

  • By CI on every PR (automated)
  • After addressing review comments (manual trigger)
  • Before merging (automated by CI)

The hooks system can automate running lint after file edits (see .github/hooks/).

Xet Storage Details

Size:
3.6 kB
·
Xet hash:
ea686ba9a05c9639df4ef388eac9e34c306f584084009f1d9e90ab3a192d2eb9

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.