6.4 KiB
6.4 KiB
Standards Delta: Cross-Domain Progress Indicator Semantics Audit
Target document: docs/ui/tenantpilot-enterprise-ui-standards.md
Source inventory: specs/278-cross-domain-indicator-audit/inventory.md
Follow-up map: specs/278-cross-domain-indicator-audit/follow-up-map.md
Status: Applied as bounded standards input, not runtime implementation
Standards Delta Rules
| Rule ID | Area | Current gap | Proposed guidance | Target doc | Follow-up lane |
|---|---|---|---|---|---|
| IND-STD-001 | allowed-categories | Current standards mostly discuss progress bars and OperationRun progress, not the product-wide indicator category set. | Every indicator-like cue must name exactly one semantic category: execution progress, activity state, coverage, completion, health, readiness, risk, pressure, usage, capacity, score, generation state, or unknown/ambiguous. | docs/ui/tenantpilot-enterprise-ui-standards.md |
standards patch lane |
| IND-STD-002 | determinate-progress | Some ratios and percentages outside OperationRun can look like execution progress. | Determinate progress UI is allowed only when a real numerator and denominator or real percent exists, the measured category is explicit, and the cue does not imply execution progress unless it measures active execution. | docs/ui/tenantpilot-enterprise-ui-standards.md |
standards patch lane |
| IND-STD-003 | freshness | Coverage, provider permissions, evidence, and review states can look current even when their basis is missing or stale. | Indicators must expose missing, stale, or unknown basis as state or supporting copy. Missing data must not render as healthy zero, calm, complete, or ready by default. | docs/ui/tenantpilot-enterprise-ui-standards.md |
standards patch lane |
| IND-STD-004 | wording | Labels such as Active operations, No current result, Posture score, and customer-safe output states can invite the wrong reading. |
Labels must state the measured thing, not just a generic status noun. Avoid progress, score, health, ready, or active unless the source truth supports that exact meaning. |
docs/ui/tenantpilot-enterprise-ui-standards.md |
standards patch lane |
| IND-STD-005 | dashboard | Tenant dashboard rollups combine provider permissions, findings, recovery, backup, evidence, reviews, and operations. | Dashboard indicators must remain decision-first and must not collapse execution outcome, data completeness, governance result, lifecycle/readiness, risk pressure, and customer handoff maturity into one unexplained status. | docs/ui/tenantpilot-enterprise-ui-standards.md |
metric/indicator contract foundation |
| IND-STD-006 | anti-pattern | Bars, counts, scores, badges, and colored cards can reuse the same visual language for incompatible meanings. | Forbidden: fake percentages; progress bars for provider health, risk, pressure, usage, score, or readiness without real denominator; outcome counters reused as progress; score values with no scale/direction; stale data shown as current truth; usage/capacity shown as success progress. | docs/ui/tenantpilot-enterprise-ui-standards.md |
standards patch lane |
| IND-STD-007 | provider-boundary | Provider health and permission posture can leak Microsoft-shaped terms into platform-core semantics. | Provider-owned cues must be labeled as provider posture or provider readiness examples. They must not define platform-core health, readiness, score, or success semantics by default. | docs/ui/tenantpilot-enterprise-ui-standards.md |
metric/indicator contract foundation |
| IND-STD-008 | quality-gate | Future contributors can add local progress-like UI without category/freshness/denominator review. | New or changed indicator surfaces should include a review note answering: what is measured, which category applies, whether direction is higher/lower/neutral, how fresh the source is, what missing data means, and what action the operator should take. | .specify/templates/* later, plus active specs |
quality gate lane |
Applied Target-Doc Delta
The standards target should now include a product-wide "Indicator Semantics" rule block near the existing Progress Bar Pattern. The block must stay concise and not copy the full inventory.
Minimum applied guidance:
- Indicators are not interchangeable. A bar, percentage, score, KPI count, status badge, readiness label, health label, risk count, usage/capacity value, or generation-state hint must state what it measures.
- Execution progress is only active work progress. Coverage, review completion, provider health, backup posture, risk pressure, usage/capacity, scores, and generation state must not borrow execution-progress language.
- Determinate bars require truthful numerator/denominator or percent values and accessible visible text.
- Unknown, stale, or missing source truth must remain visible and must not default to calm, ready, healthy, complete, or zero.
- Provider-owned health and permission posture stay provider examples, not platform-core default semantics.
- Future runtime work must split into contract, component, quality-gate, and migration lanes instead of treating this audit as permission for broad UI rewrite.
Anti-Patterns Derived From Inventory
| Anti-pattern | Example inventory entries | Required later disposition |
|---|---|---|
| Activity-only bar reads like determinate progress | IND-002 |
Standards language first; component lane later if visual drift persists. |
| Missing basis reads like calm or zero | IND-008, IND-022, IND-037 |
Copy-only or standards clarification before contract rollout. |
| Label promises the wrong metric | IND-020 |
Copy-only clarification; product decision only if label semantics are intentionally retained. |
| Score has no direction or scale | IND-031, IND-032 |
Contract follow-up before shared component or migration. |
| Provider health becomes platform health | IND-028, IND-033 |
Provider-boundary standards and contract fields. |
| Review completion reads like evidence completeness | IND-026, IND-029 |
Component/contract distinction between completion and generation/readiness. |
| Preview-impact ratio reads like progress | IND-036 |
Standards clarification and later component categorization. |
Review Outcome
- The standards delta is applied at a documentation level only.
- No runtime component, contract, migration, quality gate, or test family is introduced by this slice.
- Later specs may quote this delta as input, but must still define their own implementation scope and proof lane.