These instructions apply to the entire repository.
- Aim for simplicity and clarity; avoid over-engineering.
- Prefer explicit behavior and minimal public APIs.
- This project is a development-time helper, not a production-ready tool.
- Optimize for developer experience and iteration speed rather than runtime performance.
- Keep modules small and focused; avoid shared mutable state.
- Provide clear error messages and fail fast when assumptions are violated.
- Target Python 3.10 or later.
- Follow PEP 8 conventions.
- Use four spaces for indentation and double quotes for strings.
- Include type hints and docstrings for public functions and classes.
- Favor f-strings for formatting and keep lines under 100 characters.
- Avoid wildcard imports; group imports by standard library, third-party, and local modules.
- Use the
uvtool to manage dependencies. - Install all dependencies (including dev extras) with:
uv sync --all-extras --group dev
- Run the full test suite before committing:
uv run pytest
- Add or update tests for any new features or bug fixes.
- When packaging‑related files are changed, ensure the project builds:
uv build
- Update
README.mdor files indocs/when behavior or interfaces change. - Ensure code examples remain accurate and executable.
- Use descriptive, present-tense commit messages that explain the change.
- Follow a
type: summaryformat (for example,feat: add featureordocs: update readme). - Keep commits focused; avoid bundling unrelated changes.