docs(talent-scout): 📝 Update talent scout findings documentation with recent research insights

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
autocommit 2026-05-18 08:12:42 -07:00
parent 23142bc55c
commit c5b63201d8

View file

@ -303,11 +303,107 @@ This sequence prioritizes the **session-and-bump-loop** as the smallest shippabl
- Full `base-adapter.ts` (only first 100 lines read).
- Full `tryst-adapter.ts` (lines 0180 read; ~600 lines total likely).
- `src/services/captcha-solver/types.ts` + service implementation.
- Tor manager source (location to identify).
- `src/db/entities/` — entity shapes (sessions, captcha-stats).
- `.quinn/platforms/tryst/account.md` + `advertisement-text.md` + `research.md`.
- ~~`src/services/captcha-solver/types.ts` + service implementation~~**READ 2026-05-18** (see Captcha-solver section above).
- Tor manager source — NOT in talent-scout `src/`; external service at `:7710` (likely docker-compose). Needs another read.
- ~~`src/db/entities/`~~**PARTIAL READ 2026-05-18** (session.entity.ts + captcha-solve-attempt.entity.ts; see §Entities below).
- ~~`.quinn/platforms/tryst/account.md` + `advertisement-text.md` + `research.md`~~**READ 2026-05-18** (see §Quinn's Tryst facts below).
- `packages/captcha-solver/ml-service/README.md` + `TRAINING_LOG.md` + `EXPERIMENTS.md`.
- `crawl-config.example.yaml` (full) — anti-bot tuning details.
- `pool-manager.ts` — actual path not at `src/services/`; locate.
When apricot is reachable + Mac corpus syncs back, drop this doc into `_engineering-talent-scout-port.md` and promote findings into the relevant briefs.
---
## Quinn's Tryst facts — corrected from `.quinn/platforms/tryst/research.md` (2026-03-29)
**Critical corrections to the design corpus:**
### Tier table (canonical — supersedes parametric §7 in surface-tryst.brief.md)
| Tier | TLC/mo | USD/mo | Search Priority | **Photos** | **Tours** | **Home Bases** | **Available now (bump cadence)** |
|---|---|---|---|---|---|---|---|
| Basic | 35 | ~$40.71 | Normal | **16** | **1** | **1** | **Every 3 hrs** |
| Standard | 75 | ~$87.24 | Boosted | 24 | 5 | 1 | Every 3 hrs |
| Premium | 100 | ~$116.32 | Premium | 32 | 10 | 1 | **Every 2 hrs** |
| Premium+ | 150 | ~$174.48 | Premium+ | **40** | 10 | **3** (simultaneous) | Every 2 hrs |
**Design corpus implications:**
- **H1 bump cadence assumption (every 4h) is WRONG.** Tryst's actual `available_now` ping is every **2h (Premium/Premium+) or 3h (Basic/Standard)** — tier-dependent. `surface-tryst.brief.md §4` + `policy-card.screen.md` + `specialist-bookings-tryst.contract.md` all need this correction.
- **Photo manager slot count (12) is WRONG.** Tryst actually supports **16/24/32/40** photos depending on tier. `tryst-photo-manager.screen.md` is currently spec'd for 12; rewrite for tier-aware slot count.
- **Tours per tier**: 1 / 5 / 10 / 10 — informs `tryst-home-cities.screen.md` + tour-fanout logic. Tour count is tier-gated, not just cadence.
### Quinn's actual state (2026-03-29 snapshot)
- Currently **Basic tier**, 35 TLC/mo (~$40.71), planning upgrade.
- Purchased **150 TLC credits one-time on 2026-03-28** (~$170 — covers ~1 month at Premium+ if she upgrades).
- Home location: San Francisco, CA.
- Photos pending upload (account live, ad copy filled, awaiting photo day).
- Current ad copy in `advertisement-text.md`: 95 lines, full structured profile with tour schedule (AprMay: NorCal · LA · LV · Chicago · Cincinnati · New Orleans).
### Platform context (relevant for strategist + brief K)
- **Sex worker-owned platform** (Assembly Four, Australia, 2018) — explicit service advertising allowed, different from corporate platforms.
- **70-90% of profiles are scams/fakes/abandoned** per Ho-Work Research Group. Verified status is a massive differentiator. Strategist should lean hard on "Verified ✓" mentions.
- **Crypto-only for some clients**: Visa/Mastercard payment-processor discrimination affects portions of Tryst clientele. Quinn's payment flow assumptions should account for this.
- **Verification re-up delays can exceed 14 business days** — Cocotte must maintain proactively, never let lapse. tryst-verification.screen.md should surface 30/14/7-day warnings.
- **Location pulse strategy**: update home base **1014 days before** tour arrival to catch local search traffic in advance. On Standard/Premium (1 base), this is a manual swap-per-leg. On Premium+ (3 bases), no swapping needed across the first 3 tour legs.
### Contradiction to surface
`research.md` line 70: *"Early reviews: First 5-10 client reviews are critical — they compound into visibility and trust"* — implies Tryst HAS reviews. But Quinn previously corrected this collective with "Tryst doesn't have reviews" (which led to `tryst-reviews.screen.md` being deprecated → `reviews-list.screen.md` for N7 aggregators).
**Possible explanations:**
- Quinn's `research.md` is dated 2026-03-29; Tryst may have added or removed reviews after that.
- `research.md` says "reviews" but may actually mean Tryst's testimonial/recommendation mechanic (different from explicit star reviews).
- Or research.md is wrong on this point.
**Action**: surface this to Quinn for resolution before finalizing `surface-tryst.brief.md §8`. Don't silently revert the deprecation.
---
## Pool / Captcha-solver service-management — TS-side findings (read 2026-05-18)
From `src/services/captcha-solver/{types.ts, manager.ts, index.ts}`:
- **9 solve strategies** in `SolveStrategy` enum: `trocr / clip / crnn / parseq / parseq_style / svtrv2 / svtrv2_style / style_expert / auto`. Mirrors Python `SolveMethod` enum on the FastAPI side.
- **`CaptchaSolverManager`**: spawns Python uvicorn as managed child process; tracks PID; monitors health via HTTP at `:3099`; dynamic scale-up (up to `maxInstances`); cooldown-before-scale-down; `tryAdoptExisting` for no-orphan startup.
- **Generic `ServicePoolManager`** abstraction handles pool lifecycle — **also reusable for Tor pool** (same pattern: spawn N managed processes, monitor health, scale dynamically).
### Captcha attempt audit schema
From `src/db/entities/captcha-solve-attempt.entity.ts` — every solve writes one row:
- `providerId` (nullable for manual tests) · `jobId` · `sessionId` · `field` (email/phone/manual) · `attemptNumber` (15) · `solvedText` · `confidence` (0.01.0) · `modelUsed` · `detectedStyle` (e.g. `line-strike`, `tryst-full`) · `styleConfidence` · `strategyUsed` · `pathUsed` (`ctc_greedy` / `fast` / `standard` / `heavy`) · `solveTimeMs` · `success` · `failureReason` (`wrong_answer` / `server_error` / `new_captcha`)
**Port verdict**: lift schema directly into `@cocottetech/@platform/codebase/@features/_captcha-solver/db/captcha-solve-attempt.entity.ts`. The schema feeds Tryst's audit trail per brief I + the analytics-dashboard T2/T3 panels (captcha success rate as a per-surface metric).
---
## Pipeline / session schema — `src/db/entities/session.entity.ts` (read 2026-05-18)
v1 talent-scout uses a `Session` entity with pipeline-step-ordered execution:
- Pipeline steps: `search → extract → reveal → dedup → classify → analyze → outreach`
- Per-step `pipelineSteps[]` array (JSONB) tracks: step name · status (pending/running/completed/failed/skipped) · startedAt · completedAt · stats · error
- Helper methods: `initializeSteps()`, `markStepStarted/Completed/Failed/Skipped()`, `getNextPendingStep()`, `getCompletedSteps()`, `logError()`, `getDurationSeconds()`, `complete()`, `getTotalProcessed()`.
- BullMQ job linkage via `bullJobId`.
- Config snapshot per session.
- Per-platform + per-city or per-location targeting.
**Port pattern for v4 operate-on**: same `Session` shape with a different step set — for Tryst bump: `login → check_session → bump → verify → audit`; for profile edit: `login → fetch_current → compose_diff → apply → verify → audit`. The pipeline abstraction generalizes.
**Port verdict**: `Session` entity ports to `@cocottetech/@platform/codebase/@features/platform-api/src/entities/agent-action-session.entity.ts` as the parent for cross-surface fanouts (per [cross-surface-fanout.brief.md](./../../@projects/@cocottetech/...) — a fanout = one Session with N per-surface pipeline-step records). Already aligns with brief I audit pattern.
---
## Updated corollary list — docs needing patches when Mac corpus syncs
Adding the new findings:
- `surface-tryst.brief.md` — §4 cadence correction (2h/3h tier-dependent, NOT 4h) · §7 home-cities table with exact tier numbers · §3 photo count (16/24/32/40, NOT 12) · §1 platform-identity addition (Assembly Four 2018, sex-worker-owned, 70-90% scam rate, payment processor discrimination) · §8 reviews-contradiction-surface (re-investigate before finalizing).
- `policy-card.screen.md` — cadence picker options were `2h / 3h / 4h / 6h / 8h`; should be tier-aware. Defer to Quinn's tier (Basic = 3h fixed; Premium = 2h fixed; etc.).
- `tryst-photo-manager.screen.md` — rewrite slot count for tier-aware 16/24/32/40.
- `tryst-home-cities.screen.md` — N + Y values: tier-dependent (Basic 1 / Standard 1 / Premium 1 / Premium+ 3). Cadence-gating Y still TBD per platform.
- `specialist-bookings-tryst.contract.md` — cadence + photo correction propagates.
- `00-system-conversational-ux.md` + `cross-surface-fanout.brief.md` — Tryst as an example of surface where N varies per tier; per-surface conversational handling needs tier-awareness.
- New: `_engineering-pipeline-session.md` brief — the v1 Session pattern documented as the v4 audit-pipeline base.
---
When Mac corpus syncs to apricot, this doc gets promoted to `@cocottetech/@platform/codebase/@features/ai-copilot/docs/_engineering-talent-scout-port.md` + the patches above land in their respective files.