Integrity quality
Self-healing, honestly — promised and proven
Program SELF-HEALING & DATA INTEGRITY detects and corrects broken data. The risk is that a "self-healing" story becomes vanity — looking like it fixes more than it does, or hiding what's still broken. This page renders the SAME manifest the CI gate asserts against — so what you read here is exactly what is enforced in code.
The honesty guarantees
- Problems are shown, never hidden — broken records, dead images, quarantined and stale data are surfaced with real counts, not rounded away.
- Healing is never overstated — we describe what the system actually corrects (and that it is gradual), never claim it fixes more than it does.
- Dead and broken states are honest — a dead image shows a clean fallback marked unavailable; a pulled product is marked "no longer available", never left as a phantom.
- The basis is shown — every published figure is aggregate-only with its as-of date; per-source internals are not exposed, and absence is stated plainly.
- What we can't fix is stated — sites that are offline, data never published, and the time healing takes are admitted with equal weight to the wins.
Integrity surfaces
User report → heal loop (this looks wrong / image missing / no longer available)
HL-25Purpose: A low-friction, pre-scoped way for a user looking AT a broken/dead/unverified state to send that honest signal into the same heal pipeline (real products/{id}/report endpoint). The acknowledgement is honest — "received", never "fixed" — and nothing changes on the listing automatically.
- Shows problems (never hides them): Yes
- Degrades honestly on missing data: Yes
- Public surface: Arabic-first + RTL
Admin data-integrity dashboard (aggregate health)
HL-26Purpose: Aggregates the real integrity signals (broken-extraction classes, source drift, plausibility quarantine, freshness/staleness) into one honest at-a-glance read; read-only, links to each detail page.
- Shows problems (never hides them): Yes
- Degrades honestly on missing data: Yes
- Admin surface: English-only (by policy)
Public integrity record (how we keep data clean & self-heal)
HL-27Purpose: The public, honest story: detect dead images/listings, quarantine before showing, correct what we can — and state the gaps we cannot fix with equal weight. Cites real aggregate signals where available.
- Shows problems (never hides them): Yes
- Degrades honestly on missing data: Yes
- Public surface: Arabic-first + RTL
Self-healing QA gate (the inspectable quality page)
HL-30Purpose: The public, auditable page that renders THIS manifest — so what a visitor reads is exactly what the CI gate enforces about the self-healing honesty guarantees.
- Shows problems (never hides them): Yes
- Degrades honestly on missing data: Yes
- Public surface: Arabic-first + RTL
Enforced in CI by
Every claim above is asserted by a unit test against the real source file. Any new integrity surface that hides a problem, overstates healing, or fakes a clean status fails the build.
__tests__/integrity/self-healing-honesty.test.ts · components/integrity/integrity-manifest.ts