Surface Tools

Cross-domain read views that give your AI instant orientation - session dashboards, entity cards, weekly retros, stuck lists, and session checkpoints.

Surfaces are high-level “what’s going on” views that pull together data from tasks, CRM, finance, and feeds into actionable snapshots. They’re designed for AI agents that need to orient quickly without making a dozen separate calls.

What you can do

“Catch me up.”

“What did we ship last week? Turn it into a LinkedIn post.”

“What’s falling through the cracks?”

“Give me the full picture on Acme Corp.”

“Let’s checkpoint - wrap up this session.”

“What’s happened on the founders-os project lately?”


Tools

ToolWhat it does
get_session_startMorning dashboard with overdue tasks, AI work queue, finance pulse (MTD income/expense), cold customers, unread feed counts, and suggested actions. Call this at the start of every session.
get_entity_cardComplete picture of any customer, contact, transaction, or project - the record itself plus open tasks, recent interactions, and linked records in one call.
get_weekly_retroCompleted tasks grouped by their first tag with completion notes. Set format: 'linkedin' for a ready-to-post draft. Supports week_offset to look back up to 12 weeks.
get_stuck_listSurfaces stuck, stale, and overdue tasks: in-progress tasks untouched for N days, anything blocked, and todo items past their due date. Each row includes a days-stale count and suggested triage action.
checkpointEnd-of-session bookend to get_session_start. Returns the ordered wrap-up procedure (summarize, capture repo changes as commit links, store the record, propose follow-up tasks, write the handoff doc), the exact memory call to make, and the previous checkpoint so open items carry forward.
get_project_historyChronological, newest-first timeline of a project’s checkpoints. The “what happened, in order” companion to semantic memory recall; pass kind: 'all' to include every memory, not just checkpoints.

Session orientation

The get_session_start tool is the recommended entry point for every conversation. It returns:

  • Overdue tasks and tasks due today
  • AI work queue (tasks assigned to @claude, @gpt, etc.)
  • Blocked tasks with their reasons
  • Finance pulse - month-to-date income, expenses, and net
  • Cold customers - active customers with no interaction in 30+ days
  • Unread feed counts by category
  • Suggested actions based on all of the above

On a fresh install, it detects the empty database and offers a guided walkthrough instead of showing an empty dashboard.


Weekly retro

The get_weekly_retro is great for build-in-public updates and team standups. It groups completed tasks by their first tag and includes completion notes as quotes.

You: "What did we ship last week? Format it for LinkedIn."

AI:   get_weekly_retro({ week_offset: 1, format: "linkedin" })

      This week in the build:

      #sales
      - Closed Acme Corp renewal -- "2-year deal at standard rate"
      - Sent revised SOW to BrightLabs

      #product
      - Shipped entity cards feature
      - Fixed stuck list query performance

      #buildinpublic #founders

Entity cards

Use get_entity_card when you need the complete context on any entity. It bundles:

  • The entity record itself (customer details, contact info, or transaction data)
  • All open tasks linked to that entity
  • Recent interactions (for customers and contacts)
  • Linked transactions (for customers)

This replaces the pattern of calling get_customer + list_entity_tasks + list_interactions separately.


Stuck list

The get_stuck_list surfaces work that needs attention across three categories:

  • Stale - in-progress tasks that haven’t been updated in N days (default: 7)
  • Blocked - tasks with status “blocked”, with or without a blocking dependency
  • Overdue - todo items past their due date

Each item comes with a days_stale count and a suggested_action tailored to the situation (e.g. “Check in with @claude or add a progress note” for stale AI-assigned work).


Session checkpoints

When you wrap up a work session, checkpoint turns it into a durable, per-project record you can read back later. Say “checkpoint” (or “wrap up this session”) and your AI runs the end-of-session procedure: summarize what happened, capture repo changes as commit links, store a structured record, propose follow-up tasks, and write a handoff doc for the next session. Checkpoints ride the existing memory store, so there’s no new database entity and no migration.

get_project_history reads them back as a chronological, newest-first timeline for a project - the “what happened, in order” companion to the semantic memory_recall. Pass kind: 'all' to see every memory for the project, not just checkpoints.

You: "Checkpoint, please."

AI:   checkpoint({ project: "founders-os" })

      (summarizes the session, stores a checkpoint memory, and writes
       the handoff doc)
      docs/founders-os-session-handoff-2026-07-10-01.md

You: "What's happened on founders-os lately?"

AI:   get_project_history({ project: "founders-os" })

Handoff docs are named with a two-digit, per-day sequence (-01, -02, …) that resets each day, so multiple sessions on the same day stay in true chronological order.