SightLine is a mobile-first web MVP for score-based media authenticity analysis, starting with UAP/anomalous media.
V1 produces transparent, preliminary authenticity confidence reports with visible sub-scores, explicit score factors, intake context tracking, local report persistence, and uncertainty notes. It does not provide binary certification.
- Intake form with file upload and optional context:
- Claimed date/time, location, device/camera, source link, witness/source notes, original media checkbox.
- Context-aware scoring: provided context transparently improves relevant scores; missing context lowers them and generates specific findings.
- Transparent score factors: every category shows the exact rules and deltas that produced its score — no opaque "magic numbers."
- 7 category sub-scores with category-specific rationale.
- Weighted overall score (weights per
docs/SCORING_MODEL.md). - Findings sections: Supports Confidence, Lowers Confidence, Cannot Determine.
- Intake context summary on results screen.
- Report persistence: generated reports saved in browser localStorage with a recent reports list (no raw file data stored).
- Report export: Print / Save PDF via browser print, JSON export for archival.
- Report metadata: report ID, timestamp, engine version, scoring model version, module versions, SHA-256 hash, container signature (JPEG/PNG/WEBP/HEIC/HEIF magic bytes), and conservative EXIF fields where supported.
- Backwards-L watermark on score gauge.
- "Preliminary Scoring" badge on all results.
- Persistent disclaimer on every report.
- Storage warnings: non-fatal UI warning if localStorage quota is exceeded.
- Local/private processing — nothing leaves the browser.
- Copy safety tooling —
npm run copycheckscans for banned phrases.
- Event truth certification.
- Object identity conclusions.
- Legal or courtroom-level validation.
- Complete synthetic media detection.
- C2PA validation (tracked for future support).
| Category | Weight |
|---|---|
| File Integrity | 0.20 |
| Metadata / Provenance | 0.18 |
| Synthetic / AI Indicators | 0.16 |
| Editing / Manipulation Indicators | 0.16 |
| Motion / Physics Consistency | 0.12 |
| Environmental / Context Checks | 0.10 |
| Source Confidence | 0.08 |
Requirements:
- Node.js 20+
- npm 10+
npm install
npm run devOpen the URL printed by Vite (typically http://localhost:5173).
npm test # 60 unit tests
npm run test:e2e # Playwright automated core workflow
npm run build # TypeScript check + Vite production build
npm run copycheck # Scan for banned phrases in app-facing filesbash scripts/smoke-manual.sh # Prints 14-step visual checklistscripts/ffprobe-metadata.mjs uses ffprobe for video metadata if installed.
The app works without it — this is a non-blocking enrichment.
- MVP Plan
- Scoring Model
- Liability Language
- UI Direction
- Punch List
- Session Handoff
- Agent Instructions
The product brand is SightLine. Do not use alternate product names.