idea192-civicpulse-offline-.../AGENTS.md

33 lines
1.3 KiB
Markdown

# 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+
- `pydantic` for schema validation
- SQLite via the standard library for local event storage
- `pytest` for tests
- `build` for 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.sh`
- `python3 -m pytest -q`
- `python3 -m build`