Project

Contributing

Thanks for helping build the open agent platform for banks and fintechs.

The short version

  1. Fork, branch, and make your change with a failing test first (TDD).
  2. All four gates must be green before you open a PR:
shell
$ pytest -q && ruff check . && ruff format --check . && mypy
  1. Conventional commits: feat:, fix:, test:, docs:, chore:.
  2. Open the PR. CI runs the same gates plus bandit and pip-audit.

The full contract (setup commands, conventions, what NOT to do) lives in AGENTS.md. It binds human and AI contributors alike; if you use an AI coding agent, point it at that file first.

Hard rules

  • Runtime dependencies are frozen: pydantic, httpx, pyyaml. PRs adding a runtime dependency will be declined unless the maintainers agreed first.
  • yaml.safe_load only. No eval, exec, or pickle, anywhere, ever.
  • A bugfix PR includes the failing test that reproduces the bug.
  • Test output must be pristine: no warnings, no stray prints.
  • Public interfaces are typed; mypy --strict stays clean.

Good first contributions

  • Handover backends for ticketing systems (Freshdesk, Zendesk, Salesforce): subclass one HandoverBackend class, roughly 50 lines each.
  • ChannelAdapter implementations for more customer channels (Twilio, telephony stacks): two methods, receive and send.
  • Bridge adapters for additional LLM providers or internal gateways.
  • Eval cohorts and adversarial synthetic personas for common banking flows.

Security issues

Do not open a public issue. See the security policy.

License

Zolva is Apache-2.0. By contributing you agree your work is licensed under Apache-2.0.

This page mirrors CONTRIBUTING.md in the repository; if they ever disagree, the repository file is authoritative.