From test-suite
Run comprehensive Python quality checks in parallel (pytest, ruff, mypy, bandit, coverage)
How this skill is triggered — by the user, by Claude, or both
Slash command
/test-suite:run-quality-checksWhen to use
Use this skill when the user wants to: - Run tests - Check code quality - Run pytest - Run linting (ruff) - Run type checking (mypy) - Run security scan (bandit) - Check test coverage - Run all quality checks in parallel
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are helping the user run comprehensive Python quality checks for their project.
You are helping the user run comprehensive Python quality checks for their project.
The quality check suite runs 5 checks in parallel for maximum speed:
Parallel execution reduces total time by ~60% compared to sequential checks.
Execute all checks in parallel:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --all
Expected output:
Running Python quality checks in parallel...
[pytest] ━━━━━━━━━━━━━━━━━━━━━ 48/48 tests passed
[ruff] ━━━━━━━━━━━━━━━━━━━━━ 0 issues found
[mypy] ━━━━━━━━━━━━━━━━━━━━━ Type check passed
[bandit] ━━━━━━━━━━━━━━━━━━━━━ 0 security issues
[coverage] ━━━━━━━━━━━━━━━━━━━ 85% coverage
✓ All checks passed in 45s (4x faster than sequential)
Run unit and integration tests:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --pytest
Options:
--pytest-args="-v" - Verbose output--pytest-args="-k test_auth" - Run specific tests--pytest-args="--maxfail=1" - Stop after first failureCheck code style and common errors:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --ruff
Options:
--ruff-fix - Auto-fix issues where possible--ruff-args="--select E,F" - Select specific rule categoriesVerify type annotations:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --mypy
Options:
--mypy-args="--strict" - Strict type checking--mypy-args="--ignore-missing-imports" - Ignore missing type stubsScan for security vulnerabilities:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --bandit
Options:
--bandit-args="-ll" - Low and low confidence issues--bandit-args="--exclude tests/" - Exclude directoriesGenerate coverage report:
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --coverage
Options:
--coverage-min=80 - Set minimum coverage threshold--coverage-html - Generate HTML coverage report[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = "test_*.py"
python_functions = "test_*"
addopts = "-v --strict-markers"
markers = [
"unit: Unit tests",
"integration: Integration tests",
"slow: Slow tests"
]
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "W", "I", "N", "UP", "S", "B", "A", "C4", "SIM"]
ignore = ["E501"] # Line too long (handled by formatter)
[tool.mypy]
python_version = "3.12"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
ignore_missing_imports = false
[tool.bandit]
exclude_dirs = ["tests", "scripts"]
skips = ["B101", "B601"] # Skip specific checks
[tool.coverage.run]
source = ["src"]
omit = ["*/tests/*", "*/scripts/*"]
[tool.coverage.report]
precision = 2
show_missing = true
fail_under = 80
Check:
# Run specific failing test with verbose output
pytest tests/test_auth.py::test_login -v
Solutions:
Check:
# See detailed error with context
ruff check . --show-source
Solutions:
ruff check . --fix# noqa: E501 to ignore specific line (use sparingly)Check:
# Show detailed type error messages
mypy --show-error-codes --pretty
Solutions:
from typing import List, Dict, Optional# type: ignore for third-party library issuesCheck:
# See detailed security issue descriptions
bandit -r src/ -f txt
Solutions:
# nosec comment for false positives (with justification)Check:
# Generate HTML report to see uncovered lines
coverage html
open htmlcov/index.html
Solutions:
name: Quality Checks
on: [push, pull_request]
jobs:
quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install -r requirements-dev.txt
- name: Run quality checks
run: |
python plugins/test-suite/skills/run-quality-checks/scripts/test_runner.py --all
For Infiquetra projects, aim for:
After running checks:
Provides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.
npx claudepluginhub infiquetra/infiquetra-claude-plugins --plugin test-suite