# RoofHero homeowner kernel — surgical v4 evidence matrix

Status: independently QA-passed candidate for Mike review; **not deployed and not approved**.

## Preservation receipt

| Artifact | SHA-256 | State |
|---|---|---|
| Original backup | `b23ed16ce9f1e0e965db644d793d64934994b298cebdccc6ea57737e94d728df` | untouched |
| Surgical v3 baseline | `1876e001a7f706fb5f57b40157173c32eb56919f560b00c6cbb3d515fa1639dd` | untouched |
| Surgical v4 candidate | `a63dc5ef991750b34e46d0627b69c6bf493609cfd84b01a497c56eb63e2d6a04` | review candidate |

Minimal source delta from v3 to v4: 207 inserted lines, 29 removed lines. The v3 `BASE_BEATS` remain embedded intact; the presented `BEATS` array preserves states 0–7 and replaces only the post-confirmation journey plus the latest behavior fixes.

## Material locks and proof

| Lock | Implemented behavior | 440 × 956 evidence | Behavior proof |
|---|---|---|---|
| Start and pending asset | Address action remains centred. Mike-supplied high-altitude city aerial remains pending; no substitute added. | `beat-00.png` | source review |
| Property → scan → scope | Correct property confirmation; all roof areas scan; active correction/help paths; scope precedes attributes. | `beat-01.png`–`beat-03.png` | BHV-001–004 |
| Scoped attribute handoff | Selected roof hero; eight known attributes; explicit `Build my Job Brief`. | `beat-04.png` | BHV-005 |
| Job Brief build | Complete ten-field template; seven known values populate; three homeowner-held gaps remain. | `beat-05.png`, `beat-05-populated.png` | BHV-006 |
| Logical question completion | Same complete Brief stays visible; `Job`, then `Reason`, then `Truck access` become active and store the homeowner's actual selected answers in place. | `beat-06.png`, `beat-06-reason.png`, `beat-06-truck-access.png` | BHV-007 |
| Brief confirmation | Ten fields complete; provisional measurement framing; edit reopens all homeowner-held fields in logical order; exact confirm CTA. | `beat-07.png` | BHV-008–009 |
| Project Room arrival | Direct handoff to permanent project home; now/next/waiting; no premature Prices nav. | `beat-08.png` | BHV-010 |
| Live Job Pack preparation | Brief shown as completed input; Roover-owned work shown in plain stages; illustrative disclosure; blueprint remains the truthful state until measurement-ready; no fake timer/percentage. | `beat-09.png`, `beat-10.png` | BHV-011 |
| Measurement-ready event | Meaningful update; homeowner does not validate technical measurements; material action unlocks. | `beat-11.png` | BHV-012 |
| 3D and material choice | 3D roof becomes hero when ready; material remains deliberately unresolved; confirming it lands on Job Pack complete and later edits do not silently enter matching. | `beat-12.png`, `beat-13.png` | BHV-013–013A |
| Missing Job Pack-complete state | Chosen material completes pack; market entry is explicit and optional; nothing auto-sent. | `beat-14.png` | BHV-014 |
| Matching | Considered transition, prototype-disclosed. | `beat-15.png` | source + visual |
| Anonymous suitable set | Seven anonymous matched cards; no interest or price implied. | `beat-16.png` | BHV-015 |
| Interest and indicative bands | Five real interest signals carry bands; choose one to five; identity still anonymous. | `beat-17.png` | BHV-016–017 |
| Formal-pricing progress and identity | Delivered/opened/reviewing/accepted events; names appear only after formal-pricing acceptance. | `beat-18.png` | BHV-018 |
| Formal prices in place | Four named formal prices tied to same Job Pack; one quiet anonymous request remains; deep detail on demand. | `beat-19.png` | BHV-019 |
| Compare in Prices | Compare is a mode on the same surface; actual differences; explicit site-visit progression. | `beat-20.png` | BHV-020–021 |
| One site visit | One preferred roofer/time; all visible slots work; selected time carries into Home; not final-quote acceptance; runner-up prices retained. | `beat-21.png` | BHV-021–022 |
| Home and Activity | Current project era is preserved across Home, My roof, Prices and Activity; no rewind or future-event leak; current booked visit first; completed history below; Activity records the actual chosen material. | `beat-22.png`, `beat-23.png` | BHV-022A–023A |
| Review notes | Kernel/Psychology/UX notes exist for every state and remain hidden on mobile. | wide review surface only | BHV-024 |
| Claim and runtime safety | Removed unsupported timing/price-hold promises; exercised path produced no page errors. | all states | BHV-025–026 |

## Verification artifacts

- All-state render manifest: `kernel_surgical_v4_screens/states.json` — 24 states.
- Screenshots: `kernel_surgical_v4_screens/beat-00.png` through `beat-23.png`, plus three material intra-state captures for Job Brief population and later logical questions; all 27 captures are 440 × 956.
- Automated interaction proof: `kernel_surgical_v4_evidence/behavior-tests.json` — 33 passed, 0 failed.
- Independent QA receipt: `kernel_surgical_v4_evidence/independent-qa-receipt.md` — PASS on exact frozen SHA; 41 independent assertions passed, 0 failed.

## Explicit boundary

- No deployment occurred.
- No live job, homeowner, roofer, CRM, database, paid API, send, or production write was used.
- Prototype event states are illustrative and visibly labelled; a production implementation must be event-backed.
- The high-altitude city aerial remains a Mike-supplied pending asset.
