К основному содержанию
скилл CX Codex

python-code-review — скилл для Claude Code: что делает и установка

Скилл проверяет файлы Python на ошибки в типах, блокирующие вызовы в async-функциях и нарушение PEP8. Пригодится при подготовке пуллреквестов и чистке кодовой базы.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add existential-birds/beagle --skill python-code-review -a claude-code
Открыть на GitHub

Что делает python-code-review

Скилл анализирует файлы .py по пяти направлениям: стиль PEP8, безопасность типов, асинхронные шаблоны, обработка исключений и частые ошибки. Он ищет мутабельные аргументы по умолчанию, вызовы print() вместо логгера, пустые блоки except: и блокирующий код вроде time.sleep внутри корутин. Для типов скилл проверяет синтаксис T | None для Python 3.10+ и требует комментарий при использовании Any.

Отчёт формируется через строгий пятиэтапный протокол. Сначала агент фиксирует список проверенных файлов. Затем отсеивает ложные срабатывания по белому списку исключений. Например, он пропустит пустые файлы __init__.py, комментарии noqa и вызовы cast() после проверок типов. Каждая найденная проблема должна содержать точную привязку к строке в формате [FILE:LINE].

Для полноценного отчёта скилл требует протокол review-verification-protocol, без которого агент не имеет права публиковать выводы. Это ограничение защищает от поверхностного вывода, но требует наличия всех связанных файлов регламента в проекте.

Какие задачи решает

  • найти блокирующие вызовы в асинхронных функциях
  • выявить мутабельные значения по умолчанию в аргументах
  • проверить корректность аннотаций типов и синтаксис T | None
  • заменить вызовы print() на стандартное логирование
  • убрать пустые блоки except: с сохранением контекста ошибок

Примеры запросов агенту

  • Проверь файл backend/api.py на соответствие PEP8 и безопасность типов.
  • Найди блокирующие вызовы и ошибки async/await в модуле services/queue.py.
  • Проведи код-ревью всех .py файлов в папке core/ перед созданием пуллреквеста.

Как установить python-code-review

1Через Skills CLI (Vercel)

npx skills add existential-birds/beagle --skill python-code-review -a claude-code

2Вручную: положить файлы

~/.claude/skills/python-code-review/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/python-code-review/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора8

react-flow Помогает ассистенту создавать интерактивные диаграммы и графы на базе @xyflow/react. Пригодится при настройке узлов, связей и управлении зумом. CX Codex +1 1 300установок langgraph-code-review Скилл проверяет код на базе LangGraph в Claude Code и других агентах. Он находит мутации состояния, пропущенные редьюсеры и ошибки в узлах графа. CX Codex +1 884установок tailwind-v4 Скилл для ИИ-агента, который подсказывает, как настроить Tailwind CSS v4: тема в CSS, токены дизайна, цвета OKLCH и тёмная тема. CX Codex +1 812установок react-router-v7 Скилл с практиками React Router v7: подсказывает, когда брать loader, Form или fetcher, и как настраивать вложенные маршруты. CX Codex +1 572установок vitest-testing Скилл для ИИ-агента: подсказывает, как писать тесты на Vitest — ассерты, моки, асинхронность, конфиг. Пригодится, когда в проекте уже стоит Vitest. CX Codex +1 467установок shadcn-ui Подсказывает агенту, как собирать компоненты на shadcn/ui: Radix, Tailwind, CVA-варианты и data-slot. CX Codex +1 351установок react-flow-code-review Проверяет код на @xyflow/react по чек-листу: антипаттерны, лишние ре-рендеры, типы. Пригодится, когда граф тормозит или ноды пересоздаются. CX Codex +1 319установок

Похожие

python-patterns affaan-m Подсказывает агенту, как писать и ревьюить Python: идиомы, аннотации типов, обработка исключений, контекстные менеджеры. CX Codex +1 5 500установок python-best-practices python-best-practices Скилл с 75 правилами по Python: подсказывает агенту, как писать датаклассы, интерфейсы сервисов, обработку ошибок и аннотации типов. CX Codex +1 854установок Python Code Performance & Quality Enhancer sivasaiyadav8143 Промпт для ревью Python-кода: добавляет докстринги, чинит PEP8, ищет узкие места по скорости и отдаёт переписанный файл целиком. GP ChatGPT ★ 174 597звёзд репо python-expert-best-practices-code-review wispbit Набор правил по Python для написания, ревью и рефакторинга кода. Пригодится, когда агент правит обработку ошибок или чистит словари. CX Codex +1 673установок python-type-safety Seth Hobson Помогает добавлять типы в Python-код, писать дженерики и протоколы, а также настраивать строгую проверку через mypy или pyright. CX Codex 12 643установок python Mindrally Скилл задаёт агенту стиль Python-кода: PEP 8, type hints, ранние возвраты и async для I/O. Пригодится, когда агент пишет или правит код в проекте. CX Codex +1 983установок

Рядом в теме «Код-ревью и рефакторинг»

Всё по теме «Код-ревью и рефакторинг» →

Вопросы о python-code-review

Как установить python-code-review в Claude Code?

