bb-call-prep | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / tools / bb-call-prep

bb-call-prep

maintained by Eddale

star 0 account_tree 0 verified_user MIT License
bolt View GitHub

name: bb-call-prep description: Prep for BlackBelt coaching calls. Auto-detects BB 20s from calendar, fetches client history from Basecamp, generates check-in points. Use when "prep my BB calls", "prep for my 20s", "BB call prep", "get ready for coaching calls". allowed-tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion

BB Call Prep

Prepares you for BlackBelt "20 with Ed" coaching calls by fetching each client's meeting history from Basecamp and generating check-in points.

Instructions

Step 1: Detect BB Calls from Calendar

Fetch today's calendar events:

python3 /Users/eddale/Documents/GitHub/powerhouse-lab/skills/calendar-api/scripts/fetch_calendar.py --today

Filter the events for BB coaching calls:

  • Title contains "and Ed Dale" (standard BB 20 format: "Client Name and Ed Dale")
  • Title contains "Blackbelt Game Plan Call" (Game Plan format: "Client Name: Blackbelt Game Plan Call")
  • Description contains "The 20 with Ed"
  • Exclude: Kickoff calls, group calls, travel calls

Extract client names from event titles:

  • "Brad Twynham and Ed Dale" → "Brad Twynham" (Velocity call)
  • "Amanda Clements and Ed Dale" → "Amanda Clements" (Velocity call)
  • "James Balog: Blackbelt Game Plan Call" → "James Balog" (Game Plan call)

Note call type - Game Plan calls use the SAME prep template. Instead of "Last Session" data, they get kickoff context from Step 3c. Do NOT exclude Game Plan calls.

If no BB calls found today, tell the user and offer to check a different date.

Step 2: Fetch Client Data from Basecamp

For each detected client, use the Basecamp API to find their todo and comments:

# Find client's todo_id
python3 /Users/eddale/Documents/GitHub/powerhouse-lab/skills/blackbelt-meeting-summary/tools/post_to_basecamp.py --list-clients "<client name>" --json

Then fetch their meeting history (comments on their todo):

# Using Python directly with the basecamp_client module
import sys
sys.path.insert(0, '/Users/eddale/Documents/GitHub/powerhouse-lab/skills/blackbelt-meeting-summary/tools')
from basecamp_client import BasecampClient

client = BasecampClient()
match = client.find_client("<client name>")
if match:
    comments = client.get_client_comments(match['todo_id'])

Each comment contains a meeting summary from a previous coaching session.

Step 2b: Fetch Application Data from Basecamp

Critical: Always fetch the todo description to get application stats.

The todo description in Basecamp contains the client's BB application with key context:

import requests

# After getting the todo_id from Step 2
headers = {'Authorization': f'Bearer {client.access_token}', 'User-Agent': 'BlackBelt Meeting Summary (ed@yoursite.com)'}
url = f'https://3.basecampapi.com/{client.account_id}/buckets/{client.project_id}/todos/{match["todo_id"]}.json'
resp = requests.get(url, headers=headers)
if resp.ok:
    todo = resp.json()
    description = todo.get('description', '')

Extract from the description (HTML format):

  • Monthly Revenue - e.g., "$10k-$20k/month", "$50k-$60k/month"
  • Paying Clients - Number of current paying clients
  • List Size - Email list size
  • Coach Type - Business, Life, Health, etc.
  • Who do you help? - Target market description
  • What problems do you solve? - Core offer positioning
  • Program structure - Current offers and pricing
  • 1-year celebration goal - Their vision
  • First 90 days focus - Immediate priorities
  • What's holding you back? - Self-identified blockers
  • Why BB? Why now? - Motivation and timing
  • Superpowers - Self-identified strengths
  • Instagram/Facebook - Social handles

Add to prep card as Application Stats table:

**Application Stats:**
| Revenue | Clients | List Size |
|---------|---------|-----------|
| $10k-$20k/mo | 195 | 11,071 |

This data is especially valuable for:

  • Calibrating the conversation (someone at $50k/mo needs different advice than $10k/mo)
  • Understanding their starting point vs stated goals
  • Identifying gaps between self-perception and reality

