# 01 · salons.site CHALLENGER (M-20261030-001 S1) — private concept

**What:** a multi-tenant salons.site prototype: hub (`index.html`), 5 pro pages (`pros/` p1 Tayler'd Manes hair, p2 barber, p3 nails, p4 skin, p5 brows/lash/sugaring), the operator directory (`directory/`, HIVE), and a pro editor (`editor/`). Static HTML/CSS/vanilla JS. `serve.py` serves on 127.0.0.1 with noindex.
**Start here:** `M-20261030-001-challenger/README.md` (idea list, commercial recommendation, Public swap plan, tests, head-to-head, provenance, known gaps) and `BUILD-LOG.md`.

## State at snapshot (2026-10-30 ~03:00 CDT)
- Built and QA-passed by Grok Bot (00:27–03:01 CDT, $0). 1 tap to book on every pro; CTA coverage 88.9–100% at 360/390/430; LCP 160–260ms at 4x CPU (lab); CLS ≤0.01; 0 overflow / small targets / missing alt / JS errors; reduced motion works. Pill ruling applied (0 overlaps).
- Editor: change look 1 tap; feature 3 photos 6 taps; hide service + star pick 3 taps; persists after reload (localStorage — not a backend).
- **Swap-ready:** `data/slots.json` = 304 media/text slots, all `public_ready=false`. `_swap/` holds swap run proofs (run 2 passed on 8 pages). This is the seam for the production data pipeline.
- Head-to-head still: `_capture/compare/side-by-side-390.png`. Swap proof: `_capture/swap/real-vs-swap-390.png`.
- **In flight:** Lens (bookings audit) and Muse (design score) head-to-head reviews vs BeautyOS / Rogers / Salon Park were not back at snapshot.

## Known gaps (from Grok Bot, honest list)
No claim flow or Standard/Pro toggle; no Call / Save contact / reviews link (Salon Park has them); Rogers shows tier + claim choice in first screen (we don't); BeautyOS has multi-artist profiles, save/share, directory search; desktop clean but not designed; p3 landscape hero needs heavy scrim; p4 menu rows say only "Book" at 360/390; pill only up 0–22% of scroll; p1 "82 reviews" from stored evidence 2026-10-28; focal points come from slot fields, not detection; perf = local lab.

## prior-labs/M-20261029-011
Earlier S3 Pro-profile archetype lab (fictional pros: Line/The Ticket barber, Luma/The Almond nails, Soli/The Path skin; directory cards; layout picker; Muse mocks against Rogers/Salon Park). Reference for token sets and archetypes.

## Not in this copy
`_build/node_modules` (run `npm ci` where a package.json exists), and `_capture/*.webm` scroll recordings (originals stay on the Grok Bot box at /workspace/beautyos-lab/M-20261030-001-challenger/_capture/). Media rights UNKNOWN — private until each pro claims and grants rights.

## Muse head-to-head review (S2-muse, 2026-10-30 ~03:20 CDT) — FAIL on booking
Full review: `../02-styled-page-concepts/muse-briefs/M-20261030-001/S2-MUSE-REVIEW.md` (+ `verdicts.json`, `sheet-p1…p5-390.png`, `compare-sheet-390.png`, `audit/`). Lens review still pending.
- **All 5 pro pages FAIL gate G5 (booking): p1 65 · p2 64 · p3 64 · p4 57 · p5 61 /100.** Even with booking fixed ≈ p1 74 · p2 73 · p3 73 · p4 66 · p5 70 — still under the 82 bar.
- Operator-theme adaptation scored 5/10.

### NEW platform booking rule for salons.site pro pages (Muse)
An **opaque, docked, full-width booking bar ≥64px** with safe-area padding; page content padded beneath it; **visible for ≥90% of scroll depth**, hidden only while the finale CTA is on screen. **Only ≥56px targets count** toward coverage. (The floating pill stays an option for cinematic Styled.page sites only.)

### First engineering backlog — Muse's top fixes, ranked
1. **Docked booking bar (kit)** replacing the floating-pill guard: ≥64px, opaque, bottom padding; coverage counts only ≥56px targets and must reach 90%. Clears G5 on all five.
2. **Inline booking targets ≥56px:** whole menu row tappable; "Book" on rows at every width (heading + all other CTAs say "Book with <Name>", aria-label keeps full verb); one "Book this look" per work section in grid modes (per card only in rails), 56px.
3. **Truth fixes:** p2 map each photo to the barber who cut it and book that barber; p2/p3/p4 remove builder-written visible captions or replace with the pro's own words, strike "hand-painted" and "e-file"; p5 verbatim captions; p3 availability line at the CTA.
4. **Openings carry the best finished result at ≥62% of the 390 fold:** p4 lead with a result, not a sheet mask; p5 lead with the sugaring clip or a finished brow, drop duplicate name; p1 opening = her best blonde, not the room.
5. **Landscape-opening rule:** at ≤430px stage ≥4:5 cover-cropped on the slot focal; if the focal can't survive, name-below layout (photo in full, no scrim, name on ground colour); scrim solid band ≤35% of stage; editor shows the crop and suggests a portrait photo.
6. **Operator theme tier + operator chrome slot:** Standard wears the operator theme.
7. **Move p1 onto the kit;** Tone Rail becomes a kit module.
8. **Three real block orders** (e.g. editorial-stack, gallery-first, menu-first) so pages stop sharing one silhouette.
9. **Craft:** p3 Meet column squeeze + duplicate "Suite 22"; p2 logo square, roster/menu duplication; p5 logo black box, 7 near-identical circles (mix brows/body/sugaring); p1 menu duplicates, stitch line real motif or drop; ≈120px dead band under footers. (p4: move "Product pick up" to "Everything else"; strip emoji variation selector from "HYDRAFACIAL™️".)
10. **Performance:** throttled-4G LCP and a real-device pass.

### Standard vs Pro visual split — **Muse's recommendation, PENDING Tony**
Booking is **identical and full-strength in both tiers** (docked bar, 56px opening/final CTAs, 1 tap, full menu with durations + "what to expect", "Book this look", one verb). Clients never see upgrade prompts.
- **Standard (free):** operator theme · 3 static photos · 1 layout (fixed block order) · no signature module · fades only.
- **Pro (previewed before claim):** her own palette, display font and logo · full portfolio + video · signature module per trade (Tone Rail, Chair Switch, Removal Check, Skin Path, Area Map) · 3 layouts (block orders).
- Day-30 drop must visibly lose her own look, motion and signature, not just photos.

## Lens head-to-head review (S2-lens, M-20261030-001, 2026-10-30 03:05–03:30 CDT) — `lens-review-M-20261030-001/`
Files: REPORT.md, metrics.json, shots/, the measuring scripts, before/after checksums (1,382 challenger files unchanged). raw/, lh/ (28MB Lighthouse JSON) and frames/ stay on the Grok Bot box.
- **Verdict:** the best *booking page* of the four (challenger vs BeautyOS live/V2, Rogers, Salon Park), but **not yet a better *platform* base than BeautyOS**.
- **Plan:** put the challenger's page design (block layouts, Book this look, per-service booking, look/colour editor) on **BeautyOS's multi-entity data model** (business, location, affiliation, professional).
- **Bring over:** Muse's always-up docked booking bar; call and save-contact; reviews; visible prices; EN/ES; one booking verb on 56px+ buttons.
- **Gaps to build:** editor text fields and a publish step; the claim screen with the Standard/Pro choice; directory search; service-level booking links (today every "Book this look" goes to the booking-site root); a concept note on pro pages.
- **Performance:** real Lighthouse mobile LCP is **1.35–2.93s**. Ignore the challenger's self-reported 60–260ms (lab, local).
