lint-and-validate — Claude Code skill: what it does, how to install
Runs configured linters and type checkers after code changes, telling actual failures apart from tools that never ran.
npx skills add sickn33/agentic-awesome-skills --skill lint-and-validate -a claude-codeWhat lint-and-validate does
The skill instructs the agent to inspect repository scripts before calling them. For Node projects, it prioritizes declared scripts like npm run lint and npm run typecheck, forbidding silent package downloads via npx. In Python repos, it runs existing tools like ruff check . or mypy .. Passing --fix without inspecting proposed diffs and getting task approval is strictly banned.
Two Python helper scripts ship with the skill. scripts/lint_runner.py executes a conservative set of project checks from local binaries or installed Python environments. scripts/type_coverage.py audits type annotations across at most 30 files per language, scanning Python AST nodes and searching for lexical : any occurrences in TypeScript.
Reviewing scripts inside package.json matters because a script named lint can alter files or execute untrusted code. The skill does not install project dependencies or replace a continuous integration pipeline. If a linter is missing from the system, the agent must report it as unrun rather than marking the validation as passed.
What it helps with
- execute project linters and type checkers after editing code
- separate genuine tool failures from missing environment binaries
- prevent unauthorized file modifications caused by
--fixflags - inspect type annotations and
: anyusage across source files
Example prompts for the agent
- Run lint-and-validate on the modified files and list any skipped checks
- Execute the repository type checks before finishing this task
- Check annotation statistics using python scripts/type_coverage.py .
How to install lint-and-validate
1Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill lint-and-validate -a claude-code2Manually: put the files in place
~/.claude/skills/lint-and-validate/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/lint-and-validate/
1Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill lint-and-validate -a codex2Manually: put the files in place
.agents/skills/lint-and-validate/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill lint-and-validate -a cursor2Manually: put the files in place
.cursor/skills/lint-and-validate/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install sickn33/agentic-awesome-skills lint-and-validate2Manually: put the files in place
.github/skills/lint-and-validate/SKILL.md1Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill lint-and-validate -a gemini-cli2Platform CLI
gemini skills install https://github.com/sickn33/agentic-awesome-skills --path skills/lint-and-validateManually: put the files in place
.devin/skills/lint-and-validate/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill lint-and-validate -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set80
The whole set →Similar
Questions about lint-and-validate
How to install lint-and-validate in Claude Code?
Run npx skills add sickn33/agentic-awesome-skills --skill lint-and-validate -a claude-code in your terminal.
What does the lint-and-validate skill do?
It directs coding agents to run configured validation commands without loosening rules, skipping missing tools, or modifying code blindly.
Why does the skill forbid running npx for missing linters?
It stops the agent from silently fetching remote packages from npm, requiring it instead to report that local project dependencies are missing.
Source text
SKILL.md · MIT
--- name: lint-and-validate description: "Run configured lint and type checks, distinguish failures from checks that did not run, and report concrete validation results." risk: critical source: community date_added: "2026-02-27" --- # Lint and Validate ## When to Use Use after behavior or configuration changes when a repository has relevant lint or type checks. Read the repository's instructions and package scripts first. Run focused checks during development and the required checks before completion. ## Procedure 1. Identify the changed languages, configured commands, and installed tools. Inspect package scripts before executing them: a script named `lint` can modify files or run arbitrary project code. 2. Run the project's read-only lint/type-check commands. For Node projects, prefer declared scripts such as `npm run lint` and `npm run typecheck`. Do not use `npx` to silently fetch an absent checker. 3. For Python, use configured, already installed tools such as `ruff check .` or `mypy .`. Do not assume every `pyproject.toml` configures both. Never add `--fix` without inspecting the proposed changes and the task's authorization. 4. Fix relevant failures without deleting user work, weakening rules, or raising timeouts just to pass. If a required tool is unavailable, report the exact check that did not run. 5. Report commands, exit results, scope and remaining limitations. Passing lint does not prove the absence of runtime or security defects. ## Example After correcting a TypeScript behavior, inspect `package.json`, run the configured focused regression test, then `npm run lint` and `npm run typecheck` if those scripts exist. If TypeScript is declared but not installed, report the missing local checker; do not substitute a downloaded package or call the result a pass. ## Bundled helpers - `python scripts/lint_runner.py /absolute/project`: runs a conservative set of candidate checks. Node fallback checkers must exist in local `node_modules/.bin`; Python candidates must be installed. Inspect the project scripts first. A missing command or failing check exits 1; no configured checks or invalid project metadata exits 2. Exit 0 means the invoked checks passed, not that every needed check was discovered. Python detection is heuristic and may suggest unconfigured Ruff/MyPy commands. - `python scripts/type_coverage.py /absolute/project`: read-only annotation inventory, despite its retained compatibility filename. Samples at most 30 files per language, skips links and build/dependency directories, and bounds file reads. Python uses AST nodes to avoid double-counting functions. TypeScript reports lexical `: any` occurrences, including possible comments and strings. No quality percentage or pass/fail threshold is inferred. Exit 2 means no applicable files; parse/read errors exit 1. ## Limitations The runner executes trusted project commands, which may mutate files or access the network. It does not install dependencies, detect every monorepo configuration, or replace the project's CI contract. The inventory is a bounded source sample, not semantic type coverage; inferred types, generics, decorator behavior and correctness require the actual type checker. Do not label unrun checks as successful.
© sickn33 · MIT · sickn33/agentic-awesome-skills