{
  "meta": {
    "last_updated": "2026-04-03T21:30:00-05:00",
    "note": "Status logic: 'done'/'active'/'later' are manual overrides. Everything else auto-calculates: if all depends_on are done → 'ready', otherwise → 'blocked'."
  },
  "items": [
    {
      "id": "B1",
      "name": "Voice interviews — Tier 1",
      "track": "brooks",
      "status": "done",
      "type": "Voice",
      "description": "Completed April 3. All three topics covered: A Day at BRX (daily huddle flow, coaching standards, speed ownership gap), Staff Roles (PS hierarchy validated, all 5 4R docs read, capacity data captured, athlete assignment process), Growth Goals (demand-constrained confirmed, proactive coaching accountability system defined as endgame). Daily Huddle Deal Audit discovered — the mechanism behind all renewal rate tracking.",
      "depends_on": [],
      "unlocks": ["B2"]
    },
    {
      "id": "B2",
      "name": "Lock churn/renewal definitions",
      "track": "brooks",
      "status": "done",
      "type": "Decision",
      "description": "Locked April 3. Churned = subscription cancelled + MRR (ProfitWell) to zero + deal stage set at daily huddle. Graduates excluded from renewal rates. Baselines: Premium 35-40%, In-Gym ~55%. No intervention system exists today — Retention OS will be the first. Success = short-term re-engagement + long-term renewal.",
      "depends_on": ["B1"],
      "unlocks": ["B6", "C9", "C10"]
    },
    {
      "id": "B3",
      "name": "Retention OS — pick triggers, define SLA, set alert cap",
      "track": "brooks",
      "status": "auto",
      "type": "Decision",
      "effort": "1-2 hours",
      "description": "Decide which 3-5 patterns become daily coaching intelligence. Pick finding cards that surface to coaches. Decide: who owns an alert, how long before it escalates, daily cap per coach. Needs C9a signal validation results so you're picking from evidence, not guesses.",
      "depends_on": ["B2", "C9a"],
      "unlocks": ["C10"]
    },
    {
      "id": "B4",
      "name": "Voice interviews — Tier 2",
      "track": "brooks",
      "status": "auto",
      "type": "Voice",
      "effort": "5 sessions, 30-60 min each",
      "description": "Five conversations covering zero-coverage areas: Pricing Philosophy, Culture & Staff Dynamics, Marketing & Acquisition, Parent Communication, Competitive Landscape. Deepens context but doesn't block any immediate builds.",
      "depends_on": [],
      "unlocks": []
    },
    {
      "id": "B5",
      "name": "Delegate staff interviews",
      "track": "brooks",
      "status": "auto",
      "type": "Delegate",
      "effort": "30 min to send",
      "description": "Operational details need answers from Jason, Jordan, or Francisco. Questions are written in a Notion page (33669bc0...). Send it their way. Added during this session: Vald/Proteus usage, speed session delivery SOP.",
      "depends_on": [],
      "unlocks": []
    },
    {
      "id": "B6",
      "name": "Business State Layer — event type review",
      "track": "brooks",
      "status": "auto",
      "type": "Review",
      "effort": "30 min",
      "description": "Claude drafts canonical event types (assessment, first visit, missed week, churn). You review and correct. 30 minutes but essential — the entire athlete timeline is built on these definitions.",
      "depends_on": ["B2"],
      "unlocks": ["C9"]
    },
    {
      "id": "B7",
      "name": "Parker's Queue — open decisions",
      "track": "brooks",
      "status": "auto",
      "type": "Decision",
      "effort": "1 hour",
      "description": "Parker's AI outreach tool needs decisions: delivery channel (Slack, app, email), voice memo format, pipeline stages needing re-engagement attention.",
      "depends_on": [],
      "unlocks": ["C15"]
    },
    {
      "id": "B8",
      "name": "Retention OS — review outcome validation",
      "track": "brooks",
      "status": "later",
      "type": "Review",
      "effort": "1 hour",
      "description": "After 4-6 weeks of trigger data: are triggers actually predictive? Did flagged athletes churn? Are coaches responding? System earns credibility or gets recalibrated.",
      "depends_on": ["C10"],
      "unlocks": []
    },
    {
      "id": "B9",
      "name": "HubSpot conversation sync — thread design review",
      "track": "brooks",
      "status": "later",
      "type": "Review",
      "effort": "1 hour",
      "description": "Once 1.7M raw records land in Supabase, review how tickets/emails/SMS thread together and approve the conversation reconstruction model.",
      "depends_on": ["C2"],
      "unlocks": ["C22"]
    },
    {
      "id": "B10",
      "name": "SOP review & approval",
      "track": "brooks",
      "status": "later",
      "type": "Review",
      "effort": "Ongoing",
      "description": "Claude surfaces how staff handles each scenario type. You approve, correct, or rewrite before anything gets automated.",
      "depends_on": ["C22"],
      "unlocks": []
    },
    {
      "id": "T0",
      "name": "Tier 0 — Data quality fixes + quick deploys",
      "track": "claude",
      "status": "done",
      "type": "DS",
      "description": "KPI cap verified (176K records), coaching rules table confirmed, visit window bug fixed, weekly brief already deployed.",
      "depends_on": [],
      "unlocks": []
    },
    {
      "id": "C1",
      "name": "Logged workouts pipeline",
      "track": "claude",
      "status": "done",
      "type": "DS",
      "description": "Built, backfilled, and deployed. 922 athletes, 21.5K workouts, 252K exercises, 517K sets. Compliance delta view compares prescribed vs actual. Running daily on VPS.",
      "depends_on": [],
      "unlocks": ["C9b"]
    },
    {
      "id": "C2",
      "name": "HubSpot conversation & activity sync",
      "track": "claude",
      "status": "active",
      "type": "DS",
      "effort": "2-3 sessions to build, 24-32h VPS backfill",
      "description": "Pulling 1.72M records into Supabase: every email, SMS, ticket, deal, call, meeting, task, and note from HubSpot. Tasks promoted to Phase 1 — 93% of 177K tasks are workflow-generated with SOP content in metadata.",
      "depends_on": [],
      "unlocks": ["B9"]
    },
    {
      "id": "CI-mock",
      "name": "Coaching Intelligence mock page",
      "track": "claude",
      "status": "active",
      "type": "DH",
      "description": "Real-data proof-of-concept showing daily coaching prep sheet. Built with Jake's actual roster — every athlete with health tier, actionable flags, and stats.",
      "depends_on": [],
      "unlocks": []
    },
    {
      "id": "C3",
      "name": "Zoom transcript extraction pipeline",
      "track": "claude",
      "status": "auto",
      "type": "CL",
      "effort": "3-5 days",
      "description": "568 assessment and onboarding transcripts → structured extraction (objections, competitor mentions, parent concerns, pricing, coaching behaviors). Fills competitive landscape and parent communication gaps (0% coverage). Queryable zoom_extractions table.",
      "depends_on": [],
      "unlocks": ["D14"]
    },
    {
      "id": "C7",
      "name": "Answer business flow questions empirically",
      "track": "claude",
      "status": "auto",
      "type": "CL",
      "effort": "2-3 hours",
      "description": "10 open questions about BRX processes (frozen athletes, reactivation, Premium term changes). At least half answerable by querying HubSpot/Supabase. Feeds into C9 Business State Layer event definitions.",
      "depends_on": [],
      "unlocks": ["C9"]
    },
    {
      "id": "C9a",
      "name": "Retention Intelligence — signal validation sprint",
      "track": "claude",
      "status": "auto",
      "type": "DS",
      "effort": "3 days",
      "description": "SQL tests and LLM transcript scoring against Supabase data. Output: ranked list of signals with effect sizes ('message gap > 12 days correlates with X% higher churn'). Build on evidence, not guesses.",
      "depends_on": [],
      "unlocks": ["B3", "C11"]
    },
    {
      "id": "C9b",
      "name": "Program Writer Phase 0 — Analysis",
      "track": "claude",
      "status": "auto",
      "type": "PW",
      "effort": "1-2 days",
      "description": "Run Jordan's 8 guardrail rules against 81K workouts across 1,054 athletes. Measure rule compliance rates and analyze program similarity/clustering. Gives Jordan real data to react to.",
      "depends_on": ["C1"],
      "unlocks": ["C9c"]
    },
    {
      "id": "C9c",
      "name": "Program Writer Phase 0 — Engine",
      "track": "claude",
      "status": "auto",
      "type": "PW",
      "effort": "2-3 days",
      "description": "Profile assembly, rule evaluation engine, similar-athlete retrieval, Replay MVP. Jordan sees an athlete's profile + matching rules + similar historical programs.",
      "depends_on": ["C9b"],
      "unlocks": ["C13"]
    },
    {
      "id": "C4",
      "name": "Visits dashboard refactor",
      "track": "claude",
      "status": "auto",
      "type": "DS",
      "effort": "3-4 hours",
      "description": "Swap visits dashboard from Exercise.com API (60s load) to Supabase reads (1-2s). Same data, dramatically faster.",
      "depends_on": [],
      "unlocks": []
    },
    {
      "id": "C5",
      "name": "Data Hub — query_visits tool",
      "track": "claude",
      "status": "auto",
      "type": "DH",
      "effort": "2-3 hours",
      "description": "Makes 120K visits queryable through Data Hub chat. 'How many times has athlete X trained this month' or 'what's utilization at 4pm Tuesdays.'",
      "depends_on": [],
      "unlocks": []
    },
    {
      "id": "C6",
      "name": "Data Hub — query_messages tool",
      "track": "claude",
      "status": "auto",
      "type": "DH",
      "effort": "2-3 hours",
      "description": "Makes 132K Exercise.com messages queryable. 'Recent messages with athlete X' or 'athletes without a coach message in 2+ weeks.'",
      "depends_on": [],
      "unlocks": []
    },
    {
      "id": "C8",
      "name": "Remaining Notion pages + Slack channels",
      "track": "claude",
      "status": "auto",
      "type": "CL",
      "effort": "2-3 hours",
      "description": "Primary source reading to push BRX knowledge breadth from ~6.5/10 toward 8/10. Context-building, not engineering.",
      "depends_on": [],
      "unlocks": []
    },
    {
      "id": "C9",
      "name": "Business State Layer — event types + identity resolution",
      "track": "claude",
      "status": "auto",
      "type": "CL",
      "effort": "2-3 days",
      "description": "Define canonical event types, stitch data across systems, build unified chronological athlete timeline. Foundation for coaching prep blurbs.",
      "depends_on": ["B6", "C7"],
      "unlocks": []
    },
    {
      "id": "C10",
      "name": "Retention Operating System Phase 1",
      "track": "claude",
      "status": "auto",
      "type": "DS",
      "effort": "1-2 weeks",
      "description": "3-5 triggers from finding cards, transparent risk tier (red/yellow/green with visible reasons), coaching prep surfaced to coaches. The proactive accountability system Brooks described.",
      "depends_on": ["B3"],
      "unlocks": ["C12", "B8"]
    },
    {
      "id": "C11",
      "name": "Retention Intelligence Phase 1 — athlete timeline + weekly features",
      "track": "claude",
      "status": "auto",
      "type": "DS",
      "effort": "2 weeks",
      "description": "athlete_events table (one row per touchpoint) and athlete_week_state mart (weekly feature snapshots). Powers specific coaching blurbs: '0 coaching interactions in last 3 visits.'",
      "depends_on": ["C9a"],
      "unlocks": ["C19"]
    },
    {
      "id": "C12",
      "name": "Retention OS Phase 2 — Renewal War Room",
      "track": "claude",
      "status": "auto",
      "type": "DS",
      "effort": "1 week",
      "description": "Weekly Slack digest: every athlete within 60 days of renewal, sorted by risk tier. Leadership gets full view, coaches get their own athletes.",
      "depends_on": ["C10"],
      "unlocks": []
    },
    {
      "id": "C13",
      "name": "Program Writer Phase 1 — Rule extraction with Jordan",
      "track": "claude",
      "status": "auto",
      "type": "PW",
      "effort": "1-2 weeks (Jordan's time)",
      "description": "Jordan reviews Phase 0 output using real athletes, adjudicates rules, tags 10-15 programs with decision reasoning, defines archetypes.",
      "depends_on": ["C9b", "C9c"],
      "unlocks": ["C14"]
    },
    {
      "id": "C14",
      "name": "Program Writer Phase 2 — Reference corpus + retrieval",
      "track": "claude",
      "status": "auto",
      "type": "PW",
      "effort": "2 weeks",
      "description": "Build the reference corpus from Jordan-tagged programs and retrieval system for similar-athlete lookup.",
      "depends_on": ["C13"],
      "unlocks": ["C26"]
    },
    {
      "id": "C15",
      "name": "Parker's Queue Phase 1",
      "track": "claude",
      "status": "auto",
      "type": "SA",
      "effort": "3-5 days",
      "description": "AI-drafted outreach approval app. Claude drafts personalized messages, Parker reviews and approves with one tap. Starts with renewal trigger + email channel.",
      "depends_on": ["B7"],
      "unlocks": ["C16", "C17"]
    },
    {
      "id": "C16",
      "name": "Parker's Queue Phase 2 — n8n workflow + Next.js MVP",
      "track": "claude",
      "status": "auto",
      "type": "SA",
      "effort": "1-2 weeks",
      "description": "Full production workflow with web UI for Parker's daily queue.",
      "depends_on": ["C15"],
      "unlocks": ["C29"]
    },
    {
      "id": "C17",
      "name": "Parker's AI Assistant — daily briefing",
      "track": "claude",
      "status": "auto",
      "type": "SA",
      "effort": "1 week",
      "description": "Daily briefing Parker receives showing exactly what to focus on today.",
      "depends_on": ["C15"],
      "unlocks": []
    },
    {
      "id": "C18",
      "name": "Retention OS Phase 3 — outcome validation",
      "track": "claude",
      "status": "later",
      "type": "DS",
      "effort": "1 week",
      "description": "After 4-6 weeks: are triggers actually predictive?",
      "depends_on": ["C10"],
      "unlocks": []
    },
    {
      "id": "C19",
      "name": "Retention Intelligence Phase 2 — transcript scoring (shadow)",
      "track": "claude",
      "status": "later",
      "type": "DS",
      "effort": "2 weeks",
      "description": "LLM-scored Zoom calls against coaching rubric. Brooks-only for first month.",
      "depends_on": ["C11"],
      "unlocks": ["C20"]
    },
    {
      "id": "C20",
      "name": "Retention Intelligence Phase 3 — coach-facing action feed",
      "track": "claude",
      "status": "later",
      "type": "DS",
      "effort": "1 week",
      "description": "Coaching intelligence integrated into Data Hub, framed as 'coaching opportunities.'",
      "depends_on": ["C19"],
      "unlocks": []
    },
    {
      "id": "C21",
      "name": "Retention OS Phase 4 — passive coach action capture",
      "track": "claude",
      "status": "later",
      "type": "DS",
      "effort": "1 week",
      "description": "Measure if coach activity increases after coaching prep surfaces. No forms, no behavior change required.",
      "depends_on": ["C10"],
      "unlocks": []
    },
    {
      "id": "C22",
      "name": "Conversation sync Phase 2.5 — curated thread layer",
      "track": "claude",
      "status": "later",
      "type": "DS",
      "effort": "1 week",
      "description": "Reconstruct customer service conversations from raw records.",
      "depends_on": ["B9"],
      "unlocks": ["C23"]
    },
    {
      "id": "C23",
      "name": "SOP extraction + categorization",
      "track": "claude",
      "status": "later",
      "type": "DS",
      "effort": "2+ weeks",
      "description": "LLM categorizes conversation scenarios, extracts response patterns for Brooks to audit.",
      "depends_on": ["C22"],
      "unlocks": []
    },
    {
      "id": "C24",
      "name": "Data Hub — coach discovery rollout + suggested questions",
      "track": "claude",
      "status": "later",
      "type": "DH",
      "effort": "2 weeks",
      "description": "Roll out Data Hub to Jordan + Neal beta, then add suggested discovery questions.",
      "depends_on": [],
      "unlocks": []
    },
    {
      "id": "C26",
      "name": "Program Writer Phases 3-5 — draft generator, shadow, scale",
      "track": "claude",
      "status": "later",
      "type": "PW",
      "effort": "8 weeks",
      "description": "Draft generator MVP, shadow mode, then scale.",
      "depends_on": ["C14"],
      "unlocks": []
    },
    {
      "id": "C29",
      "name": "Parker's Queue Phase 3+ — harden, expand triggers",
      "track": "claude",
      "status": "later",
      "type": "SA",
      "effort": "Ongoing",
      "description": "Expand trigger types, harden the system.",
      "depends_on": ["C16"],
      "unlocks": []
    }
  ],
  "deferred": [
    {"name": "Metric snapshots table + Monday cron", "trigger": "When retention triggers need trend validation"},
    {"name": "Acuity In-Gym appointments sync", "trigger": "When In-Gym scheduling analysis is needed"},
    {"name": "Google Calendar Premium appointments", "trigger": "Brooks decision pending"},
    {"name": "Game Changer integration (on-field stats)", "trigger": "Jordan confirms access"},
    {"name": "Business State Layer — business_events table", "trigger": "After Business State Layer core (C9)"},
    {"name": "Crash-out prediction model", "trigger": "After trigger layer (C10)"},
    {"name": "BRX Decision Model (slot-value / capacity tradeoffs)", "trigger": "After metric snapshots + Business State Layer"},
    {"name": "Property descriptions push to HubSpot", "trigger": "After Brooks audits descriptions"},
    {"name": "AI Messaging Strategy (framing AI to coaches)", "trigger": "After coach discovery rollout"},
    {"name": "Context Layer system maintenance", "trigger": "After breadth reaches ~8.5/10"},
    {"name": "Notion → Supabase program log sync", "trigger": "When Jordan needs it"},
    {"name": "Data Hub admin (passwords, observability)", "trigger": "When usage warrants"},
    {"name": "Data Hub UX (mobile, chat history)", "trigger": "When usage warrants"},
    {"name": "Zoom transcript deep analysis (check-ins, cross-coach)", "trigger": "After extraction pipeline (C3)"},
    {"name": "Supabase slot capacity analysis", "trigger": "When capacity planning needed"},
    {"name": "Program Writer deferred features", "trigger": "Trigger conditions per plan"}
  ]
}
