
ln-741-linter-configurator
Configures ESLint, Prettier, Ruff, mypy, and .NET analyzers. Use when setting up linting and formatting for a project.
- Installs
- 381
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-741-linter-configurator- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads ln-741-linter-configurator automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Paths: File paths (
references/,../ln-*) are relative to this skill directory.
ln-741-linter-configurator
Type: L3 Worker Category: 7XX Project Bootstrap
Configures code linting, formatting, and type checking tools for TypeScript, Python, and .NET projects.
Purpose & Scope
Does:
- Detects which linter stack to configure based on project type
- Checks for existing linter configurations
- Generates appropriate config files from templates
- Installs required dependencies (always latest versions, no pinning)
- Generates unified lint script (
scripts/lint.sh) - Verifies all linters run without errors
Does NOT:
- Configure pre-commit hooks (separate worker)
- Set up test infrastructure (separate worker)
- Modify source code
Supported Stacks
| Technology | Linter | Type Checker | Formatter | Config Files |
|---|---|---|---|---|
| TypeScript | ESLint 9+ (flat config) | TypeScript (tsc) | Prettier | eslint.config.ts, .prettierrc |
| .NET | Roslyn Analyzers | Roslyn | dotnet format | .editorconfig, Directory.Build.props |
| Python | Ruff | mypy | Ruff (built-in) | ruff.toml, mypy.toml (or pyproject.toml) |
Phase 1: Check Existing Configuration
Before generating configs, check what already exists.
Files to Check:
| Stack | Config Files | Glob Pattern |
|---|---|---|
| TypeScript | ESLint config | eslint.config.*, .eslintrc* |
| TypeScript | Prettier config | .prettierrc*, prettier.config.* |
| .NET | Editor config | .editorconfig |
| .NET | Build props | Directory.Build.props |
| Python | Ruff config | ruff.toml, pyproject.toml |
| Python | mypy config | mypy.toml, mypy.ini, pyproject.toml [tool.mypy] |
Decision Logic:
- If no config exists: CREATE from template
- If config exists but incomplete (fewer rules/tools than template): EXTEND to match template
- If config matches template: SKIP (inform user)
Completeness Check (Python):
| Aspect | Check | Template Standard |
|---|---|---|
| Ruff rules | Count select entries | 23+ categories (see ruff_template.toml) |
| Ruff per-file-ignores | Tests section exists | tests/**/*.py with S101,S105,S106,T201 |
| Ruff advanced | mccabe, flake8-bugbear, isort | All present |
| MyPy | strict = true | Enabled |
| Advanced tools | import-linter, deptry, vulture in dev deps | All installed |
| Lint script | scripts/lint.sh with 7 checks | All 7 active |
| .editorconfig | File exists | Present |
Phase 2: Generate Configuration
Use templates from references/ folder. Customize placeholders based on project.
TypeScript:
- Copy
eslint_template.tsto project root aseslint.config.ts - Copy
prettier_template.jsonas.prettierrc - Add scripts to
package.json:"lint": "eslint .""lint:fix": "eslint . --fix""format": "prettier --write .""format:check": "prettier --check .""typecheck": "tsc --noEmit""lint:all": "npm run typecheck && npm run lint && npm run format:check"
- For React projects: uncomment React sections in template
.NET:
- Copy
editorconfig_template.inias.editorconfig - Copy
directory_build_props_template.xmlasDirectory.Build.props - Ensure analyzers are included (SDK 5+ includes them by default)
Python:
- Copy
ruff_template.tomlasruff.toml- OR merge into existing
pyproject.tomlunder[tool.ruff]
- OR merge into existing
- Copy
mypy_template.tomlasmypy.toml- OR merge into existing
pyproject.tomlunder[tool.mypy]
- OR merge into existing
- Update
known-first-partyin isort config to match project package name - Update
filesin mypy config to match project source directories - Generate advanced tool configs in
pyproject.toml:[tool.importlinter]fromimportlinter_template.toml-- adaptroot_packagesand contracts to project layer structure[tool.vulture]fromvulture_template.toml-- adaptpathsto project source directory[tool.deptry]fromdeptry_template.toml-- adaptextend_exclude
- Generate
.editorconfigfromeditorconfig_template.ini-- adaptmax_line_lengthto match ruffline-length
Phase 3: Install Dependencies
Install required packages. Always install latest versions — no version pinning.
TypeScript:
npm install -D eslint @eslint/js typescript-eslint eslint-config-prettier prettier eslint-plugin-unicorn jiti
For React projects, also install:
npm install -D eslint-plugin-react eslint-plugin-react-hooks
Note on jiti: Required for
eslint.config.tson Node.js < 22.10. On Node.js 22.10+ TypeScript configs are supported natively.
.NET:
- Analyzers included in SDK 5+ — no separate install needed
Python:
uv add --dev ruff mypy import-linter deptry vulture pip-audit
# OR without uv:
pip install ruff mypy import-linter deptry vulture pip-audit
Phase 4: Generate Lint Script
Generate scripts/lint.sh from lint_script_template.sh with ALL checks for the detected stack.
- Copy
lint_script_template.shtoscripts/lint.sh - Uncomment ALL check lines matching detected stack -- both basic AND advanced tools:
| Stack | Checks | TOTAL |
|---|---|---|
| Python | ruff check, ruff format, mypy, lint-imports, deptry, vulture, pip-audit | 7 |
| TypeScript | typecheck, eslint, prettier, knip, depcruise | 5 |
| .NET | dotnet build, dotnet format | 2 |
- Set
TOTALto match active checks count - Uncomment matching auto-fix commands in
--fixblock - Make executable:
chmod +x scripts/lint.sh - For TypeScript: ensure
"lint:all"script exists inpackage.json
Phase 5: Verify Setup
After configuration, verify everything works.
TypeScript:
npx tsc --noEmit
npx eslint .
npx prettier --check .
.NET:
dotnet format --verify-no-changes
Python:
ruff check .
ruff format --check .
mypy
Unified verification:
bash scripts/lint.sh
Expected: Exit code 0 for all checks.
On Failure: Check error output, adjust config, re-verify.
Phase 6: Fix Lint Errors
After generating all configs and installing tools, run bash scripts/lint.sh --all to see all violations.
- Run
bash scripts/lint.sh --fixto auto-fix what ruff can - Fix remaining errors manually (file by file)
- For C901 (complexity) on functions that cannot be refactored now: add
# noqa: C901 - For deptry false positives: add
[tool.deptry.per_rule_ignores]entries - Repeat until
bash scripts/lint.shpasses with 0 failures
Critical Rules
RULE 1: Always include
eslint-config-prettier(last in config) when using ESLint + Prettier together.
RULE 2: Use ESLint flat config format (
eslint.config.ts), NOT legacy.eslintrc.
RULE 3: Ruff replaces Black, isort, flake8, and many other Python tools. Do NOT install them separately.
RULE 4: Never disable strict TypeScript rules without documented reason.
RULE 5: Always run mypy alongside Ruff for Python projects. Ruff handles style/bugs, mypy handles type safety.
RULE 6: Use
recommendedTypeCheckedas ESLint default, not justrecommended. Downgrade individual rules if needed.
RULE 7: Never pin dependency versions in install commands -- always install latest.
RULE 8: Advanced static analysis tools (import-linter, deptry, vulture, pip-audit) are MANDATORY for Python projects, not optional.
Monitor (2.1.98+): When lint/typecheck verification commands expected >30s, use Monitor. Fallback: Bash(run_in_background=true).
Definition of Done
- Appropriate config files created for detected stack
- Dependencies installed (latest versions)
-
scripts/lint.shgenerated with correct checks for stack - Lint command runs without errors on project source
- Format command runs without errors
- Type checker runs without errors (mypy for Python, tsc for TypeScript)
- No ESLint/Prettier conflicts (eslint-config-prettier installed)
- Advanced tools installed and configured (import-linter, deptry, vulture, pip-audit)
-
scripts/lint.shruns ALL checks (7 for Python) with exit code 0 -
.editorconfigcreated with settings matching ruff config - User informed of available lint/format commands
Reference Files
| File | Purpose |
|---|---|
| eslint_template.ts | ESLint flat config template (TypeScript) |
| prettier_template.json | Prettier config template |
| ruff_template.toml | Python Ruff config template |
| mypy_template.toml | Python mypy config template |
| lint_script_template.sh | Unified lint script template |
| editorconfig_template.ini | .NET editorconfig template |
| directory_build_props_template.xml | .NET analyzers template |
| importlinter_template.toml | Python import-linter config template |
| vulture_template.toml | Python vulture config template |
| deptry_template.toml | Python deptry config template |
| linter_guide.md | Detailed configuration guide |
Error Handling
| Error | Cause | Resolution |
|---|---|---|
| ESLint/Prettier conflict | Missing eslint-config-prettier | Install and add as last config |
| ESLint projectService error | Config file not in tsconfig | Add to allowDefaultProject list |
ESLint .ts config fails | Missing jiti | npm install -D jiti |
| TypeScript parse errors | Parser version mismatch | Align typescript-eslint with TS version |
| mypy missing stubs | Third-party library without types | Add [[mypy.overrides]] with ignore_missing_imports |
| mypy strict too strict | Hundreds of errors on first run | Start with relaxed config, enable strict gradually |
| Ruff not found | Not installed | pip install ruff or uv add ruff |
| dotnet format fails | Missing SDK | Install .NET SDK |
Version: 4.0.0 Last Updated: 2026-03-18
FAQ
What does the ln-741-linter-configurator skill do?
Configures ESLint, Prettier, Ruff, mypy, and .NET analyzers. Use when setting up linting and formatting for a project.
How do I install ln-741-linter-configurator?
Run npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-741-linter-configurator in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/ln-741-linter-configurator/ (personal) or .claude/skills/ln-741-linter-configurator/ (project).
Which AI agents can use ln-741-linter-configurator?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is ln-741-linter-configurator safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains ln-741-linter-configurator?
It is published by levnikolaevich in levnikolaevich/claude-code-skills. It has 381 recorded installs.
More from levnikolaevich/claude-code-skills
ln-100-documents-pipeline
levnikolaevich/claude-code-skills
Creates complete project documentation system (project docs, reference, tasks, tests). Use when bootstrapping docs from scratch or regenerating all.
ln-620-codebase-auditor
levnikolaevich/claude-code-skills
Open the skill to read its SKILL.md instructions.
ln-775-api-docs-generator
levnikolaevich/claude-code-skills
Configures Swagger/OpenAPI documentation for backend APIs. Use when adding interactive API docs to a project.
ln-624-code-quality-auditor
levnikolaevich/claude-code-skills
Checks cyclomatic complexity, nesting, long methods, god classes, O(n2), N+1 queries, constants management. Use when auditing code quality.
ln-782-test-runner
levnikolaevich/claude-code-skills
Executes all test suites and reports results with coverage. Use when verifying that test infrastructure works after bootstrap.
ln-634-test-coverage-auditor
levnikolaevich/claude-code-skills
Open the skill to read its SKILL.md instructions.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.