MCPInstall

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
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads ln-741-linter-configurator automatically when relevant.

  3. 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

TechnologyLinterType CheckerFormatterConfig Files
TypeScriptESLint 9+ (flat config)TypeScript (tsc)Prettiereslint.config.ts, .prettierrc
.NETRoslyn AnalyzersRoslyndotnet format.editorconfig, Directory.Build.props
PythonRuffmypyRuff (built-in)ruff.toml, mypy.toml (or pyproject.toml)

Phase 1: Check Existing Configuration

Before generating configs, check what already exists.

Files to Check:

StackConfig FilesGlob Pattern
TypeScriptESLint configeslint.config.*, .eslintrc*
TypeScriptPrettier config.prettierrc*, prettier.config.*
.NETEditor config.editorconfig
.NETBuild propsDirectory.Build.props
PythonRuff configruff.toml, pyproject.toml
Pythonmypy configmypy.toml, mypy.ini, pyproject.toml [tool.mypy]

Decision Logic:

  1. If no config exists: CREATE from template
  2. If config exists but incomplete (fewer rules/tools than template): EXTEND to match template
  3. If config matches template: SKIP (inform user)

Completeness Check (Python):

AspectCheckTemplate Standard
Ruff rulesCount select entries23+ categories (see ruff_template.toml)
Ruff per-file-ignoresTests section existstests/**/*.py with S101,S105,S106,T201
Ruff advancedmccabe, flake8-bugbear, isortAll present
MyPystrict = trueEnabled
Advanced toolsimport-linter, deptry, vulture in dev depsAll installed
Lint scriptscripts/lint.sh with 7 checksAll 7 active
.editorconfigFile existsPresent

Phase 2: Generate Configuration

Use templates from references/ folder. Customize placeholders based on project.

TypeScript:

  1. Copy eslint_template.ts to project root as eslint.config.ts
  2. Copy prettier_template.json as .prettierrc
  3. 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"
  4. For React projects: uncomment React sections in template

.NET:

  1. Copy editorconfig_template.ini as .editorconfig
  2. Copy directory_build_props_template.xml as Directory.Build.props
  3. Ensure analyzers are included (SDK 5+ includes them by default)

Python:

  1. Copy ruff_template.toml as ruff.toml
    • OR merge into existing pyproject.toml under [tool.ruff]
  2. Copy mypy_template.toml as mypy.toml
    • OR merge into existing pyproject.toml under [tool.mypy]
  3. Update known-first-party in isort config to match project package name
  4. Update files in mypy config to match project source directories
  5. Generate advanced tool configs in pyproject.toml:
    • [tool.importlinter] from importlinter_template.toml -- adapt root_packages and contracts to project layer structure
    • [tool.vulture] from vulture_template.toml -- adapt paths to project source directory
    • [tool.deptry] from deptry_template.toml -- adapt extend_exclude
  6. Generate .editorconfig from editorconfig_template.ini -- adapt max_line_length to match ruff line-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.ts on 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.

  1. Copy lint_script_template.sh to scripts/lint.sh
  2. Uncomment ALL check lines matching detected stack -- both basic AND advanced tools:
StackChecksTOTAL
Pythonruff check, ruff format, mypy, lint-imports, deptry, vulture, pip-audit7
TypeScripttypecheck, eslint, prettier, knip, depcruise5
.NETdotnet build, dotnet format2
  1. Set TOTAL to match active checks count
  2. Uncomment matching auto-fix commands in --fix block
  3. Make executable: chmod +x scripts/lint.sh
  4. For TypeScript: ensure "lint:all" script exists in package.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.

  1. Run bash scripts/lint.sh --fix to auto-fix what ruff can
  2. Fix remaining errors manually (file by file)
  3. For C901 (complexity) on functions that cannot be refactored now: add # noqa: C901
  4. For deptry false positives: add [tool.deptry.per_rule_ignores] entries
  5. Repeat until bash scripts/lint.sh passes 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 recommendedTypeChecked as ESLint default, not just recommended. 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.sh generated 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.sh runs ALL checks (7 for Python) with exit code 0
  • .editorconfig created with settings matching ruff config
  • User informed of available lint/format commands

Reference Files

FilePurpose
eslint_template.tsESLint flat config template (TypeScript)
prettier_template.jsonPrettier config template
ruff_template.tomlPython Ruff config template
mypy_template.tomlPython mypy config template
lint_script_template.shUnified lint script template
editorconfig_template.ini.NET editorconfig template
directory_build_props_template.xml.NET analyzers template
importlinter_template.tomlPython import-linter config template
vulture_template.tomlPython vulture config template
deptry_template.tomlPython deptry config template
linter_guide.mdDetailed configuration guide

Error Handling

ErrorCauseResolution
ESLint/Prettier conflictMissing eslint-config-prettierInstall and add as last config
ESLint projectService errorConfig file not in tsconfigAdd to allowDefaultProject list
ESLint .ts config failsMissing jitinpm install -D jiti
TypeScript parse errorsParser version mismatchAlign typescript-eslint with TS version
mypy missing stubsThird-party library without typesAdd [[mypy.overrides]] with ignore_missing_imports
mypy strict too strictHundreds of errors on first runStart with relaxed config, enable strict gradually
Ruff not foundNot installedpip install ruff or uv add ruff
dotnet format failsMissing SDKInstall .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

View all →

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.

Docs & Writing479 installs

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.

Backend & APIs432 installs

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.

413 installs

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.

Testing & QA412 installs

ln-634-test-coverage-auditor

levnikolaevich/claude-code-skills

Open the skill to read its SKILL.md instructions.

Testing & QA401 installs

Popular backend & apis skills

View category →

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.

OfficialBackend & APIs4.1M installs

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.

OfficialBackend & APIs566.7K installs

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).

Backend & APIs514.8K installs

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.

Backend & APIs453.3K installs

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).

OfficialBackend & APIs336.6K installs

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.

Backend & APIs237.1K installs