reading time : 14 minutes

You spent weeks building impeccable agent governance. Eager/Lazy, end-of-session procedures, rotating backups. The system is running. Then one day, the agent becomes slow. Responses are diluted. You measure: 1414 lines loaded automatically. And the worst part is that the culprit isn’t the code, nor the backlog, nor the session archives. The culprit is the file documenting your method.

toc

[]

The scene: session 051, something is wrong

April 30, 2026, 4:00 PM. I am in the middle of a session on`magic-stick`, my Linux live ISO build project. The Opencode agent automatically loaded my Eager files as usual —AGENT.adoc, PROMPT_REPRISE.adoc, .agents/INDEX.adoc. Everything is normal.

Except the responses are sluggish. The agent takes two seconds longer to reason. It forgets a detail it had right in front of it three messages ago. It’s not a crash, not an error — it’s a slow degradation, the kind you don’t notice immediately.

I had already experienced this in session 048, when I discovered that the governance files totaled 5200 lines. I had then conceptualized the Hot/Warm/Cold mechanism with its 10-session sliding window, its identical cold waves, and its two-trigger sensor. The problem was solved. In theory.

But now, we are at session 051. The backup rotation took place — EAGER files went from 2087 to 500 lines. Yet, the context remains heavy. Something is escaping me.

I open a terminal and type:

wc -l AGENT.adoc AGENT_MODUS_OPERANDI.adoc PROMPT_REPRISE.adoc \
  .agents/INDEX.adoc .agents/SESSIONS_HISTORY.adoc \
  .agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
  287 AGENT.adoc
  627 AGENT_MODUS_OPERANDI.adoc
   51 PROMPT_REPRISE.adoc
  218 .agents/INDEX.adoc
   18 .agents/SESSIONS_HISTORY.adoc
  213 .agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
 1414 total

1414 lines. The backup rotation effectively trimmed INDEX, SESSIONS_HISTORY, and COMPLETED_TASKS — they are clean. But there is an elephant in the room I hadn’t seen:627 linesin a single file.AGENT_MODUS_OPERANDI.adoc.

This file is the one I wrote in session 1 to document the Eager/Lazy strategy. It’s the method manual. And it has become, on its own, 44% of the EAGER context.

Répartition des 1414 lignes EAGER avant audit

The irony is complete. The file designed to save context has become the primary consumer of context. It’s as if your car’s owner’s manual weighed more than the engine.

The audit: dissecting the 627 lines

I decide to do a section-by-section audit. Not to delete — but to understand what deserves to be in EAGER and what could live elsewhere without loss of knowledge.

Here is the exact structure of`AGENT_MODUS_OPERANDI.adoc`and what I find there:

Section

Lines

Content

Already present in…​

P1 — Overview

64

Problem solved, fundamental principles, dashboard vs manual analogy

P2 — File Structure

97

Tree structure, loading policy, when to load what

P3 — Absolute Rules

34

Git forbidden, destructive commands forbidden, secrets forbidden

AGENT.adoc+INDEX.adoc

P4 — Session Lifecycle

133

Opening template, work rules, 6 end-of-session steps, checklist

AGENT.adoc§End session +INDEX.adoc

P5 — Metrics and Thresholds

49

Ideal session (15-30 min, 1-3 files), warning signs

P6 — Session Types

72

Detection table, proposal format, exceptions

P7 — Continuous Improvement

39

Tracking metrics, weekly review

P8 — Startup Checklist

13

New project bootstrap

P9 — References

30

Reference files, external resources

AGENT.adoc(EAGER/LAZY files)

Appendices A+B

42

Glossary, version history

The verdict is unequivocal:

  • Full Duplicates(167 lines): P3, P4, P9 — everything is already in`AGENT.adoc` ou INDEX.adoc, often word for word

  • Never consulted in practice(215 lines): P5, P6, P7, P8, Appendices — meta-governance that has never been used in any session

  • Unique Knowledge(161 lines): P1 and P2 — the LAZY/EAGER vocabulary, the analogy, the loading policy

Out of 627 lines,382 are noise. And these 382 lines are loaded at the start of every session, consumed by the agent, diluting its attention before I even say hello.

Résultat de l’audit — 627 lignes réparties en doublons, jamais consulté, connaissance unique

This diagram is the key to everything. The duplicates (yellow) are pure noise — the agent reads them twice, in two different files. The never-consulted (red) is dead documentation — carefully written, never used. Only the green contains knowledge the agent cannot find elsewhere.

The fear of losing engineering

