cocottetech/@platform/codebase/@features/ai-copilot/docs/reviews-list.screen.md
natalie 1b719e1fd7 chore(bootstrap): initial V4 commit
Clean successor to V3 (forge: lilith/atlilith). Seeded from local Mac
working tree at ~/Code/@projects/@cocottetech/. node_modules and build
artifacts excluded via .gitignore.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 08:11:41 -07:00

8.9 KiB

reviews-list.screen

Generic reviews-list view for the N7 reviews-aggregator surfaces (TheEroticReview, PunterNet, USASexGuide, TNABoard — per O §N7). Not for any individual escort directory (Tryst, TS4Rent, Slixa, Eros, etc.) — those don't have native reviews.

Replaces the earlier (incorrect) tryst-reviews.screen.md, which assumed Tryst had on-profile reviews; it doesn't. That file is now _deprecated-tryst-reviews.screen.md.

Voice: working; plain on negative or potentially-defamatory reviews.

Layout (full-screen drawer)

┌─────────────────────────────────────────────────┐
│ ◄ Surfaces                       ⚙ filters     │ 56pt
├─────────────────────────────────────────────────┤
│  Reviews across 4 aggregators · 12 total        │   N7 summary
│  [ All ] [ Recent ] [ Critical ≤2★ ] [ Unread ] │   state filter
│  [ Source: any ▾ ]                              │   per-aggregator filter
├─────────────────────────────────────────────────┤
│                                                 │
│  ─── Recent ───                                 │
│  ┌─────────────────────────────────────────────┐│
│  │ ★★★★★ TheEroticReview · @felix · 2d ago    ││   source-tagged
│  │ "Best evening I've had in months..."        ││
│  │ [ See full → ]                              ││
│  └─────────────────────────────────────────────┘│
│  ┌─────────────────────────────────────────────┐│
│  │ ★★ PunterNet · @anon · 4d ago               ││
│  │ "Profile said one thing, got another..."    ││
│  │ ⚠ critical · strategist drafted response    ││
│  │ [ See draft → ]  [ Flag as defamatory → ]   ││
│  └─────────────────────────────────────────────┘│
│  …                                              │
│                                                 │
└─────────────────────────────────────────────────┘

Components

Component Notes
Summary Aggregate review count + source count.
State filter All / Recent / Critical / Unread.
Source filter Any / TER / PunterNet / USASexGuide / TNABoard.
Review row Rating + source + author + excerpt + posted-time + chip-state.
Draft chip If strategist (or relevant specialist) drafted a response, surfaces here.
Flag affordance Reports to the source platform's moderation (each aggregator has its own flag mechanism — adapter-specific).

States

  1. Default — all reviews newest-first.
  2. Critical filter — only ≤2★ reviews; rows pulse amber.
  3. Empty (no reviews any source) — copy: "No reviews on any aggregator yet."
  4. Per-source ingest degraded — chip at source filter: "TER unreachable; showing cached from 6h ago."
  5. Coop intel on reviewer handle — chip per brief N.
  6. Review hidden by source (under moderation after Quinn flagged) — chip "flagged {date}, awaiting moderation."
  7. Review removed by source — chip "removed by {source} {date}" but retained in audit per brief I.
  8. No-source-reachable (all 4 aggregators down per brief M) — banner: "Lost connection to all review sources."
  9. VoiceOver — summary first; rows announce source + rating + author + excerpt + time.

Per-review detail sheet (tap "See full")

┌─────────────────────────────────────────────────┐
│ ◄ Reviews                                       │
│ ★★ PunterNet · @anon · 4d ago                  │
│                                                 │
│ Full text:                                      │
│ "Profile said one thing, got another. Rates    │
│ were higher than listed. Quality was fine but  │
│ I felt misled."                                 │
│                                                 │
│ ─── Response (Cocotte draft) ───                │
│ "Thanks for the feedback. The rates on my      │
│ Tryst profile haven't changed; perhaps you     │
│ caught an outdated cache?"                     │
│ [ Edit ] [ Approve & post ] [ Set aside ]       │
│ ⓘ Approving posts as you on PunterNet.         │
│                                                 │
│ ─── Cross-reference ───                         │
│ This reviewer's other reviews (PunterNet only): │
│ • Provider X · 1★ · 2d ago                      │
│ • Provider Y · 1★ · 4d ago                      │
│ Pattern: rating-bombing? Consider flagging.     │
│                                                 │
│ ─── Flag affordances ───                        │
│ [ Flag to PunterNet moderation → ]              │
│ [ Submit reviewer to BookingBlacklist → ]       │
│ [ Add to your K1 blocklist → ]                  │
│                                                 │
└─────────────────────────────────────────────────┘

Interactions

  • Tap a review row → detail sheet.
  • Tap "Approve & post" → high-stakes confirmation (per brief M §M3): "Posting public response on {source} as you. Continue?"
  • Tap "Flag as defamatory" / "Flag to moderation" → confirms + dispatches to the source-specific flag endpoint per the adapter; records audit row.
  • Tap "Submit reviewer to BookingBlacklist" → routes to add-blocklist-entry.screen.md pre-filled with the reviewer handle + N6 surface scope (per surface-screening.brief.md submission-target pattern).
  • Tap "Add to your K1 blocklist" → routes to add-blocklist-entry.screen.md K1-scope.
  • Long-press review → "Star" / "Mark unread" / "Add to digest section."

Edge cases

  • Same client reviewed Quinn on multiple sources — cross-reference section pulls from all sources for that handle (handle-matching across aggregators is fuzzy; best-effort).
  • Anonymous reviewer — no cross-reference; flag-only affordances.
  • Source removed the review (Quinn's flag accepted) — chip "removed by {source} {date}"; review hidden from list but retained in audit.
  • Strategist draft references Quinn's actual profile state — draft is auto-updated if profile changes between draft + approve (chip warns: "Profile changed since draft").
  • Reviewer pattern matches known rating-bombing campaigns — cross-reference section pulses red: "This reviewer 1-stars many providers in 48h windows."
  • Aggregator requires Quinn-side login to flag — flag affordance gates on connect-status; routes to {aggregator}-connect screen first.

Generalization callout

This screen is the canonical N7 reviews-aggregator UX:

  • All 4 aggregators (TER, PunterNet, USASexGuide, TNABoard) share this layout.
  • Per-aggregator differences (rating scale, moderation endpoints, anonymity defaults) handled by per-source adapters; the screen reads uniformly.
  • Distinct from on-platform comment systems (OF tips/comments, X replies) — those live in per-surface inboxes (tryst-inbox.screen.md, unified-inbox.screen.md) since they're conversation-shaped.

Out of scope

  • Per-aggregator individual connect screens (deferred; reuse the credentials-entry pattern per tryst-connect.screen.md).
  • AI rating-bombing-classifier — defer.
  • Quinn-initiated review-request prompts to clients (cross-platform; deferred).