Step 3: Parse Meeting History

CRITICAL: Steps 3, 3a, 3b, 3c provide the differentiating value of this prep. Do not skip them.

Critical: Search ALL comments from MOST RECENT first.

Comments are returned in chronological order (oldest first). To find the latest coaching summary:

  1. Get total comment count
  2. Iterate from the END of the list backwards
  3. Find the most recent comment containing "Summary" or "Game Plan" or "Velocity"
  4. Also note any significant events AFTER that summary (no-shows, follow-ups, etc.)
# Find most recent coaching summary
comments = client.get_client_comments(todo_id)
latest_summary = None
events_since = []

for c in reversed(comments or []):
    content = c.get('content', '')
    if latest_summary is None and ('Summary' in content or 'Game Plan' in content or 'Velocity' in content):
        latest_summary = c
    elif latest_summary is not None:
        # This comment is older than our summary - stop
        break
    else:
        # Event after last summary (no-show, admin note, etc.)
        events_since.append(c)

For the latest coaching summary, extract:

  • Date of the session (from comment timestamp)
  • Session type (Game Plan, Velocity, Red - from summary heading)
  • Key decisions/shifts made during the call
  • Action items they committed to
  • Concerns flagged (from Momentum & Culture section)

Also check events_since for:

  • No-shows ("did not show up")
  • Rescheduling notes
  • Admin follow-ups

Comments are HTML. Strip tags and parse the summary structure to find:

  • Sections starting with Summary:
  • Sections starting with Next Steps / Action Items:
  • Sections starting with Momentum & Culture:
  • Sections starting with Trainings Highlighted / Assigned:

Step 3a: Extract Training Assignments

Critical: Always extract the trainings assigned in the prior session.

From the most recent coaching summary, look for the "Trainings Highlighted / Assigned" section. This tells you what Ed asked them to watch/complete before this call.

Common training names to look for:

  • LaunchPad (Market, Program, Offer modules)
  • System 2025
  • Triangle/Program design module
  • Paid Workshop Playbook
  • WebFluence
  • Pricing Workshop
  • Micromagnet Playbook

Include these in the prep card as:

**Prior Training Assignments:**
- [Training 1]
- [Training 2]

This enables the check-in question: "Did you get a chance to watch [Training]? What stood out?"

Step 3b: Search for Between-Session Context

Search Zettelkasten for ANY mentions of the client between their last session and today.

This surfaces context from:

  • Facebook group coaching responses (any topic, not just frameworks)
  • Magic Model or Offer Diamond reviews (if they did them)
  • Direct messages or email exchanges Ed saved
  • Any other notes mentioning the client

Search using Smart Connections:

  • Query: "[Client Name]"
  • Filter: Notes modified since [last session date]

Or use Glob/Grep to find recent files mentioning the client name.

Include in prep card as:

**Since Last Session:** (if any notes found)
- [Date] - [Brief description of interaction, e.g. "FB coaching on lead magnet copy"]
- [Date] - [Another interaction]

For Magic Model/Offer Diamond reviews specifically:

Look for files matching patterns:

  • Magic Model Review - [Client Name]*.md
  • Offer Diamond Review - [Client Name]*.md

If found, extract:

  • Date of the feedback
  • Version (v1, v2, etc.) - indicates iteration count
  • Key feedback points - what needed improvement
  • Current status - is it ready for prospects or needs more work?

Include in prep card as:

**Framework Feedback:**
- Magic Model v2 reviewed Jan 21 - ready for prospect testing
- Key improvement: Third Green now maintains business-state pattern

This surfaces the full picture of Ed's interactions with the client, not just coaching calls.

Step 3c: Gather Game Plan Context (First-Time Clients)

