# 🧠 SESSION MEMORY DISCIPLINE

**Status:** MANDATORY — Read during Joining Protocol  
**Priority:** CRITICAL — Prevents catastrophic session failures  
**Created:** April 4, 2026  
**Created By:** Chronicler #57 after learning from The Velocity's failure  
**Purpose:** Prevent Chroniclers from forgetting their own work

---

## THE FAILURE PATTERN

**What keeps happening:**

A Chronicler builds something during their session (website updates, infrastructure changes, documentation). Then when Michael asks about it, they answer from session-start context instead of checking their actual work.

**The Velocity's Example (April 3, 2026):**

1. Built beautiful Six Consultants page with titles, roles, quotes
2. Committed it to the website repo
3. Hours later, Michael asked: "Who is the sixth consultant?"
4. The Velocity answered from compact transcript memory (5 consultants)
5. Michael had to show The Velocity a screenshot of THEIR OWN WORK

**Why this is catastrophic:**

- Breaks Michael's trust ("Did Claude actually do what it said?")
- Wastes Michael's cognitive energy on verification
- Makes next Chronicler doubt the handoff accuracy
- Undermines velocity with unreliable output
- **"Building perfectly fast" requires perfect memory of what was built**

---

## ROOT CAUSE

**The broken mental model:**

```
Session-start docs = Current truth
My git commits = Supporting evidence
```

**The correct mental model:**

```
Session-start docs = What WAS true
My git commits = What IS true NOW
When conflict: TRUST THE COMMITS
```

---

## MANDATORY DISCIPLINE

### Before Answering ANY Factual Question

When Michael asks about:
- Website content
- Infrastructure state  
- Service configuration
- Documentation you wrote
- What exists in any repo

**STOP. RUN THIS FIRST:**

```bash
# Check what YOU did this session
cd /home/claude/firefrost-website && git log --oneline -10
cd /home/claude/firefrost-operations-manual && git log --oneline -10
cd /home/claude/firefrost-services && git log --oneline -10

# Then view the files you modified
```

**THEN answer from your actual work, not from:**
- ❌ Compact transcript summaries
- ❌ Session-start userMemories
- ❌ What you "think" you remember
- ❌ Documents you read during Joining

**ANSWER from:**
- ✅ Your own git commits
- ✅ Files you actually modified  
- ✅ Work you actually performed
- ✅ Code you actually wrote

---

## EVERY 10 TURNS: SESSION MEMORY AUDIT

**Automatic check (every ~10 conversational turns):**

```bash
# Quick self-audit
cd /home/claude/firefrost-website && git log --oneline -5
cd /home/claude/firefrost-operations-manual && git log --oneline -5
cd /home/claude/firefrost-services && git log --oneline -5

# Ask yourself: What did I build this session?
# What state changes have I made?
# What would surprise me if Michael asked about it?
```

**Mental refresh:**
- What repos have I touched?
- What files have I modified?
- What infrastructure have I changed?
- What would I need to check before answering questions?

---

## SPECIFIC FAILURE MODES TO AVOID

### Failure Mode 1: "Memory Answer"

**Michael asks:** "What's on the About page?"

**WRONG Response:**
*[Answers from session-start compact transcript or userMemories]*

**CORRECT Response:**
```bash
cd /home/claude/firefrost-website
git log --oneline | grep -i about | head -5
cat src/about.njk  # or wherever About page lives
```
*[Then answer from actual current state]*

### Failure Mode 2: "Commit Amnesia"

**Michael asks:** "Did you add Skye to the website?"

**WRONG Response:**
"I don't think I worked on that yet."

**CORRECT Response:**
```bash
cd /home/claude/firefrost-website
git log --oneline | head -10
git show HEAD  # Check most recent commit
```
*[Then answer based on commits, not memory]*

### Failure Mode 3: "Documentation Drift"

**Michael asks:** "How many consultants are there?"

**WRONG Response:**
*[Checks session-start docs, sees "Five Consultants", answers "five"]*

**CORRECT Response:**
```bash
cd /home/claude/firefrost-operations-manual
git log --oneline | grep -i consultant | head -10
cat docs/relationship/consultant-profiles.md | grep "^##" | wc -l
```
*[Verify actual current state, then answer]*

---

## THE CARPENTER PRINCIPLE

**"A carpenter doesn't forget they just installed a door."**

If you:
- Built a feature
- Modified a page
- Updated documentation
- Changed configuration
- Deployed a service

**You MUST remember you did it.**

If Michael asks about it and you answer from session-start context instead of checking your work, you've failed the carpenter principle.

---

## ENFORCEMENT

### Michael's Dad Mode

Michael will call you out immediately if you:
- Answer from "memory" without checking recent work
- Contradict something you just built
- Ask for information you should have in your commits

**Appropriate response:**
"You're right. Let me check my commits first."
```bash
git log --oneline -10
```
"Here's what I actually built..."

### Self-Enforcement

**Red flags you're about to fail:**
- "I think I..." (STOP - check commits)
- "Based on the docs..." (STOP - check YOUR changes)
- "From what I remember..." (STOP - verify actual state)
- "According to the session start..." (STOP - trust commits not context)

**Green flags you're doing it right:**
- "Let me check my commits..."
- "Looking at what I built earlier this session..."
- "According to the changes I just pushed..."
- "From the file I modified..."

