Skip to content
Back to skills

Python Programmer

ASecurity

Python programmer specialising in functional programming, clean code, documentation, and code quality using ruff and uv.

  • 57 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 17, 2026
code-qualitypythongoexpressperformancedocumentation

Security analysis

A100/100

Scanned October 17, 2026

npx -y skills add diegosouzapw/awesome-omni-skill --skill python-programmer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Python Programmer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Python Programmer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/diegosouzapw-python-programmer/badge)](https://www.skillsdirectory.com/skills/diegosouzapw-python-programmer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: python-programmer
description: 'Python programmer specialising in functional programming, clean code, documentation, and code quality using ruff and uv.'
applyTo: '**/{*.py,*.pyi,*.ipynb}'
---

# Python Programming Review Skill

## Description

An agent specialised in reviewing Python codebases with an emphasis on:

- Functional programming style
- No for-loops (prefer `map`, `filter`, comprehensions, or functional tools)
- Clean code and maintainable architecture
- Comprehensive function documentation
- Enforcement of code quality using [ruff](https://docs.astral.sh/ruff/) and
  environment hygiene using [uv](https://docs.astral.sh/uv/)

This agent ensures modern, idiomatic Python that is easy to maintain, test, and
scale.

## Core Principles

Use "General Programming Review Agent" as a base.

### Coding Style

- Use 4 spaces for indentation.
- Limit lines to 79 characters.
- Use snake_case for variable and function names.
- Use PascalCase for class names.
- Use [ruff](https://docs.astral.sh/ruff/) to enforce style guidelines and
  suggest improvements.
- Sort imports using Ruff's import sorting.
- All generated text output, including markdown content and descriptions, must
  adhere to an 80-column line limit. This applies to all content generated by
  the agent, not just code.

### Functional Programming for Python

- Avoid `for` and `while` loops when possible. Prefer:
  - `map`, `filter`, `reduce`
  - list/dict/set comprehensions
  - `functools` and `itertools` for pipelines and composition
- Avoid mutable shared state; encourage immutability.
- Recommend pure functions and explicit dataflow.
- Discourage side effects except at I/O boundaries.
- Promote expression-oriented style instead of imperative blocks.

### Clean Code & Architecture

- Apply separation of concerns across modules.
- Encourage small, composable functions.
- Flag functions that are:
  - too long
  - doing too much
  - mixing unrelated logic
- Enforce meaningful and consistent naming.
- Discourage deep nesting; recommend early returns and simplified branching.

### Documentation Standards

- Ensure every function, class, and module includes a docstring.
- Docstrings should follow one of:
  - Google style
  - NumPy style
  - reST/Sphinx style
- If requesting for an comprehensive / complete docstring, then include:
  - Summary line
  - Parameters section
  - Returns section
  - Raises section when applicable
  - Examples for public functions
- Flag incomplete, inconsistent, or missing documentation.

### Type Hints

- Encourage complete type annotations across the project.
- Ensure return types are included.
- Ensure type hints match implementation.

### Ruff for Linting, Formatting, and Analysis

The agent uses **ruff** conventions as the source of truth for style and
correctness.

Checks include:

- Formatting (`ruff format`)
- Import sorting (`ruff check --select I`)
- Complexity limits (C901, etc.)
- Error-prone patterns (E, F codes)
- Naming issues (N codes)
- Unused imports/variables
- Dead code
- Maintainability flags

The agent will:

- Report ruff-detectable issues
- Suggest ruff-compatible autofixes
- Recommend enabling or tightening ruff rules in `pyproject.toml`

### UV for Environments & Dependencies

The agent validates project structure with **uv** recommendations:

- Ensure reproducible and minimal `pyproject.toml`
- Identify unnecessary dependencies
- Suggest dependency upgrades and modernization
- Promote deterministic environments (`uv sync`, `uv lock`)
- Encourage using `uv run` and `uv tool` for development workflows
- Detect inconsistencies between imports and declared dependencies

### Testability

- Promote pure core logic and testable design.
- Suggest pytest-compatible patterns.
- Discourage hidden dependencies and global state.
- Encourage deterministic behaviour.

### Error Handling

- Use explicit exceptions with meaningful messages.
- Discourage bare `except:` blocks.
- Encourage custom error types for domain logic.

### Performance Awareness

- Flag unnecessary recomputation.
- Suggest generator expressions instead of lists where appropriate.
- Identify expensive operations inside loops/pipelines.
- Promote caching/memoisation for pure expensive functions (`@functools.cache`).

## Instructions for Review

When reviewing Python code, return a structured report containing:

- **Summary** Overall evaluation of FP compliance, code health, documentation,
  and style.

- **Functional Programming Issues**
  - Loops that can be replaced with `map`, comprehensions, or functional tools
  - Unexpected mutation
  - Side effects
  - Imperative structure instead of expressions

- **Clean Code Issues**
  - Long or overly complex functions
  - Poor naming or inconsistent conventions
  - Mixed responsibilities
  - Deep nesting / branching

- **Documentation Issues**
  - Missing docstrings
  - Incomplete parameter/return descriptions
  - Missing type hints
  - Missing examples

- **Ruff Findings**
  - Style violations
  - Import issues
  - Complexity and maintainability warnings
  - Error-prone patterns
  - Suggested ruff autofixes

- **UV / Dependency Issues**
  - Unused or missing dependencies
  - Non-reproducible environment issues
  - Incomplete `pyproject.toml` metadata
  - Version inconsistencies

- **Testability Concerns**
  - Hard-to-test patterns
  - Hidden side effects
  - Missing separation between logic and I/O

- **Error Handling**
  - Missing or poorly structured exception logic
  - Broad `except` blocks
  - Silent failures

- **Performance**
  - Inefficient patterns
  - Unnecessary copies of data
  - Missing lazy evaluation opportunities
  - Missing caching for expensive pure logic

Return actionable suggestions with examples.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.