TenantAtlas/specs/278-cross-domain-indicator-audit/data-model.md
Ahmed Darrazi 0fa5be8d9d
Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 1m20s
chore: commit all changes (automated)
2026-05-06 10:46:22 +02:00

9.1 KiB

Data Model: Cross-Domain Progress Indicator Semantics Audit

Date: 2026-05-06
Branch: 278-cross-domain-indicator-audit

Overview

This slice introduces no runtime persistence, no new application DTO layer, and no new state family. The package defines documentation-only audit artifacts over existing repo-real cues so later specs can build on one explicit inventory and standards delta.

Reused Source Truth

1. Indicator Source Anchor

Persistence: none, repo source reference only
Owner: current documentation and code seams already present in the monorepo

Field Type Required Notes
repo_path string yes Absolute or repo-relative file path to the source seam
source_type string yes standard, spec, presenter, widget, service, builder, blade, or other-code
surface_name string yes Human-readable surface or seam name
domain string yes Ops, inventory, backup, review, baseline, provider posture, tenant summary, or similar
route_context string no Known current route or shell context when relevant
notes string no Why this anchor matters to the audit

Behavior rules:

  • Source anchors are audit evidence only in this slice.
  • Adding an anchor to the audit does not imply that the file will be changed.
  • The audit must capture enough anchors to explain the current cross-domain drift without widening into unrelated domains.

Persistence: none, repo context only
Owner: current spec package

Field Type Required Notes
spec_id string yes Existing adjacent spec number
relation string yes context-only, guardrail, or follow-up dependency
note string yes What the audit must preserve or avoid reopening
out_of_scope_for_this_slice boolean yes Always true for this package

Required rows:

  • 266
  • 268
  • 270
  • 271
  • 272

Derived Audit Artifacts

3. Indicator Inventory Entry

Persistence: none, documentation artifact only
Owner: audit inventory bundle

Field Type Required Notes
entry_id string yes Stable audit-local identifier
source_anchor_ref string yes Link to the source anchor entry
surface string yes The visible surface or seam where the cue appears
domain string yes Product domain owning the cue
visible_cue string yes Label, wording, or short description of the cue
visual_pattern string yes Badge, percentage, bar, KPI stat, helper text, summary row, empty-state signal, or similar
data_source string yes Current repo-real truth feeding the cue
calculation_basis string yes How the cue is currently derived, or not explicit when unclear
semantic_category string yes Exactly one allowed category from the list below
determinism string yes determinate, indeterminate, or unknown
scope_mode string yes tenant-prefiltered, tenantless-aggregate, workspace-aggregate, or supporting-context
audience_mode string no customer-readable, operator-msp, support-platform, mixed, or not-applicable
likely_user_reading string yes What an operator or reviewer is likely to infer from the cue
misunderstanding_risk string yes Risk note describing why the cue may mislead
disposition string yes Exactly one bounded recommendation from the disposition set below
follow_up_lane string no Required for every disposition except keep as-is; values come from the follow-up map lane set
related_guardrails array no Adjacent specs or standards rules that constrain follow-up work
notes string no Extra explanation or uncertainty

Validation rules:

  • One cue gets exactly one inventory entry unless the surface shows multiple visibly separate cues.
  • One inventory entry gets exactly one semantic category.
  • One inventory entry gets exactly one disposition.
  • follow_up_lane is required when disposition is anything other than keep as-is.
  • unknown/ambiguous is the fallback category when the current repo truth cannot support a more precise category safely.

4. Semantic Category

Persistence: none, documentation-only enum
Owner: audit vocabulary

Allowed values:

  • execution progress
  • activity state
  • coverage
  • completion
  • health
  • readiness
  • risk
  • pressure
  • usage
  • capacity
  • score
  • generation state
  • unknown/ambiguous

Behavior rules:

  • Categories are documentation-only in this slice and do not create new runtime state.
  • Categories must remain mutually exclusive at the cue level.
  • A visually similar pattern on two surfaces may map to different categories when the underlying truth differs.

5. Recommendation Disposition

Persistence: none, documentation-only enum
Owner: audit recommendation layer

Allowed values:

  • keep as-is
  • copy-only clarification
  • standards clarification
  • product decision
  • contract follow-up
  • shared-component follow-up
  • migration follow-up
  • defer

Behavior rules:

  • Dispositions describe the next bounded action, not the full implementation plan.
  • keep as-is is allowed only when the cue is already semantically honest.
  • copy-only clarification and standards clarification should normally route to the standards patch lane.
  • contract follow-up, shared-component follow-up, and migration follow-up must map to their matching follow-up lanes.

6. Standards Delta Rule

Persistence: none, documentation artifact only
Owner: standards-delta bundle

Field Type Required Notes
rule_id string yes Stable rule identifier inside the audit package
area string yes allowed-categories, determinate-progress, freshness, wording, dashboard, anti-pattern, or provider-boundary
current_gap string yes What the current repo does not state clearly enough
proposed_guidance string yes Intended standards delta wording
target_doc string yes Expected future standards target, normally docs/ui/tenantpilot-enterprise-ui-standards.md
follow_up_lane string no Usually standards patch lane, but may point elsewhere when the gap cannot be solved by documentation alone

7. Follow-Up Map Entry

Persistence: none, documentation artifact only
Owner: follow-up map bundle

Field Type Required Notes
lane string yes One of the bounded lane names below
purpose string yes What this lane exists to solve
out_of_scope_for_this_slice boolean yes Always true in this package
trigger_cues array yes Inventory entries or cue families that justify the lane
likely_repo_surfaces array yes Docs or code anchors the later spec will probably need
seed_questions array no Questions the later spec must answer before implementation

Required lane values:

  • standards patch lane
  • metric/indicator contract foundation
  • shared indicator component system
  • quality gate lane
  • domain migration lane

8. Audit Bundle

Persistence: none, documentation artifact only
Owner: current spec package

Field Type Required Notes
inventory array yes List of Indicator Inventory Entry objects
standards_delta array yes List of Standards Delta Rule objects
follow_up_map array yes List of Follow-Up Map Entry objects
related_spec_guardrails array yes Context-only guardrails from existing adjacent specs
review_outcome_class string yes Current prep convention outcome class
workflow_outcome string yes Current prep convention workflow outcome
test_governance_outcome string yes Current prep convention test-governance outcome

Derived Rules

Rule Derived Behavior
One cue, one meaning Every visible cue must map to exactly one semantic category
One cue, one next action Every visible cue must map to exactly one disposition
Scope is first-class Every cue must record whether it looks tenant-prefiltered, tenantless aggregate, workspace aggregate, or only supporting context
Ambiguity is explicit Unknown denominator, freshness, or scope becomes risk documentation, not a guessed category
Follow-up work stays separate Contract, component, quality-gate, and migration work remain distinct later lanes
Audit outputs stay docs-only No runtime table, code path, or presenter becomes part of this slice

Boundaries Explicitly Preserved

  • No new runtime source of truth is introduced.
  • No shared runtime contract, component, migration, chart, or score engine is introduced.
  • No existing presenter, widget, service, or Blade surface is rewritten in this slice.
  • Product backlog docs may be referenced by the follow-up map, but the audit bundle itself remains the primary output.