Integrity Check

Six pillars. One clear report.

This is a sample — fictional findings so you can see the report shape. Run one on your repo.

demo/sample-app

main · demo

Each finding had to survive a code review and a second pass that tries to throw false alarms out.

RISK

This is a sample Integrity Check report so you can see the six pillars and fix list before connecting GitHub. Real runs have a reviewer read the code before findings are published.

Security

VIOLATION

A demo API key pattern was found in config.

Stability

RISK

Demo mode returns a fake dashboard payload.

SSOT

RISK

Dashboard and PDF recompute the same average separately.

Speed

PASS

No blanket cache clears spotted in the sample.

Similarity

RISK

Empty states and tooltips differ across sibling lists.

Simplicity

RISK

The main list asks for four filters before showing Priority items.

1.

Security

VIOLATION

A demo API key pattern was found in config.

  • VIOLATIONsrc/config.ts

    Impact: A secret appears to be hardcoded in source.

    From the code: export const apiKey = "sk-live-example-not-a-real-key";

    Fix: Move secrets to environment variables and rotate the key.

2.

Stability

RISK

Demo mode returns a fake dashboard payload.

  • RISKsrc/api/dashboard.ts

    Impact: Demo users may see numbers that live never produces.

    Fix: Seed real data and use the same API for demo and live.

3.

SSOT

RISK

Dashboard and PDF recompute the same average separately.

  • RISKsrc/pages/Dashboard.tsx

    Impact: Two screens can disagree on the same metric.

    Fix: Compute once on the server; both screens read that result.

4.

Speed

PASS

No blanket cache clears spotted in the sample.

No findings for this pillar.

5.

Similarity

RISK

Empty states and tooltips differ across sibling lists.

  • RISKsrc/components/

    Impact: Lists feel like different products.

    Fix: One EmptyState and one Tooltip pattern for every list.

6.

Simplicity

RISK

The main list asks for four filters before showing Priority items.

  • RISKsrc/pages/Teachers.tsx

    Impact: Leaders must remember filters to see what needs attention.

    Fix: Default to Priority; keep a short search.

7. Fix priority

Paste into Cursor or another coding agent. Prefer one finding at a time unless you are ready for the full list.

  1. [Security] Remove hardcoded secrets and rotate keys (src/config.ts)
  2. [SSOT] One server average for Dashboard and PDF
  3. [Stability] Stop returning fake demo payloads
  4. [Similarity] Shared empty states and tooltips
  5. [Simplicity] Default the main list to what needs attention