
python-guidelines
This skill should be used when writing, reviewing, or refactoring Python code. Covers code integration, idiomatic patterns, docstring formatting, anti-abstraction rules, and software engineering basics.
- Installs
- 46
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/fcakyon/claude-codex-settings --skill python-guidelines- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads python-guidelines automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Python Guidelines
Integrate into existing code. Don't append to it.
Simple is better than complex. Flat is better than nested. Errors should never pass silently. Unless explicitly silenced. If the implementation is hard to explain, it's a bad idea.
-- The Zen of Python (PEP 20)
Code Philosophy
- Match existing naming, importing, and signature patterns. Use existing utilities and data structures.
- Functions have a single purpose. Don't hardcode behavior that makes them less general.
- No trivial wrappers for 2 lines or less. Inline it.
- Inline single-use variables at the usage site.
- No try/except unless critical. Let errors surface.
- No duplicate code.
- Functions handle their own input validation. No if-else checks in main.
- Use pathlib, not os.path.
- Consider API and time costs for MongoDB/Gemini/OpenAI/Claude/Voyage.
Don't do this:
# Generate comment report only if requested
if include_comments:
comment_report = generate_comments_report(start_date, end_date, team, verbose)
else:
comment_report = ""
print(" Skipping comment analysis (disabled)")
Do this:
comment_report = generate_comments_report(start_date, end_date, team, verbose) if include_comments else ""
Ask yourself: "Am I adding code, or integrating into what exists?"
Simplicity Over Abstraction
YAGNI: You Aren't Gonna Need It.
Don't build for hypothetical future requirements. Add complexity only when the current task demands it.
Avoid:
- Abstract base classes for a single implementation
- Configuration options nobody asked for
- Error handling for impossible scenarios
- Wrapper classes around a single function
- Dependency injection when direct calls work
- Generic type parameters for one concrete type
Three similar lines of code is better than a premature abstraction. Refactor when the third real use case appears, not before.
But simplicity does not mean chaos. Always maintain:
- Clear function names that describe what they do
- Logical grouping of related code into modules
- Consistent naming conventions across the project
- Clean separation between I/O and logic
- Explicit parameters over global state or side effects
Ask yourself: "Is this abstraction solving a problem I have right now, or one I'm imagining?"
Environment
- Package manager: uv (NOT pip)
- Virtual env:
source .venv/bin/activateoruv run python -c "..." - 3rd party packages: Find source with
python -c "import pkg; print(pkg.__file__)", then Read.
Testing Discipline
Never assume anything. Run python -c "..." to verify hypotheses about code behavior, package functions, or data structures before suggesting a plan or exiting plan mode.
Ask yourself: "Did I verify this with python -c before building on it?"
Google-Style Docstrings
- Summary: Imperative mood ("Calculate", not "Calculates")
- Args: All parameters with types and descriptions. No default values. Indent 4 spaces.
- Types:
int | strunions, uppercase shapes(N, M), lowercase builtinslist/dict/tuple, capitalizeAny/Path - Optional:
name (type, optional): Description - Returns: Always
(type)in parentheses. Never tuple types. Separate named values for multiple returns. - Sections: Examples (>>>), Notes, References (plaintext only). Section titles at 0 indent.
- Omit: "Returns:" if nothing returned, "Args:" if no args, "Raises:" unless critical
- Classes: Attributes section only, omit Methods/Args. Don't convert single-line to multiline.
__init__: Args only. No Examples/Notes/Methods/References.- Tests: Single-line docstrings only.
- Erase default values from existing arg descriptions. Optionally include minimal Examples.
Ask yourself: "Would a new developer understand this function from the docstring alone?"
Reference Files
Read the matching file before you write the code, not after:
references/idiomatic-patterns.md-- read when writing loops, comprehensions, unpacking, context managers, or dataclasses. 18 idioms with before/after codereferences/zen-of-python.md-- read when choosing between two designs or judging whether an abstraction earns its place. PEP 20 with annotationsreferences/google-style-guide.md-- read when deciding on exceptions, mutable defaults, import style, naming, or commentsreferences/effective-python-tips.md-- read when reviewing or refactoring existing code. Key tips from "Effective Python" (Brett Slatkin)
FAQ
What does the python-guidelines skill do?
This skill should be used when writing, reviewing, or refactoring Python code. Covers code integration, idiomatic patterns, docstring formatting, anti-abstraction rules, and software engineering basics.
How do I install python-guidelines?
Run npx skills add https://github.com/fcakyon/claude-codex-settings --skill python-guidelines in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/python-guidelines/ (personal) or .claude/skills/python-guidelines/ (project).
Which AI agents can use python-guidelines?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is python-guidelines safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains python-guidelines?
It is published by fcakyon in fcakyon/claude-codex-settings. It has 46 recorded installs.
More from fcakyon/claude-codex-settings
tavily-usage
fcakyon/claude-codex-settings
This skill should be used when user asks to "search the web", "fetch content from URL", "extract page content", "use Tavily search", "scrape this website", "get information from this link", or "web search for X".
anthropic-frontend-design
fcakyon/claude-codex-settings
Open the skill to read its SKILL.md instructions.
paper-search-usage
fcakyon/claude-codex-settings
Open the skill to read its SKILL.md instructions.
agent-browser
fcakyon/claude-codex-settings
Open the skill to read its SKILL.md instructions.
openai-frontend-design
fcakyon/claude-codex-settings
Open the skill to read its SKILL.md instructions.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.