Выполните команду npx skills add existential-birds/beagle --skill python-code-review -a claude-code в терминале. Файлы скилла будут добавлены в каталог ~/.claude/skills/python-code-review/SKILL.md.

Что проверяет скилл python-code-review?

Он анализирует исходный код на соблюдение PEP8, корректность аннотаций типов, отсутствие блокирующих вызовов в асинхронном коде и правильную обработку исключений. Также он находит частые дефекты вроде мутабельных значений аргументов по умолчанию.

Какие конструкции скилл считает допустимыми и не отмечает как ошибки?

Анализ игнорирует пустые файлы __init__.py, комментарии noqa и использование cast() сразу после рантайм-проверки типа. Также он пропускает тип Any при работе со сторонними библиотеками без встроенных типов.

Исходный текст

SKILL.md · Apache-2.0
---
name: python-code-review
description: Reviews Python code for type safety, async patterns, error handling, and common mistakes. Use when reviewing .py files, checking type hints, async/await usage, or exception handling.
---

# Python Code Review

## Quick Reference

| Issue Type | Reference |
|------------|-----------|
| Indentation, line length, whitespace, naming | [references/pep8-style.md](references/pep8-style.md) |
| Missing/wrong type hints, Any usage | [references/type-safety.md](references/type-safety.md) |
| Blocking calls in async, missing await | [references/async-patterns.md](references/async-patterns.md) |
| Bare except, missing context, logging | [references/error-handling.md](references/error-handling.md) |
| Mutable defaults, print statements | [references/common-mistakes.md](references/common-mistakes.md) |

## Review Checklist

### PEP8 Style
- [ ] 4-space indentation (no tabs)
- [ ] Line length ≤79 characters (≤72 for docstrings/comments)
- [ ] Two blank lines around top-level definitions, one within classes
- [ ] Imports grouped: stdlib → third-party → local (blank line between groups)
- [ ] No whitespace inside brackets or before colons/commas
- [ ] Naming: `snake_case` for functions/variables, `CamelCase` for classes, `UPPER_CASE` for constants
- [ ] Inline comments separated by at least two spaces

### Type Safety
- [ ] Type hints on all function parameters and return types
- [ ] No `Any` unless necessary (with comment explaining why)
- [ ] Proper `T | None` syntax (Python 3.10+)

### Async Patterns
- [ ] No blocking calls (`time.sleep`, `requests`) in async functions
- [ ] Proper `await` on all coroutines

### Error Handling
- [ ] No bare `except:` clauses
- [ ] Specific exception types with context
- [ ] `raise ... from` to preserve stack traces

### Common Mistakes
- [ ] No mutable default arguments
- [ ] Using `logger` not `print()` for output
- [ ] f-strings preferred over `.format()` or `%`

## Valid Patterns (Do NOT Flag)

These patterns are intentional and correct - do not report as issues:

- **Type annotation vs type assertion** - Annotations declare types but are not runtime assertions; don't confuse with missing validation
- **Using `Any` when interacting with untyped libraries** - Required when external libraries lack type stubs
- **Empty `__init__.py` files** - Valid for package structure, no code required
- **`noqa` comments** - Valid when linter rule doesn't apply to specific case
- **Using `cast()` after runtime type check** - Correct pattern to inform type checker of narrowed type

## Context-Sensitive Rules

Only flag these issues when the specific conditions apply:

| Issue | Flag ONLY IF |
|-------|--------------|
| Generic exception handling | Specific exception types are available and meaningful |
| Unused variables | Variable lacks `_` prefix AND isn't used in f-strings, logging, or debugging |

## Gates (reporting workflow)

Complete **in order**. Do not advance until each **pass condition** is met.

1. **Scope** — **Pass:** You list every `.py` path (or explicit glob) you inspected this run.
2. **False-positive screen** — **Pass:** For each issue you plan to report, you checked **Valid Patterns** and **Context-Sensitive Rules** above; you drop or narrow the finding if those sections say not to flag it.
3. **Evidence** — **Pass:** Each remaining finding includes **`[FILE:LINE]`** (or a bounded line range). Symbols or short verbatim snippets may supplement the location anchor but do not replace it.
4. **Verification protocol** — **Pass:** You load [review-verification-protocol](../review-verification-protocol/SKILL.md) and complete its mandatory steps **for each reported issue** before the user-facing write-up.
5. **Ship** — **Pass:** The user-visible output matches whatever structure that protocol requires (no issues-only dump that skips its checks).

## When to Load References

- Reviewing code formatting/style → pep8-style.md
- Reviewing function signatures → type-safety.md
- Reviewing `async def` functions → async-patterns.md
- Reviewing try/except blocks → error-handling.md
- General Python review → common-mistakes.md

## Review Questions

1. Does the code follow PEP8 formatting (indentation, line length, whitespace)?
2. Are imports properly grouped (stdlib → third-party → local)?
3. Do names follow conventions (snake_case, CamelCase, UPPER_CASE)?
4. Are all function signatures fully typed?
5. Are async functions truly non-blocking?
6. Do exceptions include meaningful context?
7. Are there any mutable default arguments?

Before reporting: complete **Gates (reporting workflow)** above (especially gate 4).

© existential-birds · Apache-2.0 · existential-birds/beagle

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой