The Intent-Driven Development Landscape¶
A reference map of where "spec-driven" / "intent-driven" agentic development comes from, who is building it in 2025–2026, why everyone converged at once, and where anvil sits in that picture.
Status: living reference. Compiled 2026-06-16 from a multi-agent research pass (competitor teardowns of
github/spec-kitandDietrichGebert/ponytail, a fan-out web-research run with adversarial claim verification, and an audit of the fakoli plugin suite). Claims marked [V] were verified 3-0 or 2-1 by independent adversarial reviewers; everything else is analysis or domain knowledge and is labelled as such. Source list at the bottom.
0. TL;DR¶
-
"Spec-driven development" is not new — only its agentic packaging is. The idea that an authoritative specification of intent should be the source of truth and code a derived artifact runs back through Readme-Driven Development (2010), Model-Driven Architecture (2001), TLA+ (1999), BDD (2006), literate programming (1984), and — most relevant to us — declarative infrastructure-as-code's "desired state" model.
-
2025–2026 saw a sudden convergence. GitHub Spec Kit, AWS Kiro, Tessl, claude-task-master, BMAD-METHOD, Agent OS, OpenSpec and others independently arrived at the same thesis within ~12 months. This is parallel invention driven by shared forces, not one project copying another.
-
Almost all of them stop at the same place: stateless prompt-scaffolding. They generate markdown artifacts (spec / plan / tasks) and hand them to an agent. They do not maintain durable canonical state, exclusive task leases for parallel agents, or evidence-based verification. The few that do (Praetorian's internal platform; anvil) are the exceptions that prove the gap is real.
-
anvil's moat is the layer the wave skips. It arrives at the same "desired state" thesis but from the infrastructure lineage (Terraform), and then goes one layer deeper: SQLite canonical state, lease+heartbeat task claiming, hook-captured evidence, and three-source reconciliation. That layer is structurally hard for a stateless scaffolder to add without becoming a different product.
1. The lineage — where the idea actually comes from¶
The through-line across all of these: a human-authored description of intent is the primary artifact; the executable is generated/derived from it. Each ancestor contributes one piece of the modern paradigm.
| Year | Idea | One-liner | What it contributed | Cite |
|---|---|---|---|---|
| 1984 | Literate Programming (Knuth) | Write the program as prose explaining intent, with code woven in. | Intent-first authoring; the explanation outranks the code. | (domain) |
| 1999 | TLA+ (Lamport) | Formal spec language for designing & verifying systems before implementation. | "Spec before code" to surface design flaws before implementation. [V] | [TLA+] |
| 2001 | Model-Driven Architecture (OMG) | Models are the primary artifact; code is generated by automated transformation. | The literal "model/spec is source of truth, code is derived" thesis + forward engineering. [V] | [MDA] |
| ~2003 | Domain-Specific Languages | Narrow languages that express intent in domain terms. | Raising the abstraction level from how → what. | (domain) |
| 2006 | Behavior-Driven Development (Dan North) | Express acceptance criteria as executable Given/When/Then. |
Executable specifications; acceptance criteria as the contract. Built on DDD + Connextra user stories. [V] | [BDD] |
| 2010 | Readme-Driven Development (Tom Preston-Werner) | Write the README before any code. | "A perfect implementation of the wrong specification is worthless." Spec-as-authority, in plain English. [V] | [RDD] |
| ~2014 | Declarative Infrastructure-as-Code (Terraform et al.) | Declare desired state; the engine computes the diff and converges reality to it. | The fakoli lineage. plan/apply, canonical state file, drift detection. |
(domain) |
| ~1998→ | Amazon Working-Backwards / PR-FAQ | Write the press release and FAQ before building. | Intent (the customer outcome) authored before implementation; org-scale discipline. | (domain) |
| 2017 | Software 2.0 (Karpathy) | Specify a goal; let optimization search for a program that satisfies it. | "Intent as source of truth, the artifact is compiled." Dataset = source code; trained net = derived binary. [V] | [SW2.0] |
| 2023–24 | "Vibe coding" (Karpathy, popularized 2025) | Prompt-and-pray code generation. | The anti-pattern the 2025 wave defines itself against. | (domain) |
The synthesis the modern wave makes: take MDA's "model is source of truth," express it in RDD's natural language instead of UML, make it executable in BDD's sense, aim it at an LLM instead of a code generator, and (the part most projects forget) borrow IaC's durable state + plan/apply discipline.
2. The 2025–2026 wave — a field guide¶
All of these appeared or exploded in roughly a 12-month window. The critical axis for us is the last three columns: State / Execution / Verification. "Stateless scaffolding" means it emits markdown and trusts the agent; "durable state" means there is a canonical store that survives the session.
| Project | What it is | Core paradigm | Traction* | State | Execution | Verification |
|---|---|---|---|---|---|---|
| GitHub Spec Kit | specify CLI + slash-command templates for 30+ agents |
Spec-Driven Development: constitution → specify → plan → tasks → implement | Very high (GitHub-backed, ~100k★+) | Stateless — markdown artifacts in .specify/, flat JSON; no DB [V] |
Delegated to the host agent; lightweight YAML workflow engine, fan_out sequential |
Human-in-the-loop; LLM self-grades a checklist [V] |
| AWS Kiro | Spec-driven AI IDE (agentic) | spec → design → tasks, persisted as files in the IDE workspace | High (AWS-backed) | Spec-anchored (files persist & evolve) | IDE-native agent execution | Hooks + human review; no cross-agent leasing |
| Tessl | Spec-centric AI dev platform / "spec registry" | Spec-as-source: the spec is the durable artifact, code regenerated from it | Funded startup, high interest | Spec-anchored → spec-as-source ambition | Platform-managed regeneration | Spec is the test surface |
| claude-task-master (eyaltoledano) | MCP/CLI that turns a PRD into a task graph | PRD → tasks → expand → execute, task-list driven | Very high (popular OSS) | Task list in files (tasks.json) |
Drives the host agent task-by-task | Per-task "done"; no evidence gate / no leases |
| BMAD-METHOD | "Breakthrough Method of Agile AI-Driven Development" | Persona agents (analyst/PM/architect/dev) produce docs → stories | High (popular OSS) | Document artifacts (PRD, architecture, stories) | Role-played agents, sequential | Human review between roles |
| Agent OS (buildermethods) | Spec + standards layer for coding agents | standards + product spec + per-feature specs | Moderate–high | File-based specs + standards | Host agent | Human review |
| OpenSpec | Lightweight spec-change workflow | Proposed change specs reviewed before implementation | Moderate, growing | Spec files in repo | Host agent | Human review of change spec |
| Pimzino/spec-workflow-mcp | MCP server for a spec workflow + dashboard | requirements → design → tasks via MCP | Moderate | Files + MCP-served state | Host agent | Dashboard tracking |
| Praetorian internal platform | Deterministic AI orchestration (writeup) | LLM as nondeterministic kernel inside a deterministic runtime | Internal / blog | Durable dual-state (ephemeral JSON + persistent YAML), resumable [V] | Parallel developer agents |
Evidence-based: independent Reviewer+Tester must pass; lockfile leases .claude/locks/{agent}.lock [V] |
| anvil | Local-first SQLite state engine + MCP/CLI | Terraform-for-agents: PRD=config, SQLite=state, apply=commit |
Early / first-party | Durable canonical SQLite (WAL) + append-only/hash-chained event log | Lease+heartbeat claims, conflict groups, worktrees | Evidence contract per task; hook-captured, gate-enforced |
* Traction is approximate and changes fast; treat as order-of-magnitude. Only the [V]-marked architectural claims were independently verified.
The maturity spectrum (a useful lens) [V]¶
The spec-compare project frames SDD as a three-stage spectrum — a clean way to place
every project above:
- Spec-First — spec is written, used to generate, then discarded. (Most "write a PRD then code" flows; spec-kit's default mode leans here.)
- Spec-Anchored — spec persists and evolves alongside the code. (Kiro, Agent OS, OpenSpec.)
- Spec-as-Source — code is auto-generated from specs only; the spec is the program. (Tessl's ambition; MDA's original dream.)
Note this spectrum is about the spec's durability. anvil adds an orthogonal axis the spectrum doesn't capture: the durability of execution state — claims, evidence, audit — not just the spec.
3. Why the convergence happened now¶
Multiple independent teams reached "spec/intent is the source of truth, code is derived" within ~12 months. The forces driving it (analysis, corroborated by the cited commentary):
-
The capability threshold got crossed. Models got good enough that the bottleneck moved off code generation. Praetorian states it directly: "The primary bottleneck in autonomous software development is not model intelligence, but context management and architectural determinism." [V] Once the model can write the code, the scarce thing becomes steering it.
-
The vibe-coding backlash. 2025's "prompt-and-pray into production" produced enough pain that the industry reached for structure. Spec Kit is explicitly positioned as a reaction — LLMs as "over-eager junior engineers" that produce better output with crisper requirements. [V] Spec-driven development is, in part, "waterfall strikes back" (a framing its critics use too).
-
Determinism & auditability needs. Spec Kit was born from John Lam's research into making LLM development "a tiny bit more deterministic." [V] Enterprises can't ship nondeterministic black boxes; a durable spec is the determinism handle.
-
Context-window / memory limits. A long build exceeds any context window. State has to live outside the conversation, which pushes toward externalized specs (and, if you follow the logic all the way, externalized state — the part most projects stop short of).
-
Multi-agent coordination. The moment you run more than one agent, you need a shared source of truth and a way to stop them colliding. This is what forces the more serious projects (Praetorian, anvil) past scaffolding into leases and locks. [V]
The convergent-evolution reading: these aren't copies of each other. They're independent responses to the same environment — the way eyes evolved independently many times because light is a constant. Intent-as-source-of-truth is the "eye" that the 2025 LLM environment keeps re-growing.
4. The gap — what almost nobody is building¶
Sort the field by three capabilities and the picture is stark:
| Capability | Who has it |
|---|---|
| Durable canonical STATE (survives session reset, lives with the repo, queryable) | Praetorian (dual-state) [V]; anvil (SQLite). Kiro/Tessl persist specs but not execution state. |
| Exclusive task LEASING for parallel agents (claims, locks, stale reaping) | Praetorian (lockfiles) [V]; anvil (lease+heartbeat). Spec-kit, task-master, BMAD, Agent OS, OpenSpec: none. |
| EVIDENCE-BASED verification (independent proof, not self-report) | Praetorian (Reviewer+Tester gate) [V]; anvil (evidence contract + hook capture). Everyone else: human-in-the-loop or LLM self-grades. [V] |
The headline: the entire popular tier of the wave is stateless prompt-scaffolding. The two systems that close the gap (Praetorian's internal platform and anvil) arrived there independently — which is the strongest possible external signal that the gap is real and that durable state is the defensible layer.
5. Where fakoli sits — the three-layer model¶
The fakoli suite maps cleanly onto the paradigm, and its three plugins solve orthogonal problems:
- fakoli-crew — the personality engine. Role-specialized agents (guido, critic, warden, scout, smith, welder, herald, keeper, sentinel) with durable personas, tool allowlists, and file-ownership rules. Durable role identity is independent of state management — it stays valuable even as dispatch mechanics commoditize.
- fakoli-flow — the spec/gate engine. Intent-driven plans (what + acceptance criteria, not how) + critic gates + wave dispatch. Its own spec names the one thing it cannot do: team/task state is ephemeral, lost on context reset. That is the gap it hands to state.
- anvil — the anvil. The durable, repository-scoped, evidence-bearing state layer. SQLite canonical store, lease+heartbeat claims, hook-captured evidence, six-dimension scoring, recursive expansion, three-source reconciliation.
Two things make fakoli's position distinctive in this landscape:
-
It came from the infrastructure road, not the spec road. Where Spec Kit descends from John Lam's LLM-determinism research, anvil descends from Terraform's desired-state model —
plan/apply, a canonical state file, drift detected and reported rather than papered over. Same destination, older and more battle-tested lineage. (See the author's own writing: "Documentation Is Infrastructure," "Platform Engineering Is Product Management," and the explicit Terraform analogy in "Plan, Claim, Apply: Building anvil.") -
It is built on the layer the wave skips. Intent-as-source-of-truth is now table stakes; spec-kit, Kiro, Tessl and a dozen others have it. Durable, lease-coordinated, evidence-gated state is not. That is the anvil — and "the hammers are becoming commodities; the anvil is mine."
Strategic implications (carried over from the competitive analysis)¶
- Moat (technical): intact. No popular project has the state/leasing/evidence layer, and adding it contradicts the "stateless, runs-anywhere" thesis most of them sell.
- Exposure: distribution, category narrative, spec-authoring polish, and self-proof. Spec Kit owns the "SDD" term and the mindshare; Kiro/spec-kit lead on spec-authoring craft (constitution, clarify, checklists-as-"unit-tests-for-English"); ponytail shows the power of benchmark-backed proof.
- The wedge: integrate, don't compete. spec-kit/Kiro/task-master all end where
anvil begins — they emit a
tasks.mdand have no execution-coordination layer. Ingest their artifacts as a PRD/task source and the pitch becomes: "they plan; fakoli coordinates the parallel, evidence-gated execution."
6. Recommended next moves¶
| Priority | Move | Why |
|---|---|---|
| 1 | Self-benchmark harness (N agents on a fixture repo, with/without anvil; measure collisions, duplicate work, rework, % tasks with valid evidence) and publish it | Closes the proof gap; no competitor can run this benchmark because they have nothing to measure |
| 2 | spec-kit / task-master artifact ingestion (parse tasks.md / tasks.json as a PRD source) |
Turns the 100k★ gorilla into top-of-funnel |
| 3 | Pre-claim PRD-quality checklist gate; wire fakoli-style principles ledger as the "constitution" |
Closes the only real spec-authoring craft gap, reusing parts already built |
| 4 | CI drift-canary for README ↔ registry ↔ marketplace.json | Hardens an existing weakness; ponytail proved the canonical-source + generated-copies + CI-canary pattern |
| 5 | Broaden discipline beyond Claude Code via an integration-ABC pattern (spec-kit's IntegrationBase is the blueprint) |
Defends the portability flank long-term |
7. Sources¶
Primary / verified anchors:
- [RDD] Tom Preston-Werner, Readme Driven Development (2010-08-23) — https://tom.preston-werner.com/2010/08/23/readme-driven-development
- [SW2.0] Andrej Karpathy, Software 2.0 (2017) — https://karpathy.medium.com/software-2-0-a64152b37c35
- [BDD] Cucumber, BDD History — https://cucumber.io/docs/bdd/history/
- [MDA] Model-Driven Architecture — https://en.wikipedia.org/wiki/Model-driven_architecture
- [TLA+] TLA+ — https://en.wikipedia.org/wiki/TLA+
- GitHub Spec Kit — https://github.com/github/spec-kit
- Den Delimarsky, GitHub Spec Kit (origin / John Lam) — https://den.dev/blog/github-spec-kit/
- Praetorian, Deterministic AI Orchestration — https://www.praetorian.com/blog/deterministic-ai-orchestration-a-platform-architecture-for-autonomous-development/
spec-compare(maturity spectrum) — https://github.com/cameronsjo/spec-compare
Catalog / comparison / commentary:
- Martin Fowler, SDD with 3 tools — https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html
- ThoughtWorks, Spec-Driven Development: unpacking 2025's new practices — https://www.thoughtworks.com/en-us/insights/blog/agile-engineering-practices/spec-driven-development-unpacking-2025-new-engineering-practices
- Reenbit, BMAD vs Spec-Kit vs OpenSpec — https://reenbit.com/bmad-vs-spec-kit-vs-openspec-choosing-your-spec-driven-ai-framework/
- Tim Wang, Spec-Kit, BMAD and Agent OS — https://medium.com/@tim_wang/spec-kit-bmad-and-agent-os-e8536f6bf8a4
- Daniliants, Understanding SDD: Kiro, Spec Kit and Tessl — https://daniliants.com/insights/understanding-spec-driven-development-kiro-spec-kit-and-tessl/
- Tessl, A look at Spec Kit — https://tessl.io/blog/a-look-at-spec-kit-githubs-spec-driven-software-development-toolkit/
- Marmelab, SDD: Waterfall Strikes Back (critique) — https://marmelab.com/blog/2025/11/12/spec-driven-development-waterfall-strikes-back.html
- Augment Code, Multi-agent AI production requirements — https://www.augmentcode.com/guides/multi-agent-ai-production-requirements
- BCMS, Spec-Driven Development — https://thebcms.com/blog/spec-driven-development
- HN discussions — https://news.ycombinator.com/item?id=45935763 · https://news.ycombinator.com/item?id=47197595
Author's own thread (parallel-invention evidence, the author's own blog):
- Platform Engineering Is Product Management for Infrastructure (2025-11-15)
- Documentation Is Infrastructure (2026-02-15)
- Teaching AI Agents to Work Like a Team — fakoli-crew (2026-03-25)
- From Pressing Buttons to Intent-Driven Flow — fakoli-flow (2026-04-04)
- Intent Should Be Durable / Building the Engine — Baara (2026-04-05)
- State Is the Product (2026-04-19)
- Plan, Claim, Apply: Building anvil (2026-04-24)
- The Fakoli Style: An Operating Model for Building With Agents (2026-05-01)
- The Anvil, Not the Hammers (2026-06-10)
Appendix: verified claims (adversarial vote in brackets)¶
Each was independently checked by 3 reviewers; a claim survived unless ≥2 voted to refute.
- [3-0] RDD coined by Tom Preston-Werner, 2010-08-23: write the README first. [RDD]
- [3-0] RDD: "A perfect implementation of the wrong specification is worthless." [RDD]
- [3-0] Karpathy coined "Software 2.0" (Nov 2017): NN weights, not human instructions, are the program. [SW2.0]
- [3-0] Software 2.0 = specify a goal, let optimization search for a satisfying program. [SW2.0]
- [3-0] Software 2.0 frames the dataset as the real source, the trained net as compiled/derived. [SW2.0]
- [3-0] BDD created by Dan North (2006 "Introducing BDD"), as a response to TDD. [BDD]
- [3-0] BDD's
Given/When/Thendrew on DDD (Evans) + Connextra user stories (Davies). [BDD] - [2-1] Spec Kit = toolkit for SDD; specs become executable and generate implementations. [spec-kit]
- [3-0] Spec Kit credits John Lam's research as primary influence. [spec-kit]
- [3-0] Spec Kit frames traditional dev as code-centric and inverts it: spec as source of truth. [spec-kit]
- [3-0] Spec Kit = stateless prompt-scaffolding: markdown artifacts, no persistent execution engine. [spec-kit]
- [3-0] Spec Kit born from John Lam's research into making LLM dev more deterministic. [den.dev]
- [3-0] Spec Kit is architecturally a CLI that downloads pre-baked prompts/templates; no durable state engine. [den.dev]
- [2-1] Spec Kit positioned as backlash against vibe-coding; verification stays human-in-the-loop. [den.dev]
- [3-0] Praetorian: the bottleneck is context management & architectural determinism, not model intelligence. [praetorian]
- [3-0] Praetorian: dual-state model (ephemeral JSON + persistent YAML) survives session resets / resumable. [praetorian]
- [3-0] Praetorian: parallel agents coordinate via
.claude/locks/{agent}.lockto prevent races. [praetorian] - [3-0] Praetorian: code can't be marked complete until independent Reviewer + Tester pass. [praetorian]
- [3-0] OMG launched Model-Driven Architecture in 2001. [MDA]
- [3-0] MDA: models are the primary artifact; code derived via automated transformation. [MDA]
- [3-0] MDA emphasizes forward engineering: producing code from human-authored models. [MDA]
- [3-0] TLA+ = formal spec language (Lamport) for modelling/verifying concurrent & distributed systems. [TLA+]
- [3-0] TLA+ specs are formal logic/math meant to uncover design flaws before implementation. [TLA+]
- [3-0]
spec-comparedefines the SDD maturity spectrum: Spec-First → Spec-Anchored → Spec-as-Source. [spec-compare]
Refuted (did not survive): "Spec Kit defines a fixed eight-command workflow where the spec is the executable artifact / compiled specification" — [0-3 killed]: the command set is not a rigid eight, and spec-kit does not literally compile the spec; code remains agent-generated and human-reviewed.