Michael Arnaldi · 43:48 "Interestingly, in AI, less gets you more effect."
When you want a coding agent to use a library, what works best? Not documentation, not an MCP server, not prompt engineering — but cloning the library's repository wholesale into your own repo. A 1h 43m workshop in which Michael Arnaldi, founder of the Effect TypeScript library, builds an HTTP API live from a completely empty state, using only AI coding agents.
The speaker is Michael Arnaldi — founder of Effect, a functional programming framework for TypeScript (over 9,000 GitHub stars), and operator of the commercial Effectful Technologies. A long-career developer who started programming at 12, he publicly states that since summer 2025 he has not written code by hand, doing all his work through AI coding agents.
The starting point of the argument is simple. LLM coding agents are pretrained on the whole internet and then post-trained, via reinforcement learning, to specialize in code operations (reading repositories, making changes, replicating patterns). In other words, they are trained to "consume and produce code," but not to "use human documentation or MCP servers." So when you want them to use a library, the right move is to hand them the library's code as "part of your own repo."
The hands-on workflow is concrete. From an empty repo: type-check with TypeScript Go (tsgo); configure all diagnostics as errors (LLMs slip past warnings); install the Effect v4 beta; and then the core move — use `git subtree` to place the Effect repository at `.repos/effect/`, then write into `agents.md`: "no watch mode," "no `as` type assertions," "reference the repository paths." Trick the agent into "this is part of my codebase" — because agents don't look at gitignored node_modules.
Key Observations
"Trained to read code, not to read documentation" (11:18)
A sharp summary of what's learned in the post-training phase. "Tearing apart a codebase, making changes, replicating patterns" is trained; "using an MCP server" and "reading documentation" are not. So MCP / docs-based approaches are structurally weak. The argument runs counter to the surface trend, but his own library-development experience gives it heavy backing.
"In AI, less gets you more effect" (43:48)
A paradox of context management. A million-token context window is not always an advantage — running multiple tasks in the same context causes the model to deoptimize. The solution is simple: a bash script that loops "pick one small task, implement it, exit" (Geoffrey Huntley's Ralph loop). Rather than building a complex context-management architecture, "use sessions as disposable" works better. This stands alongside Anthropic Skills' progressive disclosure and Raindrop's self-diagnosis as one of the "design guidelines for the agent era."
Sonnet 4 is a "child running through the house with a knife" (15:08)
Quoting Geoffrey Huntley's expression to talk about model generations. Sonnet 4 tends to get confused but is good enough for coding; Opus 4.5 / GPT-5.4 are much improved; open-weight models lag 3–6 months. He also notes a hands-on observation: Anthropic models tend to generate verbose agents.md files, while OpenAI models are much more concise. This kind of practical knowledge doesn't show up in benchmark tables — only someone who has actually spent a year writing a library could observe it.
Video Outline
- (00:00) Self-introduction, declaring "starting from zero," dialogue with the audience
- (03:30) Introducing Effect; his own development style — library level, no-documentation environment
- (06:02) The difference between LLMs and human brains, the lack of continual learning
- (11:18) Coding models' post-training is "reading code," not "reading documentation"
- (13:03) Conclusion stated up front — cloning the repository wholesale works best
- (14:00) Starting the workshop, creating a repo with GPT-5.4 + open-code
- (15:08) Sonnet 4 vs Opus 4.5 / GPT-5.4 model comparison
- (20:00) Type-checking with TypeScript Go (tsgo), turning all diagnostics into errors
- (31:00) Adding Effect v4 beta, placing the Effect repo at `.repos/` via git subtree
- (38:00) Designing `agents.md` — no watch mode, repo references, custom ESLint rules
- (41:00) Anthropic vs OpenAI model writing-style comparison
- (43:48) "In AI, less gets you more effect" — introducing the Ralph loop
- (thereafter) Spec-driven development toward an HTTP API implementation, extracting Effect patterns, and so on
Sources
Vibe Engineering Effect Apps — Michael Arnaldi, Effectful (AI Engineer)
Effect official: effect.website · Speaker GitHub: @mikearnaldi