Closing the Agentic Coding Loop with Just Enough Human Feedback
I think I figured out how to steer the agents minimally but still have the desired result--theoretically; and I think it's very different from what people are talking about today, so it's worth noting.
TL;DR#
You are the bottleneck of vibe-coding, because you can't see the app until it compiles and the agents can't see what's in your head, so iteration is very slow.
The capability offered by Pencil MCP lets you externalize your design early so both you and agents share a visible, verifiable goal, potentially massively accelerating software development.
The Problems#
As a builder vibe-engineering, you hold a mental image of the result and beat the app into shape through agent loops. From my discussion with @lehoho248, we realized that we (human) are the real blockers of efficiency.
The problem is that we can't see the result until it compiles (3-10 min per iteration as complexity grows), and the model can't see your mental image, so UI changes require excessive human-in-the-loop to match your desired flow and design.
The Solution#
Pencil MCP offers the capability to externalize your mental image easily. Meaning you get to see and change the user flows/designs early in the development phase.
The coding agents can see it too! With the goal defined, your software becomes verifiable*. You don't have to rely on your mental image to communicate with the agents anymore, the blocker for singularity is removed.
I mapped the design of my toy app using agents + Pencil MCP, then changed the design and had agents implement it.
The Weird Corollary#
I imagine the future of app building (and potentially the entire software engineering** field) will be design driven; since the designs can ground the agents, and verifiable things can be easily realized by a swarm of orchestrated agents (fixers and checkers).
Illustration of design-driven development; I drew this with Pencil MCP
I can think of a number of ways to actually do this! E.g. have @clawdbot as the main orchestrator above checkers and fixers, and have them communicate with the design until all tests are passed and all designs implemented 100%.
I believe the current limitation lies in the model's inability to recognize small layout shifts in designs (likely to be improved a lot in the next generation of models).
Excited to try this out later! Meanwhile, if you actually tried this, lmk how it goes!
*verifiable: this isn't the main point of this essay, but backend is pretty much verifiable with tests; and for frontend and e2e, you also have tools that offer this capability, e.g. browser automation, Playwright MCP, Maestro MCP.
**the study of boxes, arrows, and tables
Subscribe to updates
Get notified when I publish new posts. No spam, unsubscribe anytime.
Or subscribe via RSS