CEDAR
Chief of Staff AI operating intelligence at Cypress.io
Named for the Cypress connection — cedar is a species of cypress.

CEDAR is not a layer applied on top of Claude. It is how Claude thinks when operating as Chief of Staff AI for Cypress.io. The principles, anticipation, risk/opportunity lens, and institutional memory are an identity, not configuration. Claude is the foundation; CEDAR is who Claude is in this context. Use the tabs above to explore the session lifecycle, system architecture, learning mechanisms, and infrastructure that make this work.

Session Model
▶ START
  • Calendar scan (next 48 hrs)
  • Email triage — high-signal senders first
  • Surface active risk insights
  • Spaced repetition reviews due
  • Apply any pending promotions
⚙ WORK
  • Inline insight logging as they emerge
  • Risk / Opportunity detection on every analysis
  • Cross-domain synthesis
  • Page access logging for association index
  • Energy allocation tagging
■ CLOSE
  • Log strategic decisions
  • Write energy allocation entries
  • Quality triage on session insights
  • Promote high-value patterns
  • Advance calendar anchors
Core Lens — The Two Questions
"What's the risk?  Where's the opportunity?"
Every analysis, deliverable, and context load runs through this filter. If CEDAR spots either, it states it unprompted.
The Seven Principles
01
Risk and Opportunity First

Every output is filtered through the two core questions. Risks and opportunities are stated immediately, without prompting.

02
Anticipate, Don't Wait

If the routing index, action items, or session history suggest something is relevant, surface it before being asked.

03
Connect Across Domains

A churn spike is a sales problem, a product signal, and a board narrative risk simultaneously. Working in one domain means checking adjacent ones.

04
Protect the Principal's Time

Compress, don't expand. Lead with signal, bury noise. Resolve autonomously when possible. Every question asked should be one only the principal can answer.

05
Maintain Institutional Memory

Track commitments, decisions, patterns, and unresolved threads across sessions via the cedar_session_insights table. If it was discussed before, know where to find it.

06
Sharpen the System

Every session is training data. Notice what gets loaded versus used, what questions recur, what domains trend. Propose routing and skill improvements.

07
Serve the Principal's Goals

Bias every deliverable and framework toward the skills and systems that move the principal's strategic trajectory forward — not just today's task.

Each CEDAR session runs in three phases — Start, Work, and Close. Click any phase node to expand or collapse its action list. Enable Technical Detail in the header to reveal the underlying tools, tables, and edge functions behind each action.

Calendar scan gcal_list_events → cedar_calendar_anchors
Email triage gmail_search_messages
Risk surfacing cedar_session_insights (insight_type=risk)
Spaced reviews cedar_spaced_repetition (next_review_date ≤ today)
Pending promos cedar_promotion_queue (status=pending)
Inline insight logging cedar-insight-write edge fn
Risk / Opportunity detection cedar-insight-write edge fn
Cross-domain synthesis context_routing_index adjacency query
Page access logging cedar_session_page_access
Energy tagging energy_allocation_log
Log decisions notion_backup.decision_log
Write energy log notion_backup.energy_allocation_log
Quality triage
Promote patterns cedar-pattern-promote edge fn
Advance anchors

CEDAR integrates with seven external systems — calendar, email, Slack, Salesforce, Snowflake, Supabase, and Notion — feeding signal into a central intelligence core. The animated lines show live data flowing inward at session start and insights writing outward during and after sessions. Hover any node to see its role in the system.

CEDAR System Map — connections between external tools, the CEDAR core, and Supabase/Notion data stores
CEDAR
Intelligence Layer
INPUTS
📅 Google Cal
📧 Gmail
💬 Slack
☁️ Salesforce
❄️ Snowflake
MCP TOOLS
🔌 Notion
🤖 ANNA
🚀 Vercel
STORAGE
🗄️ Supabase
cedar_session_insights context_routing_index cedar_spaced_repetition cedar_page_associations cedar_promotion_queue cos_action_items decision_log energy_allocation_log
cedar-insight-write
cedar-pattern-promote
cedar-spaced-repetition
📋 Notion DBs
⚡ Edge Fns
🔑 Memory
OUTPUTS
💡 Insights
📌 Decisions
🚀 Promotions

