Skip to content

Change Report Category

Closed enumeration capturing the category of a Change Report event. User-facing label is “Change Reports” per CLAUDE.md (internal code still uses “digest”). CORE per §6.2 — platform vocabulary.

Lands as part of the digestschange_reports rename in the combined PR per Q-OQR1-16. Closed enumeration of 4 values, ratified S234 (ONT.15) as CORE-closed; further values may be added later via a CHECK-extending migration.

  • “Change Reports” (user-facing) = “digest” (internal code) per the CLAUDE.md gotcha. Do NOT “fix” the naming.
keylabelprovenance
content_addedContent Addedcore
content_editedContent Editedcore
content_promotedContent Promotedcore
content_archivedContent Archivedcore
  • change_reports table (renamed from digests post-Q-OQR1-16 combined PR; rename pending).
  • change_reports.category — planned column referencing this CV (the column does not exist on digests today).
  • Adjacent to change_type (CV 11) — one-to-many. A Change Report aggregates many content_history.change_type events; the 4 categories collapse the 11 history-event types as follows: content_addedcreate / import; content_editededit / ai_update / metadata_change / owner_change; content_promotedpublication_state (only when transitioning to published); content_archivedarchive / delete. merge and rollback are administrative-recovery events likely excluded from change reports (open question for the ratifier wave).
  • Layer 2: descriptive metadata on Change Report rows.
  • lib/mcp/tools/change-report.ts (P1-35) — current MCP tool that categorises by 3 timestamp buckets (additions / updates / removals) computed at query time; will be refactored to read change_reports.category once the column lands.
  • lib/change-reports/change-reports-export.ts — Change Reports export pipeline.
  • Change Reports surface (user-facing UI).
  • Email and digest delivery pipeline.
  • Filter UI on the Change Reports view.
  • Provenance: Source phase-b-prerequisite-1-onthology-pipeline.md §2.1 (the only enumeration in the corpus) lists 4 values plus “etc.” Archaeology (S236 INV-3) found no additional values across docs/, lib/, types/, supabase/migrations/, .planning/.archive/, mempalace, or the live DB. Liam ruling (S236): ratify the 4 + close the list. No further Liam input required unless he wishes to add a 5th category at this stage.
  • Status updated neededplanned: consistent with other CVs whose target column does not exist yet (e.g. CV 20 chunk-kind, CV 22 origin-kind).
  • Code-side divergence with the live tool. The shipped get_change_report MCP tool (lib/mcp/tools/change-report.ts, P1-35) categorises by 3 timestamp buckets (additions / updates / removals) computed at query time, NOT by reading a category column. When change_reports.category lands in the combined PR Q-OQR1-16, the tool can be refactored to split “updates” into content_edited plus content_promoted (publication-state transitions). This is a quality-of-life improvement, not a breaking change — INV-3 §5.3 has the reconciliation path.
  • Combined PR Q-OQR1-16 includes the digestschange_reports rename plus the CV 28 column scaffolding.