Back to Skills

style

verified

Use this skill when preparing commits, running pre-commit hooks, checking code style, or validating changes before pushing. Covers PEP 7 (C code) and PEP 8 (Python) compliance, trailing whitespace rules, the no-type-annotations-in-Lib policy, and patchcheck validation. Note: patchcheck requires a build directory - load the `build` skill first if you haven't built CPython yet.

View on GitHub

Marketplace

cpython-skills

gpshead/cpython-skills

Plugin

cpython

Repository

gpshead/cpython-skills
8stars

plugins/cpython-skills/skills/style/SKILL.md

Last Verified

January 21, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/gpshead/cpython-skills/blob/main/plugins/cpython-skills/skills/style/SKILL.md -a claude-code --skill style

Installation paths:

Claude
.claude/skills/style/
Powered by add-skill CLI

Instructions

# CPython Coding Style and Standards

## Style Guidelines

**Python code** (`Lib/` etc): Follow PEP 8. Be consistent with nearby code.

**C code** (`Modules/`, `Objects/`, `Python/`, `Include/`): Follow PEP 7. Be consistent with nearby code.

## Critical Rules

**NEVER leave trailing whitespace on any line.** Pre-commit hooks will catch this.

**ALWAYS preserve the final newline** at the end of files.

**NEVER add type annotations to `Lib/` tree.** Stdlib doesn't use inline annotations (maintained in typeshed separately). Annotations may be OK in `Tools/` or test code if requested.

**No autoformatting by default.** Only use `Doc/venv/bin/ruff format` if explicitly requested.

## Pre-Commit Workflow

Before committing, run from repo root:

```bash
# 1. Pre-commit hooks (checks whitespace, file endings, syntax)
pre-commit run --all-files

# 2. Patchcheck (MUST PASS - validates C/Python style, docs, whitespace)
make -C $BUILD_DIR patchcheck

# 3. If you modified Doc/, verify reStructuredText
make -C Doc check

# 4. Run relevant tests
$BUILT_PY -m test test_yourmodule -j $(nproc)
```

## Documentation

- **Python docstrings**: Follow PEP 257, document params/returns/exceptions
- **C comments**: Follow PEP 7, document complex algorithms
- **reStructuredText** (`Doc/`): Follow Sphinx/reST conventions, verify with `make -C Doc check`

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
1333 chars