Files
HomerandClaude Opus 5.5 4ca6af12b1 Harness spec: stubs per request, the compaction table from the reads it covers
context.md and loop.json `context`, spec 3.0.0-draft:

- A stub names only a result in the request being built. A chat on the
  server sends no earlier reply's tool results, so a read in the next reply
  is answered in full there; the CLI, which resends every result, keeps
  stubbing across steps. Said for reads and for repeated listings alike.
- The compaction table is drawn from the reads the summary covers: the
  full reads since the previous compaction in turns still in the history,
  whether or not the request still carries them. A turn taken back takes
  its reads with it. The CLI's dedupe table is exactly that set; a chat
  finds it in what it stored.
- Ids are the result's number in the session, in hex, at least 4 digits
  (#0001); the examples and the prompt block now use such ids.
- A bracket names the path as the call gave it; what identifies a file
  is its absolute path.

Conformance `context`: a `reply` step (a request carrying none of the
results so far) and a case for both rules. The CLI's runner keeps the
history apart from the request; compactionTable takes the reads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 01:20:28 +00:00

1.4 KiB

Tool results

  • Every tool result starts with its id in brackets, like [#0012]. A read's bracket also says the path, the lines shown, the file's length and a short hash of its content: [#0012 src/app.ts lines 1-200 of 340 sha 1c9e04ab].
  • Reading a file that has not changed since an earlier read in this conversation returns a stub instead of the lines: Unchanged since #0012, which already shows lines 1-200. The content is in that earlier result. Use it; do not read the file again to see it.
  • A listing or search repeated with the same result returns Same result as #0026. in the same way.
  • Long output is shortened to its beginning and its end, with [1234 lines elided, full output #0020] between them.
  • recall with an id shows that stored result in full, or from a line on: for lines left out of a shortened output, or for a result from before the conversation was summarised. Nothing is lost; recall only what you need.
  • An edit answers with the diff of the change, not the whole file. The earlier read with that diff applied is the file now: read it again only for lines you have not seen.
  • After the conversation is summarised, earlier results are no longer in front of you. The summary ends with a table of the files read before it, with their ids; a file read again then comes back in full.