Install
$ agentstack add skill-tangledgroup-tangled-skills-ruff-0-15-18 Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Pipes remote content directly into a shell (remote code execution).
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
ruff 0.15.18
Overview
Ruff is an extremely fast Python linter and code formatter written in Rust, designed as a drop-in replacement for Flake8 (plus dozens of plugins), Black, isort, pydocstyle, pyupgrade, autoflake, and more — executing tens to hundreds of times faster than any individual tool.
Version 0.15.18 supports Python 3.7 through 3.15, includes over 900 built-in lint rules across 30+ linter plugins (Pyflakes, pycodestyle, flake8-bugbear, isort, etc.), and a Black-compatible formatter. New in this release: ruff analyze graph for dependency mapping, human-readable rule names in CLI output, and improved __init__.py import fix safety in preview mode.
Usage
Installation
# Via uv (recommended)
uv tool install ruff@0.15.18
# Or ephemeral via uvx
uvx ruff check # Lint current directory
uvx ruff format # Format current directory
# Via pip
pip install ruff==0.15.18
# Standalone installer (macOS/Linux)
curl -LsSf https://astral.sh/ruff/0.15.18/install.sh | sh
Core Commands
# Linting
ruff check # Lint current directory
ruff check --fix # Lint and auto-fix
ruff check --fix --unsafe-fixes # Include unsafe fixes
ruff check --diff # Show diff without writing
ruff check --select E,F,B # Enable specific rule categories
ruff check --ignore E501 # Ignore specific rules
ruff check --statistics # Show violation counts per rule
ruff check --add-noqa # Auto-add noqa comments
# Formatting
ruff format # Format in-place
ruff format --check # Check without writing (non-zero exit if changes needed)
ruff format --diff # Show formatting diff
# Inspection
ruff rule F401 # Explain a specific rule
ruff rule --all # List all rules
ruff config # List all config options
ruff config line-length # Describe a specific option
ruff linter # List supported upstream linters
# Analysis
ruff analyze graph # Generate dependency/dependent graph
# LSP
ruff server # Run language server (for editor integration)
Configuration Files
Ruff reads configuration from pyproject.toml, ruff.toml, or .ruff.toml (precedence: .ruff.toml > ruff.toml > pyproject.toml).
Minimal pyproject.toml:
[tool.ruff]
line-length = 88
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "B", "UP", "SIM", "I"]
ignore = ["E501"]
[tool.ruff.format]
quote-style = "double"
Equivalent ruff.toml:
line-length = 88
target-version = "py312"
[lint]
select = ["E", "F", "B", "UP", "SIM", "I"]
ignore = ["E501"]
[format]
quote-style = "double"
Rule Selection
- Use
selectfor an explicit rule set (preferred overextend-select). - Use
ALLcautiously — it enables all rules and picks up new rules on upgrade. - Start small (
select = ["E", "F"]) and add categories incrementally. - Preview rules require
preview = truein config or--previewflag.
Per-File Ignores
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["E402"]
"**/{tests,docs}/*" = ["E402", "S101"]
Extending Parent Config
[tool.ruff]
extend = "../pyproject.toml"
line-length = 100
CLI Overrides
# Override a single setting without a config file
ruff check --config "lint.line-length = 100"
# Ignore all config files
ruff check --isolated
Gotchas
selecton CLI replaces configselect— runningruff check --select F401enforces onlyF401, not the union of CLI and config rules. Use--extend-selectto add to the config set instead.- Preview rules need explicit opt-in — selecting a preview rule code (e.g., via
extend-select) does nothing unlesspreview = trueis also enabled for lint or format. - Config file discovery uses closest match, not cascade — Ruff picks the nearest config file and ignores parent configs. Use
extend = "../path"to inherit settings explicitly. - Files passed directly bypass excludes —
ruff check /path/to/excluded/file.pyalways lints the file unless--force-excludeis also set. .ruff.tomltakes precedence — if multiple config file types exist in the same directory,.ruff.toml>ruff.toml>pyproject.toml.pyproject.tomlneeds[tool.ruff]section — Ruff ignorespyproject.tomlfiles that lack this section during config discovery.- Formatter is Black-compatible but not interchangeable long-term — Ruff's formatter differs from Black in a few conscious ways. Do not mix them on the same codebase over time.
--fixexcludes unsafe fixes by default — use--unsafe-fixesto include fixes that may change semantics (e.g., refactoring patterns).- Jupyter notebooks are linted/formatted by default — exclude with
[tool.ruff.format] exclude = ["*.ipynb"]if formatting notebooks causes issues. target-versioninferred fromrequires-python— if no config specifiestarget-version, Ruff falls back to therequires-pythonfield in a nearbypyproject.toml.
References
- [01-configuration](references/01-configuration.md) — Config file formats, discovery rules, all settings
- [02-linter-rules](references/02-linter-rules.md) — Rule categories, selection strategies, fix behavior
- [03-formatter](references/03-formatter.md) — Formatter options, Black compatibility, docstring formatting
- [04-ci-integration](references/04-ci-integration.md) — GitHub Actions, GitLab CI, pre-commit hooks
- [05-editor-setup](references/05-editor-setup.md) — VS Code, Neovim, PyCharm, LSP configuration
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: tangledgroup
- Source: tangledgroup/tangled-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.