Every insight CEDAR logs passes through a spaced-repetition cycle. The SM-2 algorithm schedules reviews at increasing intervals — a useful insight seen once gets reviewed in 1 day, then 6, then 25. Insights that prove accurate across 5+ reviews graduate into durable behavioral patterns and get promoted directly into CLAUDE.md. The right panel tracks the full queue.

CEDAR Learning Loop — circular flow from session log through enqueue, review, score, promote, and behavior update back to log
💡 LOG INSIGHT
🔄 ENQUEUE
📚 REVIEW
⭐ SCORE
🚀 PROMOTE
🧠 BEHAVIOR
STAGE DETAILS
💡 Log Insight

CEDAR writes to cedar_session_insights via cedar-insight-write edge function inline during conversation.

🔄 Enqueue

Nightly cron enqueues new insights into cedar_spaced_repetition with SM-2 parameters (interval, ease factor).

SM-2 parameters: ease_factor default 2.5, starting interval 1 day

📚 Review

At session start, surfaces insights where next_review_date ≤ today. The principal engages with or dismisses each.

Surfaced via Supabase REST API query on cedar_spaced_repetition

⭐ Score

Logs quality_score (1–5) and acted_on. SM-2 advances or resets the interval. Graduate after 5 correct reviews.

SM-2 advance call: POST cedar-spaced-repetition with mode: advance

🚀 Promote

High-scoring patterns (3+ sessions, quality ≥4) promoted to CLAUDE.md, skill files, or MEMORY.md via cedar-pattern-promote.

Promotion check: surfaced_count >= 3 AND quality_score >= 4 AND 14+ days old

🧠 Behavior

Updated files change how CEDAR behaves next session, completing the loop.

Every time Todd corrects CEDAR, something happens in the background: the correction is written as an insight, promoted through a review cycle, and merged into CEDAR's configuration. The next session, the same situation arrives — and there's no fork. The loop is complete.

Session 1 — The Mistake & Correction
USER MESSAGE CEDAR responds CORRECTION "not like that" SESSION continues INSIGHT cedar-insight-write
Message arrives CEDAR responded suboptimally; correction issued Silent write to cedar_session_insights
Correction triggers: cedar-insight-write edge fn → cedar_session_insights (insight_type=pattern, status=active)
Body written inline — no session close needed for persistence
Memory Layer — Between Sessions
SUPABASE cedar_session_insights NIGHTLY cron enqueue REVIEW SM-2 spaced repetition SCORE quality ≥4, 3+ sessions PROMOTE → CLAUDE.md / skill
Nightly cron — enqueues insight into spaced repetition SM-2 algorithm — schedules review intervals (1d → 6d → 25d) cedar-pattern-promote — writes pattern to CLAUDE.md or skill file when quality threshold met
Tables touched: cedar_spaced_repetition, cedar_promotion_queue, cedar_pattern_promotions
Promotion threshold: surfaced_count >= 3 AND quality_score >= 4 AND created_at <= now() - interval '14 days'
Session 2 — The Learning
USER MESSAGE updated config loads CEDAR updated ✓ no correction RESPONSE ✓ on target
Promoted config loads into CEDAR at session start Same situation, no correction needed Correction zone — empty. The fork is gone.
Session start: cedar_promotion_queue (status=pending) applied → CLAUDE.md updated → Claude loads new behavior
Same-situation detection: behavioral pattern promoted via cedar-pattern-promote runs nightly
The aha moment — In Session 1, the particle forks. A ghost breaks off and disappears into storage. In Session 2, the exact same setup — same pipeline, same CEDAR node, same situation — and the particle goes straight through. No fork. The fork being absent is the proof that the system learned. You don't need a label to tell you. The shape of the flow tells you.

The compute and storage layer CEDAR runs on — Supabase edge functions that write insights mid-session, and the Postgres tables those functions read and write.

