# Quickstart — Spec 117 Baseline Drift Engine

## Prereqs

- Docker running
- Dependencies installed: `vendor/bin/sail composer install`
- Containers up: `vendor/bin/sail up -d`

## Run the minimum checks

- Format (dirty only): `vendor/bin/sail bin pint --dirty --format agent`
- Tests (focused): `vendor/bin/sail artisan test --compact --filter=Baseline` (adjust filter to match added tests)

## Manual verification flow (admin)

1) Capture a baseline snapshot via the existing Baseline UI.
2) Trigger “Compare baseline to tenant” via the existing compare landing page.
3) Open Monitoring → the `OperationRun` for the compare:
   - Verify `context.baseline_compare.coverage` and `context.baseline_compare.evidence_gaps` are populated.
4) Open Findings:
   - Verify each finding shows a fidelity badge (`content` or `meta`).
   - Verify provenance is shown for both baseline and current evidence: fidelity, source, observed timestamp.
   - Verify filtering by fidelity works.

## Developer notes

- v1.5 compare must not fetch anything upstream. Evidence sources are strictly:
  - `PolicyVersion` (content) since baseline snapshot `captured_at`
  - Inventory meta contract (meta)
- When neither side has evidence for a subject, no finding should be created; the compare run should record an evidence gap.

## Troubleshooting

- If UI changes don’t appear, run assets: `vendor/bin/sail npm run dev`.
- If tests fail due to stale schema, run: `vendor/bin/sail artisan migrate`.
