33 lines
1.3 KiB
Markdown
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`
|