.github/skills/run-pre-commit-checks/SKILL.md
Run the mandatory pre-commit checks before committing code. Includes lint, type checking, and unit tests. MUST be run before every commit.
npx skillsauth add microsoft/vscode-python-environments run-pre-commit-checksInstall 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.
This skill defines the mandatory checks that must pass before any commit.
All three checks must pass before committing:
npm run lint
What it checks:
eslint.config.mjsTo auto-fix issues:
npm run lint -- --fix
npm run compile-tests
What it checks:
Output location: out/ directory (not used for production)
npm run unittest
What it checks:
src/test/ passbuild/.mocha.unittests.json# 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)"
| 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 |
| 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 |
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:
These checks should also be run:
The hooks system can automate running lint after file edits (see .github/hooks/).
development
VS Code settings precedence rules and common pitfalls. Essential for any code that reads or writes settings. Covers getConfiguration scope, inspect() vs get(), and multi-workspace handling.
tools
Run smoke tests to verify extension functionality in a real VS Code environment. Use this when checking if basic features work after changes.
tools
Run integration tests to verify that extension components work together correctly. Use this after modifying component interactions or event handling.
testing
Run E2E tests to verify complete user workflows like environment discovery, creation, and selection. Use this before releases or after major changes.