Contributing
We welcome contributions. Please follow these guidelines:
Workflow
Fork the repo and create a feature branch:
feat/<short-name>
Write tests where appropriate.
Ensure lint passes (ruff/flake8) and type checks (mypy/pyright if applicable).
Open a PR with a clear description and concrete test plan.
Commit Style
Conventional Commits encouraged:
feat:
,fix:
,refactor:
,docs:
,chore:
,perf:
,test:
Keep commits focused; avoid mixing formatting with logic changes.
Code Style
Python 3.12, async‑first where it makes sense.
Structured logging via
structlog
.Avoid global state; pass dependencies explicitly.
Security
Never commit secrets. Use placeholders in examples.
Report vulnerabilities privately (see SECURITY.md).