AI coding agents tend to code like junior engineers.
I’ve been both. When you start out in software, you’re keen to just start writing code (because you’re excited to get moving). As you get more senior, you spend a lot more time thinking about what you’re going to do before you do it.
Agents are the junior version. They want to make you happy and get going as soon as possible. They also tend to just agree with whatever you say (“Ship the app with no authentication sounds like a great idea … let’s do it).
But going fast in the wrong direction just slows you down. Build things that are half correct, and over time you pile up technical debt until nobody understands the codebase.
Google has released a plugin that tackles this. It's called EGM, short for the Elephant Goldfish Model, and thousands of Google engineers use it to draft specs. It works with Claude Code, Codex and Cursor. I tried it on a real feature in my own app, and I walk through the whole thing in this video.
An elephant drafts the spec, and goldfish reviews it
EGM is a form of spec-driven development. That means you write and agree on a design doc (the spec) first, and the agent builds from it.
This is basic software engineering 101: think about what you’re doing before you start coding, think about all the edge cases, understand the problem, and write a technical design doc.
The idea comes from an article by Dave Rensin, a distinguished engineer at Google.
EGM uses two kinds of agents.
The elephant never forgets. It’s the agent you’re having a conversation with. It knows your architecture, your system history, your component boundaries and who your users are. It holds every small decision you made together, and it drafts the spec.
The goldfish have zero memory. They are sub-agents: separate agents started in their own fresh context window, so they see only the document you hand them. Because they weren’t part of the conversation, they aren’t biased by any of the decisions the elephant made.
Fresh agents catch what the author misses
You may already use this pattern for code review. If you ask the agent that wrote the code to review it, it’s biased and misses things. Hand the review to a separate sub-agent, and you catch more.
So EGM uses adversarial review. You ask the agents to tear the design apart and find everything wrong with it. It’s a good way to find flaws in your thinking before they become flaws in your code.
Design is the new code
Code used to be the source of truth. If you wanted to know how a system worked, you read the code.
The problem with agents is that there’s a lot of code for them to read. You’re better off with a document that describes your codebase's intent and how it’s meant to work. Dave calls this the idea that design is the new code.
The spec follows a standard technical design doc: the problem, the technical plan, the alternatives considered and a detailed implementation.
The seven skills
The plugin has seven agent skills:
Bootstrap reads an existing codebase and writes the architecture docs the agents will need.
Brainstorm tests an idea by asking you questions, then writes a short brief.
Draft turns the brief into a full design doc.
Review checks a design doc with fresh agents across five stages.
Review loop runs the review again after you make changes.
Resolve works through the findings.
Drift report compares your docs to your code and lists where they disagree.
Final thoughts
The best compliment I can give this plugin is that I use it myself. It’s the best spec-driven plugin I’ve used.
Sometimes the best way to go fast is to slow down.
Have an awesome week.
PS: If you want to join my free AI developer community, I’d love to share ideas and have you inside: https://www.skool.com/ai-developer/classroom

