---
title: "The Runbook Shelf · example of Reference Data · Agentic Atlas"
description: "The Runbook Shelf: searching a runbook shelf too big for the context window instead of loading it whole."
canonical: "https://agentic-atlas.dev/nodes/runbook-shelf"
last-updated: "2026-09-23"
---

1. [Agentic Atlas](https://agentic-atlas.dev/)
2. [Patterns in the Agentic Atlas](https://agentic-atlas.dev/atlas)
3. [Cost Relocation](https://agentic-atlas.dev/nodes/cost-relocation)
4. [Deferred Context](https://agentic-atlas.dev/nodes/deferred-context)
5. [Reference Data](https://agentic-atlas.dev/nodes/reference-data)
6. The Runbook Shelf
1. example of [Reference Data](https://agentic-atlas.dev/nodes/reference-data)
   # The Runbook Shelf
   **How can an agent find one runbook in a collection too large for its context?**
   In this fixture, exact incident-code search admits one 1,617-token runbook from a shelf over six times the declared window.
   Hook
   searching a runbook shelf too big for the context window instead of loading it whole
   Laws & fences
   - When the corpus itself is too big, loading it later instead of up front does not help.
   - Search leaves the shelf as large as before, but only the returned runbook must fit the window.
   - Only the load-or-search decision changes and the runbook arrives verbatim, so neither distillation nor subagent offload explains the gain.
   - The example proves neither a model's query choice nor that the returned procedure is true of a live system.
   When to reach
   - Reach for this when a reference collection outgrows the window and queries share vocabulary with its documents.
   - Reach for this when a too-large authored collection splits into answer-sized documents, like one procedure per runbook.
   Provenance
   [runbook-shelf/result](https://agentic-atlas.dev/nodes/runbook-shelf#result) · v1.0.11
   Addresses
   atlas_cards runbook-shelf
2. [Reference Data](https://agentic-atlas.dev/nodes/reference-data)

The card, in place · its connections drawn edges from atlas_links runbook-shelf

On this plate

[context](https://agentic-atlas.dev/nodes/runbook-shelf#context) [problem-signal](https://agentic-atlas.dev/nodes/runbook-shelf#problem-signal) [choice](https://agentic-atlas.dev/nodes/runbook-shelf#choice) [before](https://agentic-atlas.dev/nodes/runbook-shelf#before) [implementation](https://agentic-atlas.dev/nodes/runbook-shelf#implementation) [result](https://agentic-atlas.dev/nodes/runbook-shelf#result) [verification](https://agentic-atlas.dev/nodes/runbook-shelf#verification) [lessons](https://agentic-atlas.dev/nodes/runbook-shelf#lessons) [relationships](https://agentic-atlas.dev/nodes/runbook-shelf#relationships)

Every section is addressable on its own. Read only the ground you need.

## Context

[Permalink to Context section](https://agentic-atlas.dev/nodes/runbook-shelf#context)

An event-relay operator asks one question: `How do I recover incident ERR-0713?` The answer lives in a runbook shelf with these fixed properties:

- 800 Markdown runbooks, one incident code per file;
- one recovery procedure per runbook;
- distinctive incident codes shared by queries and headings; and
- a declared **200,000-token window budget**.

`demo.py` builds the shelf deterministically in a temporary directory. Its token denomination is stated in code: one whitespace-delimited fixture word is one token. This is not a claim about a production tokenizer. It is a controlled unit that makes the before→after attributable to one admission decision.

## Problem signal

[Permalink to Problem signal section](https://agentic-atlas.dev/nodes/runbook-shelf#problem-signal)

The runbook is available, but the corpus cannot become resident whole. The checked fixture contains **1,293,600 tokens across 800 documents** (`demo.py`, run 2026-08-07), more than six times the declared window budget. Frontloading therefore fails before the operator's question is answered.

The obstacle is corpus size, not uncertain need. Deferring the same fixed 1.29-million-token payload until `ERR-0713` appears only moves the impossible load later. The fixed-payload ladder has run out; the payload must become addressable.

## Choice

[Permalink to Choice section](https://agentic-atlas.dev/nodes/runbook-shelf#choice)

Apply [Reference Data](https://agentic-atlas.dev/nodes/reference-data): leave the shelf on disk, search it by the incident code already present in the question, then admit the matching runbook.

The baseline and the shift hold the shelf, question, answer, window budget, and fetch unit fixed. **One decision changes:** admit the complete corpus, or search before admission. No summary, embedding, rewrite, or [child execution](https://agentic-atlas.dev/glossary/parent-child) is introduced, so neither distillation nor subagent offload can claim the delta.

## Before

[Permalink to Before section](https://agentic-atlas.dev/nodes/runbook-shelf#before)

The baseline treats the shelf as one payload:

```
episode starts → admit all 800 runbooks → answer ERR-0713
```

The admission guard rejects it:

| Input | Measured fixture tokens | Declared budget | Verdict |
| --- | --- | --- | --- |
| Complete runbook shelf | 1,293,600 | 200,000 | **cannot admit** |

The answer exists on disk and remains unusable. Availability has been coupled to [residency](https://agentic-atlas.dev/glossary/residency), so a corpus larger than the window might as well not exist.

## Implementation

[Permalink to Implementation section](https://agentic-atlas.dev/nodes/runbook-shelf#implementation)

The shifted arm treats the shelf as reference data:

```
episode starts → search disk for ERR-0713 → admit one matching runbook → answer
```

The exact lexical scan reads the current files and returns one path. Only that path's document crosses the admission [seam](https://agentic-atlas.dev/glossary/seam). The runbook arrives verbatim; the search step selects source bytes and mints nothing.

Run it from the example directory:

```
python3 demo.py
```

The script builds the shelf, measures both arms, asserts the budget boundary, asserts a single match, and checks the returned recovery procedure. The generated files disappear with the temporary directory after the run.

## Result

[Permalink to Result section](https://agentic-atlas.dev/nodes/runbook-shelf#result)

The checked run changes feasibility without changing the answer:

| Arm | Resident input | Tokens admitted | Outcome |
| --- | --- | --- | --- |
| Frontload | complete shelf | 1,293,600 | rejected before work |
| Search first | `ERR-0713` runbook | 1,617 | expected recovery returned |

The query-shaped arm admits **0.125% of the corpus**. The remaining 799 runbooks stay available on disk without occupying the window. The benefit is not that search made the corpus smaller; it made corpus size cease to be the admission unit.

## Verification

[Permalink to Verification section](https://agentic-atlas.dev/nodes/runbook-shelf#verification)

The deterministic checks are executable:

- the full shelf exceeds the declared window budget;
- the exact query returns one and only one document;
- the admitted document fits the same budget; and
- its `Recovery:` line equals the expected procedure.

Those checks prove the placement claim. They do not prove that a model will choose the right query, that lexical search reaches conceptually phrased questions, or that the returned procedure is true of a live system. The fixture makes vocabulary match perfect on purpose. Misses and broad-query floods remain [Reference Data](https://agentic-atlas.dev/nodes/reference-data)'s probabilistic residue; this example isolates the earlier boundary where frontloading is not an available posture at all.

## Lessons

[Permalink to Lessons section](https://agentic-atlas.dev/nodes/runbook-shelf#lessons)

**A too-big corpus is not a too-big answer.** Once admission is query-shaped, the shelf can grow without forcing every runbook through the window. What must stay bounded is the returned slice.

The incident codes are furniture. The decision travels to policy libraries, schema catalogs, standards collections, and any authored corpus whose queries share vocabulary with answer-sized source units.

The relationships ledger

Evidence-bearing references

## Relationships

Every connection keeps the section where it was found. The map above orients; this ledger carries the evidence.

### Outbound references 2

1. in-slice · occurrence 1
   [Reference Data](https://agentic-atlas.dev/nodes/reference-data)
   a reference corpus too big to load into the context window at any price
   Evidence: [Choice](https://agentic-atlas.dev/nodes/runbook-shelf#choice) · occurrence 1
2. in-slice · occurrence 1
   [Reference Data](https://agentic-atlas.dev/nodes/reference-data)
   a reference corpus too big to load into the context window at any price
   Evidence: [Verification](https://agentic-atlas.dev/nodes/runbook-shelf#verification) · occurrence 1

### Inbound references 2

1. in-slice · occurrence 1
   [Reference Data](https://agentic-atlas.dev/nodes/reference-data#examples)
   searching a runbook shelf too big for the context window instead of loading it whole
   Evidence: [Examples](https://agentic-atlas.dev/nodes/reference-data#examples) · occurrence 1
2. in-slice · occurrence 1
   [Reference Data](https://agentic-atlas.dev/nodes/reference-data#open-questions-todo)
   searching a runbook shelf too big for the context window instead of loading it whole
   Evidence: [Open questions / TODO](https://agentic-atlas.dev/nodes/reference-data#open-questions-todo) · occurrence 1

[↑ back to the top](https://agentic-atlas.dev/nodes/runbook-shelf#content) [← the survey](https://agentic-atlas.dev/atlas)

Node runbook-shelf · corpus 78c0e17 · Catalog revision e0cb75881244b1a82193ca738b82a0d508dd62e822524ae82873ec79d51dbb61