skills/tooling/SKILL.md
Python development tooling configuration and best practices
npx skillsauth add ludo-technologies/python-best-practices toolingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A comprehensive guide to Python development tools. Configuration best practices for analysis, linters, type checkers, formatters, test frameworks, and package managers.
To write high-quality Python code, we recommend adopting these tools:
Integrating these into CI/CD reduces code review burden and maintains consistent quality.
Structural code analysis for quality assessment.
| Rule | Description | |------|-------------| | analysis-pyscn | Dead code, clones, dependencies, complexity with pyscn |
Static code analysis with ruff for consistent, high-quality code.
| Rule | Description | |------|-------------| | lint-ruff | Fast, comprehensive linting with ruff |
Static type checking with mypy for type safety and better IDE support.
| Rule | Description | |------|-------------| | type-mypy | Static type checking with mypy |
Consistent code formatting with ruff format and import sorting.
| Rule | Description | |------|-------------| | fmt-ruff | Code formatting and import sorting with ruff |
Test framework configuration with pytest for reliable testing.
| Rule | Description | |------|-------------| | test-pytest | Testing with pytest, fixtures, and coverage |
Modern Python packaging with uv and pyproject.toml.
| Rule | Description | |------|-------------| | pkg-uv | Fast package management with uv | | pkg-pyproject | Project configuration with pyproject.toml |
[project]
name = "myproject"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = []
[project.optional-dependencies]
dev = ["ruff", "mypy", "pytest", "pytest-cov", "pyscn"]
[tool.ruff]
target-version = "py311"
line-length = 88
[tool.ruff.lint]
select = ["E", "F", "W", "I", "UP", "B", "SIM", "PTH"]
[tool.mypy]
python_version = "3.11"
strict = true
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = ["-v", "--tb=short"]
[tool.pyscn]
max_complexity = 15
# Analysis
pyscn analyze . # Full quality analysis
pyscn check . # CI quality gate
# Linting
ruff check . # Check for issues
ruff check . --fix # Auto-fix issues
# Formatting
ruff format . # Format code
# Type checking
mypy . # Type check
# Testing
pytest # Run tests
pytest --cov=src # With coverage
# Package management (uv)
uv pip install -e ".[dev]" # Install with dev deps
uv pip compile pyproject.toml -o requirements.lock
development
Python coding standards and best practices for AI coding agents
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------