Spec-driven development (SDD) emerged in 2025 as the direct industry corrective to the pervasive failure modes of "vibe coding": autonomous agents generating syntactically valid code that steadily drifts from business intent, hallucinates non-existent APIs, and introduces silent regressions across long horizons.
By late 2026, the industry converged on a foundational principle: write down testable requirements, validate architecture decisions, establish verifiable task gates, and only then unleash coding agents — with the written specification, not the conversational chat scrollback, acting as the immutable source of truth.
However, in multi-repository small-business and enterprise ecosystems (such as the Simple Agility stack spanning stockroom
, roller
, jspwiki
, and jakemon
), conventional in-repo markdown specs create documentation silos and cross-service drift. Modern Level-5 agentic engineering elevates SDD from local repository text files to sovereign, semantic wiki handoff specifications queried directly by autonomous coding agents via the Model Context Protocol (MCP).
sequenceDiagram
autonumber
actor Human as Human Architect / Operator
participant Arch as Architecture Agent (wiki-content-agent)
participant Wiki as Wikantik Knowledge Plane (/knowledge-mcp)
participant Eng as Core Engineering Agent (Claude Code / agy)
participant Repo as Product Codebase (stockroom / roller)
participant CI as Deterministic Verification Harness
Human->>Arch: Strategic directive / feature vision
Arch->>Arch: Formulates EARS requirements & data contracts
Arch->>Wiki: Publishes Technical Handoff Spec & ADR (SA-11, SA-12)
Note over Human,Wiki: Human Gate: Architect reviews spec, resolves open questions (/grill-me)
Human->>Eng: Triggers implementation ("Implement SA-11 from Wikantik")
Eng->>Wiki: Calls assemble_bundle / read_pages(SimpleAgilityCommerceDataFlow)
Wiki-->>Eng: Injects immutable schemas, COA mappings, and DDL migrations
Eng->>Repo: Executes Test-Driven Development (TDD) against spec
Repo->>CI: Runs mutation testing, linters, and conformance gates
CI-->>Eng: Passes all gates (0 test regressions)
Eng->>Wiki: Stamps verification state (mark_page_verified)
A conversational prompt entered into an LLM chat window is consumed once and discarded. As the session progresses, it is vulnerable to context window eviction, lossy compaction, and conversational drift. A formal specification, by contrast, acts as an immutable external cognitive anchor:
Effective SDD organizes requirements across three distinct, reviewable stages:
flowchart LR
REQ["1. Requirements<br/>(EARS syntax, non-goals)"]
DES["2. Technical Design<br/>(Schemas, ADRs, trade-offs)"]
TSK["3. Ordered Tasks<br/>(Atomic, test-gated work items)"]
REQ --> DES --> TSK
Requirements must be formulated as unambiguous, machine-parsable statements. The Easy Approach to Requirements Syntax (EARS) provides a standardized grammar that eliminates agent misinterpretation:
THE SYSTEM SHALL <system response>THE SYSTEM SHALL represent all monetary transactions as exact integer cents.WHEN <trigger> THE SYSTEM SHALL <system response>WHEN an eBay order line is ingested with an unrecognized SKU, THE SYSTEM SHALL record a row in ebay_unmatched.WHILE <in a specific state> THE SYSTEM SHALL <system response>WHILE an item status is listed, THE SYSTEM SHALL prohibit reassignment to Amazon FBA.IF <error/boundary condition> THEN THE SYSTEM SHALL <system response>IF the Wikantik API is unreachable, THEN Stockroom SHALL draft using cached local rules and flag the draft stale.The design stage formalizes the "how": database schemas (Flyway SQL DDL), domain event models, API signatures, error handling matrices, and architectural trade-offs considered and rejected. This is where living Architecture Decision Records (ADRs) are bound (SimpleAgilityDecisionLog).
Tasks decompose the design into ordered work items where each item possesses an independent verification gate:
Task 1: Flyway migration V028__add_attribution_to_sale.sql (Verification: ./mvnw test -Dtest=FlywayMigrationTest)Task 2: EbayOrderLineMapper promotion parser (Verification: unit tests covering empty, single, and malformed appliedPromotions)Task 3: Stockroom sales API controller endpoint (Verification: MockMvc integration tests)In enterprise or multi-service ecosystems, standard in-repo SDD frameworks (e.g. AWS Kiro, GitHub Spec Kit) encounter a critical structural limitation: specifications are siloed inside a single git repository.
When building cross-service initiatives—such as customer marketing attribution spanning Roller weblogs, Stockroom warehouse events, JakeMon telemetry, and accounting general ledgers—placing a specification in stockroom/docs/specs renders it completely invisible to agents operating in roller or jakemon.
Simple Agility resolves this through Semantic Wiki Handoff Specifications:
| Classical In-Repo SDD | Semantic Wiki-Anchored SDD (Level 5) |
|---|---|
Stored as local Markdown inside a single repository (docs/specs/*.md) | Stored centrally on Wikantik as formal specifications (RollerTelemetryHandoffSpec) |
| Invisible to agents working in peer repositories | Globally accessible to all agents via /knowledge-mcp |
| Prone to drift as repositories diverge | Bound to sovereign decision logs (SimpleAgilityDecisionLog) |
| Requires manual copy-pasting of schemas across PRs | Single authoritative schema cited by canonical ID |
| Single-agent execution | Supports clean Dual-Agent Architecture (Architecture Agent → Engineering Agent) |
wiki-content-agent): Focuses on system-wide coordination, data modeling, SEO telemetry, and protocol handoffs. Operates under a strict architectural invariant: NEVER modify or build core product application code. Instead, it authors formal, complete specifications on Wikantik (e.g., SimpleAgilityCommerceDataFlow, SimpleAgilityAttributionRFC)./grill-me), refines edge cases, and approves the architecture.agy): Initialized in the operational product repository (~/source/stockroom or ~/source/roller). It retrieves the handoff specification directly from Wikantik via MCP:
# Agent retrieves the complete, authoritative specification cold
claude mcp call wikantik-knowledge read_pages '{"slugs": ["SimpleAgilityCommerceDataFlow"]}'
The engineering agent implements the code strictly against the retrieved specification without guessing or cross-repo hallucination.
The economic justification for written specifications over conversational prompting can be proven through classical reliability mathematics.
Software defects originate across four phases: Requirements (phase 1), Design (phase 2), Code Implementation (phase 3), and Integration Testing (phase 4). Let eta_k represent the defect detection efficiency of phase k (where 0 < eta_k < 1). The probability that a requirements-level defect escapes into production is modeled as:
Under Vibe Coding (no written spec, conversational prompting):
Under Semantic Wiki SDD (EARS requirements, human-gated wiki RFC, TDD):
By inserting formal specification and design gates, the defect escape rate drops by over two orders of magnitude (204x reduction).
The cost to fix a defect discovered at phase k follows an exponential escalation curve:
Where C_0 is the baseline cost of catching a defect during initial specification (C_0 ≈ $10 in operator time), and beta is the amplification factor (beta ≈ 4.0):
Catching a data modeling error on Wikantik costs $10, whereas resolving corrupted database rows and broken inventory counts in production costs $640+.