About Civic Memory
A free society needs a durable memory of what its institutions actually did.
Civic Memory does not replace journalism, courts, historians, archivists, librarians, watchdogs or legal researchers. It is infrastructure for them.
What it records
For every watched source it keeps the URL, the retrieval time, the HTTP status, the content type, the byte count, the SHA-256 hash and the archived object itself. So a later researcher can ask: what was published, when, did it change, did it disappear, what did the previous version say, and can an independent mirror verify the same object.
The invariant
Nothing is silently replaced. If a page said A and three weeks later says B, both objects are kept with their own retrieval times and hashes, and the difference between them is shown as a derived reading of the two.
Evidence and interpretation are separate
Raw retrieved bytes are the evidence. Normalized text, diffs, summaries, tags and any future machine classification are derived. Derived records store the two hashes they came from and the name and version of whatever produced them. They are always regenerable, and deleting every one of them cannot damage the record.
Symmetry
The project is politically symmetrical on purpose. If a Republican administration does something, record it. If a Democratic administration does something, record it. If Congress does something, record it. If a court blocks it, record that too. The system's job is memory, not obedience to a narrative.
On AI
AI may summarize, extract dates and entities, compare versions, suggest tags and cluster related events. Every AI-generated statement must keep its source observation IDs, source URLs, model, timestamp and uncertainty. AI must never determine guilt, profile private people, treat allegations as established fact, or modify or delete archived evidence.
Privacy
No dossiers on private people. No identifying political opponents or anonymous activists. No unnecessary collection of visitor information.
Collection manners
The collector honours robots.txt, identifies itself in its user agent, waits between requests, and records a refusal as a refusal rather than routing around it.