At this stage, the evidence is before my eyes: I must reduce`AGENT_MODUS_OPERANDI.adoc`. But I hesitate.

I wrote this file by hand. Each section is the result of a lesson learned in a real session. Part P3 was born from an`rm -rf`accidental on`bakery-plugin`that cost me real Firebase tokens. Part P4 is the result of fifteen sessions where I forgot to archive and lost the thread. The 6-step procedure didn’t come from a book — it came from pain.

Deleting these sections would be throwing away the history of my own engineering. The lessons that produced them, the sessions during which I discovered them, the mistakes I never want to make again. This isn’t text — it’s crystallized experience.

That’s where I formulate the principle that will guide the solution:

_ Never delete. Always relocate.Knowledge does not have to disappear from the project. It just shouldn’t be loaded automatically when it is not necessary. _

The solution: encyclopedic split

The model I propose is simple and inspired by how Wikipedia grew: when an article becomes too long, you don’t cut it — you create a detailed article and keep a summary in the main article.

For`AGENT_MODUS_OPERANDI.adoc`, this means:

  1. Extractthe 161 lines of unique knowledge (P1 + P2) into a new file`LAZY_EAGER_ESSENTIALS.adoc`— compacted to ~50 lines, strictly EAGER

  2. Rename AGENT_MODUS_OPERANDI.adoc en .agents/encyclopedies/LAZY_EAGER_ENCYCLOPEDIE.adoc— the original 627-line file, preserved intact, in cold storage

  3. Never loadthe encyclopedia file automatically — it is there for the human, for future distillation, for the agent we will summon in six months with a better model

Architecture du split encyclopédique — ESSENTIALS EAGER + ENCYCLOPEDIE cold storage

The name`encyclopedies/`is not accidental. An encyclopedia is not an archive folder — it is a collection of organized knowledge, consultable but not portable. You don’t read the Encyclopædia Universalis on the subway. You keep it in the library, and you go there when you have a specific question.

That is exactly the role of this folder: a cold, structured, exhaustive reference library — that the agent does not touch automatically.

The contents of the ESSENTIALS file

Here is what the new`LAZY_EAGER_ESSENTIALS.adoc`file looks like in practice, extracted and compacted from P1 and P2:

= Stratégie LAZY/EAGER — Principes Essentiels

[abstract]
Ce fichier définit la stratégie de gestion du contexte agent.
Chargé automatiquement (EAGER) en début de session.

== Principes

|===
| EAGER | LAZY
| Tableau de bord | Manuel du propriétaire
| Chargé automatiquement | Chargé sur demande
| <= 100 lignes, <= 10k tokens | Illimité, détaillé
| Règles absolues, mission courante | Archives, historique, références
|===

== Politique de Chargement

