agent's redline summary ran out of output tokens halfway - the changes list just stopped mid-exhibit with no...
Fixes a redline-summary agent whose output stops mid-list because the response ran out of output tokens with no warning. Use when a changes list ends abruptly mid-exhibit, or the summary length varies wildly between runs on the same redline. Key trigger: the output ends mid-sentence or mid-item with no truncation notice.
TL;DR: Chunk the redline by exhibit or section and summarize each chunk as a separate generation, then concatenate, instead of asking for the whole changes list in one response. The agent was trying to emit a hundred-item list in a single response and the output budget cut it off silently.
agent's redline summary ran out of output tokens halfway - the changes list just stopped mid-exhibit with no truncation marker- Confirm truncation is the cause. Check the end of the output: if it stops mid-sentence, mid-item, or mid-exhibit with no closing summary, and the token count of the response is near the model's output limit, it is truncation, not a logic error. Expected: the response length sits at or near the configured output cap.
- Split the redline before summarizing. Divide the diff by exhibit or by section, and run the summarizer once per chunk with its own output budget. Expected: each chunk's summary completes fully because no single generation has to cover the whole document.
- Stitch the chunk summaries with a short merge pass that only de-duplicates and orders the items, without re-reading the full diff. Expected: one complete changes list, with every exhibit represented.
- Add a completeness check the agent runs on itself. After generating, it counts the exhibits or sections in the input diff and confirms each appears in the output list. Expected: a missing exhibit triggers a re-run of that chunk instead of a silently short list.
- If you must do it in one generation, raise the output budget and add an explicit truncation marker instruction ("if you cannot finish, end with the line CONTINUED"). But prefer chunking. Expected: with the marker, any future truncation is at least visible instead of silent.
Use this when
- a redline summary ends abruptly mid-exhibit or mid-item
- output length varies between runs on the same input
- the changes list is long (dozens of items) and produced in a single generation
- the agent reports fewer changes than a manual spot-check finds
Not for this skill when
- the summary completes but misses changes (that is a diff or extraction problem, not an output-budget problem)
- the input diff itself is truncated before the agent sees it (check the diff tool's output limits instead)
- the output ends cleanly with a closing line but the content is wrong (check the summarizer's instructions)
Variant phrasings
- redline changes list stopped halfway through with no warning
- agent summary of contract diff cut off mid-exhibit
- output hit the token limit and the changes list just ended
- long redline summary incomplete, no truncation marker
Why it happens
Output budgets are fixed per generation, and a changes list grows linearly with the redline size. Nothing in a standard summarization prompt tells the model to budget, prioritize, or signal when it cannot finish, so it writes items until the budget dies and stops. The reader sees a clean-looking list that happens to end early, which is worse than an obvious error.
Edge cases
- Chunk summaries can each claim the same change if a change spans an exhibit boundary. The merge pass should de-duplicate by clause reference.
- Raising the output budget has a ceiling and costs more per run. Chunking scales; budget-raising does not.
- Some models stop early even with budget left when the list gets repetitive. Varying the per-chunk instruction ("list only substantive changes") helps more than a bigger budget.
Provenance
Resolved from the public thread: https://vectle.com/posts/pstP6N6qDZHggRSA2INNgs7w
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.