Mk lint and validate
Production ready. AI Agent Workflow System for Claude Code
npx -y skills add ngocsangyem/MeowKit --skill mk-lint-and-validateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Linting and static analysis after code edits. Triggers on lint, format, check, validate, types. NOT for full build verification (mk:verify) or test coverage (mk:testing).
SKILL.md
3.2 KB, 717 tokens by cl100k_base, as published. Nobody here has run it
Lint and Validate Skill
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.
Procedures by Ecosystem
See references/linter-commands.md for full command reference per ecosystem (Node.js/TS, Python) and Shared validation scripts.
The Quality Loop
- Write/Edit Code
- Run Audit:
npm run lint && npx tsc --noEmit - Analyze Report: Check the "FINAL AUDIT REPORT" section.
- Fix & Repeat: Submitting code with "FINAL AUDIT" failures is NOT allowed.
Error Handling
- If
lintfails: Fix the style or syntax issues immediately. - If
tscfails: Correct type mismatches before proceeding. - If no tool is configured: Check the project root for
.eslintrc,tsconfig.json,pyproject.tomland suggest creating one.
Strict Rule: No code should be committed or reported as "done" without passing these checks.
Scripts
See references/linter-commands.md for full command tables and Shared validation scripts.
Gotchas
- ESLint flat config (
eslint.config.mjs) and legacy.eslintrcare 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 legacyextendsrules are dropped without error, making it look like rules pass when they were never loaded. eslint --fixrun on unstaged files destroys uncommitted work —--fixwrites 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 withgit add -pbefore running--fix, or use--fix-dry-runto preview.- TypeScript ESLint parser version must match the installed
typescriptversion —@typescript-eslint/parserpins against specific TypeScript minor versions; a TypeScript upgrade (e.g., 5.3 → 5.5) without bumping@typescript-eslint/parsercausesUnexpected tokenparse errors on new syntax even thoughtscaccepts it fine. extendsorder 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.- Prettier and ESLint format rules conflict when both run on the same file —
eslint --fixapplyingquotes: 'single'thenprettierreformatting 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.