Development: Pre-commit hooks and linting for code quality. Validates shell scripts, YAML, markdown, TOML, and justfiles. Run from repository root with 'just lint'. Use when developers need to validate code before committing or set up pre-commit hooks.
/plugin marketplace add atrawog/bazzite-ai-plugins/plugin install atrawog-bazzite-ai-dev-bazzite-ai-dev@atrawog/bazzite-ai-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
The lint development commands manage pre-commit hooks and run linters for code quality validation. It validates shell scripts, YAML, markdown, TOML, and justfile syntax.
Key Concept: This is a development command - run with just from the repository root, not ujust. Pre-commit hooks run automatically on git commit after installation.
| Action | Command | Description |
|---|---|---|
| Run all linters | just lint | Validate all files |
| Install hooks | just lint-install | Set up pre-commit hooks |
| Staged files only | just lint-staged | Validate staged files |
| Auto-fix | just lint-fix | Fix linting issues |
| Update hooks | just lint-update | Update hook versions |
| Verify setup | just verify-hooks | Check hook installation |
| Linter | Files | Description |
|---|---|---|
| ShellCheck | *.sh, *.bash | Shell script validation |
| yamllint | *.yml, *.yaml | YAML syntax |
| markdownlint | *.md | Markdown formatting |
| taplo | *.toml | TOML syntax |
| just --fmt | *.just, Justfile | Justfile syntax |
Run all linters on all files:
just lint
Set up pre-commit hooks (one-time setup):
just lint-install
Installs hooks:
pre-commit - Runs before each commitcommit-msg - Validates commit message formatpre-push - Runs before pushpost-checkout - Refreshes environmentParameters:
just lint-install SKIP_PROMPTS="yes" # Non-interactive mode
Run linters on staged files only (faster):
just lint-staged
Auto-fix linting issues where possible:
just lint-fix
Update pre-commit hook versions:
just lint-update
Verify hook installation and run validation test:
just verify-hooks
# 1. Install linters (if missing)
ujust install linters
# 2. Install pre-commit hooks
just lint-install
# 3. Verify installation
just verify-hooks
# 1. Stage changes
git add .
# 2. Run linters on staged files
just lint-staged
# 3. Fix any issues
just lint-fix
# 4. Commit (hooks run automatically)
git commit -m "Your message"
# Run full validation (same as CI)
just lint
# Non-interactive mode for scripts
just lint-install SKIP_PROMPTS="yes"
Hooks are configured in .pre-commit-config.yaml:
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
# Basic checks
- repo: https://github.com/shellcheck-py/shellcheck-py
# Shell script validation
- repo: https://github.com/adrienverge/yamllint
# YAML validation
- repo: https://github.com/igorshubovych/markdownlint-cli
# Markdown validation
- repo: https://github.com/tamasfe/taplo
# TOML validation
| Hook | When | Purpose |
|---|---|---|
pre-commit | Before commit | Validate code |
commit-msg | After message | Validate commit message |
pre-push | Before push | Final validation |
post-checkout | After checkout | Refresh environment |
Symptom: pre-commit: command not found
Fix:
# Install via pixi
ujust install pixi
# Or via pip
pip install pre-commit
Symptom: markdownlint: command not found or taplo: command not found
Fix:
# Install linters
ujust install linters
# This installs markdownlint-cli via npm and taplo via cargo
Symptom: Commits don't run validation
Fix:
# Reinstall hooks
just lint-install
# Verify
just verify-hooks
Symptom: Commit rejected with linting errors
Fix:
# View specific errors
just lint
# Auto-fix if possible
just lint-fix
# Manually fix remaining issues
# Then commit again
Symptom: Linter complains about valid code
Fix:
# Add inline ignore comment
# shellcheck disable=SC2086
# yamllint disable-line rule:line-length
<!-- markdownlint-disable MD013 -->
pre-commit - Hook frameworkpixi - Python environmentmarkdownlint-cli - Markdown linter (npm)taplo - TOML linter (cargo)validate (justfile syntax), clean (clean pre-commit cache).pre-commit-config.yamlujust install lintersUse when the user asks about:
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.