From mk
Automatic linting, formatting, type-checking, and static analysis triggered after code changes. For quick quality checks, not full builds or test coverage.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mk:lint-and-validateWhen to use
Use for automatic quality control / linting / static analysis after code modifications. NOT for full build verification (see mk:verify) or test coverage (see mk:testing).
This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **MANDATORY:** Run appropriate validation tools after EVERY code change. Do not finish a task until the code is error-free.
MANDATORY: Run appropriate validation tools after EVERY code change. Do not finish a task until the code is error-free.
For the full pipeline (build → lint → type-check → tests → coverage), use
mk:verify.mk:lint-and-validateis a lint-only subset intended for post-edit quick checks.
See references/linter-commands.md for full command reference per ecosystem (Node.js/TS, Python) and Shared validation scripts.
npm run lint && npx tsc --noEmitlint fails: Fix the style or syntax issues immediately.tsc fails: Correct type mismatches before proceeding..eslintrc, tsconfig.json, pyproject.toml and suggest creating one.Strict Rule: No code should be committed or reported as "done" without passing these checks.
See references/linter-commands.md for full command tables and Shared validation scripts.
eslint.config.mjs) and legacy .eslintrc are mutually exclusive — ESLint 9 auto-detects the flat config format and ignores any .eslintrc.* files in the same directory; if the project has both, the flat config silently wins and all legacy extends rules are dropped without error, making it look like rules pass when they were never loaded.eslint --fix run on unstaged files destroys uncommitted work — --fix writes changes directly to disk without prompting; if run on a file with uncommitted edits, ESLint's changes overwrite the working tree diff; always stage changes with git add -p before running --fix, or use --fix-dry-run to preview.typescript version — @typescript-eslint/parser pins against specific TypeScript minor versions; a TypeScript upgrade (e.g., 5.3 → 5.5) without bumping @typescript-eslint/parser causes Unexpected token parse errors on new syntax even though tsc accepts it fine.extends order determines rule precedence and later entries win — in legacy .eslintrc, extends: ['plugin:vue/recommended', 'prettier'] works (prettier overrides vue formatting), but reversing to ['prettier', 'plugin:vue/recommended'] re-enables vue formatting rules that conflict with prettier, producing unfixable lint errors on every save.eslint --fix applying quotes: 'single' then prettier reformatting to double quotes creates an infinite fix loop in editor save hooks; disable all formatting rules in ESLint (eslint-config-prettier) and let Prettier own formatting exclusively.npx claudepluginhub ngocsangyem/meowkit --plugin mkEnforces linting, type checking, and security audits after every code change. Supports Node.js/TypeScript (ESLint, tsc, npm audit) and Python (Ruff, MyPy, Bandit).
Detects and runs linters, formatters, type checkers from configs before commits/PRs. Supports JS/TS, Python, Go, Rust; auto-fixes on staged files.