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".

소스 정보

저장소
torrust/torrust-tracker
최근 소스 활동
2026년 9월 22일 09:25
감지된 SKILL.md 언어
영어
스타
532
포크
56

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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.
GitHub에서 보기