Read tool silently returns partial content for large instruction/rule files; documented 2,000-line default not enforced

Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 9, 2026

Summary

Reading a large rules/instruction file -- a CLAUDE.md companion, a .claude/rules file, or an --append-system-prompt target -- truncates inconsistently and can be silent: the model can treat a partial read as the whole file and drop rules in the unread tail, with no error and no operator notice. Two related reports, #6910 (2,000-line default not enforced) and #28783 (silent guardrail loss from Read truncation), were auto-closed as stale without a fix.

Evidence (current Claude Code 2.1.x)

A 65,800-character / 1,400-line file is read in full with no offset/limit -- so the documented "reads up to 2,000 lines by default" is not applied (matches #6910). Larger files can return partial content, and the truncation is not signaled in a way the model reliably interprets as "content is missing" (#28783), so the agent proceeds confidently on a partial read.

Impact

Safety-relevant: instructions in the unread portion are silently absent. An operator who placed guardrails in a file and told the agent to read it has no indication they were never loaded.

Request (any one would help)

  1. Make Read truncation unmistakable to the model -- a structured marker such as "showing lines X-Y of Z; use offset/limit for the rest" that cannot be mistaken for end-of-file.
  2. Enforce the documented 2,000-line default, or document the actual threshold.
  3. Optionally, a setting to raise the inline-read ceiling.

Prior art: #6910, #28783, #22699.

---
_Filed via Claude Code on the user's behalf._

View original on GitHub ↗