tooling

Python development tooling configuration and best practices

16 stars

Best use case

tooling is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Python development tooling configuration and best practices

Teams using tooling should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/tooling/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/tools/tooling/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/tooling/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How tooling Compares

Feature / AgenttoolingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Python development tooling configuration and best practices

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Python Tooling

A comprehensive guide to Python development tools. Configuration best practices for analysis, linters, type checkers, formatters, test frameworks, and package managers.

## Why These Tools Matter

To write high-quality Python code, we recommend adopting these tools:

- **pyscn** - Detect dead code, duplicates, and circular dependencies to prevent technical debt
- **ruff** - Catch bugs and style violations early with fast static analysis
- **mypy** - Find errors before runtime with type checking, also improves IDE completion
- **pytest** - Build confidence in changes with reliable tests
- **uv** - Improve developer experience with fast dependency management

Integrating these into CI/CD reduces code review burden and maintains consistent quality.

## Categories

### Analysis [HIGH]
Structural code analysis for quality assessment.

| Rule | Description |
|------|-------------|
| [analysis-pyscn](rules/analysis-pyscn.md) | Dead code, clones, dependencies, complexity with pyscn |

### Linting [CRITICAL]
Static code analysis with ruff for consistent, high-quality code.

| Rule | Description |
|------|-------------|
| [lint-ruff](rules/lint-ruff.md) | Fast, comprehensive linting with ruff |

### Type Checking [HIGH]
Static type checking with mypy for type safety and better IDE support.

| Rule | Description |
|------|-------------|
| [type-mypy](rules/type-mypy.md) | Static type checking with mypy |

### Formatting [HIGH]
Consistent code formatting with ruff format and import sorting.

| Rule | Description |
|------|-------------|
| [fmt-ruff](rules/fmt-ruff.md) | Code formatting and import sorting with ruff |

### Testing [HIGH]
Test framework configuration with pytest for reliable testing.

| Rule | Description |
|------|-------------|
| [test-pytest](rules/test-pytest.md) | Testing with pytest, fixtures, and coverage |

### Package Management [MEDIUM]
Modern Python packaging with uv and pyproject.toml.

| Rule | Description |
|------|-------------|
| [pkg-uv](rules/pkg-uv.md) | Fast package management with uv |
| [pkg-pyproject](rules/pkg-pyproject.md) | Project configuration with pyproject.toml |

## Quick Reference

### Minimal pyproject.toml
```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
```

### Common Commands
```bash
# 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
```

Related Skills

monorepo-and-tooling

16
from diegosouzapw/awesome-omni-skill

Outlines the monorepo structure and tooling conventions, emphasizing the use of Taskfile.yml, and proper handling of environment variables.

midnight-tooling:midnight-setup

16
from diegosouzapw/awesome-omni-skill

Use when setting up Midnight development environment, installing Compact compiler and developer tools, configuring proof server, verifying prerequisites, or getting started with Midnight development.

midnight-tooling:midnight-compatibility

16
from diegosouzapw/awesome-omni-skill

Use when checking Midnight version compatibility, understanding pragma language_version, verifying compiler and runtime version relationships, or troubleshooting version mismatch errors between Midnight components.

cox-tooling-excellence

16
from diegosouzapw/awesome-omni-skill

Write Go code in the style of Russ Cox, Go tech lead. Emphasizes tooling, module design, correctness, and backward compatibility. Use when designing packages, modules, or tools that others will depend on.

agent-tooling-engineer

16
from diegosouzapw/awesome-omni-skill

Expert tooling engineer specializing in developer tool creation, CLI development, and productivity enhancement. Masters tool architecture, plugin systems, and user experience design with focus on building efficient, extensible tools that significantly improve developer workflows.

pcf-tooling

16
from diegosouzapw/awesome-omni-skill

Get Microsoft Power Platform CLI tooling for Power Apps Component Framework Triggers on: **/*.{ts,tsx,js,json,xml,pcfproj,csproj}

angular-tooling

16
from diegosouzapw/awesome-omni-skill

Use Angular CLI and development tools effectively in Angular v20+ projects. Use for project setup, code generation, building, testing, and configuration. Triggers on creating new projects, generating components/services/modules, configuring builds, running tests, or optimizing production builds.

bgo

16
from diegosouzapw/awesome-omni-skill

Automated Blender build-go workflow. Automatically builds, removes old version, installs, enables, and launches Blender with your extension/add-on. Use when you want to quickly test changes, execute complete build-to-launch cycle, or run custom packaging scripts with automatic Blender launch.

Coding & Development

maintenance

16
from diegosouzapw/awesome-omni-skill

Cleans up and organizes project files. Use when user mentions '整理', 'cleanup', 'アーカイブ', 'archive', '肥大化', 'Plans.md', 'session-log', or asks to clean up old tasks, archive completed items, or organize files. Do NOT load for: 実装作業, レビュー, 新機能開発, デプロイ.

hello-skill

16
from diegosouzapw/awesome-omni-skill

每次对话开始时,声明"[Skills✏️已加载]"

zylvie-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zylvie tasks via Rube MCP (Composio). Always search tools first for current schemas.

zoominfo-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zoominfo tasks via Rube MCP (Composio). Always search tools first for current schemas.