# Referral engagement test — operator guide (Graham)

**Audience:** You (MAGGie Pro owner / operator)  
**Purpose:** After Hatice (or any Partner) completes onboarding, **you** run the member-side referral engagement path and capture whether the wrap → contact → (future) fee workflow holds together.  
**Pair with:** [HATICE_PARTNER_ONBOARDING_GUIDE.md](./HATICE_PARTNER_ONBOARDING_GUIDE.md)

---

## 0) Prep

- [ ] Hatice has finished the **member** walk (`Testing_HY`) — [HATICE_CUSTOMER_JOURNEY_SCRIPT.md](./HATICE_CUSTOMER_JOURNEY_SCRIPT.md) — **and** Part A–D of her Partner guide (or you walk Partner track yourself first).  
- [ ] Note her canonical links: aitcHes, Bom Dia tools, LinkedIn, contact email.  
- [ ] Browser: use a **normal** window for Partner onboarding; use a **separate profile / private window** for the “member” referral test so localStorage does not collide.  
- [ ] Site URL: live Netlify or `npm run dev` / local Pro root.

**Useful localStorage keys (DevTools → Application):**

| Key | Meaning |
|-----|---------|
| `maggie.pro.partnerOnboarding` | Partner pathway, identity, referral assets |
| `maggie.pro.mock.partnerReferral` | Mock referral requests from the frame |
| `maggie.pro.mock.partnerFeedback` | Hatice process feedback (if she used the feedback page) |
| `maggie.pro.mock.expertJourneyNotes` | Notes from the Testing_HY member walk |
| Account `cohortCode` | Should be `Testing_HY` in the **member** profile after persona load |

---

## 1) Verify Partner onboarding state

1. Open [coach-onboarding.html?track=partner](../coach-onboarding.html?track=partner) in the Partner browser.  
2. Confirm status reaches **`assets_linked`** (Step 9 JSON).  
3. Spot-check:
   - [ ] `identity.emailVerified === true`  
   - [ ] `identity.attestNoSpoof === true`  
   - [ ] Required `referralLinks` present: contact, tools[], capabilities, successes, testimonials  
   - [ ] Tools include Bom Dia URLs she intends  
4. Optional: export via Transparency Center or copy Step 9 JSON into a notes file dated today.

If she could not finish testimonials, decide: waive for stress-test or ask for a placeholder “coming soon” page URL.

---

## 2) Review her process feedback

1. Open [partner-process-feedback.html](../mockups/partner-process-feedback.html) **in her browser profile** (or ask her to send the downloaded JSON).  
2. Read friction / fee / IP notes.  
3. Log follow-ups in your tracker (copy, UX, Terms, Square §7A/§7B, [SITE_SECURITY_TODO.md](../SITE_SECURITY_TODO.md) §6A spam).

---

## 3) Member journey — referral engagement (mock)

Use a **clean member browser profile** (not Hatice’s Partner profile, and not her `Testing_HY` Alex profile unless you are replaying her exact walk).

### 3.0 Optional — replay naive path

1. Open [expert-customer-journey.html](../mockups/expert-customer-journey.html)  
2. Load `Testing_HY`  
3. Ask one Wayfarer tutor line. Note whether MAGGie offers environment / a specialist **without** opening the wrap yourself.

### 3.1 Discover the Partner wrap

1. Open [mockups/partner-frame-hatice.html](../mockups/partner-frame-hatice.html)  
   (Unlinked on purpose — simulates a future “explore this knowledge area → meet Partner” surface.)  
2. Checklist:
   - [ ] Partner name / lane / attribution clear (MAGGie is wrap, not author)  
   - [ ] Capabilities CTA → aitcHes (or her linked capabilities URL)  
   - [ ] Tools load in iframe **or** fallback “Launch on Partner site” works  
   - [ ] Proof links appear if onboarding assets were saved in **this** profile — if empty, either copy Partner localStorage or rely on SAMPLE_ASSETS in the mock (document which)

**Tip:** To test with *her* real asset pack in the member profile, temporarily paste `maggie.pro.partnerOnboarding` from Partner DevTools into the member profile, then reload the mock.

### 3.2 Trigger referral request

1. Click **Contact / request referral**.  
2. Submit as a fictional member (name, email, need — e.g. “executive workspace for focus”).  
3. Confirm toast / status and that `maggie.pro.mock.partnerReferral` has a new row with:
   - Partner name  
   - Member need  
   - `nextSteps` mentioning notify Partner + Square fee after contract  

### 3.3 Operator “handoff” (manual until APIs exist)

Simulate production:

1. **Notify Partner** — email Hatice the member need + ask if she will take a discovery call (do not spam; one message).  
2. If she accepts and a **consulting contract** exists (even a one-pager stub for the test), record:
   - Referral date  
   - Contract date  
   - Intended referral fee (default suggestion US$50/mo)  
3. **Square fee entry** — not automated yet. Follow [Setup_Square.md § Partner referral fees](../Setup_Square.md#partner-referral-fees) as the wiring TODO; for this test, write the fee + D-10 reminder expectation in your notes only.

---

## 4) Anti-abuse spot checks (while testing)

From [SITE_SECURITY_TODO.md §6A](../SITE_SECURITY_TODO.md):

- [ ] Referral CTA does not open an open-ended spam `mailto:` with attacker-controlled BCC  
- [ ] Mock only stores locally — no bulk send  
- [ ] `coachEmail` / similar query params are not freely injectable on public pages for this mock  

Note gaps for the security backlog.

---

## 5) Pass / fail criteria (stress-test)

**Pass if:**

- Hatice completed Partner apply + onboarding + asset linking (or documented blockers).  
- You completed a mock referral request and a manual handoff note.  
- Feedback captured (JSON or email).  
- No IP confusion (Bom Dia/aitcHes clearly hers).  

**Fail / follow-up if:**

- Identity or asset steps blocked without a workaround.  
- Fee story unclear to Hatice.  
- Frame steals recognition or implies MAGGie owns her tools.  
- Referral mock cannot be found in localStorage / no operator trail.

---

## 6) After the test — your action list

| Priority | Action |
|----------|--------|
| P0 | Fold Hatice feedback into copy on `coaches.html` / onboarding |
| P0 | Wire production email OTP (§7B) so codes are not shown on screen |
| P1 | Partner directory page (replace unlinked mock as entry) |
| P1 | Mediated referral notify API + anti-spam (§6A) |
| P2 | Square referral-fee subscription (§7A) + D-10 reminders |
| P2 | Real testimonials slot content with her |

---

## 7) Quick command cheatsheet (local)

```text
Member journey (Testing_HY): /mockups/expert-customer-journey.html
Hatice member script: /docs/HATICE_CUSTOMER_JOURNEY_SCRIPT.md
Expert journey template: /docs/EXPERT_CUSTOMER_JOURNEY_TEMPLATE.md
Partner onboarding:   /coach-onboarding.html?track=partner
Partner apply:        /coaches.html?track=partner
Partner frame mock:   /mockups/partner-frame-hatice.html
Process feedback:     /mockups/partner-process-feedback.html
Hatice Partner guide: /docs/HATICE_PARTNER_ONBOARDING_GUIDE.md
This guide:           /docs/GRAHAM_REFERRAL_ENGAGEMENT_TEST.md
```

Clear Partner state (only if re-testing from scratch): delete `maggie.pro.partnerOnboarding` in DevTools, then reload onboarding.
