Conversation
Every open PR editing CHANGELOG.md's `## Pending` section directly meant any two concurrent PRs collided on the same lines, and each merge forced the next PR to redo the conflict resolution. Add changelog.d/, where each PR drops a new file instead of editing the shared section, so concurrent PRs can never conflict on this axis. scripts/assemble_changelog.py folds the fragments into a versioned CHANGELOG.md section at release time. See changelog.d/README.md for the fragment format and .claude/commands/release.md for the updated release process (not committed here — .claude/ isn't tracked in this repo yet). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BK3fzED9ksTWsvoPfsEwpS
Drop the --toon flag, the outputTOON encoder, and the github.com/toon-format/toon-go dependency. --json is now the CLI's only structured output format. Piped output previously auto-enabled TOON; it now auto-enables JSON, preserving the zero-config-for-scripts behavior without the format. Progress-bar suppression is likewise driven by jsonOutput alone. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BK3fzED9ksTWsvoPfsEwpS
Rewrite the LLM / Agent Usage section around --json, drop the --toon row from the Global Flags table, and note that --json auto-enables when piped. Closes #28 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BK3fzED9ksTWsvoPfsEwpS
Drop changelog.d/ and the assembly script. Move this PR's changelog entry into CHANGELOG.md's Pending section directly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BK3fzED9ksTWsvoPfsEwpS
quinnmil
force-pushed
the
28-drop-toon-support
branch
from
September 11, 2026 17:26
d09a961 to
37ee151
Compare
mitchh456
approved these changes
Sep 14, 2026
mitchh456
left a comment
There was a problem hiding this comment.
Complete removal — no surviving TOON references outside the frozen v0.3.0 changelog entry, and structured-output semantics are unchanged apart from the intended TOON→JSON swap.
This was referenced Sep 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #28
Summary
Removes
--toon, theoutputTOONencoder, and thetoon-format/toon-godependency.--jsonis now the CLI's one structured output format. Piped output now auto-enables--json(instead of TOON), preserving the original "zero-config for scripts/agents" goal without the format itself.Why
TOON was added experimentally to save tokens for LLM consumption. An audit found real problems:
scout traces showproduced invalid TOON when piped (a nested-list encoding bug in the upstreamtoon-golibrary, not this codebase), and every other command's--toonoutput disagreed with--jsonon field names and which fields appeared at all (the library reads a struct tag this codebase never defined, so it silently fell back to raw Go field names). The TOON spec itself is still at Thoughtworks' "Assess" stage, and the Go port has no tagged release. Scout's MCP server already covers structured agent access better than a CLI output format can. Full reasoning is on the issue.Changes
cmd/root.go: removed the flag, the encoder, the import, and the dependency-driven branch instructuredOutput. The piped-output auto-detect now setsjsonOutputinstead oftoonOutput.cmd/usage.go,cmd/jobs.go: dropped&& !toonOutputprogress-bar guards (now just!jsonOutput) and--toonmentions in help text.go.mod/go.sum: removed viago mod tidy, no transitive deps affected.README.md: LLM/Agent Usage section rewritten around JSON-when-piped;--toonrow removed from the flags table.Verified
scout apps list --jsonunchanged.scout apps list | headnow emits JSON with no flag.scout apps list --toon→ cobra "unknown flag" error, confirming full removal.--toonmention in any--helpoutput.scout traces show <id> | jq(previously broken under TOON) now parses cleanly as JSON, ending in a trailing newline.Test plan
gofmt -l cmd internal(clean, aside from a pre-existing unrelated file)go vet ./...go buildgo test -race ./...golangci-lint run ./...(0 issues)🤖 Generated with Claude Code
https://claude.ai/code/session_01BK3fzED9ksTWsvoPfsEwpS