feedtrust-blockchain-backed.../AGENTS.md

36 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

FeedTrust MVP: Production-Grade Architecture
Overview
- FeedTrust is a modular, blockchain-backed access-control and provenance layer for cross-venue market data feeds. The MVP demonstrates policy-driven data access with verifiable provenance across two venues, via adapters and a simple aggregator.
Tech Stack (Python)
- Policy DSL: policy.py a lightweight DSL-ish syntax and compiler for access rules.
- Provenance Ledger: ledger_merkle.py Merkle-tree based proofs of data lineage.
- Adapters: adapters/fix.py, adapters/websocket.py toy adapters bridging two feed types to a canonical signal format.
- Aggregation: aggregation.py cross-venue data mixing with lightweight provenance tagging.
- Core: core.py orchestrates policy checks, ledger interactions, and end-to-end flow.
- Tests: tests/ unit and integration tests ensuring policy enforcement, ledger proofs, and end-to-end flow.
- Packaging: pyproject.toml production-grade packaging metadata; README and READY_TO_PUBLISH as per spec.
How to Run (locally)
- Ensure Python 3.11+ is installed.
- Install test dependencies: pytest
- Run tests: ./test.sh
- Build package: python -m build
Files and Responsibilities
- AGENTS.md: This document explains repository structure, testing commands, and contributor rules.
- README.md: Project marketing and integration description.
- test.sh: Test runner that executes pytest and builds the package.
- pyproject.toml: Packaging metadata.
- feedtrust/: Core library code and submodules.
- tests/: Test suite.
- READY_TO_PUBLISH: Empty placeholder signaling publish readiness.
Contribution Rules
- Keep changes minimal and well-scoped.
- Add tests for any new functionality.
- Do not modify published contract semantics without user consent in this repo.
This file is kept deliberately short to avoid noise. It exists to orient contributors and automation tools.