agno-code-quality-tools

Configures deterministic local code quality tooling for Python Agno agents using Ruff, mypy, and pre-commit.

Updated Sep 10, 2026
One-click install
npx skills add https://github.com/allankltsn/setup_kiro --skill agno-code-quality-tools-allankltsn
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: agno-code-quality-tools
Source: https://github.com/allankltsn/setup_kiro/tree/main/.kiro/skills/agno-code-quality-tools
Command: npx skills add https://github.com/allankltsn/setup_kiro --skill agno-code-quality-tools-allankltsn

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires ruff, mypy, bandit, pip-audit, import-linter, radon, xenon, pre-commit, commitizen, pytest-cov, hypothesis.

What problem does it solve? Python agent codebases accumulate style drift, type errors, security flaws, and architecture violations when quality checks depend on manual review or expensive LLM passes. This Skill defines a deterministic, token-free quality gate that runs locally via pre-commit and in CI, catching errors at commit time instead of in the pipeline. ## Core Features & Use Cases - Layered tooling stack: Covers formatting/linting (Ruff), static typing (mypy), security (Bandit, pip-audit, gitleaks), architecture enforcement (import-linter), complexity limits (Radon/Xenon), and test coverage (pytest-cov, Hypothesis, mutmut). - Centralized configuration: Provides a complete pyproject.toml template with Ruff rules, mypy overrides, import-linter layer contracts, and commitizen settings for Conventional Commits plus SemVer. - Versioning discipline: Establishes Keep a Changelog, Conventional Commits, and Semantic Versioning as workspace standards, automated through commitizen. - Use Case: When setting up a new Agno agent with a src/ layered layout, apply this Skill to install pre-commit hooks so every commit is automatically checked by Ruff, mypy, Bandit, gitleaks, and import-linter before it lands. ## Quick Start Ask the AI to configure the code quality tooling for your agent by running scripts/setup_code_quality.sh and installing the pre-commit hooks with uv.

Frequently Asked Questions about agno-code-quality-tools

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up pre-commit hooks for a Python project?▼

Install dev dependencies with uv sync --group dev, then run uv run pre-commit install once per clone. The hooks run Ruff, mypy, Bandit, gitleaks, and import-linter automatically on every commit, with versions pinned for reproducibility.

What Python linting tools should I use for code quality?▼

Use Ruff as the single linter and formatter, replacing Flake8, isort, pyupgrade, and Black. Pair it with mypy for static typing, Bandit for security SAST, and import-linter to enforce layered architecture rules.

Ruff vs Black: which formatter should I choose?▼

Ruff's formatter is Black-compatible and converges on the same output, so running both is redundant. If a team already standardized on Black, use Ruff's formatter in compatible mode rather than running two formatters.

How do I enforce clean architecture layers in Python?▼

Use import-linter with layer contracts defined in pyproject.toml to forbid domain code from importing infrastructure modules. It is the only automatic way to prevent layered architecture from degrading over time.

Why run quality checks locally instead of only in CI?▼

Local pre-commit gates give feedback in seconds before the commit, avoid wasting CI minutes on trivial lint errors, and block secrets via gitleaks before they leave the machine. CI remains the final authority that blocks merges.

When should I not add more quality tools?▼

Start with Ruff, mypy, and pre-commit only, then add tools as pain appears, following YAGNI. A tool that only warns and nobody acts on becomes noise; value comes from configuring it as a failing gate.