# SM-CAMPAIGNS-01 R2 — Interaction Test Evidence

**Date:** 2026-11-03  
**Method:** Playwright Chromium against `http://127.0.0.1:8777` + Cursor browser CDP spot-checks  
**Raw JSON:** `evidence/INTERACTION_RAW.json`  
**Result:** **36 / 36 PASS** (12 checks × Y1/Y2/Y3)

Screenshots: `evidence/Y{1,2,3}_{desktop_pending,desktop_sequence,desktop_active,mobile}.png`

---

## Essential interaction matrix

For each direction, starting from a fresh page load unless noted.

| ID | Start | Action | Expected | Observed | Result |
|----|-------|--------|----------|----------|--------|
| pending-metrics | Pending Home | Observe chrome metrics | No Sent / Replies | `Recipients 248` + Example data only | **PASS** ×3 |
| insert-var | Sequence | Insert Variable → pick | Modal opens; `{{…}}` inserted; dirty | modal+token dirty=true | **PASS** ×3 |
| save | Dirty Sequence | Save Sequence | Status Saved; bar hidden | Saved | **PASS** ×3 |
| template | Sequence | Apply Template | Subject/body applied | e.g. Cold intro subject | **PASS** ×3 |
| fallbacks | Sequence | Fallbacks | Modal opens | open | **PASS** ×3 |
| followup-num | 3 steps | Add follow-up | Label `Follow-up 3` (not 21) | Follow-up 3 | **PASS** ×3 |
| preview | Sequence | Preview Step/Full + change recipient | One modal; meta updates | Recipient: James Chen… | **PASS** ×3 |
| ready-start | Pending + set TZ + save | Start control | Enabled | disabled=false | **PASS** ×3 |
| keep-editing | Launch modal | Dismiss | Label **Keep editing** | present | **PASS** ×3 |
| active | Active Home | Metrics + diagnostics | 91 sent + Why-not-sending | 248/91/7/186 + diag | **PASS** ×3 |
| weekdays | Schedule | Day chips | Mon…Sun | Mon,Tue,Wed,Thu,Fri,Sat,Sun | **PASS** ×3 |
| stop-on-reply | Sequence | Inspector | Toggle present (not Advanced-only) | present | **PASS** ×3 |

---

## V-finding cross-check (exercised, not appearance-only)

| V | Evidence |
|---|----------|
| V-01 | insert-var, template, fallbacks PASS on all directions |
| V-02 | pending-metrics vs active PASS |
| V-03 | ready-start after TZ PASS; Start disabled before TZ (browser + screenshots) |
| V-04 | save PASS; single Save Sequence control |
| V-05 | keep-editing PASS; Cancel Campaign separate |
| V-06 | Spine + relative waits in sequence screenshots; **no** projected dates (intentional) |
| V-07 | Shared engine/vocabulary across Y1–Y3 |
| V-08 | No D-code pills in product chrome; Review notes panel |
| V-09 | Schedule factor deep-link used in ready-start path |
| V-10 | preview PASS |
| V-11 | stop-on-reply PASS |
| V-12 | active diagnostics PASS (expanded checks + collapsed clears) |
| V-13 | Lifecycle demo excludes Loading; paused/cancelled copy in data.js |
| V-14 | followup-num PASS |
| V-15 | weekdays PASS; Showing 5 of 248 in audience |

---

## Responsive

Mobile screenshots captured at 390×844 for each direction. Sequence spine stacks; rails/tabs remain reachable. Dense editing on narrow screens remains usable but not pixel-polished.

---

## Not claimed tested

- Full keyboard / screen-reader audit  
- Real visual rich-text engine  
- CSV import wizard / Continuum fleet search  
- Cloudflare preview deploy
