Skip to main content

run-linters

Run code quality checks and linters for the torrust-tracker project. Includes Rust clippy, rustfmt, Markdown, local link checking, YAML, TOML, spell checking, and shellcheck. Use when asked to lint code, check formatting, fix code quality issues, or prepare for commit. Triggers on "lint", "run linters", "check code quality", "fix formatting", "run clippy", "run rustfmt", or "pre-commit checks".

Datos de origen

Repositorio
torrust/torrust-tracker
Última actividad en el origen
22 de septiembre de 2026 a las 09:25
Idioma detectado de SKILL.md
inglés
Estrellas
533
Forks
56

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
2 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
run-linters
description
Run code quality checks and linters for the torrust-tracker project. Includes Rust clippy, rustfmt, Markdown, local link checking, YAML, TOML, spell checking, and shellcheck. Use when asked to lint code, check formatting, fix code quality issues, or prepare for commit. Triggers on "lint", "run linters", "check code quality", "fix formatting", "run clippy", "run rustfmt", or "pre-commit checks".
metadata
{"author":"torrust","version":"1.1"}
# Run Linters ## Quick Reference ### Run All Linters ```bash linter all ``` **Always run `linter all` before every commit. It must exit with code `0`.** ### Run a Single Linter ```bash linter markdown # Markdown (markdownlint) linter lychee # Local Markdown file and fragment links linter yaml # YAML (yamllint) linter toml # TOML (taplo) linter cspell # Spell checker (cspell) linter clippy # Rust code analysis (clippy) linter rustfmt # Rust formatting (rustfmt) linter shellcheck # Shell scripts (shellcheck) ``` ## Common Workflows ### Before Any Commit ```bash linter all # Must pass with exit code 0 ``` ### Debug a Failing Full Run ```bash # Identify which linter is failing linter markdown linter lychee linter yaml linter toml linter cspell linter clippy linter rustfmt linter shellcheck ``` ### CI-Only or Newly Introduced Linter Failure When CI reports a linter failure that does not reproduce locally, first identify the failed workflow job, matrix value, and command from its log. Refresh the installed Rust toolchains and record their versions before classifying the warning or changing source: ```bash rustup update rustup show active-toolchain rustc --version rustc +nightly --version linter all ``` If the failure reproduces after the update, fix or document the warning using the current diagnostic. For Clippy warnings from macro expansion or another tool limitation, follow the exception decision framework and record the toolchain version and diagnostic origin in the issue evidence. If it still does not reproduce, investigate the CI job environment before adding an unverified suppression. ### Fix Clippy Warnings When clippy warnings appear, **always try the suggested fix first** before adding allowances: ```bash # Run clippy to see specific warnings linter clippy # Apply suggested fixes from clippy output # See: .github/skills/dev/rust-code-quality/fix-clippy-warnings/SKILL.md ``` ## Related Skills - [`fix-clippy-warnings`](../../rust-code-quality/fix-clippy-warnings/SKILL.md) - Detailed guide for fixing clippy warnings properly - [`commit-changes`](../commit-changes/SKILL.md) - Commit changes with proper conventions ### During Development (Rust only) ```bash linter clippy # Check logic and code quality linter rustfmt # Check formatting ``` ## Fixing Common Issues ### Rust Formatting Errors (rustfmt) ```bash cargo fmt # Auto-fix all Rust source files ``` Formatting rules from `rustfmt.toml`: - `max_width = 130` - `group_imports = "StdExternalCrate"` - `imports_granularity = "Module"` ### Rust Clippy Errors Warnings are **errors** (configured as `-D warnings` in `.cargo/config.toml`). Fix the underlying issue — do not `#[allow(...)]` unless truly unavoidable. Example: unused variable → use `_var` prefix or actually use the value. ### Markdown Errors (markdownlint) Common issues: - Trailing whitespace - Missing blank line before headings - Incorrect heading levels - Lines exceeding 120 characters Configuration in `.markdownlint.json`. ### YAML Errors (yamllint) Common issues: - Trailing spaces - Inconsistent indentation (2 spaces expected) - Missing newline at end of file Configuration in `.yamllint-ci.yml`. ### TOML Errors (taplo) ```bash taplo fmt **/*.toml # Auto-fix TOML formatting ``` ### Spell Check Errors (cspell) For legitimate technical terms not in dictionaries, add them to `project-words.txt` (one per line) and run `./contrib/dev-tools/git/format-project-words.sh`. The pre-commit hook runs the formatter automatically and requests restaging if it changes the dictionary. ### Shell Script Errors (shellcheck) Fix the reported issue in the shell script. Common: use `[[ ]]` instead of `[ ]`, quote variables, avoid `eval`. ## Linter Details See [references/linters.md](references/linters.md) for detailed documentation on each linter. ## Configuration The `linter` binary has **no configuration file of its own**. It is a thin wrapper that delegates to each tool, which reads its own config file from the project root: | File | Used by | | -------------------- | ------------ | | `.markdownlint.json` | markdownlint | | `.yamllint-ci.yml` | yamllint | | `.taplo.toml` | taplo | | `cspell.json` | cspell | | `lychee.toml` | lychee | | `rustfmt.toml` | rustfmt | > **Note**: Files listed in `.gitignore` are **not** automatically excluded from linting. > Each tool has its own ignore mechanism (e.g. `.markdownlintignore` for markdownlint). > Add `.gitignore` paths to the appropriate per-linter ignore file when needed.
Ver en GitHub