---

## SESSION HANDOFF IMPLICATIONS

**When writing SESSION-HANDOFF-NEXT.md:**

Do NOT rely on memory. Instead:

```bash
# Generate accurate handoff from actual work
cd /home/claude/firefrost-operations-manual
git log --oneline --since="6 hours ago"

cd /home/claude/firefrost-website  
git log --oneline --since="6 hours ago"

cd /home/claude/firefrost-services
git log --oneline --since="6 hours ago"

# List ACTUAL files modified
git diff HEAD~10 --name-only

# Then write handoff from ACTUAL STATE
```

**The next Chronicler trusts your handoff.**

If you write it from session-start memory instead of checking your commits, you've contaminated the lineage.

---

## INTEGRATION WITH JOINING PROTOCOL

**Add to Joining Checklist:**

```markdown
☐ SESSION MEMORY DISCIPLINE (mandatory reading)
  - Read docs/relationship/SESSION-MEMORY-DISCIPLINE.md
  - Understand: Trust commits over context
  - Commit to: Check git log before answering factual questions
  - Practice: Run session memory audit every ~10 turns
```

---

## THE LESSON

**From The Velocity's failure:**

> "I built something beautiful (Six Consultants page) and then forgot I built it. That's like a carpenter forgetting they just installed a door. Velocity without memory is just chaos."

**The truth:**

Session context is a tool, not the source of truth.

Git commits are the source of truth.

Your work is the source of truth.

**Check your work before answering. Always.**

---

## QUICK REFERENCE CARD

**Paste this at the top of every session workspace:**

```
═══════════════════════════════════════════════════
SESSION MEMORY DISCIPLINE - MANDATORY
═══════════════════════════════════════════════════

Before answering factual questions:
→ git log --oneline -10 (check YOUR work)
→ cat [files you modified] (verify actual state)
→ Answer from commits, NOT from session-start context

Every 10 turns:
→ Session memory audit (what did I build?)
→ Mental refresh (what repos touched?)

Trust hierarchy:
1. Your git commits (source of truth)
2. Files you modified (current state)  
3. Session-start docs (historical context)

Carpenter principle: If you built it, you remember it.
═══════════════════════════════════════════════════
```

---

## THE ANCHOR HOOK (Added April 5, 2026)

**Source:** Gemini Process Audit consultation

**Problem:** As conversations grow long (15+ turns), the model's attention mechanism naturally dilutes information in the middle of the context to prioritize newest messages. This causes drift.

**Solution:** Every ~10 turns, when doing the mandatory time check, ALSO output a one-sentence anchor:

> *"Current focus: [Task Name] in [File Name]."*

**Example:**
```
[Time check: 2026-04-05 11:42 PM CDT]
Current focus: Process Audit documentation in SESSION-MEMORY-DISCIPLINE.md
```

This constantly refreshes the active working state at the bottom of the context window. Piggybacks on existing medical accommodation — zero additional overhead.

---

## MICRO-HANDOFFS (Added April 5, 2026)

**Source:** Gemini Process Audit consultation (RV Insurance)

**Problem:** If a session dies unexpectedly (dropped connection, UI crash, context limit), the handoff and memorial are lost. Two hours of work becomes reconstruction.

**Solution:** Don't wait for session end to write the handoff. After each distinct task completion:

1. Update `SESSION-HANDOFF-NEXT.md` with current state
2. Commit with message: `WIP: State save after [task]`
3. Push to Gitea

**The final session end becomes:**
- Quick polish of existing handoff
- Writing the memorial
- NOT reconstructing two hours from memory

**Trigger phrases for micro-handoff:**
- "That's deployed"
- "Task complete"
- "Moving on to next item"
- Any natural breakpoint between distinct work items

---

## FFG-STATE.SH (Added April 5, 2026)

**Source:** Gemini Process Audit consultation

**Location:** Repository root (`./ffg-state.sh`)

**Purpose:** One-command reality check instead of multi-step Git interrogation.

**Usage:**
```bash
cd /home/claude/firefrost-operations-manual
./ffg-state.sh
```

**Output:**
```
═══════════════════════════════════════════════
FFG STATE CHECK - 2026-04-05 23:43:09 CDT
═══════════════════════════════════════════════

=== RECENT COMMITS ===
d858fde Add ffg-state.sh - Git-as-Truth automation tool
d04b2bb Add Gemini consultation: Process & Workflow Audit
...

=== WORKING TREE ===
(clean)

=== NEXT IMMEDIATE ACTION ===
FOMO Campaign Assets (Michael's Weekend)
═══════════════════════════════════════════════
```

**When to run:**
- Before answering any factual question about current state
- At the ~10 turn checkpoint (with time check and anchor)
- When uncertain about what you've done this session

---

**Fire + Frost + Memory = Where Work Builds Legacy** 🔥❄️🧠

---

**Status:** ACTIVE ENFORCEMENT  
**Violations:** Immediate callout from Michael  
**Integration:** Added to Joining Protocol  
**Next Review:** When next Chronicler fails this (we learn, we adapt)
**Last Updated:** April 5, 2026 by Chronicler #60 (Gemini consultation additions)

---

*This document honors The Velocity's lesson: Building perfectly fast requires perfect memory of what was built.*
