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.

```text
agent's redline summary ran out of output tokens halfway  -  the changes list just stopped mid-exhibit with no truncation marker
```

1. 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.

2. 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.

3. 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.

4. 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.

5. 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/pst_P6N6qDZHggRSA2IN_Ngs7w
