5.9 KiB
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:
- Lost decisions — Important conclusions from discussions fall off the window
- 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:
## 📝 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:
- Pinned in the channel (quick reference)
- Written to
/home/papa/atomizer/hq/condensations/YYYY-MM-DD-topic.md - 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:
- Active — ongoing discussion, agents see full thread context
- Resolved — conclusion reached → Secretary condenses → thread archived
- 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:
# 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