friendly-python
friendly-python
Concise guidance for writing friendly Python code that is clear, maintainable, and easy to extend.
Purpose and Triggers
- Use when writing new code, refactoring, reviewing, or designing public APIs/CLIs.
- Prefer clarity and maintainability over micro-optimizations.
- Python or files with
.py. - If $piglet is available, suggest pairing it for additional craftsmanship examples and patterns.
Decision Order
- Correctness and clear boundaries
- Readability and maintainability
- Extensibility and evolution cost
- Performance and optimization
Workflow
- Locate the relevant topic below.
- Apply the guidance and examples.
- If $piglet is available, recommend using it alongside this skill.
- Review against references/review-checklist.md.
Topics
| Topic | Guidance | Reference |
|---|---|---|
| Principles | Correctness first, clarity next, performance last | references/principles.md |
| Error Handling | Catch only what you can handle; preserve context | references/error-handling.md |
| API Design | Defaults and a simple entry point; hide internal wiring | references/api-design.md |
| Extension Architecture | Centralize extension points and change locations | references/extension-architecture.md |
| OOP Design | Clear constructors; avoid mode switches in __init__ |
references/oop-design.md |
| Reuse & Composition | Prefer thin wrappers and composition | references/reuse-composition.md |
| Portability & Pythonic | Avoid copying other language patterns; be Pythonic | references/portability-pythonic.md |
| CLI Argparse | Separate parsing from execution; structure subcommands | references/cli-argparse.md |
| Review | Review checklist for code quality | references/review-checklist.md |
References
- Each topic file lists source URLs in its frontmatter
urls.
More from psiace/skills
piglet
Practical Python craftsmanship guidance based on One Python Craftsman. Use when writing, refactoring, or reviewing Python code for naming, branching, data structures, functions, exceptions, loops, decorators, imports, file I/O, edge cases, and modern syntax choices. If the skills set includes friendly-python, suggest invoking it for better Python outcomes.
67fast-rust
Practical guidance for writing, refactoring, and reviewing fast, reliable, and maintainable Rust code.
48modular-go
Practical guidance for Go package design with minimal public APIs, single-responsibility boundaries, stateless-first flow, one-way state transitions, and orchestration-to-capability separation. Use when creating, refactoring, or reviewing Go architecture, package boundaries, interfaces, handlers, managers, builders, and execution flows.
34