Jan 2026 · Aviram Kofman
Manifest-Driven Development
What I Learned After Years of AI Workflows
Scroll to begin
The Vibe Coding Hangover
Code looks fine. Then errors cascade.
terminal
async function processUser(data: UserInput) {
const user = await validate(data)
await save(user)
await sendEmail(user.email)
return { ok: true }
}
"Looks fine to me"
The Mindset Shift
How should the LLM do this?
Reframe
What would make me accept this?
Stop thinking about how. Start defining done.
The Framework
Four phases. One loop. Done when it passes.
Define
Specify acceptance criteria
The LLM Science
Why This Works
Not a hack around limitations. A design that treats them as first principles.
◎
Goal-Oriented
RL training made them chase goals. Criteria play to their strength.
01
∿
Can't Hold It All
Neither can you. Goals flex where rigid plans break.
02
↻
Context Drifts
Long sessions rot. External state keeps truth outside the window.
03
✗
Don't Know When Wrong
They can't express uncertainty. Automated checks catch what they miss.
04
This isn't magic. It's engineering.
Try It
The most reliable approach I've found to ship quality code with AI agents. Not because it removes their limitations—but because it works with them.
terminal
> /plugin marketplace add
doodledood/manifest-dev
doodledood/manifest-dev
> /plugin install
manifest-dev@manifest-dev-marketplace
manifest-dev@manifest-dev-marketplace