Contributing

We welcome contributions. Please follow these guidelines:

Workflow

  1. Fork the repo and create a feature branch: feat/<short-name>

  2. Write tests where appropriate.

  3. Ensure lint passes (ruff/flake8) and type checks (mypy/pyright if applicable).

  4. 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).