2.5 KiB
2.5 KiB
AGENTS.md
This repository implements CrossVenueArbX, a lightweight federated, deterministic cross-venue equity arbitrage framework (MVP). The goal of this document is to define the architecture, testing, contribution rules, and onboarding expectations for contributors.
Overview
- Core modules live under
crossvenue_arbx/:core.py: Data contracts for local signals, shared signals, deltas, and governance primitives.adapters.py: Starter adapters for venue price feeds and simulated broker execution.coordinator.py: Central coordinator implementing a minimal async-ADMM-like flow and deterministic replay.demo.py: A small end-to-end demo wiring adapters and the coordinator.governance.py: In-memory Graph-of-Contracts registry used for versioning adapters and data contracts.
- Tests exercise core data contracts and a small integration flow via the demo. The test suite is designed to be fast and deterministic.
Getting Started
- Run tests and build:
bash test.sh(this runspytest, builds the package, and installs it in editable mode). - To run the demo locally:
python -m crossvenue_arbx.demo --iterations 3or usepython crossvenue_arbx/demo.py --iterations 3.
Architecture Guidelines
- LocalArbProblem, SharedSignals, PlanDelta, DualVariables, AuditLog, PrivacyBudget form the canonical IR (data contracts).
- Async ADMM-lite: each venue computes local deltas; a central coordinator merges aggregated signals with bounded staleness.
- Privacy and governance: use secure aggregation stubs and a Graph-of-Contracts registry for versioning adapters and data contracts.
- Deterministic replay on reconnects via CRDT-like delta merges and explicit signatures.
Testing & Validation
- Use
test.shfor quick end-to-end validation. It runs unit tests, builds the package, and ensures packaging metadata compiles. - Additional checks can be added to CI to exercise the demo end-to-end with more iterations and randomized seeds.
Contribution Rules
- All changes should be covered by tests. If you introduce breaking changes, add or adjust tests accordingly.
- Follow the existing naming conventions used in
crossvenue_arbx/(CamelCase class names, snake_case functions). - Update
README.mdwith user-facing changes and new data contracts or adapters.
If you are releasing an idea or patch that affects the governance contract or adapters, please ensure you
- add a tag/remark to
governance.pyand wire up versioning inGraphOfContracts. - keep the scope small and well-scoped to enable incremental onboarding and testing.