0007: Approval history lives in the database, append-only

Status:

Accepted

Date:

2026-10-19

Context

Legacy ADRs carried a signed-off-by list in their frontmatter, which anybody could edit and nothing verified. The specification required authenticated, durable, auditable approval separate from authored content.

Decision

Store decisions as rows of decision_event with the authenticated issuer|subject, action, server timestamp, policy id and version, comment and provenance. Database triggers refuse UPDATE, DELETE and TRUNCATE on that table. Keep parsing signed-off-by and show it as “Legacy sign-off (unverified)”; it never counts as approval.

Consequences

  • Authors only write Markdown; reviewers act in the catalog.

  • History survives restarts and re-indexing; intake never touches it.

  • The triggers stop bugs and mistakes, not a table owner or superuser. Tamper evidence is out of scope (Content hashing, Security).