The agent produced 40,000 words and there is nowhere to put them
An audit across the repository. A migration plan with per-file findings. An evaluation run over two hundred cases. The agent did the work, and now the output has to reach a human.
Every destination refuses it.
The ceilings
| Destination | Limit |
|---|---|
| GitHub issue / PR comment | 65,536 characters — the API rejects the write |
| Slack message | ~4,000 characters, then it becomes a snippet file |
| Jira / Linear description | Field-dependent, and formatting degrades first |
| Gmail clips past ~102 KB behind "show trimmed content" | |
| A terminal scrollback | Gone by tomorrow |
The soft failures matter more than the hard ones. Long before a comment is rejected, the wide table has collapsed, the code block has lost its language, and the reviewer has scrolled past all of it.
Why splitting it up is worse
The reflexes are: truncate, or paste in parts, or attach a file.
Truncating removes the evidence and keeps the claim. What survives is the summary — the one part a reader cannot verify. That is exactly backwards for output produced by a model.
Splitting across comments destroys the ordering the moment anyone replies in the middle, and no one reads part four.
Attaching a markdown or HTML file hands the reader a download that
Slack will not preview,
GitHub will not render,
and email clients strip. If it does get opened, it opens from file://
with whatever that breaks.
Give the agent somewhere to publish
The agent writes the report as HTML, POSTs it, and returns a URL:
curl -sS -X POST https://commareports.com/api/v1/reports \
-H "Authorization: Bearer $COMMA_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "Dependency audit — 2026-09-07", "html": "<h1>…</h1>"}'
One line goes in the PR. The report stays whole.
In Claude Code, Cursor, VS Code, Zed and anything else speaking Model
Context Protocol, this is a tool call rather than a shell command — the
same scoped comma_sk_… token authenticates both surfaces, so revoke,
expiry and scope behave identically. Setup per client is under
MCP setup; the agent-side conventions are in
where should my agent post.
The two things this changes
Context budget. Carrying 40,000 words of finished report through the rest of a session is a large, permanent tax on the agent's remaining window. A URL is a dozen tokens and the content is still there for anyone who opens it. See context budgeting for AI reports.
Review. A published report is a place to disagree with the agent precisely. The reviewer selects finding #34 and writes "this one is a false positive — the call is behind a feature flag", anchored to that finding. The agent can read the comments back and revise (let an agent respond to comments), posting the next pass as a revision at the same URL rather than as a new wall of text.
That loop is the reason not to paste: a chat message is a broadcast, and a report with anchored comments is a conversation about specific claims.
Try it
Comma is free — unlimited reports, unlimited commenters, unlimited revision history.
Give your agent a place to publish →