From ajbm-dev
Auto-detects project type (JS/Python/Rust/Go/Deno/Biome), installs linter, creates config with sensible defaults, and wires a Stop hook in .claude/settings.json for automatic linting on every response.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ajbm-dev:setup-linterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Auto-detect, install, and configure project-specific linting with a Stop hook.
Auto-detect, install, and configure project-specific linting with a Stop hook.
Just run without arguments - it auto-detects everything:
~/.claude/skills/setup-linter/scripts/setup.sh
Or specify a custom command:
~/.claude/skills/setup-linter/scripts/setup.sh "yarn lint:fix"
.claude/settings.jsonCLAUDE.md| Project | Detection | Linter | Config Created |
|---|---|---|---|
| JavaScript/React | package.json | ESLint | eslint.config.js |
| Python | pyproject.toml, *.py | Ruff | ruff.toml |
| Rust | Cargo.toml | rustfmt + clippy | (built-in) |
| Go | go.mod | golangci-lint | (optional) |
| Deno | deno.json | deno lint/fmt | (built-in) |
| Biome | biome.json | Biome | (existing) |
eslint.config.js)lint and lint:fix scripts to package.jsonruff.toml with sensible defaults if missingThe Stop hook runs <linter> > /dev/null 2>&1 || true to:
# Auto-detect and setup everything
~/.claude/skills/setup-linter/scripts/setup.sh
# Custom Python command
~/.claude/skills/setup-linter/scripts/setup.sh "ruff check --fix . && ruff format ."
# Custom JS command with specific paths
~/.claude/skills/setup-linter/scripts/setup.sh "yarn lint:fix src/ server/"
Restart Claude Code for the Stop hook to take effect.
npx claudepluginhub ajbmachon/ajbm-skills --plugin ajbm-devProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.