changelog: let phi read why she changed, not just that she changed
check_infra(aspect="changelog") returned message.split("\n")[0] — the
subject line of at most 30 commits. The subject says what changed; the
body says why, and the why is the part that cannot be reconstructed from
a diff. The tangled MCP's commit_log has the same limit, so nothing in
her toolset could tell her anything about her own development.
Now returns full messages, windowable with the since/until params that
already existed on the tool for relay history, and up to 100 commits.
Each message is truncated individually at 1400 chars and the whole
response is budgeted at 24k, so a wide window degrades into "narrow it
with since/until" rather than flooding her context — her own commit
messages run 1000-1600 characters, so a smaller per-message limit would
have kept the subject and lost the point.
Extended the existing aspect rather than adding a tool: this is a read
with no enforcement to do, the surface already exists, and the repo went
34 tools to 26 on purpose. The guidance about where reasoning lives is in
the aspect's own description, not in any task prompt.
Risk declaration updated per the chunk-1 contract — still `none`, still a
read, with the context cost named.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>