Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ngocsangyem/MeowKit --skill lint-and-validategit clone --depth 1 https://github.com/ngocsangyem/MeowKitWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ngocsangyem/meowkit/lint-and-validate)<a href="https://agentmods.dev/skills/ngocsangyem/meowkit/lint-and-validate"><img src="https://agentmods.dev/badge/skills/ngocsangyem/meowkit/lint-and-validate/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ngocsangyem/meowkit/lint-and-validate"><img src="https://agentmods.dev/badge/skills/ngocsangyem/meowkit/lint-and-validate.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00059 | $0.00918 |
| Opus 5 | $0.00030 | $0.00459 |
| Sonnet 5 | $0.00012 | $0.00184 |
| Haiku 4.5 | $0.00006 | $0.00092 |
Grade A, and why
mk:lint-and-validate scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 64 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 64 lines · 59 tokens per session scan A fea9861f7391
mk:lint-and-validate is a skill published in the GitHub repository ngocsangyem/MeowKit (14 stars, last pushed 1mo ago), licensed MIT. It adds 59 tokens to every session and 918 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
verify
Verify Elixir/Phoenix changes — compile, format, and test in one loop. Use after implementation, before PRs, or after fixing bugs.
cige-product-defect-escalation
Invoked by cige-failure-classification when a run is classified as a Product Defect: execution reached the system under test, the environment is healthy, execution steps are current — but the outcome does not match Intent.
cige-stale-execution-repair
Invoked by cige-failure-classification in two situations: Outdated Test Logic (Mode A — repair Execution[]) and a confirmed False Positive (Mode B — strengthen Guardrails). These are different repairs with different targets; do not conflate them.
ios-simulator
Verify and debug native, React Native, Expo, or Flutter apps on an iOS Simulator with agent-device. Use when an agent needs to launch an app, inspect its live UI, tap, type, scroll, validate a code change, collect failure evidence, or reproduce a workflow on an iPhone or iPad Simulator.
trace
Use when encountering bugs, test failures, runtime errors, broken builds, or "this doesn't work" reports. Systematic root-cause analysis before any patch — never blind-patches symptoms. Standalone, ends with a final-integration review of the fix. Trigger with /hyperflow:trace, "debug this", "find the root cause", "why…
audit
Project health audit and health check — architecture, performance, tests, dependencies, code quality. Use when assessing overall project health, before releases, or after refactors.