As we wait for Anderson to reply, this is how I used it with Claude Code. As for when, I introduced it at the start of the conversation. Claude initially read only the first section and summarized it, noting that the full document was about 65k tokens.
Me: I’d recommend to you to read the entire document and keep every part of it that is required so that in future when we’re working we don’t need to do this part again. And we’ll be working quite a bit with Tinderbox.
Claude (verbatim):
I’ve now read the full document (all 3964 lines). Writing this up as durable, distilled reference memory — not a copy of the doc, but comprehensive coverage of the schema.
Done — I read the full 3964-line document and distilled it into two new memory files:
-
reference_tbx_schema_content.md — the high-value half: the attrib schema (type codes, structure), notes/agents/adornments/aliases, the text/rtfd/html triple storage, links (with a flagged possible doc inconsistency around anchor offsets I haven’t verified), macros, colors, link types, preferences. This is what actually matters for the kind of data work we’ve been doing.
-
reference_tbx_schema_ui_state.md — window/tab/view configuration. Deliberately kept condensed rather than reproducing every one of the ~60 per-view-type UI attributes (map/chart/crosstabs/gaudi/hyperbolic/table/treemap each have their own private set) — that’s low-value to hold in memory and easy to grep from the source doc if a task ever genuinely needs it.
Updated reference_tbx_ai_doc.md to note the full read is done and point future sessions at the distilled files instead of the source document, and refreshed the index.
One honest caveat carried into memory: I flagged one spot where the doc’s prose looks like it might have a copy-paste error (both sstart and dstart on the link element say offsets reference the “source note’s” text, which seems like it should differ for the destination anchor) — noted as unverified rather than asserted either way, so a future session doesn’t inherit false confidence on that specific point.
Me: So for future work, what would you recommend? Should I ask AI to read the entire document before commencing a task, or have it read the general outline first and then reference the relevant sections as needed?
Claude: My recommendation: don’t read the whole thing upfront – read the short conceptual sections fully, then pull specific element sections on demand right before you write that part of the XML. Here’s the reasoning from what actually happened in this session:
Cost side: The full doc is ~65k tokens. That’s a meaningful slice of a working context window before any actual work happens – every subsequent tool call, file read, and back-and-forth conversation has to share what’s left. Reading it all upfront “just in case” front-loads a cost that mostly doesn’t pay off, since most tasks only touch a handful of elements.
What actually worked well: I read the first ~900 lines fully (Purpose, Terminology, Critical Non-Obvious Behaviours, the full Element Hierarchy outline) – that’s the conceptually load-bearing part, cheap relative to the whole doc, and gave me the map I needed to know where to look later. Then I grepped for specific things (attrib, IsPrototype, DisplayedAttributes) right before writing that piece of XML. That’s roughly a 900/3964-line ratio for a task that touched maybe 4 elements out of dozens documented.
Where it fell short: DisplayedAttributes isn’t explained in the prose at all – grepping for it only surfaced the auto-generated schema dump, not an explanation of its delimiter convention. I inferred the format from a general rule stated elsewhere and got it right, but only confirmed that after the fact by cross-checking against a real example already in the file. The gap wasn’t “I should have read more of the doc” – the doc simply doesn’t cover it – but the lesson is: when I’m inferring rather than reading a direct answer, I should say so at the time, not just proceed silently.
So the practical rule I’d suggest: full read of overview/structural sections once per project (cheap, durable, orients me for everything after), then targeted lookups per element as needed – but for anything higher-stakes (bulk edits, anything touching links between notes, anything where a wrong guess is hard to detect or undo), ask me to read that specific section in full first rather than pattern-match, and call out explicitly when I’m inferring versus quoting the doc directly.
One more thing worth considering: I have a persistent memory system across sessions in this project. I could save the durable facts I’ve now learned (the attrib schema shape, type codes, the proto= serialization rule, the fact that the AppleScript dictionary is undocumented by this file and I had to find Tinderbox.sdef myself) so a future session doesn’t have to rediscover them from scratch. Want me to do that?