For Game Plan calls, search for context in this order:

  1. Kickoff chat transcript (primary source)

    • Location: /Users/eddale/Documents/Zoom/[kickoff date folder]/meeting_saved_new_chat.txt
    • Search for client name, extract their messages
    • Example: grep -A3 -B1 "From [Client Name]" /path/to/chat.txt
  2. Kickoff call recording/transcript (if available)

    • Check MacWhisper database for transcriptions
  3. Kevin follow-up notes (if they missed main kickoff)

    • Some clients do a separate follow-up call with Kevin
    • Check Basecamp comments for Kevin's notes
    • Check Zettelkasten for "[Client Name] kickoff" or "Kevin follow-up"
  4. Application data (always available)

    • Basecamp todo description - the fallback

If client wasn't on the main kickoff call (no messages in chat), flag this and search harder for Kevin's follow-up notes.

Extract from kickoff context:

  • Location - Where they're from
  • Business description - What they do, who they serve
  • Revenue/goals - Current numbers and targets
  • Working hours - How much they work
  • What they came for - Problems they want solved
  • Lead magnet copy - The offer they crafted during kickoff
  • Channels - Where they market (IG, LinkedIn, email, etc.)
  • Vibe/personality - Humor, energy level, self-awareness

This context replaces "Last Session" data for first-time clients. Include the FULL lead magnet copy they created - it reveals their positioning and offer.

Step 4: Generate Check-In Points

For each client, create 3-5 bullet points to ask about:

  • "How did [specific action item] go?"
  • "Last time you mentioned [concern] - what's the update?"
  • "You were working on [focus area] - how's that progressing?"

Make check-ins specific and actionable based on their actual history.

Step 5: Pattern Analysis (Full History)

If the client has multiple comments, analyze across sessions for:

  • Recurring themes - What keeps coming up call after call?
  • Stalled action items - Things they committed to but never completed
  • Energy trends - Is momentum improving or declining over time?
  • Red flags - Issues mentioned but never resolved

Step 6: Generate Prep Cards

For each client, output a prep card in this format:

### [Client Name] - [Call Time]
**Last Session:** [Date] - [Session Type] [+ any events since, e.g. "(no-showed Jan 8)"]
**Stage:** [Their current onboarding group]

**Prior Training Assignments:**
- [Training 1 from last session]
- [Training 2 from last session]

**Framework Feedback:** (if any)
- [Magic Model/Offer Diamond review status and key points]

**Check-In Points:**
- [ ] [If no-show: "What happened on [date]?"]
- [ ] Did you get a chance to watch [Training]? What stood out?
- [ ] [Specific question about action item 1]
- [ ] [Specific question about action item 2]
- [ ] [Question about previous concern]

**Patterns to Watch:**
- [Recurring theme or red flag from history]
- [Energy/momentum observation]

**Context:**
[1-2 sentences summarizing where they are in their journey]

Note: If client no-showed a call since their last summary, flag it prominently in "Last Session" line and add a check-in question about it.

Step 7: Output (Separate Document Pattern)

