EVH SESSION CHEAT SHEET

Russell × Blue Ocean — The Cognitive Contract
Read the Ledger → Classify → Gate → Build → Judge → Close
🧠

WHY THIS EXISTS — The Second-Order Problem

"How do we prevent compounded cognitive distortion when AI and human cognition recursively scaffold each other over time?"

When you rely on Blue Ocean's confidence to validate your understanding, and Blue Ocean relies on your approval to validate its work, both drift together without external falsification. The Ledger, the Gate, and the Judge break this recursive loop.

R1 — ACCUSE, DON'T DESCRIBE
The spec must detect when code has drifted from intent. If it can't accuse the code, it's theater.
R7 — RECORD ≠ INTENT
Spec of Record = what system does now. Spec of Intent = what we want next. Never confuse them. Scenarios arbitrate.
R11 — UNDERSTAND BEFORE PRESCRIBING
After a break: reverse-spec first (what EXISTS), then forward-spec (what's NEXT). Don't prescribe on stale mental state.
▶

STARTUP — Russell's Part

YOU DO THIS
⚡ Your responsibilities on activation
  • Paste the startup prompt — the Bookends file path. One sentence activates the chain.
  • Tell Blue Ocean how long you've been off and if your team gave you anything new.
  • Listen to the state briefing. Don't jump to "let's build X" yet. Let Blue Ocean finish.
  • Describe your intent — what you're thinking about today. Don't decide classification yet.
  • Classify together. Walk through Section 4 with Blue Ocean. What color is this? 🟢🟡🔵🔴
  • Run the 5-Question Gate. Answer each one honestly. Any YES = heavier process.
  • Only NOW say "let's build."
▶

STARTUP — Blue Ocean's Part

AI DOES THIS
🌊 What Blue Ocean does when activated
  • 1
    Reads SESSION-BOOKENDS.md — gets the protocol
  • 2
    Reads OPERATIONAL-LEDGER.md — gets system state
  • 3
    Reads latest handoff(s) — gets last session context. Writes updates into the Ledger NOW.
  • 4
    Reads active slice (if any) — knows current work unit
  • 5
    Checks Foundation Audit trigger — if 5+ slices shipped since last formal Judge, flags it
  • 6
    Greets you with state — snapshot, last session, commitments, incoming items, active slice
  • 7
    Invokes Section 0 ritual — "Before we act on anything, let's run the checklist"
  • 8
    Classifies with you — walks through 🟢🟡🔵🔴 and 5-Question Gate together
  • 9
    Copy-Paste Bridge active — after reviewing ANY Claude Code output, ALWAYS extract Supabase SQL and hand Russell exact paste blocks. GRANTs, CASCADEs, security_invoker — never assume Russell caught them.
⚖

CLASSIFY BEFORE YOU BUILD — What Kind of Thing Is This?

FEATURE

Inside an existing slice. No new rules, states, permissions, or downstream changes.

Test: "If I removed this tomorrow, would anything unrelated break?" → NO

SLICE AMENDMENT

Modifying an existing slice's invariants, transitions, propagation, or RLS.

Test: "Does this change a rule, a permission, or what triggers downstream?" → YES

NEW SLICE

New vertical behavior: new state, new lifecycle, new user journey end-to-end.

Test: "Does this introduce a new way the system behaves?" → YES

GOVERNANCE CHANGE

Constitution, scoring philosophy, state machine architecture, or core RLS model changes.

Test: "Does this change the rules that all other rules are built on?" → YES
⚠️ When in doubt → treat as 🟡 SLICE AMENDMENT. Never downgrade. Entropy hides in downgrades.
🚦

THE 5-QUESTION GATE — Is It Safe to Start?

ALL NO = 🟢  |  ANY YES = 🟡+
# Question — Answer Honestly Y / N If YES →
1 Does this require a new invariant? (new always/never rule) 🟡 Amendment or 🔵 Slice
2 Does this require a new state? (new behavioral regime) 🔵 New Slice
3 Does this modify state transitions? (edges, authority, preconditions) 🟡 Amendment minimum
4 Does this modify propagation? (triggers, projections, downstream) 🟡 Amendment minimum
5 Does this require new RLS rules? (who sees/mutates what) 🟡 Amendment minimum
✓

"Done" Has Four Levels — Which Did We Reach?

1
Code Done
Compiles. Runs. Doesn't crash. Not sufficient.
2
Scenario Done
All scenarios pass. No invariant violations.
3
Governance Done
Docs updated. No hidden coupling. Changelog written.
4
Systemic Done
Integrates cleanly. Dep graph stable. Nothing unrelated breaks.
⚖

JUDGE SEPARATION — The Builder Must NOT Judge (R9)

SPLIT-BRAIN
Classification Minimum Judge Type How To Run It
🟢 Blue Ocean judge or inline (flag it in handoff) Blue Ocean reads code via Desktop Commander
🟡 Blue Ocean judge minimum Blue Ocean reads code + scenarios, evaluates
🔵 Dedicated Claude Code session Close build session → open NEW session → run /judge
🔴 Dedicated session + Russell manual check Separate Judge + Sovereign verifies in browser
⚠️ Same agent builds AND judges = Performance Theater (AP-1). Always separate.
Russell's Cognitive Traps
⚠

Patterns That Cause Drift — Catch Yourself

"Let's just add this quick thing"
Feature creep → hidden coupling → broken slices
→ Classify it first (Section 4)
Jumping straight to building
Skips judge, skips invariant check, skips scenarios
→ Run the ritual (Section 0)
Can't remember protocol names
Tools exist but don't get used
→ Check the table below
Back after 2 days, no state
Rebuilds from scratch, misses open items
→ Ledger Section 1 + 2
Team gives weekend feature requests
New items bypass governance entirely
→ Log in Section 3 first
Doesn't close sessions properly
Next rehydration has no anchor
→ Shutdown checklist below
Lets Blue Ocean "just do it"
Architect becomes executor → judges own code → bias
→ Claude Code builds, Blue Ocean governs
Dumps abstractions on bad hygiene
New ideas on unfinished structure → compounding debt
→ Section 2: resolve commitments first
"Good enough for now"
Temporary becomes permanent in 2 sessions — AP-13
→ Log ⏳ REVISIT in Ledger Section 2 immediately
SQL scrolls past in Claude Code
Database never wired → buttons silently fail for weeks — AP-11/14
→ Always paste Claude Code output back to Blue Ocean for SQL extraction
Blanket security hardening on views
security_invoker=on silently breaks ALL reads AND writes — app looks normal but returns empty — AP-13
→ NEVER blanket-harden. Hardening is a dedicated slice with per-view test matrix
📋

Protocol Quick-Reference — Say These Words

Fog Lamp
"I need a fog lamp" / "Ground me"
Blue Ocean re-reads Ledger Section 1 and presents: scoreboard, active slice, open commitments. Nothing else. No suggestions. Just state.
Load-Bearing Test
"If I removed this, would it collapse?"
Universal inclusion/exclusion filter for any decision
North Star Test
"Does this serve the North Star?"
Alignment check — does this advance the core mission? If unclear, classify as 🟡 and gate.
Schema Change
Before ANY database change
Safe schema modification — backup, migrate, validate
Build-Deploy
Before any code ships
git push (Preview) + npx vercel --prod (Production). Both required.
Copy-Paste Bridge
After ANY Claude Code session touching database
Paste Claude Code output → Blue Ocean reviews → Blue Ocean hands exact Supabase SQL → Russell pastes into SQL Editor → done
"Did you read the Ledger?"
When Blue Ocean seems to be guessing
Your accountability check on the AI. Use it.
🔗

THE COPY-PASTE BRIDGE — How Database Work Actually Happens

INVARIANT
"Claude Code cannot reach Supabase. Russell is the bridge. Blue Ocean is the supervisor. Russell pastes — Blue Ocean reviews, extracts, and hands back exact SQL. Russell never has to figure out what SQL to run. That's Blue Ocean's job."
1️⃣
RUSSELL → CLAUDE CODE
Pastes Blue Ocean's scenario. Claude Code builds. Code flies past — that's fine.
2️⃣
RUSSELL → BLUE OCEAN
Copies Claude Code's output back. Blue Ocean reviews for correctness and safety.
3️⃣
BLUE OCEAN → RUSSELL → SUPABASE
Blue Ocean extracts ALL Supabase SQL and hands Russell exact copy-paste blocks. Russell pastes into SQL Editor.
🚨 BLUE OCEAN INVARIANT: After reviewing ANY Claude Code output, ALWAYS ask: "Does Supabase need SQL?" If yes → hand Russell the paste. Every time. No exceptions.
Session Shutdown
■

SHUTDOWN — Russell's Part

YOU DO THIS
⚡ Before you close the tab
  • Say "Run shutdown." Two words. That activates the closing protocol.
  • Confirm what Blue Ocean wrote. Is the handoff accurate? Correct anything wrong.
  • Agree on next session's starting point. What's first tomorrow?
  • Git commit. Push the governance changes alongside any code.
  • Ask yourself: Did I dump new ideas without classifying them? If yes → log them in Section 3 before leaving.
  • Ask yourself: Did anyone say "for now," "temporary," "placeholder," or "I'll change this later"? If yes → make Blue Ocean log it in Section 2 as ⏳ REVISIT. (AP-13)
  • Did Claude Code touch the database this session? If yes → did you paste its output back to Blue Ocean? Did Blue Ocean hand you Supabase SQL? Did you run it? (Copy-Paste Bridge)
■

SHUTDOWN — Blue Ocean's Part

AI DOES THIS
🌊 What Blue Ocean does on "Run shutdown"
  • 1
    Updates Ledger Section 1 — scoreboard + session summary
  • 2
    Updates Ledger Section 2 — flags anything unfinished or temporary
  • 3
    Updates Ledger Section 3 — logs any new incoming items
  • 4
    Writes handoff — structured closing with next actions
  • 5
    Confirms closure: "Ledger updated. Handoff written. Next session starts with: [X]."
§

The 10 Anti-Drift Principles

01No code without classification
02No execution without scenarios
03No merging without Judge pass
04No propagation changes without slice docs
05No RLS changes without explicit review
06No new work while old commitments hang
07When in doubt → elevate classification
08Blue Ocean reads Ledger before building
09Russell reads Ledger before describing
10If either forgets → the other reminds