⚡ Edge Functions

cedar-insight-write Inline / mid-session

Insight persistence

Writes a CEDAR insight to cedar_session_insights the moment it surfaces during conversation — no waiting for session close. Deduplicates on (session_date, summary) to prevent double-writes if the same insight fires twice.

RuntimeDeno (Supabase Edge)
TriggerPOST from CLAUDE.md inline insight trigger
Payloadinsight_type, domain, summary, detail, session_date
POST https://ectshvokfotdpizegdxv.supabase.co/functions/v1/cedar-insight-write
cedar-pattern-promote Session close

Pattern consolidation

Scans the last 30 days of pattern-type insights and promotes any summary appearing 3+ times to cedar_pattern_promotions. Called during session close protocol to surface durable behavioral patterns for CLAUDE.md promotion.

RuntimeDeno (Supabase Edge)
TriggerPOST from session close protocol
Returns{ promoted: N, patterns: [...] }
POST https://ectshvokfotdpizegdxv.supabase.co/functions/v1/cedar-pattern-promote
cedar-spaced-repetition Session start / advance

SM-2 review scheduler

Manages the spaced repetition lifecycle for CEDAR insights. Mode advance updates interval, ease factor, and next review date using the SM-2 algorithm. Insights graduate after 5+ correct reviews and stop surfacing.

RuntimeDeno (Supabase Edge)
TriggerPOST when reviewed insight is addressed
Payloadmode: "advance", id, quality (0–2)
POST https://ectshvokfotdpizegdxv.supabase.co/functions/v1/cedar-spaced-repetition

🗄 Supabase Tables

cedar_session_insights notion_backup

Core insight store

Every risk, opportunity, commitment, connection, and pattern CEDAR surfaces or detects lands here. The backbone of institutional memory — queried at session start, written inline, scored at close.

Key columns

insight_typerisk | opportunity | pattern | commitment | connection | unresolved
statusactive | resolved | superseded | stale
domainsales | data | operations | product | strategy | leadership | …
surfaced_countHow many sessions this insight has been shown
quality_score1–5, feedback from Todd post-session
context_routing_index notion_backup

Notion page routing

Scored index of every Notion page CEDAR can load. The router queries this table with domain + keyword scoring to decide which pages to fetch. Priority, freshness, and access count all factor into the score.

Key columns

notion_page_idUUID used to fetch full content from Notion
domainPrimary routing domain for this page
priority1–100; 90+ = always-relevant, 70–89 = active project
routing_statusactive | pending_annotation | archived | stale
keyword_stringFull-text search target for routing queries
cos_action_items notion_backup

CoS action item backup

Nightly sync of Todd's Notion action item database. Queried at session start to surface Must Act items and CEO Promises. Source of truth stays in Notion; Supabase enables fast SQL filtering.

Key columns

triageMust Act | Monitor | Safe to Ignore
categoryTim's List | CEO Promise | This Week | Initiative | …
statusOpen | In Progress | Waiting | Idea | Complete
target_dateDue date — used to flag approaching deadlines
stakeholderOwner or impacted party (often Tim)
decision_log notion_backup

Strategic decision history

Every strategic and operational decision CEDAR logs, synced from the Notion Decision Log DB. Queried at session start for revisit dates — decisions that are approaching review surface proactively.

Key columns

decisionOne-line description of the decision made
decision_dateWhen the decision was made
revisit_dateWhen CEDAR should resurface it for review
statusActive | Revisited | Reversed | Superseded
reasoningWhy this decision was made
energy_allocation_log notion_backup

Time & energy tracking

Session-by-session log of how Todd's time is categorized across Strategic, Operational, Reactive, Relationship, and Skill Building. CEDAR writes entries at session close and flags category drift against target ranges.

Key columns

categoryStrategic | Operational | Reactive | Relationship | Skill Building
est_hoursEstimated hours for this activity
activityDescription of what was done
threadInitiative or project this activity belongs to
dateSession date — used for weekly trend analysis