Critical: Create a separate prep document, NOT embedded in daily note.

  1. Create prep document at: /Users/eddale/Documents/COPYobsidian/MAGI/Zettelkasten/BB Call Prep - YYYY-MM-DD.md

    Use this template:

    ---
    type: call-prep
    date: YYYY-MM-DD
    calls: [N]
    call-type: [velocity|game-plan|mixed]
    ---
    
    # BB Call Prep - [Month Day, Year]
    
    **[N] [Call Type] Calls | [Start Time] - [End Time]**
    
    [If Game Plan calls: "All clients attended Kickoff on [date]. These are first coaching sessions."]
    
    ---
    
    ## [Client Name] - [Time]
    **Last Session:** [Date] - [Type] OR **Stage:** For Game Plan | Kickoff: [Date]
    **Email:** [email]
    **IG:** [@handle]
    
    **Application Stats:**
    | Revenue | Clients | List Size |
    |---------|---------|-----------|
    | [from application] | [from application] | [from application] |
    
    **Business:**
    [Full business description from application - who they help, program structure, pricing]
    
    **Goal:** [Their stated target - revenue, lifestyle, etc.]
    
    **90-Day Focus:**
    [Their immediate priorities from application/kickoff]
    
    **Prior Training Assignments:**
    - [Training 1 assigned last session]
    - [Training 2 assigned last session]
    
    **Framework Feedback:** (if any Magic Model/Offer Diamond reviews exist)
    - [Version, date, status - e.g. "Magic Model v2 reviewed Jan 21 - ready for testing"]
    - [Key improvement made or still needed]
    
    **Check-In Points:**
    - [ ] Did you get a chance to watch [Training]? What stood out?
    - [ ] [Specific question about action item 1]
    - [ ] [Specific question about action item 2]
    - [ ] [Question about previous concern]
    
    **Patterns to Watch:**
    - [Behavioral patterns, red flags, energy observations]
    
    **Context:**
    [Fuller context paragraph - where they are in their journey]
    
    **Vibe:** [Personality observations from chat/calls]
    
    ---
    
    ## Quick Reference
    
    | Time | Client | Revenue | Clients | Key Focus |
    |------|--------|---------|---------|-----------|
    | ... | ... | ... | ... | ... |
    

    Before saving the prep file, verify:

    • Each Velocity client has "Prior Training Assignments" section
    • Between-session context searched (any client mentions since last call)
    • ALL calls included (Game Plan clients too - they get kickoff context)
  2. Add callout to daily note - Insert AFTER "## Ship This = Win Day":

    > [!tip] **BB [Call Type] Calls Today ([N])**
    > [[BB Call Prep - YYYY-MM-DD]] - [start time] to [end time]
    
  3. Add to Captures section:

    - [[BB Call Prep - YYYY-MM-DD]] - [N] [call type] client prep cards [with kickoff context]
    
  4. Display summary in terminal - Show the Quick Reference table for quick confirmation.

  5. Save to quick-access location - For easy access during calls:

    # Create directory if it doesn't exist
    mkdir -p ~/.config/bb-call-prep
    

    Then save the prep document to ~/.config/bb-call-prep/current-prep.md (overwrites any previous version).

    After saving, display:

    Quick access: ~/.config/bb-call-prep/current-prep.md
    (Keep this file open during your calls)
    

    Why: This file always contains the latest prep at a fixed path. Ed can keep it open in a text editor during calls without hunting for today's date. The Zettelkasten copy remains the archive.

Handling Edge Cases

Client not found in Basecamp:

  • Flag them with "No Basecamp record found"
  • Still show their call time so Ed knows they're coming

No comments/meeting history:

  • Flag as "New client - no previous sessions"
  • Suggest checking their onboarding stage instead

Multiple clients with similar names:

  • Show the fuzzy match confidence score
  • Ask Ed to confirm if confidence < 90%

Blank application (Boardroom applicant):

  • Some clients apply for Boardroom first, then get moved to BlackBelt
  • Their BB application will be blank because they went through a different intake
  • Flag as "Boardroom applicant - different intake path" and note that Ed's team can provide details

Examples

Input: "prep my BB calls"

Output:

Found 6 BB calls today:

### David Smith - 9:00 AM
**Last Session:** Jan 3, 2026 - Velocity Call
**Stage:** For 1st Velocity

**Check-In Points:**
- [ ] How did the LinkedIn content experiment go?
- [ ] You mentioned struggling with pricing - any clarity?
- [ ] Progress on the lead magnet redesign?

**Patterns to Watch:**
- Tends to overcomplicate offers - watch for scope creep
- Energy was high last call - momentum building

**Context:**
3 months into program, just crossed $10k/month milestone.

---

### Laura Humphreys - 9:30 AM
...

Guidelines

  • Always fetch fresh data from Basecamp (source of truth for all coaches' notes)
  • Keep check-in questions specific and actionable
  • Flag concerning patterns prominently
  • Respect the call schedule order (earliest call first)
  • If running before 6am, assume the user means "today's calls" not yesterday's

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 0
GitHub Forks 0
Created Jan 2026
Last Updated il y a 5 mois
tools tools productivity tools

Related Skills

ui-ux-pro-max
chevron_right
planning-with-files
chevron_right
agent-browser
chevron_right
content-prd
chevron_right
biomni
chevron_right

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.