Arbor ยท Data-Flow Diagrams

2 data-flow views ยท current state vs idealized (post-TF.G migration) ยท full pipeline: founder intake โ†’ freemium vs white-glove

What are these diagrams? (60-second read)

These are data-flow charts โ€” they show where information comes from, how it moves through the system, who touches it at each step, and where it ends up. Unlike architecture diagrams (which show how components connect), data-flow diagrams answer: what is actually moving, from where to where, and what gatekeeps it?

Two engines off one intake โ€” thefounders.group is the free, self-serve funnel (Alex); Arbor is the paid white-glove IR tier you hire for personal, curated intros. Both engines branch off the same shared AEP + Google Drive source, created the moment a founder uploads their deck.

There are two versions:

AData Flow โ€” Current State (as it stands today)

Founder deck-drop โ†’ AEP+Drive โ†’ FREEMIUM self-serve fork vs ARBOR white-glove fork โ†’ outputs โ€” showing fragmentation and friction

Honest picture of today's flow: Arbor's pull from AEP is a read-only manual export (Codex read-only not yet set up); stale local JSON middle layer; two parallel draft pipelines; laptop-dependent faucet; Drive migration halfway done. Red-bordered nodes are active friction points.

flowchart TD subgraph INTAKE["INTAKE โ€” thefounders.group (Alex's domain, free for all founders)"] FOUNDER["Founder visits thefounders.group"] DECK_UP["Upload Pitch Deck
PDF / PPTX / DOCX up to 50MB
or Google Slides link
or apply without one"] AI_SCORE["Alex's AI auto-analyzes deck
~60 seconds
Scores across 10 investor categories:
problem ยท solution ยท market ยท traction
team ยท business model ยท โ€ฆ"] end subgraph SHARED_LAYER["SHARED LAYER โ€” AEP + Google Drive (Alex owns; Arbor reads)"] AEP["AEP (Alex)
Master founder + investor DB
External โ€” Alex owns and controls"] DRIVE_SRC["Google Drive (BWI / TF.G โ€” mid-migration)
Founder decks + pitch assets"] PORTAL["Founder Portal
thefounders.group dashboard"] DISCORD["Discord Community
Mentoring + peer network"] end subgraph FREEMIUM["ENGINE 1 โ€” TFG FREEMIUM (free tier, self-serve, Alex)"] FREE_MATCH["AI Investor Match
Self-serve inside Portal
1,200+ angel network"] FREE_REQ["Request Warm Introduction
Founder initiates via Portal"] FREE_MENTOR["Mentoring Community
Discord + peer support"] FREE_INTRO["Intro sent (self-serve path)
Via TFG platform โ€” free"] end subgraph ARBOR_PULL["ARBOR PULL โ€” Read-only extract from AEP + Drive (FRICTION)"] CODEX_FRICTION["FRICTION: Codex read-only
AEP connection not yet set up
Manual read-only export in the interim"] LOCAL_F["matcher_input/f/id.json
Founder profiles
Exported from AEP โ€” can go stale"] LOCAL_P["matcher_input/pairs/id.json
Match rationale
Exported from AEP โ€” can go stale"] LOCAL_STALE["FRICTION: Stale middle layer
No automated sync from AEP
Manual re-export required"] end subgraph ARBOR_PROC["ENGINE 2 โ€” ARBOR WHITE-GLOVE / PAID (Arbor IR, Tim's machine)"] FYXER["Fyxer / Call Recordings
Auto-recorded calls"] HS["HubSpot CRM
Deal flow tracking โ€” not integrated with D1"] SLACK["Slack
Team coordination + feedback"] GMAIL["Gmail (Ben personal)
benjamincwiggins@gmail.com
Intros sent from here"] MI["meeting-ingestor skill
Transcript to structured JSON
+ Markdown summary"] MATCHER["Matcher
Founder + investor JSON
โ†’ scored ranked pairs"] DRAINER["intro-queue-drainer skill
Polls D1 for queued requests
with no draft yet"] IID["investor-intro-drafter skill
2-stage Ben-voice draft
(Stage 1: feeler, Stage 2: 3-way)"] BV["ben-voice skill
Voice corpus loaded
by intro-drafter"] LI_SK["linkedin-post-writer skill
Founder-voice posts"] IR_SK["ir-newsletter-writer skill
Founder-voice IR newsletter"] D2GD["draft-to-googledoc skill
Approved draft to Google Doc
Stamps doc_url back to D1"] LAPTOP_GATE["FRICTION: Laptop dependency
Faucet only runs while
Tim has an active session"] end subgraph STORE["STORE โ€” Cloudflare D1 + Pages (behind Access)"] D1_MF["match_feedback
(verdict, context, reviewer)"] D1_REQ["requests
(queued to approved pipeline)"] D1_DRAFTS["drafts
(content, version, status, doc_url)"] D1_APR["approvals
(copy_edit + final gates)"] D1_MARKS["marks (kanban, stamps)"] D1_GF["green_flags (positive connection points)
NOT YET IN UI"] D1_SNAP["entity_snapshot
(frozen profile at draft time)"] D1_AUD["audit (immutable log)"] SITE["Arbor Site
arbor-32i.pages.dev
(Cloudflare Access gated)"] end subgraph REVIEW["HUMAN REVIEW โ€” Two parallel pipelines (FRICTION)"] RQ["Arbor Review Queue
arbor site page โ€” D1-driven"] RAF_GDOC["Refael's Google-Doc drafts tab
Separate from Review Queue
NOT unified with D1"] DUAL_PIPE["FRICTION: Two draft pipelines
D1 Review Queue vs Refael's GD tab
No single source of truth"] BEN_RATE["HUMAN GATE 1: Ben rates match
good / worth-a-shot / not-a-fit
via Match Review UI"] COPY_EDIT["HUMAN GATE 2: Copy-Edit
Refael (rafphysic@gmail.com)
or Saviour (registered โ€” copy_editor / LinkedIn-marketing lead)"] BEN_FINAL["HUMAN GATE 3: Final Approval
Ben Wiggins
(can skip copy-edit)"] end subgraph OUTPUTS["OUTPUTS โ€” Fragmented across two Drives"] TFG_DRIVE["TF.G Drive (canonical now)
0ACvmtwPtxab0Uk9PVA
Alex's drive per ADVISORY.md"] BWI_DRIVE["BWI Drive ARCHIVE ONLY
Still partly in use
Migration half-done"] DRIVE_HALF["FRICTION: BWI-to-TFG
migration incomplete
(Adam's ongoing work)"] FB_LOG["feedback.jsonl (raw + parsed)
Ben's verdicts ยท rules ยท green flags
Biweekly to Alex โ€” the SHARED learning spine"] INTRO_SEND["Intro sent
Ben's personal Gmail
Manual โ€” never auto-sent"] LI_OUT["LinkedIn posts
Founder publishes"] SLACK_HAND["Slack hand-off
Team notified on delivery"] end %% Intake flow FOUNDER --> DECK_UP DECK_UP --> AI_SCORE AI_SCORE -->|"scores stored"| AEP AI_SCORE -->|"deck assets stored"| DRIVE_SRC AI_SCORE -->|"founder accesses"| PORTAL AI_SCORE -->|"joins"| DISCORD %% Freemium engine PORTAL --> FREE_MATCH DISCORD --> FREE_MENTOR FREE_MATCH --> FREE_REQ FREE_REQ --> FREE_INTRO FREE_MENTOR -.->|"community support"| PORTAL %% Arbor pull from shared layer (read-only, manual) AEP -.->|"Manual read-only export
(Codex r/o not yet set up)"| CODEX_FRICTION CODEX_FRICTION -->|"manual export"| LOCAL_F CODEX_FRICTION -->|"manual export"| LOCAL_P LOCAL_F -.->|"can go stale"| LOCAL_STALE LOCAL_P -.->|"can go stale"| LOCAL_STALE DRIVE_SRC -.->|"manual reference"| MI %% Arbor processing FYXER -->|"Recording auto-captured"| MI GMAIL -.->|"Thread context"| DRAINER SLACK -.->|"Feedback + rules"| ARBOR_PROC LOCAL_F --> MATCHER LOCAL_P --> MATCHER LOCAL_F --> DRAINER LOCAL_P --> DRAINER LOCAL_F --> IID LOCAL_P --> IID MI -->|"offering_breakdown"| IR_SK MI -->|"transcript + voice"| LI_SK %% Matcher to D1 via site MATCHER -->|"match pairs"| SITE SITE -->|"POST /api/feedback"| D1_MF SITE -->|"POST /api/requests (good verdict)"| D1_REQ SITE -->|"GET /api/queue"| DRAINER %% Drainer + drafting DRAINER -->|"pulls queued request"| D1_REQ DRAINER -->|"runs"| IID IID -->|"loads"| BV IID -->|"POST /api/drafts"| D1_DRAFTS D1_SNAP -->|"frozen at draft time"| D1_DRAFTS LI_SK -->|"draft"| D1_DRAFTS IR_SK -->|"draft"| D1_DRAFTS %% D1 to review D1_DRAFTS --> RQ RQ --> BEN_RATE BEN_RATE -->|"good verdict"| D1_REQ RQ --> COPY_EDIT RAF_GDOC -.->|"parallel track not in D1"| COPY_EDIT RQ -.->|"not unified"| DUAL_PIPE RAF_GDOC -.->|"not unified"| DUAL_PIPE %% Review gates COPY_EDIT -->|"POST /api/approvals copy_edit"| D1_APR D1_APR --> BEN_FINAL BEN_FINAL -->|"POST /api/approvals final"| D1_APR BEN_FINAL -->|"approved"| D2GD LAPTOP_GATE -.->|"blocks drafting + D2GD"| D2GD %% Outputs D2GD -->|"creates Doc"| TFG_DRIVE D2GD -.->|"some still going here"| BWI_DRIVE BWI_DRIVE -.->|"half-done"| DRIVE_HALF BEN_FINAL -->|"approved โ€” Ben clicks send"| INTRO_SEND BEN_FINAL -->|"approved"| LI_OUT BEN_FINAL -->|"deliverable ready"| SLACK_HAND GMAIL --> INTRO_SEND %% Feedback loop D1_MF -->|"biweekly"| FB_LOG FB_LOG -->|"sharpens AEP model โ€” benefits BOTH engines"| AEP FB_LOG -.->|"Ben's rules + green flags harden Arbor's own curation"| ARBOR_PROC SLACK -.->|"feedback"| FB_LOG HS -.->|"separate CRM not integrated with D1"| SITE %% D1 audit D1_MF --> D1_AUD D1_REQ --> D1_AUD D1_APR --> D1_AUD D1_REQ --> D1_MARKS style INTAKE fill:#0F1A2A,stroke:#5BAE97,color:#E8E6E0 style FOUNDER fill:#0F2010,stroke:#5BAE97,color:#E8E6E0 style AI_SCORE fill:#0F2010,stroke:#5BAE97,color:#E8E6E0 style DECK_UP fill:#0F2010,stroke:#5BAE97,color:#E8E6E0 style SHARED_LAYER fill:#1C1A26,stroke:#9B8FD8,color:#E8E6E0 style AEP fill:#1C1A26,stroke:#9B8FD8,color:#E8E6E0 style FREEMIUM fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0 style FREE_MATCH fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0 style FREE_REQ fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0 style FREE_MENTOR fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0 style FREE_INTRO fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0 style ARBOR_PULL fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0 style CODEX_FRICTION fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0 style LOCAL_STALE fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0 style LAPTOP_GATE fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0 style DUAL_PIPE fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0 style DRIVE_HALF fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0 style RAF_GDOC fill:#2A1A1A,stroke:#C0392B,color:#E8E6E0 style BWI_DRIVE fill:#2A1A1A,stroke:#C0392B,color:#AAB2C4 style HS fill:#2A2010,stroke:#B5651D,color:#AAB2C4 style ARBOR_PROC fill:#15252A,stroke:#2E6E5E,color:#E8E6E0 style STORE fill:#1C1A26,stroke:#6B5EA8,color:#E8E6E0 style REVIEW fill:#1A1F2A,stroke:#46546F,color:#E8E6E0 style OUTPUTS fill:#201A0A,stroke:#B5651D,color:#E8E6E0
[CONFIRM] Codex read-only AEP connection โ€” listed in memory as a holdover from a friend's Codex import, NOT part of Arbor and archived 2026-06-18; shown here as the friction label "not yet set up" for the AEP pull. [CONFIRM] Saviour IS now registered as copy_editor / LinkedIn-marketing lead per ADVISORY.md โ€” shown in copy-edit gate. [CONFIRM] HubSpot is in the team stack (MCP tools available) but its integration with D1 is not documented โ€” shown as parallel/unintegrated. [CONFIRM] draft-to-googledoc skill target Drive: ADVISORY.md says TF.G Drive is canonical but RUNBOOK may still reference BWI; shown as "some still going to BWI" until Adam's migration confirmed complete. [CONFIRM] Freemium intro path (warm intro request via Portal) โ€” confirm whether Alex routes these manually or the Platform auto-matches. Green_flags table (migration 003) exists in D1 but no UI is built yet.
BData Flow โ€” Idealized (post-TF.G migration, always-on faucet)

Founder deck-drop โ†’ shared AEP+Drive โ†’ FREEMIUM self-serve fork (unchanged) + ARBOR white-glove fork (automated pull, hosted drafting, one Drive, closed loop)

The consolidated target: AEP syncs cleanly to D1 (no stale local JSON, no Codex workaround); all Docs land in TF.G Drive (BWI fully retired); Refael's Google-Doc tab folds into the D1 Review Queue; a Cloudflare Cron Worker drafts intros in the cloud โ€” no laptop required. The freemium vs white-glove fork is the business model and stays in both views. Human decisions (rate, approve, send) remain human.

flowchart TD subgraph ORG["ORG FRAME โ€” The Founders Group (TF.G brand, unified)"] BRAND["Advisory firm + AEP converge under single TF.G brand
(Ben's direction โ€” branding in progress)"] end subgraph INTAKE_B["INTAKE โ€” thefounders.group (Alex's domain, free for all founders)"] FOUNDER_B["Founder visits thefounders.group"] DECK_UP_B["Upload Pitch Deck
PDF / PPTX / DOCX up to 50MB
or Google Slides link
or apply without one"] AI_SCORE_B["Alex's AI auto-analyzes deck
~60 seconds
Scores across 10 investor categories:
problem ยท solution ยท market ยท traction
team ยท business model ยท โ€ฆ"] end subgraph SHARED_B["SHARED LAYER โ€” AEP + TF.G Drive (Alex owns; Arbor reads via automated sync)"] AEP_B["AEP (Alex โ€” master)
Founder + investor DB
Single source of truth for profiles"] DRIVE_SRC_B["TF.G Drive
Founder decks + pitch assets
BWI fully retired"] PORTAL_B["Founder Portal
thefounders.group dashboard"] DISCORD_B["Discord Community
Mentoring + peer network"] end subgraph FREEMIUM_B["ENGINE 1 โ€” TFG FREEMIUM (free tier, self-serve, Alex โ€” unchanged)"] FREE_MATCH_B["AI Investor Match
Self-serve inside Portal
1,200+ angel network"] FREE_REQ_B["Request Warm Introduction
Founder initiates via Portal"] FREE_MENTOR_B["Mentoring Community
Discord + peer support"] FREE_INTRO_B["Intro sent (self-serve path)
Via TFG platform โ€” free"] end subgraph SYNC_B["ARBOR SYNC LAYER โ€” Automated pull from AEP + Drive (no stale JSON)"] AEP_SYNC["AEP to D1 automated sync
Scheduled Worker or webhook
No manual re-export needed"] TRANSCRIPT_PIPE["Auto-transcription pipeline
Call recording to transcript
Meeting ingestor triggered"] end subgraph ARBOR_PROC_B["ENGINE 2 โ€” ARBOR WHITE-GLOVE / PAID โ€” Cloudflare Workers + Anthropic API (no laptop)"] CRON_W["Cron Worker (Cloudflare)
Runs every 5-10 min
Polls D1 for queued requests"] ANTH_API["Anthropic API
claude-opus-4 or cheaper tier
System prompt = investor-intro-drafter
+ ben-voice baked in"] LI_W["Content Worker (future)
LinkedIn + IR newsletter drafts
Same Cron-Worker shape"] D2GD_W["Draft-to-Doc Worker (future)
Approved draft to TF.G Drive
via service account
Stamps doc_url into D1"] MI_B["meeting-ingestor skill
Transcript to structured JSON
(still Claude Code for now)"] SLACK_B["Slack
Team coordination + feedback"] GMAIL_B["Gmail (Ben personal)
benjamincwiggins@gmail.com
Intros sent from here โ€” never automated"] end subgraph STORE_B["STORE โ€” Cloudflare D1 (single app-store, enriched by AEP sync)"] D1_FULL["D1 app-store
founders table (from AEP sync)
investors table (from AEP sync)
matches + rationale
match_feedback
requests pipeline
drafts (content + doc_url)
approvals (copy_edit + final)
green_flags
entity_snapshot
marks + audit"] SITE_B["Arbor Site
arbor-32i.pages.dev
Cloudflare Access gated"] end subgraph REVIEW_B["HUMAN REVIEW โ€” One canonical pipeline (Refael's GD tab folds in)"] RQ_B["Arbor Review Queue
Single source of truth for drafts
Refael's GD tab retired"] BEN_RATE_B["HUMAN GATE 1: Rate Match
Ben rates via Match Review UI
good / worth-a-shot / not-a-fit
(never automated)"] COPY_B["HUMAN GATE 2: Copy-Edit
Refael (rafphysic@gmail.com)
or Saviour (copy_editor / LinkedIn-marketing lead)
D1 Review Queue only โ€” no separate GD tab"] BEN_FINAL_B["HUMAN GATE 3: Final Approval
Ben Wiggins
(can skip copy-edit โ€” never automated)"] end subgraph OUTPUTS_B["OUTPUTS โ€” Single home (TF.G Drive, per-client subfolders)"] TFG_ONLY["TF.G Drive only
0ACvmtwPtxab0Uk9PVA
BWI fully retired (archived)
Per-client Deliverables subfolders"] INTRO_SEND_B["Intro sent
Ben's personal Gmail
Manual โ€” Ben clicks send
(never automated)"] LI_OUT_B["LinkedIn posts โ€” Founder publishes"] SLACK_HAND_B["Slack hand-off
Team notified on delivery"] FB_LOOP["Closed feedback loop (SHARED spine)
match_feedback ยท Ben's rules ยท green flags
Biweekly to Alex โ€” sharpens AEP model
Benefits BOTH freemium + Arbor; flows back to D1 sync"] end %% Org frame BRAND -.->|"brand direction"| SHARED_B %% Intake FOUNDER_B --> DECK_UP_B DECK_UP_B --> AI_SCORE_B AI_SCORE_B -->|"scores stored"| AEP_B AI_SCORE_B -->|"deck assets stored"| DRIVE_SRC_B AI_SCORE_B -->|"founder accesses"| PORTAL_B AI_SCORE_B -->|"joins"| DISCORD_B %% Freemium engine (unchanged) PORTAL_B --> FREE_MATCH_B DISCORD_B --> FREE_MENTOR_B FREE_MATCH_B --> FREE_REQ_B FREE_REQ_B --> FREE_INTRO_B FREE_MENTOR_B -.->|"community support"| PORTAL_B %% Arbor automated sync AEP_B -->|"automated sync"| AEP_SYNC DRIVE_SRC_B -->|"decks + docs"| MI_B %% Sync to D1 AEP_SYNC -->|"founders + investors + matches"| D1_FULL TRANSCRIPT_PIPE -->|"triggers"| MI_B MI_B -->|"offering_breakdown + summaries"| D1_FULL %% D1 to site D1_FULL -->|"serves data"| SITE_B %% Human gate 1: rating SITE_B -->|"Match Review UI"| BEN_RATE_B BEN_RATE_B -->|"good verdict POST /api/requests"| D1_FULL %% Cron Worker drafts CRON_W -->|"polls D1 for queued requests"| D1_FULL CRON_W -->|"calls with system prompt"| ANTH_API ANTH_API -->|"returns draft text"| CRON_W CRON_W -->|"writes draft to D1"| D1_FULL %% Draft appears in Review Queue D1_FULL -->|"draft in Review Queue"| RQ_B %% Human gates 2 + 3 RQ_B --> COPY_B COPY_B -->|"POST /api/approvals copy_edit"| D1_FULL D1_FULL --> BEN_FINAL_B BEN_FINAL_B -->|"POST /api/approvals final"| D1_FULL %% On approval: Doc Worker renders BEN_FINAL_B -->|"approved"| D2GD_W D2GD_W -->|"creates Doc โ€” stamps doc_url"| TFG_ONLY D2GD_W -->|"PATCH /api/drafts doc_url"| D1_FULL %% Human sends BEN_FINAL_B -->|"approved โ€” Ben decides to send"| INTRO_SEND_B BEN_FINAL_B -->|"approved"| LI_OUT_B BEN_FINAL_B -->|"deliverable ready"| SLACK_HAND_B GMAIL_B -->|"Ben sends from here"| INTRO_SEND_B %% Slack + content future SLACK_B -.->|"feedback + rules"| D1_FULL LI_W -.->|"future: LI + IR newsletter drafts"| D1_FULL %% Auto-transcription from calls ARBOR_PROC_B -.->|"standing meeting recordings"| TRANSCRIPT_PIPE %% Closed feedback loop D1_FULL -->|"match_feedback export"| FB_LOOP FB_LOOP -->|"sharpens AEP โ€” flows back to BOTH engines"| AEP_B style ORG fill:#15171C,stroke:#D69553,color:#E8E6E0 style BRAND fill:#1F1A0A,stroke:#D69553,color:#E8E6E0 style INTAKE_B fill:#0F1A2A,stroke:#5BAE97,color:#E8E6E0 style FOUNDER_B fill:#0F2010,stroke:#5BAE97,color:#E8E6E0 style AI_SCORE_B fill:#0F2010,stroke:#5BAE97,color:#E8E6E0 style DECK_UP_B fill:#0F2010,stroke:#5BAE97,color:#E8E6E0 style SHARED_B fill:#1C1A26,stroke:#9B8FD8,color:#E8E6E0 style AEP_B fill:#1C1A26,stroke:#9B8FD8,color:#E8E6E0 style FREEMIUM_B fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0 style FREE_MATCH_B fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0 style FREE_REQ_B fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0 style FREE_MENTOR_B fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0 style FREE_INTRO_B fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0 style SYNC_B fill:#0F2010,stroke:#5BAE97,color:#E8E6E0 style AEP_SYNC fill:#0F2010,stroke:#5BAE97,color:#E8E6E0 style ARBOR_PROC_B fill:#15252A,stroke:#5BAE97,color:#E8E6E0 style STORE_B fill:#1C1A26,stroke:#6B5EA8,color:#E8E6E0 style REVIEW_B fill:#1A1F2A,stroke:#46546F,color:#E8E6E0 style BEN_RATE_B fill:#1A2012,stroke:#5BAE97,color:#E8E6E0 style COPY_B fill:#1A2012,stroke:#5BAE97,color:#E8E6E0 style BEN_FINAL_B fill:#1A2012,stroke:#5BAE97,color:#E8E6E0 style INTRO_SEND_B fill:#1A2012,stroke:#5BAE97,color:#E8E6E0 style OUTPUTS_B fill:#201A0A,stroke:#D69553,color:#E8E6E0
[CONFIRM] AEP-to-D1 automated sync mechanism not yet built โ€” GAMEPLAN.md and ADVISORY.md describe it as the target but the exact sync shape (scheduled Worker vs webhook) is not decided. [CONFIRM] Per-client subfolder structure inside TF.G Drive is flagged CONFIRM in ADVISORY.md โ€” shown as "per-client Deliverables subfolders" but exact path not confirmed. [CONFIRM] Content Worker (LI + IR newsletter) is Stage 2 of GAMEPLAN โ€” shown as future/dashed. [CONFIRM] Meeting-ingestor still runs as a Claude Code skill (Tim's machine) in the near term โ€” only intro drafting moves to a Worker first. [CONFIRM] Freemium intro path โ€” confirm whether the warm intro request via Portal is manually routed by Alex or auto-matched by the platform. TF.G brand unification described as "Ben's direction โ€” branding in progress" per ADVISORY.md Section 7.
Grounded in: ADVISORY.md (2026-06-19) ยท GAMEPLAN_no-active-session.md ยท db/schema.sql ยท db/migrations/001_drafts.sql ยท 002_intro_sent.sql ยท 003_green_flags.sql ยท memory/project_former_employer_split.md ยท memory/project_codex_readonly_holdover.md ยท Generated 2026-06-19