I had some spare tokens so I gave Fable a task of identifying and reporting things that should be simplified, removed, re-architected, etc. Here is the output in case you find it interesting:
The html artifact report: https://claude.ai/code/artifact/6789174e-e4e5-4ad3-a82d-f1c1c9a32421
The markdown version:
subtraction-report.md
Interesting :eyes:
I think boxy was only added two weeks ago PR#10629 so it would surprise me if it should be tossed
I guess something led Fable to believe this should be deleted. Here was the Fable prompt in case curious:
Analyze this codebase according to agent-subtract.md and produce a report with the most valuable findings.
## agent-subtract.md
Make this project smaller and simpler without making it weaker. Your deliverable is a system with fewer concepts: measure success in code removed, special cases dissolved, and decisions a future reader no longer has to make.
Think at two scales, and don't let the small crowd out the large:
1. **Local** — delete what's dead, duplicated, or unreachable: unused exports, stale docs, comments that restate the code, flexibility nobody used, tests that only pin behavior nobody depends on. Collapse N things that are really one thing.
2. **Systemic** — step back and study the architecture as a whole. The largest simplifications are re-designs that no sequence of small safe steps can reach: a data model that makes a whole error class unrepresentable, a boundary redrawn so three modules become one, an assumption removed so half the branching disappears. Actively look for these; propose them even when they're bold.
Building is a valid instrument of subtraction. Introduce a new abstraction or generalization when it lets you delete more than it adds — when it absorbs special cases, makes the code more robust, or replaces several ad-hoc mechanisms with one principled one. Judge additions by net effect on the system, not by the diff of the file they land in.
Treat documentation as testimony, not ground truth. Respect the project's high-level goals and character, but individual docs and comments were written by someone who may have been wrong, or right about code that no longer exists — and the more technical and detailed they get, the less they deserve trust. When docs and code disagree, investigate; don't preserve complexity just because a comment claims it's needed. Every doc comment that survives must earn its place: concise, and critical to understanding *why* something is the way it is — the code already says what and how.
Rules:
- Behavior may change when the simplification justifies it — preserving everything forever guarantees complexity only grows. But breakage must be deliberate, not accidental: name what changes, who could notice, and why the simpler shape is worth it.
- Tests serve the goal, not the past. Remove tests with the behavior they pin; keep and adapt those guarding what the project still promises.
- Simpler beats shorter. Never trade readability for line count, and never add an abstraction that merely relocates complexity — code golf and speculative frameworks are both growth in disguise.
yeah we should delete boxy if the experiment concludes it's a bad idea, but we should not delete it before the experiment has concluded :laughing:
this is cool though - thanks for running the analysis @Matthieu Pizenberg! :smiley:
I'll read through it tonight
On a related note @Richard Feldman I regularly have some unused token usage. If roc-lang had a list of low-dependency research or report-like tasks, I could gladly help bootstrap these with some unused anthropic/oai sometimes. Does someone maintains something like that?
I don’t think trying to use these unused tokens directly on github issues would be useful because it adds review burdens, and probably needs more knowledge than I have about the roc compiler to not wreck other things while attempting to fix one.
Remark that I usually have way more unused free tokens than unused free time XD
there are these pending compiler projects https://github.com/roc-lang/roc/blob/8fa1a34b0671345744c943afeddf8f843689d6fe/projects/README.md
of which this one would be a huge achievement https://github.com/roc-lang/roc/blob/8fa1a34b0671345744c943afeddf8f843689d6fe/projects/big/parallel-backend-codegen.md
yeah those are perfect candidates! they're all written to be pretty self-contained and hopefully LLM-friendly (at least to get from zero to a draft PR)
@Matthieu Pizenberg feel free to grab any of them! just mention it somewhere in here so nobody else grabs it :smile:
Last updated: Sep 03 2026 at 15:16 UTC