1.3 KiB
1.3 KiB
AGENTS.md
Purpose
CivicPulse is an offline-first coalition coordination core for organizers who need auditability, privacy controls, and deterministic sync across unreliable networks.
Stack
- Python 3.11+
pydanticfor schema validation- SQLite via the standard library for local event storage
pytestfor testsbuildfor packaging verification
Architecture
models.py: domain objects for organizations, proposals, endorsements, briefs, shifts, tasks, and provenance records.ledger.py: SQLite event ledger with immutable provenance records and audit-chain retrieval.sync.py: deterministic merge and replay helpers for offline reconciliation.privacy.py: role-based redaction and minimal-signal sharing.registry.py: graph-of-contracts schema and adapter registry.service.py: high-level orchestration API used by tests and CLI.cli.py: small command-line entry point.
Rules
- Keep changes deterministic and auditable.
- Prefer small, explicit data transformations over hidden magic.
- Do not remove provenance records; add new records instead.
- Preserve privacy defaults when adding new shareable fields.
- Update tests whenever behavior changes.
Verification
bash test.shpython3 -m pytest -qpython3 -m build