https://reddit.com/link/1t2oo7f/video/iwff5yvtyxyg1/player
Spec-Driven Development is not a new concept, but it becomes significantly more relevant in the context of agent-based software development.
For smaller-scale projects, introducing such processes may be unnecessary. However, as projects grow and become more long-lived, maintaining context, decisions, and development outputs in a consistent and structured way becomes increasingly difficult, especially when working with AI systems where context is ephemeral and decisions tend to drift or get recomputed.
This is where Spec-Driven Development becomes particularly effective. By acting as a persistent layer for context, decisions, and system boundaries, it helps stabilize the development process and reduces ambiguity over time.
-Building on this, Frame now has spec-driven development built in.
Each spec lives as four files on disk:
.frame/specs/<slug>/
spec.md what we're building
plan.md how we'll build it
tasks.md broken-down work
outcome.md what actually shipped
You describe what you want; the AI drafts the spec. From there, /spec.plan generates an implementation plan, /spec.tasks breaks it into discrete tasks that sync into tasks.json, and /spec.implement executes them step by step.
After each task, the agent appends a short outcome: what shipped, what diverged from the plan, and what needs follow-up.
That last part, the outcome is what makes the rest worth doing.
Plans capture intent. Code reflects reality. Outcomes explain the gap.
Six months from now, when you wonder why a file looks the way it does, the answer is in outcome.md written when the agent’s memory was still fresh.
Two principles guided the design:
Files over databases. Markdown is the source of truth. Any AI tool can read it without Frame. Any teammate can grep it. It’s versioned with git, reviewable in PRs, and portable by default.
Adding SQLite would have been satisfying to build but would be the wrong move.
Optional, never forced. Spec-driven development isn’t the shape of every project. Frame doesn’t assume it should be. The first time you open the Specs panel, it simply asks if you want to enable it. Existing tasks.json workflows remain untouched.
Frame is open source and just touched 300 Stars, 32 forks and 11 contributors on Github. You can show your support simply using it, giving feedback and giving a star :)
It is available on Github : https://github.com/kaanozhan/Frame