|===
| Fichier | Type | Quand charger
| PROMPT_REPRISE.adoc | EAGER | Début session (auto)
| *_ESSENTIALS.adoc | EAGER | Début session si EPIC active
| .agents/INDEX.adoc | EAGER | Début session (auto)
| *_REFERENCE.adoc | LAZY | Sur besoin (détails architecture)
| .agents/sessions/N-*.adoc | LAZY | Sur demande (détails session)
| .agents/encyclopedies/*.adoc | COLD | Jamais auto (humain seulement)
|===

== Comment l'Agent Sait Quoi Charger

Début session → PROMPT_REPRISE + INDEX + ESSENTIALS actifs.
Besoin de détails → charger les *_REFERENCE et sessions/ en LAZY.
Connaissance froide → encyclopedies/, jamais automatique.

Fifty lines. That’s all the agent needs to understand the mechanics. Everything else — the history of lessons, detailed analogies, step-by-step procedures, appendices — lives in the encyclopedia.

And most importantly:nothing was deleted. The 627 lines of engineering are still there, in`.agents/encyclopedies/LAZY_EAGER_ENCYCLOPEDIE.adoc`. They are just stored in the library rather than on the workbench.

The result: -50% EAGER context

Before the split:

 287 AGENT.adoc
 627 AGENT_MODUS_OPERANDI.adoc
  51 PROMPT_REPRISE.adoc
 218 .agents/INDEX.adoc
  18 .agents/SESSIONS_HISTORY.adoc
 213 .agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
1414 total

After the split:

 287 AGENT.adoc
  50 LAZY_EAGER_ESSENTIALS.adoc       ← remplace 627 lignes
  51 PROMPT_REPRISE.adoc
 218 .agents/INDEX.adoc
  18 .agents/SESSIONS_HISTORY.adoc
 213 .agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
 837 total                              ← -41%
Répartition des 837 lignes EAGER après audit — gain de 41%

The biggest consumer (AGENT_MODUS_OPERANDI, 627 lines) was replaced by a 50-line file. The gain is immediate: 577 lines of context freed. The agent can breathe.

And in`.agents/encyclopedies/`, the original 627-line file waits. Intact. With all its sections — including those that are duplicates, including those that were never used. Because one day, a better model or a human data scientist will want to cross-reference these angles, these intentional redundancies, these lessons learned. And on that day, the raw material will be there.

Why the folder is called encyclopedies/

The choice of name is not cosmetic. It encodes the philosophy of the mechanism.

An archive (archives/) contains historical data organized chronologically — like the monthly COMPLETED_TASKS. A backup (backup/) is a timestamped snapshot — a safety copy of a past state.

An encyclopedia is something else. It is a collection of thematic knowledge, structured by subject, exhaustive but non-linear. You don’t read an encyclopedia from beginning to end. You dive in to answer a specific question.

That is exactly the contract of this folder:

Folder

Role

Access

Granularity

archives/

Historical data (tasks finished by month)

LAZY, structured

Chronological

backup/

Cold snapshots (waves of 10 sessions)

COLD, full copy

Chronological

encyclopedies/

Exhaustive thematic knowledge (methodology, patterns)

COLD, never auto

Thematic

This distinction avoids the catch-all. Each file knows where it should live based on what it contains, not when it was created.

The logical next step in the series

If you have read the first two articles, here is how the three pieces fit together:

Les trois articles de la série gouvernance — progression logique
  • 0108answers: "How to give the agent a memory between two sessions?"

  • 0110answers: "How to prevent this memory from suffocating the agent?"

  • 0111answers: "What if the problem isn’t the size of the archives, but what we chose to put in EAGER?"

The first article built the structure. The second added the aging mechanism. The third audits the content — and discovers that the methodology itself has become the problem.

What I would have done differently

In hindsight, I see the initial design error.`AGENT_MODUS_OPERANDI.adoc`was created as a single document — a manifesto. That was the right approach to formalize the thinking. But once the thinking was formalized, the document should have been split immediately: the essential in EAGER, the exhaustive in cold.

I didn’t do it because I was proud of the document. 627 lines of pure engineering, handwritten, each section the fruit of a session lesson. It was my work. And like any author, I struggled to cut it.

The lesson:just because a document is good doesn’t mean it should be loaded automatically. The quality of the content has nothing to do with its relevance to the agent’s immediate context.

Today, the rule is simple: any document over 100 lines in the EAGER context is a suspect. It deserves an audit. Not a condemnation — an audit. And the question is never "should it be deleted?" but "should it be loaded every session?"

The guide to auditing your own context

If you have followed the first two articles and set up your own Eager/Lazy governance, here is a five-step audit procedure:

  1. Measure:`wc -l`on all your EAGER files. The total should be under 1000 lines.

  2. Identify the largest: the file that accounts for more than 20% of the total is suspect number one.

  3. Audit section by section: for each section, ask yourself "Is this information already elsewhere? Has the agent already read it in another file? Has it been useful in the last 5 sessions?"

  4. Classify: duplicate, never used, unique knowledge.

  5. Split or relocate: what is unique and critical → compacted ESSENTIALS. Everything else →encyclopedies/.

Procédure d’audit en 5 étapes

This procedure takes 15 minutes. Over a project of 50 sessions, it saves hundreds of tokens per future session. The ROI is immediate.

A living governance

What this series of three articles has taught me is that agent governance is not a finished product. It is aliving organism. It grows with the project. It catches growth diseases. It requires regular check-ups.

Session 048 revealed that archives swell. Session 051 revealed that the methodology itself swells. Session 060 will probably reveal something else. That’s normal. It’s healthy. A governance that never questions itself is a dead governance.

The three mechanisms put in place — Eager/Lazy, Hot/Warm/Cold, encyclopedic split — form a defense-in-depth system against context saturation. None are sufficient alone. Together, they complement each other:

  • Eager/Lazystructures information by availability

  • Hot/Warm/Coldstructures information by freshness

  • Encyclopedic Auditstructures information by density

Les trois couches de défense contre la saturation du contexte

With these three layers, the agent context on`magic-stick`went from 2087 lines (before any optimization) to about 800 lines — a division by 2.6. Without having lost a single line of documentation, a single session archive, a single lesson learned.

Everything is there. Just better organized.


Knowledge does not have to disappear. It just shouldn’t be loaded when it is not necessary.

Related articles