# Q2 Audit Bundle: lucine

**Generated:** 2026-07-27T18:29:09.989Z
**Baseline:** V1 (data/lucine/runs/2026-06-17_19-56-12)
**Current:** data/lucine
**Overall GEO delta:** 45.18 → 36.28 (down)

**Data-quality warnings:**
- `scoring_version_mismatch`: Baseline scoring_version=null (pre-v2) but current=2. Numeric deltas conflate real client change with a scoring-algorithm change. Rerun the baseline with `bun run benchmark.ts --recompute` (or the bundle script equivalent) for apples-to-apples.
- `platform_model_drift`: chatgpt used different model(s) between snapshots: baseline=[gpt-4o-search-preview] vs current=[gpt-4o]. Any per-platform delta for chatgpt conflates provider-side change with real client visibility change. Rerun the current snapshot with matching model config, or re-establish the baseline.
- `hallucinated_prose_numbers`: Delta narrative contains 3 number(s) not found in either snapshot's analysis: 41.98, 14.29, 84. Template bug — narrative kept but flag before shipping.

---

## Contents

| File | Role | Status |
|------|------|--------|
| `report-Q2-2026-07-27.md` | Full GEO report with Change-vs-baseline section prepended | present (9135 bytes) |
| `delta_report.md` | Standalone delta report (also embedded in main report) | present |
| `delta_report.json` | Delta report data — programmatic access | present |
| `vetting_dossier.json` | Machine-checked claims ledger — VERIFIED/UNVERIFIED/MISMATCH counts per report claim | present (99851 bytes) |
| `vetting_dossier.html` | Human-readable dossier for client review | present (92396 bytes) |
| `action_plan_v3.json` | Prioritized action plan (v3) | present (30158 bytes) |
| `report_copy.json` | Structured hardened prose (six sections) | present (27508 bytes) |
| `analysis.json` | Current-state analysis (score interpretation, gap, displacement, SoV) | present (19478 bytes) |
| `scores.json` | Current-state raw scores | present (12655 bytes) |
| `parity-report.md` | Browser-vs-API parity report (validates methodology) | MISSING — optional |
| `parity-report.json` | Browser-vs-API parity data | MISSING — optional |

---

## How this bundle was produced

1. **Baseline resolved** from `data/lucine/baselines.json` (label: `v1`)
2. **Current-state artifacts read** from `data/lucine/` top level
3. **Delta computed** by `src/delta/` — pure functions over both snapshots (no LLM calls)
4. **Narrative composed** via `src/delta/narrate.ts` template, validated against allowed-numbers registry (union of both snapshots)
5. **Main report regenerated** via `src/report.ts` with delta section injected before Executive Summary
6. **Essential artifacts copied** — dossier, scores, analysis, action plan, parity (if present)
7. **This MANIFEST written**

_All numeric claims in the reports trace to either the baseline snapshot or the current-state snapshot; see `vetting_dossier.json` for the per-claim verification ledger._
