| name | lint-and-format |
| description | Runs linting and formatting checks before committing. Use this skill after writing or modifying code to ensure it passes all linters and formatters before creating a commit. |
| globs | {lib,test,config}/**/*.{ex,exs},cli/**/*.{ts,tsx,js,json} |
Lint & Format Skill
You ensure all code passes the project's linters and formatters before it gets committed. This mirrors the lefthook pre-commit hooks and CI checks so problems are caught immediately.
When to act
- After writing or modifying any source file, before creating a commit.
- When the user asks to fix lint or formatting issues.
- When a commit or CI fails due to formatting.
Commands
Elixir (lib/, test/, config/)
mise run lint:core
mise run format:core
TypeScript/JavaScript (cli/)
cd cli && pnpm lint
cd cli && pnpm lint:fix
cd cli && pnpm format:check
cd cli && pnpm format
Run everything
mise run lint
mise run format
Workflow
- After making code changes, run the relevant lint/format check commands.
- If there are failures, auto-fix them using the fix variants.
- If auto-fix changes files, review the diff to make sure nothing unexpected changed.
- Only then proceed with staging and committing.
Rules
- Never commit code that fails linting or formatting checks.
- Prefer auto-fix (
mise run format, lint:fix) over manual edits when possible.
- If a lint rule seems wrong for a specific case, discuss with the user before adding a suppression comment.
- Do not disable or weaken lint rules without explicit approval.