Production-quality Python coding standards for writing clean, maintainable, modern Python code
(versions 3.10-3.13).
When to Use This Skill
Auto-invoke when users ask about:
"make this pythonic" / "is this good python"
"type hints" / "type annotations" / "typing"
"LBYL vs EAFP" / "exception handling"
"pathlib vs os.path" / "path operations"
"CLI patterns" / "click usage"
"code review" / "improve this code"
Any Python code quality or standards question
Note
This skill is
general Python standards
, not Dagster-specific. Use
/dagster-best-practices
for Dagster patterns.
When to Use This Skill vs. Others
User Need
Use This Skill
Alternative Skill
"make this pythonic"
✅ Yes - Python standards
"is this good python"
✅ Yes - code quality
"type hints"
✅ Yes - typing guidance
"LBYL vs EAFP"
✅ Yes - exception patterns
"pathlib vs os.path"
✅ Yes - path handling
"best practices for dagster"
❌ No
/dagster-best-practices
"implement X pipeline"
❌ No
/dg
for implementation
"which integration to use"
❌ No
/dagster-expert
"CLI argument parsing"
✅ Yes - CLI patterns
Core Knowledge (ALWAYS Loaded)
@dignified-python-core.md
Version Detection
Identify the project's minimum Python version
by checking (in order):
pyproject.toml
- Look for
requires-python
field (e.g.,
requires-python = ">=3.12"
)
setup.py
or
setup.cfg
- Look for
python_requires
.python-version
file - Contains version like
3.12
or
3.12.0
Default to Python 3.12 if no version specifier found
Once identified, load the appropriate version-specific file:
Python 3.10: Load
versions/python-3.10.md
Python 3.11: Load
versions/python-3.11.md
Python 3.12: Load
versions/python-3.12.md
Python 3.13: Load
versions/python-3.13.md
Conditional Loading (Load Based on Task Patterns)
Core files above cover 80%+ of Python code patterns. Only load these additional files when you
detect specific patterns:
Pattern detection examples:
If task mentions "click" or "CLI" -> Load
references/cli-patterns.md
If task mentions "subprocess" -> Load subprocess patterns from core-standards
Reference Documentation Structure
The
references/
directory contains detailed guidance organized by topic:
Core References
core-standards.md
- Essential standards (always loaded)
cli-patterns.md
- Command-line interface patterns (click, argparse)
Version-Specific References (
references/versions/
)
python-3.10.md
- Features available in Python 3.10+
python-3.11.md
- Features available in Python 3.11+
python-3.12.md
- Features available in Python 3.12+
python-3.13.md
- Features available in Python 3.13+
Advanced Topics (
references/advanced/
)
exception-handling.md
- LBYL patterns, error boundaries
interfaces.md
- ABC and Protocol patterns
typing-advanced.md
- Advanced typing patterns
api-design.md
- API design principles
When to Read Each Reference Document
references/advanced/exception-handling.md
Read when
:
Writing try/except blocks
Wrapping third-party APIs that may raise
Seeing or writing
from e
or
from None
Unsure if LBYL alternative exists
references/advanced/interfaces.md
Read when
:
Creating ABC or Protocol classes
Writing @abstractmethod decorators
Designing gateway layer interfaces
Choosing between ABC and Protocol
references/advanced/typing-advanced.md
Read when
:
Using typing.cast()
Creating Literal type aliases
Narrowing types in conditional blocks
references/module-design.md
Read when
:
Creating new Python modules
Adding module-level code (beyond simple constants)
Using @cache decorator at module level
Seeing Path() or computation at module level
Considering inline imports
references/api-design.md
Read when
:
Adding default parameter values to functions
Defining functions with 5 or more parameters
Using ThreadPoolExecutor.submit()
Reviewing function signatures
references/checklists.md
Read when
:
Final review before committing Python code
Unsure if you've followed all rules
Need a quick lookup of requirements
How to Use This Skill
Core knowledge
is loaded automatically (LBYL, pathlib, basic imports, anti-patterns)
Version detection
happens once - identify the minimum Python version and load the appropriate
version file
Reference documents
are loaded on-demand based on the triggers above
Additional patterns
may require extra loading (CLI patterns, subprocess)
Each file is self-contained
with complete guidance for its domain