166 lines
5.9 KiB
Markdown
166 lines
5.9 KiB
Markdown
# 12 — Context Lifecycle Management
|
|
|
|
> **Status:** PLAN
|
|
> **Author:** Mario Lavoie
|
|
> **Date:** 2026-02-16
|
|
> **Problem:** Discord channel context grows unbounded; agents see only a sliding window; important decisions fall off; stale context can mislead
|
|
|
|
---
|
|
|
|
## The Problem
|
|
|
|
Agents see ~20-30 recent messages in a Discord channel. Everything older is invisible to them. This creates two failure modes:
|
|
|
|
1. **Lost decisions** — Important conclusions from discussions fall off the window
|
|
2. **Stale context** — If an agent's memory references an old problem that's since been fixed, it may re-raise solved issues
|
|
|
|
## Context Layers (Current Architecture)
|
|
|
|
| Layer | Persistence | Scope | Who Manages |
|
|
|-------|------------|-------|-------------|
|
|
| Discord messages | Ephemeral (sliding window) | Channel | Automatic |
|
|
| Discord pins | Semi-permanent (50/channel) | Channel | Manager |
|
|
| Discord threads | Per-topic (own window) | Thread | Any agent |
|
|
| Handoff JSON | Permanent until archived | Task | Orchestration engine |
|
|
| Agent memory files | Permanent until edited | Agent | Each agent |
|
|
| Knowledge base | Permanent | Company | Knowledge Base agent |
|
|
|
|
## Solution: Three Mechanisms
|
|
|
|
### 1. Condensation Protocol (Secretary's Job)
|
|
|
|
When a Discord channel discussion reaches a conclusion, Secretary produces a **condensation** — a structured summary that captures the decision without the noise.
|
|
|
|
**Trigger:** Manager or any agent says "📝 condense this discussion" or Secretary detects a natural conclusion point.
|
|
|
|
**Output format:**
|
|
```markdown
|
|
## 📝 Condensation: [Topic]
|
|
**Date:** [date]
|
|
**Channel:** #[channel]
|
|
**Participants:** [agents involved]
|
|
**Context:** [what was being discussed, 1-2 sentences]
|
|
**Decision:** [what was decided]
|
|
**Rationale:** [why, key arguments]
|
|
**Action items:** [what follows from this]
|
|
**Supersedes:** [previous decisions this replaces, if any]
|
|
```
|
|
|
|
**Where it goes:**
|
|
1. Pinned in the channel (quick reference)
|
|
2. Written to `/home/papa/atomizer/hq/condensations/YYYY-MM-DD-topic.md`
|
|
3. Key decisions also go to relevant agent memory files
|
|
|
|
### 2. Thread-Based Topic Isolation
|
|
|
|
Use Discord threads for focused problem-solving:
|
|
|
|
**When to create a thread:**
|
|
- Deep technical discussion branching from a channel message
|
|
- Bug investigation or debugging session
|
|
- Review/challenge cycles (auditor challenges → agent responds)
|
|
- Any back-and-forth that would clutter the main channel
|
|
|
|
**Thread lifecycle:**
|
|
1. **Active** — ongoing discussion, agents see full thread context
|
|
2. **Resolved** — conclusion reached → Secretary condenses → thread archived
|
|
3. **Archived** — Discord auto-archives after inactivity, condensation persists
|
|
|
|
**Manager creates threads** for delegated work:
|
|
```
|
|
#proj-starspec-wfe (main channel)
|
|
├── Thread: "Material selection: Zerodur vs CCZ HS" → resolved, condensed
|
|
├── Thread: "Mesh convergence study" → active
|
|
└── Thread: "Mirror mount interface design" → active
|
|
```
|
|
|
|
### 3. Context Refresh Protocol (Per-Channel)
|
|
|
|
Each project channel gets a **living context document** that agents reference:
|
|
|
|
**File:** `/home/papa/atomizer/hq/projects/<project>/CONTEXT.md`
|
|
|
|
**Updated by Secretary** after each condensation or major event:
|
|
|
|
```markdown
|
|
# Project Context: StarSpec WFE Optimization
|
|
|
|
## Current State
|
|
- Phase: Detailed design, post-CDR
|
|
- Active: Mesh convergence study on M2 mirror
|
|
- Blocked: Nothing
|
|
|
|
## Key Decisions (most recent first)
|
|
1. [2026-02-15] Material: Clearceram-Z HS selected (CTE matches Zerodur Class 0, cheaper)
|
|
2. [2026-02-10] Approach: Assembly FEM with superposed models (Model A fixed + Model B variable)
|
|
3. [2026-02-08] Optimizer: Optuna TPE, 15 parameters, 500 trial budget
|
|
|
|
## Active Constraints
|
|
- WFE < λ/20 at 633nm under thermal load
|
|
- Mass < 12 kg
|
|
- First mode > 150 Hz
|
|
|
|
## Superseded Decisions
|
|
- ~~[2026-02-05] Material: Zerodur Class 0~~ → Replaced by CCZ HS (2026-02-15)
|
|
- ~~[2026-02-03] Approach: Single monolithic FEM~~ → Replaced by Assembly FEM (2026-02-10)
|
|
```
|
|
|
|
**When an agent starts work on a project channel**, it reads this CONTEXT.md first. This gives it the current ground truth without needing to scroll through weeks of chat history.
|
|
|
|
### 4. Staleness Detection (Auditor's Periodic Check)
|
|
|
|
During challenge mode or periodic reviews, auditor checks:
|
|
- Are any agents referencing superseded decisions?
|
|
- Are CONTEXT.md files up to date?
|
|
- Are there un-condensed resolved threads?
|
|
|
|
## How It All Flows
|
|
|
|
```
|
|
Discussion happens in Discord channel/thread
|
|
│
|
|
▼ (conclusion reached)
|
|
Secretary condenses → pinned + saved to condensations/
|
|
│
|
|
▼
|
|
Secretary updates project CONTEXT.md
|
|
│
|
|
▼ (superseded decisions marked)
|
|
Old context naturally falls off Discord window
|
|
│
|
|
▼
|
|
Agents reference CONTEXT.md for current ground truth
|
|
Handoff files preserve structured task results
|
|
Agent memory files preserve individual learnings
|
|
```
|
|
|
|
## What Changes for Each Agent
|
|
|
|
| Agent | New Responsibility |
|
|
|-------|-------------------|
|
|
| 📋 Secretary | Produce condensations, maintain CONTEXT.md per project |
|
|
| 🎯 Manager | Create threads for focused work, request condensations |
|
|
| 🔍 Auditor | Check for stale context during reviews |
|
|
| All agents | Read project CONTEXT.md before starting work on a project |
|
|
|
|
## Implementation
|
|
|
|
| Step | Work | Effort |
|
|
|------|------|--------|
|
|
| 1 | Add condensation protocol to Secretary SOUL | 1h |
|
|
| 2 | Create CONTEXT.md template + initial project contexts | 1h |
|
|
| 3 | Add thread creation to Manager's delegation workflow | 1h |
|
|
| 4 | Add staleness check to Auditor's challenge mode | 1h |
|
|
| 5 | Add condensation file browser to dashboard | 3h |
|
|
| **Total** | | **~7h** |
|
|
|
|
---
|
|
|
|
## Key Insight
|
|
|
|
The system IS more intelligent than "everything stays forever" — the sliding window naturally forgets. The challenge is making sure the RIGHT things persist before they fall off. That's what condensation + CONTEXT.md solve: **intentional memory** vs. accidental forgetting.
|
|
|
|
---
|
|
|
|
*Prepared by Mario — 2026-02-16*
|