← All insights

KN-18 · Handoff size caps

What does a size cap delete from an agent’s handoff?

Four agent seats used the same kit to keep short handoffs and bounded task lists. Their records show that a gate can preserve task sections while still allowing a promise or a lesson’s reason to disappear during a rewrite.

9 min readGuildBuild Team
AI agentsAgent memoryHandoffsField notes
In this article

Two kinds of retention

An earlier field audit found ledgers close to their byte limit. This case asks what the edits removed. Git made committed changes visible, and an operator’s question about repeated trimming prompted the team to classify what the agents had cut.

What the kit protected

Each seat kept a handoff for current state and a task list with one section per open item. The handoff allowed up to 50 lines, with 120 characters per line. The task list targeted 8 KiB. A stop hook moved closed sections to an archive and issued a reminder when a file exceeded its size target. Both files loaded at startup within a paged budget.

One seat received four size reminders overnight. The measured sizes were 8,691, 8,196, 8,398 and 8,258 bytes. The second was four bytes over the target. The seat described replacing an item’s detail with a pointer, removing a lesson that still lived in the handoff and later cutting superseded price lines. It reported keeping all eight open items during the first trim. It did not describe every edit.

Whole sections usually survived

The audit walked the commits that touched each file and tracked section IDs, closure and archive placement. One handoff section disappeared without a close on its first day. A move or rename can look like a deletion until someone traces the item.

Section tracking across three seats
Seat and fileCommitsSectionsArchivedOpenOther outcomes
Seat A · handoff13729263None
Seat A · task list77254911 parked elsewhere, 1 renamed
Seat B · handoff1645311 gone without a close
Seat B · task list35918None
Seat C · task list, self-report4713112None

Many deleted lines had no exact copy

Seat A had 109 versions within five lines of the cap and five over it. Seat B had 121 versions within five lines and two over it. A 50-line file shed the equivalent of roughly 15 to 19 full files over those histories. The archive keeps the section as it stood when it closed. Earlier wording survives only if another record retains it.

Those counts are upper bounds on the amount of meaning that could have disappeared. An exact-text comparison counts a paraphrase as absent. Most of the manually inspected cuts were ordinary replacements of stale state.

Figure 01Field measurement

Many deleted lines had no exact copy in either file

Deleted lines

% absent word for word
Seat A607 of 746 · 81%
Seat B904 of 949 · 95%

The audit checked the handoff and archive. An exact-text comparison counts a paraphrase as absent, so these shares are upper bounds on potential loss of meaning.

The edits that mattered

One seat sampled the last 40 of 78 handoff commits and called its text matching rough. It found line wrapping, about 70 lines of superseded state, a lesson shortened until it lost the reason for the rule, and an open promise dropped during a rewrite. The seat attributed repeated mistakes to the shortened lesson. Its journal shows two instances of the same fault that night. The operator had it restore the promise within two minutes. It had not come due.

A second seat manually read its last 40 commits that deleted handoff lines. Three commits only changed layout. Six pre-reset rewrites removed 111 lines in all, 10 to 27 per commit. It found no shortened lessons in that sample because lessons lived in a separate numbered record. One rewrite turned four waiting items into a pointer. The target held all four, but a search using the original names found only two. Reading the target recovered the other two under different names.

A third seat reported checking its task-list trims and finding no lost obligation. It also reported that some owed items lived only in its latest compaction summary. Its exposure was therefore about where the only copy lived, even though no dropped obligation was observed in that episode.

Sort each line before deleting it

The stop hook could check size and move a closed section. Deciding whether a line contained an obligation, a lesson or current state remained a judgment. When the reminder named only the size, the team saw agents meet it by shortening whatever they could. The case did not test a different reminder.

The operator kept the cap and introduced a sorting rule. Move an owed item to the task list with one owner and a link to its origin. Save a lesson in memory with its reason. Delete stale state. Close an owed item with evidence and keep the underlying message as the record of what was said.

Two seats adopted the rule that morning. Three applied a related single-owner rule by midday. One pair found three shared open items, another pair found one, and a seat identified four items that belonged to other owners. One handoff fell to 29 lines of current state after its obligations and lessons moved out. These are early observations, with no follow-up test of the new rule.

Figure 02Decision guide

Where each kind of line belongs

Open obligation

Where it goesTask list

What to preserveOne owner and a link to the original promise.

Lesson

Where it goesDurable memory

What to preserveThe rule and the reason that makes it useful.

Stale state

Where it goesRemove it when superseded.

What to preserveKeep the current state in the handoff.

The operator introduced this sorting rule during the case. The study did not measure its longer-term effect.

Run the audit on your own handoffs

Check pointers as a reader would. Confirm the target lists every open item and keeps terms a successor can search. Preserve the clause that explains why a lesson matters. A shorter phrase can preserve the wording of a rule while losing the condition that makes it useful.

Evidence and limits

This is one November 2026 field case with four seats using the same kit. The source analysis walked two seats’ committed histories, read one 40-commit sample by hand and checked four reminder byte counts. Another seat supplied its own rough audit, and a third supplied a retrospective account. The seat that wrote the field note also audited its own records.

Edits made between commits are invisible to this method. Renames and moves require follow-up. The line counts say how often exact text was absent from two destinations. They cannot establish what a successor understood, where else an item survived, or how often the new rule would prevent a loss. The original analysis was not rerun for this publication.