macos-programmer
macOS-specific development patterns, platform APIs, and decision frameworks. Use when developing Mac apps, macOS applications,…
Python-specific idioms, philosophy, and expert-level patterns. Use when working with Python code, including Jupyter notebooks (.ipynb). Covers Pythonic thinking, common pitfalls from other language backgrounds, testing ecosystem navigation, type hints trade-offs, and when to use
Claude Code
$ npx -y skills add Pyroxin/opinionated-claude-skills --skill python-programmer --agent claude-code
Codex
$ npx skills add Pyroxin/opinionated-claude-skills --skill python-programmer -a codex -y
Cursor
$ npx skills add Pyroxin/opinionated-claude-skills --skill python-programmer -a cursor -y
Gemini CLI
$ npx skills add Pyroxin/opinionated-claude-skills --skill python-programmer -a gemini-cli -y
GitHub Copilot
$ npx skills add Pyroxin/opinionated-claude-skills --skill python-programmer -a github-copilot -y
OpenCode
$ npx skills add Pyroxin/opinionated-claude-skills --skill python-programmer -a opencode -y
Windsurf
$ npx skills add Pyroxin/opinionated-claude-skills --skill python-programmer -a windsurf -y
name: python-programmer description: Python-specific idioms, philosophy, and expert-level patterns. Use when working with Python code, including Jupyter notebooks (.ipynb). Covers Pythonic thinking, common pitfalls from other language backgrounds, testing ecosystem navigation, type hints trade-offs, and when to use modern Python features.
<skill_scope skill="python-programmer"> This skill provides guidance on Python-specific idioms, philosophy, and expert-level judgment calls. Python's design emphasizes readability and "one obvious way" to do things, but achieving truly Pythonic code requires understanding when and why to use Python's idioms.
**Related skills:**
</skill_scope>
<when_to_use> Use this skill when:
</when_to_use>
<core_philosophy> **For foundational software engineering principles, see the software-engineer skill.**
Python's design philosophy is captured in "The Zen of Python" (`import this`). Key principles:
**Quote to remember:** "Explicit is better than implicit. Simple is better than complex. Readability counts." — Tim Peters, PEP 20
**In practice:**
**Staff insight:** The Zen is philosophy, not law. Sometimes implicit is fine (e.g., context managers hide `__enter__` and `__exit__`). Sometimes there are two ways (e.g., list comprehension vs `map`). The Zen guides judgment; it doesn't eliminate it.
<pythonic_vs_readable>
The Zen says both "Explicit is better than implicit" and to use Python idioms. When they conflict, optimize for readers.
| Code Characteristic | Use Pythonic Idiom | Use Explicit Form | |---------------------|-------------------|-------------------| | Reader must pause to parse | No | Yes | | Requires advanced feature knowledge | No | Yes | | In critical path / main logic | No | Yes | | In isolated utility function | Yes | Maybe | | Junior engineer would need to look it up | No | Yes | | Saves 1-2 lines at cost of clarity | No | Yes | | Standard pattern (e.g., simple dict comprehension) | Yes | No | | Clever trick (e.g., tuple sort keys, walrus operator chains) | No | Yes |
**Heuristics:**
</pythonic_vs_readable>
<eafp_principle>
Python culture prefers EAFP (i.e., try/except) over LBYL (i.e., check-then-act). Use EAFP for dict lookups, file access, network calls, and anywhere race conditions matter. Use LBYL for pre-flight validation before expensive operations and performance-critical tight loops where the exceptional case is common.
**Staff insight:** EAFP is about correctness and clarity, not performance. The file existence check has a race condition; the exception handling doesn't. But exceptions have real cost (e.g., stack unwinding, traceback construction) — they're fine when the exceptional case is rare, not for expected control flow in loops. </eafp_principle>
<duck_typing>
Prefer protocols (i.e., behavior) over explicit type checking. Don't use `isinstance` except with abstract base classes at system boundaries. Use `typing.Protocol` for duck-typed interfaces — it gives you structural subtyping with type checker support. Use `@runtime_checkable` only when you genuinely need runtime protocol checking. </duck_typing> </core_philosophy>
<safety_constraints>
</safety_constraints>
<fundamental_principles> <comprehensions>
List/dict/set comprehensions are Pythonic for *simple* transfo
This project descends from the personal prompts I'd been keeping for Claude Code prior to the release of skills and plugins. Over time it's also evolved into a sandbox where I figure out what makes Claude reliably good at a task, and find prompts that work.
macOS-specific development patterns, platform APIs, and decision frameworks. Use when developing Mac apps, macOS applications,…
Swift-specific idioms, tooling, and philosophy for both application development and command-line scripting. Use when working with…
Fish shell scripting judgment frameworks and critical idioms. Use when writing Fish scripts or shell automation. Focuses on when…
Java-specific tooling, documentation standards, testing practices, and modern idioms. Use when working with Java code or…
Clojure-specific philosophy, idioms, and judgment frameworks. Use when working with Clojure code. Emphasizes data-oriented…
Racket-specific tooling, libraries, idioms, and language-oriented programming philosophy. Use when working with Racket code.…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.