skills-catalog/ln-740-quality-setup/SKILL.md
Sets up linters, pre-commit hooks, and test infrastructure. Use when adding code quality tooling to a project.
npx skillsauth add levnikolaevich/claude-code-skills ln-740-quality-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Paths: File paths (
shared/,references/,../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. Ifshared/is missing, fetch files via WebFetch fromhttps://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}.
Type: L2 Domain Coordinator Category: 7XX Project Bootstrap Parent: ln-700-project-bootstrap
Coordinates code quality tooling configuration for the project.
Does:
Does NOT:
| Trigger | Action | |---------|--------| | After ln-720-structure-migrator completes | Automatic delegation from ln-700 | | Manual quality setup needed | Invoke directly with project path | | Existing project needs quality tools | Run with existing config detection |
| Phase | Action | Output | |-------|--------|--------| | 1 | Stack Detection | Identified technologies | | 2 | Existing Config Check | Skip/merge/replace decisions | | 3 | Parallel Delegation | Worker invocations | | 4 | Verification | Working quality pipeline |
Detect project technologies to determine which quality tools to configure.
Detection Rules:
| File Pattern | Technology | Linter Stack |
|--------------|------------|--------------|
| package.json + tsconfig.json | TypeScript/React | ESLint + Prettier |
| *.csproj or *.sln | .NET | editorconfig + Roslyn |
| pyproject.toml or requirements.txt | Python | Ruff |
| Multiple detected | Mixed | Configure all detected |
Actions:
Before delegating, check what configurations already exist.
Config Files to Check:
| Technology | Config Files |
|------------|--------------|
| TypeScript | eslint.config.*, .prettierrc*, tsconfig.json |
| .NET | .editorconfig, Directory.Build.props |
| Python | ruff.toml, pyproject.toml [tool.ruff] |
| Pre-commit | .husky/, .pre-commit-config.yaml |
| Tests | vitest.config.*, pytest.ini, *.Tests.csproj |
Decision Matrix:
| Existing Config | Action | Confirmation | |-----------------|--------|--------------| | None found | Create from template | No | | Exists but incomplete | Extend to match template | No | | Exists and matches template | Skip | Inform user |
Completeness Check (Python): evaluate against ln-741's Completeness Check table (7 aspects: Ruff rules, per-file-ignores, advanced settings, MyPy strict, advanced tools, lint script, editorconfig). If ANY aspect is incomplete, delegate to ln-741 with instruction to EXTEND (not replace).
Invoke workers for each quality aspect. Workers can run in parallel as they configure independent tools.
Delegation Order:
ln-740 (this)
|
+---> ln-741-linter-configurator
| - ESLint/Prettier (TypeScript)
| - editorconfig/Roslyn (.NET)
| - Ruff (Python)
|
+---> ln-742-precommit-setup
| - Husky + lint-staged (Node.js)
| - pre-commit framework (Python)
| - commitlint
|
+---> ln-743-test-infrastructure
- Vitest (TypeScript)
- xUnit (.NET)
- pytest (Python)
Pass detected stack and existing configs to workers via direct Skill tool invocation. For Python: instruct ln-741 to apply full quality stack per its Completeness Check table.
Invocations:
Skill(skill: "ln-741-linter-configurator", args: "{projectPath}")
Skill(skill: "ln-742-precommit-setup", args: "{projectPath}")
Skill(skill: "ln-743-test-infrastructure", args: "{projectPath}")
After all workers complete, verify the quality pipeline works.
Verification Steps:
| Check | TypeScript | Python | .NET |
|-------|-----------|--------|------|
| Lint | ESLint | ruff check | dotnet format --verify-no-changes |
| Format | Prettier | ruff format --check | dotnet format |
| Type check | tsc --noEmit | mypy | Roslyn (build) |
| Import boundaries | depcruise | lint-imports | -- |
| Unused deps | knip | deptry | -- |
| Dead code | knip | vulture | -- |
| Vulnerability scan | npm audit | pip-audit | -- |
| Unified script | bash scripts/lint.sh | bash scripts/lint.sh | bash scripts/lint.sh |
| Tests | npm test | pytest | dotnet test |
| Hooks | Create test commit | Create test commit | Create test commit |
On Failure:
RULE 1: Never overwrite existing user configurations without explicit confirmation.
RULE 2: Workers run AFTER stack detection - do not invoke workers without knowing the stack.
RULE 3: Verification phase is MANDATORY - quality setup is not complete until tools run successfully.
RULE 4: eslint-config-prettier is REQUIRED when both ESLint and Prettier are configured.
TodoWrite format (mandatory):
- Invoke ln-741-linter-configurator (pending)
- Invoke ln-742-precommit-setup (pending)
- Invoke ln-743-test-infrastructure (pending)
- Verify quality pipeline (pending)
| Phase | Worker | Context | |-------|--------|---------| | 3a | ln-741-linter-configurator | Shared (Skill tool) — ESLint/Prettier, editorconfig, Ruff | | 3b | ln-742-precommit-setup | Shared (Skill tool) — Husky, lint-staged, commitlint | | 3c | ln-743-test-infrastructure | Shared (Skill tool) — Vitest, xUnit, pytest |
All workers: Invoke via Skill tool — workers see coordinator context.
MANDATORY READ: Load shared/references/meta_analysis_protocol.md
Skill type: execution-orchestrator. Analyze this session per protocol §7. Output per protocol format.
| File | Purpose | |------|---------| | stack_detection.md | Detailed detection rules | | verification_checklist.md | Full verification checklist |
| Error | Cause | Resolution |
|-------|-------|------------|
| No stack detected | Empty project | Ask user for intended stack |
| Worker failed | Missing dependencies | Install prerequisites, retry |
| Verification failed | Config error | Check specific tool output, fix |
| Hooks not working | Git not initialized | Run git init first |
Version: 3.0.0 Last Updated: 2026-03-18
testing
Checks runtime lifecycle and config validation: bootstrap, shutdown, probes, cleanup, env sync, and fail-fast startup. Use for runtime readiness.
testing
Checks races, deadlocks, async hazards, TOCTOU, blocking I/O, and shared resource contention. Use when auditing concurrency correctness.
testing
Checks diagnosability through structured logs, metrics, traces, correlation IDs, and useful log levels. Use when auditing incident visibility.
development
Finds code that can be safely deleted: unreachable, unused, obsolete compatibility, and commented-out code. Use when pruning dead code.