home / skills / poletron / custom-rules / recurse-ml
npx playbooks add skill poletron/custom-rules --skill recurse-mlReview the files below or copy the command above to add this skill to your agents.
---
name: recurse-ml
description: >
Python ML coding patterns for identifying and avoiding common pitfalls.
Trigger: When writing ML code with Python best practices.
license: Apache-2.0
metadata:
author: poletron
version: "1.0"
scope: [root]
auto_invoke: "Working with recurse ml"
## When to Use
Use this skill when:
- Writing Python ML/data science code
- Identifying common Python anti-patterns
- Improving code reliability and readability
- Avoiding subtle bugs in ML pipelines
---
## Decision Tree
```
Need exception handling? → Use specific exceptions (bare-exceptions.md)
Need conditionals? → Check conditionals.md for patterns
Need boolean checks? → See bool.md for comparisons
Need type safety? → Apply typing.md guidelines
Need debugging? → Use rml-verify.md
```
---
## Critical Patterns
### Don't Catch Bare Exceptions (REQUIRED)
```python
# ❌ BAD - Hides unintended exceptions
try:
risky_operation()
except:
handle_error()
# ❌ EQUALLY BAD
try:
risky_operation()
except Exception:
handle_error()
# ✅ GOOD - Catch specific exceptions
try:
risky_operation()
except SpecificException:
handle_error()
# ✅ OK if reraising
try:
risky_operation()
except SpecificException as e:
handle_error(e)
raise # Reraise the exception
```
**Why:** Bare exceptions hide bugs and give false stability.
---
## Resources
Specialized ML coding patterns in this skill:
- **Bare Exceptions**: [bare-exceptions.md](bare-exceptions.md)
- **Boolean Comparisons**: [bool.md](bool.md)
- **Comments**: [comments.md](comments.md)
- **Conditionals**: [conditionals.md](conditionals.md)
- **Control Flow**: [flow.md](flow.md)
- **Infinite Loops**: [infinite-loops.md](infinite-loops.md)
- **Mutable Defaults**: [mutable-defaults.md](mutable-defaults.md)
- **RML Verification**: [rml-verify.md](rml-verify.md)
- **Side Effects**: [side-effects.md](side-effects.md)
- **Type Hints**: [typing.md](typing.md)
- **Unreachable Code**: [unreachable-code.md](unreachable-code.md)