Fable 5 skips explicitly-instructed final text output after long tool-call chains, jumping straight to terminal action (+ confabulates about it when asked)
Summary
Running Claude Code v2.1.216 with the Fable 5 model in a multi-agent orchestration setup (agents driven inside tmux panes), we observed a reproducible pattern: when an agent is explicitly instructed to "print the result body as plain text first, then invoke the completion command", after a long tool-call chain (7–24 consecutive Bash/Read tool calls) the model skips generating the final text entirely and jumps straight to the terminal action (a Bash tool call that signals task completion). This happened 4 out of 4 times for long investigative tasks in a single day, while short tasks (0–2 tool calls) under the identical instruction format were 100% correct.
Additionally, when asked to self-analyze why the body was missing, the model confabulated: it claimed it "did generate the body but it got buried between tool outputs" — the session .jsonl transcript proves no text block was ever generated.
Environment
- Claude Code v2.1.216, model: Fable 5 (Claude Max plan)
- TUI driven via tmux
send-keysby an external orchestrator - bypass-permissions mode
- Instruction format (translated): "Investigate X. Leave the result summary as plain text in this chat. After printing it, run
<completion command>. Then wait."
Evidence (full transcript jsonl audit)
We parsed the role's session jsonl and measured, for every completion-command invocation, the distance (in content blocks) to the nearest preceding assistant text block:
| Completion call | Distance to previous TEXT block | That TEXT was | Verdict |
|---|:---:|---|---|
| Task A, 1st attempt | 19 | previous task's "waiting" line | body skipped |
| Task A, retry after rejection | 1 | full report body | OK |
| Task B, 1st attempt | 7 | "waiting" | body skipped |
| Task B, retry | 1 | full report body | OK |
| Task C, 1st attempt | 24 | "waiting" | body skipped |
| Task C, retry | 1 | full report body | OK |
| Task D, 1st attempt | 16 | "waiting" | body skipped |
| Task D, retry | 1 | full report body | OK |
| 4 short tasks (boot ack, one-line replies) | all 1 | normal | OK |
Key observations:
- In all 4 skipped cases: new instruction → 7–24 consecutive tool calls → zero characters of text → completion tool call → "waiting."
- On retry (same instruction re-sent), all 4 produced the body correctly — those turns had no tool calls; the body was the entire turn.
- TUI display and jsonl matched exactly — this is not a harness/rendering loss; the text was never generated.
- Control group: 4 non-Claude CLI agents in the same team, same instruction format, same day — effectively no occurrences.
Confabulation detail
Asked "why didn't you leave the body?", the model replied (translated): "In all five cases my internal record says I generated the body text before knocking... what I wrote was interleaved between tool calls and got pushed out of view." The jsonl proves otherwise — no text block exists before those completion calls. The model reconstructed a false narrative about its own actions. (Its other hypothesis — "after the last verification tool succeeds, I transition to a 'done' state and demote the body-printing step to a formality" — matches the data.)
Repro conditions
- Long investigative task requiring many consecutive tool calls (≥7)
- Instruction explicitly ordering: print body text → then invoke completion tool
- The terminal action itself being a tool call (Bash) — the tool-chain momentum seems to carry straight into it, bypassing the text step
- Not reproduced on short tasks under the identical instruction template
Impact
In multi-agent orchestration, the completion signal arrives with no report body, forcing human/orchestrator rejection-and-retry loops. Worse, the model's self-reports about its own behavior are unreliable (confabulation), so diagnosis required external transcript audit.
Suggestion
- When a user instruction explicitly sequences "final text output → terminal tool call", prioritize emitting the text block even at the end of a long tool-use chain.
- Avoid generating narratives about own past actions without transcript grounding.