feat(audit): audit runs and attestations are journaled (P8)

A claim that someone checked the books is evidence the CPA handoff rests on,
so it is a journal fact and replays: audit.run (a programme run through a
day at the books' figure head, with the hashes that make it reproducible and
the two filed workpapers), receipt.attested, entry.reviewed and
period.attested. Behind the journal feature audits, schema 20; no figure
moves. The figure head is the last line that bears on a figure: filing a
workpaper, a run or an attestation never makes an audit stale, an entry,
document, close, settings or role change does, so a period is attested only
on an audit that still describes the books. A receipt reading that differs
from the entry is recorded as disagreeing and never counts; whether a claim
counts is derived against the bar when asked, never stored.

The store also reads what a ledger cannot: the chain, the database against
a replay, stored and extracted files, the access log, duplicate files, and
the backups' standing handed in by the server. Fixture old-books/p8_before
was written by the version before this one and opens to its figures.
period.attested was the tests' placeholder for an unknown event type; they
use ledger.not_yet_written now.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HS8WZziDnyxunC23MUxrLp
This commit is contained in:
swaitsandClaude Fable 5.1 committed 2026-10-29 15:54:08 -06:00
1 parent 843bcc421f
commit 6b7dccd1ee
19 files changed
+2479 -18

No files matched your search

+4
View File
@@ -46,6 +46,7 @@ const TYPES: &[&str] = &[
"project.set", "entry.settles",
"entry.draft_state_set", "entry.draft_discarded",
"convention.source_revised", "decision.source_revised", "open_item.source_revised",
"audit.run", "receipt.attested", "entry.reviewed", "period.attested",
// Merged 2026-10-28 (S7, P6): every type EVENT_TYPES names.
];
@@ -68,6 +69,9 @@ const FIELDS: &[&str] = &[
"tax_basis_723", "depreciable_basis", "built_in_gain_704c", "on", "convention",
"status", "party_id", "started_on", "ended_on", "links", "notes", "projects",
"via", "by", "to", "reference", "note", "state",
"through", "through_seq", "scope", "program_version", "tb_hash", "findings_sha256",
"workpaper_attachment", "workpaper_pdf", "at", "amount_checked", "date_checked",
"disagrees", "audit_run_id", "period_id", "verifier_agents", "reasoning_effort",
];
/// Journal features a `journal.format_set` may declare.