rust-pyo3-project-standardlisted
Install: claude install-skill VoldemortGin/AI-Coding-Skill-Bible
# Rust/PyO3 Project Standard
Apply this profile together with `python-project-standard` and
`rust-project-standard`. It defines narrow substitutions for conflicts caused by
Maturin, PyO3, and abi3; it is not a general waiver from either standard.
Read `references/standard.md` before designing, auditing, or changing a project.
## Classify the repository
Use this profile only when all of these are true:
- Rust is the canonical implementation or extension core.
- Python exposes that core through PyO3.
- Maturin builds the Python distributions.
- The repository ships an importable Python package, not merely a private Rust
binary that embeds Python.
Use `polyglot-core-standard` instead when one canonical core serves multiple
first-class host languages. Continue applying this profile to the Python host.
## Apply the exception map
Keep every unlisted rule from both parent standards. Permit only these explicit
substitutions:
1. **Maturin source layout:** accept `python/<package>/` when
`[tool.maturin].python-source = "python"` and the built wheel contains exactly
that package. Do not accept a loose root package or `import src`.
2. **Python compatibility floor:** derive `requires-python` from the documented
abi3 compatibility promise. It may be lower than 3.13. Test every declared
minor version and build with the matching lowest PyO3 abi3 feature.
3. **Runtime typing:** require strict static typing for the Python wrapper.
Require beartype only for substantial