Supabase Context Retrieval Agent

Summary

Create a Cursor agent prompt that enables retrieval of client context from two Supabase projects:

  • Slack messages (oqtkgsndvitzyfzwcdoz): 97K+ messages across 20+ clients
  • Zoom transcripts (viqeppmsqvwpslpvttkk): 63 meetings with transcripts, summaries, and embeddings

This directly addresses Ticket 3 from your internal meeting notes: “Integrate Supabase MCP with Cursor for Transcript Access.”---

Data Architecture

flowchart TB
    subgraph slack_project [Slack Project - oqtkgsndvitzyfzwcdoz]
        SlackRaw["client_{name}_messages<br/>Raw Slack messages"]
        SlackBlocks["_{name}_slack_content_blocks<br/>Aggregated by period/channel"]
        SlackEmbed["client_{name}_embeddings<br/>Semantic search ready"]
    end
    
    subgraph zoom_project [Zoom Project - viqeppmsqvwpslpvttkk]
        ZoomFiles["zoom_meeting_recording_files<br/>Transcripts + summaries"]
        ZoomEmbed["client_{name}_embeddings<br/>Chunked embeddings"]
        LinearTickets["linear_ticket_generations<br/>Generated tickets"]
    end
    
    subgraph agent [Supabase Context Agent]
        Router[Request Router]
        Router --> SlackBlocks
        Router --> ZoomFiles
    end
    
    subgraph output [Document Generation]
        Playbook["Playbook Template"]
        FinalDoc["Generated Document"]
    end
    
    SlackBlocks --> Playbook
    ZoomFiles --> Playbook
    Playbook --> FinalDoc

Key Tables by Use Case

For Slack Context (Project: oqtkgsndvitzyfzwcdoz)

| Table Pattern | Purpose | Best For ||--------------|---------|----------|| {client}_slack_content_blocks | Pre-aggregated content by period/channel | Quick context retrieval || client_{client}_messages | Raw messages with timestamps | Detailed conversation analysis || client_{client}_embeddings | Vector embeddings | Semantic search |Available clients: eden, javvy, pp2g, abchome, urbanstems, mattermore, otr, readme, sparkplug, insomniacookies, ellie, interlude, rimo, hypaccess, hedra, honeystinger

For Zoom Context (Project: viqeppmsqvwpslpvttkk)

| Table | Purpose | Key Columns ||-------|---------|-------------|| zoom_meeting_recording_files | Meeting transcripts & summaries | content, summary, meeting_date, participants, team || client_{client}_embeddings | Chunked transcript embeddings | content, embedding, source_record_id || client_{client}_raw | Client-filtered meeting views | Same as zoom_meeting_recording_files |---

Implementation

File 1: Agent Prompt

Location: standards/04-prompts/supabase/supabase-context-agent.md

The agent prompt will:

  1. Parse user requests to identify client name and data type needed (Slack vs Zoom)
  2. Route to the correct Supabase project
  3. Execute appropriate SQL queries via mcp_supabase_execute_sql
  4. Format results for use with other playbook prompts

Example SQL patterns to include:

-- Get recent Slack context for a client
SELECT period, channel, content, message_count 
FROM eden_slack_content_blocks 
ORDER BY period DESC LIMIT 5;
 
-- Get Zoom meeting transcripts for a client
SELECT meeting_date, summary, content, participants 
FROM client_eden_raw 
WHERE meeting_date >= '2025-01-01' 
ORDER BY meeting_date DESC;
 
-- Search across all meetings by topic
SELECT folder, meeting_date, summary 
FROM zoom_meeting_recording_files 
WHERE summary ILIKE '%product roadmap%';

File 2: Schema Reference

Location: standards/04-prompts/supabase/schema-reference.md

Document the available tables, columns, and project IDs for quick reference.


Example Workflow

User says: “Write a SOW for Eden based on our last 3 meetings”

Agent execution:

  1. Identifies client: eden
  2. Identifies data needed: Zoom transcripts
  3. Executes: SELECT meeting_date, summary, content FROM client_eden_raw ORDER BY meeting_date DESC LIMIT 3;
  4. Passes context to SOW prompt from standards/04-prompts/sow/
  5. Generates SOW using template + meeting context

Deliverables