Skip to content

[P2] Enroll dashboard / webhook / report in the spec liveness GOVERNED set #3462

Description

@os-zhuang

Systemic follow-up from the metadata-liveness audit (umbrella #1878).

Why

The spec liveness gate governs only the types in GOVERNED (packages/spec/scripts/liveness/check-liveness.mts:56):

object, field, flow, action, hook, permission, position, agent, tool, skill, dataset, page, view

dashboard, webhook, and report are authorable/round-trippable but NOT in this set, so they have no liveness/<type>.json ledger and CI never checks them. That gap is the systemic reason several drifts survived undetected until the 2026-06 audit — e.g.:

Enrolling these three closes the ratchet so the next such drift is a CI failure, not an audit finding years later.

Scope

For each type, following the view precedent (#2998 Track B):

  • Author packages/spec/liveness/<type>.json classifying every top-level prop live / experimental / dead with file:line evidence (drill one level via children where sub-props diverge).
  • Add the type to GOVERNED in check-liveness.mts (requires it to resolve through the metadata-type registry — report/dashboard are registered; webhook is not yet, so it may need registration first, or a small gate accommodation).
  • Confirm pnpm --filter @objectstack/spec check:liveness is green.
  • authorWarn the genuinely-misleading dead props (per the ledger README rules).

Suggested order: report first (its chart/column/grouping split is already characterized in #3441), then webhook (do it with the #3461 decision), then dashboard.

Refs #1878, #1891, #3441, #3461, #2998.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions