# Pour it Forward — Mobile wireframes (Notion 2.3)

| Field | Value |
|-------|-------|
| **Task** | Notion **2.3** — Mobile wireframes: Send, Claim, Wallet how-to, Venue list |
| **Maps to** | PRD §7 (surfaces), **§8** (user flows), **§12** (acceptance checklist) |
| **Owner** | DesignBot (PIF) |
| **Date** | 2026-09-21 (CT) |
| **Aesthetic** | Low-fi wireframe (grayscale + blueprint blue) — **not** polished UI |
| **Brand** | Working wordmark **Pour it Forward** — **TEMPORARY · pending trademark clearance**. Gray placeholder mark only; no final logo invented. |

## What’s in this folder

| File | Purpose |
|------|---------|
| `index.html` | Board index linking all screens + §12 checklist |
| `send.html` | Send flow (S1–S9) + payment/age errors + sender status stubs |
| `claim.html` | Claim flow (C1–C8) + Wallet how-to iOS/Android + claim errors + recipient status stubs |
| `venues.html` | Venue list, detail, empty stub, table-tent content block |
| `wireframe.css` | Shared phone-frame + wireframe atom styles (no build step) |
| `README.md` | This file |

Open any `.html` in a browser. Phone frames are ~**390×844**. Amber boxes are EngBot annotations.

## Screens covered

### Send (PRD §8.1)
1. Age gate (sender 21+ + recipient assertion + ToS)
2. Recipient phone (US, masked preview, contacts PE)
3. Amount chips ($20/$40/$60 + custom)
4. Tip buffer (15%/20%/custom/$0)
5. Optional preferred venue (no preference vs pick)
6. Message (≤160)
7. Fee breakdown (explicit before pay)
8. Pay (Stripe Checkout/PaymentIntent **placeholder only**)
9. Confirmation (paid · waiting claim)

Errors: payment fail, under-21 decline.  
Status stubs: paid / claimed / active / expired / refunded (sender).

### Claim + Wallet (PRD §8.2)
1. SMS landing (draft copy)
2. Age gate (recipient)
3. Phone OTP (soft auth)
4. Gift summary (load, message, suggested venue, expiry)
5. Claim CTA → provision
6. **Wallet how-to — iOS / Apple Wallet** (tab)
7. **Wallet how-to — Android / Google Wallet** (tab + NFC tip)
8. Balance / success (last-4, expiry, venues CTA)

Errors: expired link, already claimed, provisioning fail, desktop-on-claim warning.  
Status stubs: recipient paid/claimed/active/expired/refunded.

### Venues
- Pilot city list (placeholder **[Pilot City]**)
- Venue detail (name, address, “cards welcome”)
- Empty list (still allow no-preference send)
- Table tent **content block** (staff script)

## §12 Acceptance checklist notes

| Checklist item | Status in this pack |
|----------------|---------------------|
| Send: age → phone → amount → tip → venue → message → fee → pay → confirm | Covered in `send.html` |
| Claim: SMS → age → OTP → summary → claim → Wallet iOS+Android → balance | Covered in `claim.html` |
| Venue list + detail | Covered in `venues.html` |
| Status: sender & recipient paid/claimed/active/expired/refunded | Stubs on send + claim |
| Empty/error: pay fail, expired, provision fail, desktop warning | Covered |
| Table tent one-pager content block | `venues.html` V4 (content only, not print PDF) |

## PRD gaps / assumptions (for EngBot + Steve)

1. **Pilot city** unnamed → UI uses `[Pilot City]` (OQ #2).
2. **Amount min/max** TBD → chips + custom field; caps not numeric-locked (OQ #4).
3. **Fee base** = face + tip buffer (PRD v1 default); flag if Steve locks face-only (OQ #5).
4. **Claim TTL 7d / spend TTL 30d from claim** shown as defaults (OQ #6).
5. **Preferred venue** = soft suggest only (recommended lock).
6. **OTP before provision** = yes in wireframes (recommended).
7. Venue names (`The Copper Still`, etc.) are **wireframe placeholders**, not real pilot partners.
8. Domain `pif.app` / `support@[domain]` are placeholders.
9. No payment/production code in this pack — Stripe is a dashed placeholder box.
10. Exploratory brand refs: see sibling `assets/refs/` if copied from box `pif-refs/` (separate DesignBot deliverable). This wireframe pack does **not** recreate the mood pack.

## Mac Studio target path

```
/Users/steveschmidt/GrokBot/pour-it-forward/assets/wireframes/
```

machineId: `7936f22e-688d-43bf-8460-2f1ab608717a`

Box staging (this package):

```
/workspace/pour-it-forward/assets/wireframes/
```

Parent: use **CopyFromBox** (see `COPY_MANIFEST.txt` / `DELIVERY_STATUS.md`). This executor cannot write `/Users/...` directly.

## Do not

- Treat wordmark as final trademarked brand
- Ship these frames as production UI chrome
- Mark Notion 2.3 Done from this package (parent owns status)
