|
| 1 | +--- |
| 2 | +published: true |
| 3 | +layout: post |
| 4 | +image: /assets/article_images/2026-05-13-executable-markdown-specs-agentic-coding/section-5-bdd-ai-loop.svg |
| 5 | +image_width: 1400 |
| 6 | +image_height: 788 |
| 7 | +title: Executable Markdown Specs Are the Control Surface for Agentic Coding |
| 8 | +context: Lightning Talk |
| 9 | +--- |
| 10 | + |
| 11 | +Agentic software is changing how we build. |
| 12 | + |
| 13 | +As agentic coding becomes more common, **specifications are becoming the control surface**. The goal is longer autonomous execution loops: give an agent intent, let it plan, let it build, let it run checks, and keep going. |
| 14 | + |
| 15 | +The constraint is also obvious: **agents need precise intent**. |
| 16 | + |
| 17 | +The workflow many of us are moving toward is: |
| 18 | + |
| 19 | +> **Spec as prompt → Plan → Build → Automated tests → CI validates behaviour** |
| 20 | +
|
| 21 | +Weak specs lead to unreliable autonomy. Strong, executable specs make autonomy safer. |
| 22 | + |
| 23 | +That is why I think the practical future of spec-driven development is not only new tooling. It is also a proven software engineering pattern becoming much more important again: |
| 24 | + |
| 25 | +> **Executable Markdown specifications enforced in CI.** |
| 26 | +
|
| 27 | +## 1. Agentic software is changing how we build |
| 28 | + |
| 29 | + |
| 30 | + |
| 31 | +Agentic coding is increasingly common. Tools like Claude Code, OpenCode, Cursor, and Goose point at the same direction: longer loops where the system can take intent and move from analysis into implementation. |
| 32 | + |
| 33 | +But the key constraint remains intent. |
| 34 | + |
| 35 | +The emerging workflow is simple: |
| 36 | + |
| 37 | +1. **Spec as prompt** |
| 38 | +2. **Plan** |
| 39 | +3. **Build** |
| 40 | +4. **Automated tests** |
| 41 | + |
| 42 | +That fourth step matters. Without automated tests, the loop depends too much on human review. With tests, the agent has a feedback signal it can use while working. |
| 43 | + |
| 44 | +Weak specs still produce weak outcomes. LLMs do not remove ambiguity. They often scale it. |
| 45 | + |
| 46 | +## 2. The industry is converging on “spec-first” |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | +The industry is already converging on “spec-first”. |
| 51 | + |
| 52 | +You can see it in SpecKit-style workflows, spec-driven development tools, and structured prompt → plan → build pipelines. |
| 53 | + |
| 54 | +These approaches work best for: |
| 55 | + |
| 56 | +* greenfield setup |
| 57 | +* initial decomposition of features |
| 58 | +* turning a rough idea into a first plan |
| 59 | + |
| 60 | +But they still struggle with the harder part of software development: |
| 61 | + |
| 62 | +* iterative development |
| 63 | +* evolving systems |
| 64 | +* ongoing spec maintenance |
| 65 | + |
| 66 | +Generating a plan from a spec is useful. Keeping the spec correct as the system changes is the real problem. |
| 67 | + |
| 68 | +That problem remains unsolved at scale. |
| 69 | + |
| 70 | +## 3. The proven pattern already exists |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | +The proven pattern already exists: **behaviour-driven, example-based specifications**. |
| 75 | + |
| 76 | +This is the core idea behind BDD and Specification by Example: |
| 77 | + |
| 78 | +* define behaviour as concrete examples |
| 79 | +* express scenarios of system behaviour |
| 80 | +* execute them as part of CI |
| 81 | + |
| 82 | +The key idea is simple: |
| 83 | + |
| 84 | +> **Specifications are not documents. They are executable behaviour contracts.** |
| 85 | +
|
| 86 | +That directly solves the problems agentic development exposes: |
| 87 | + |
| 88 | +* **Ambiguity** — examples make intent concrete. |
| 89 | +* **Misalignment** — humans and agents can work from the same behaviour contract. |
| 90 | +* **Spec drift** — the build fails when behaviour no longer matches the spec. |
| 91 | + |
| 92 | +The important part is not BDD ceremony. It is the feedback loop. |
| 93 | + |
| 94 | +If the spec is continuously validated by the build, it does not silently rot. |
| 95 | + |
| 96 | +## 4. Why this matters more with AI |
| 97 | + |
| 98 | + |
| 99 | + |
| 100 | +LLMs amplify spec quality. |
| 101 | + |
| 102 | +Strong specs make autonomous execution more reliable. Weak specs create scalable incorrect behaviour. Ambiguity gets amplified, not resolved. |
| 103 | + |
| 104 | +So the bottleneck moves. |
| 105 | + |
| 106 | +It is no longer only about how quickly we can generate code. The bottleneck becomes the **quality and executability of the specification itself**. |
| 107 | + |
| 108 | +This is why CI-enforced specs matter. |
| 109 | + |
| 110 | +A Markdown document in a repo can still drift. A ticket can go stale. A Confluence page can become archaeological evidence. |
| 111 | + |
| 112 | +But an executable spec that runs in CI fails loudly. |
| 113 | + |
| 114 | +That loud failure is the point. It tells humans and agents that either the implementation is wrong, or the behaviour contract must be updated deliberately. |
| 115 | + |
| 116 | +## 5. BDD + AI = spec-driven development loop |
| 117 | + |
| 118 | + |
| 119 | + |
| 120 | +Put together, the practical workflow becomes: |
| 121 | + |
| 122 | +1. **Spec as prompt** |
| 123 | +2. **Plan** |
| 124 | +3. **Build** |
| 125 | +4. **Automated tests** |
| 126 | +5. **CI validates behaviour** |
| 127 | + |
| 128 | +This is where BDD and AI fit together naturally. |
| 129 | + |
| 130 | +The spec gives the agent intent. The plan gives it structure. The build changes the system. Automated tests give fast feedback. CI enforces the behaviour contract over time. |
| 131 | + |
| 132 | +Gauge fits this model well: |
| 133 | + |
| 134 | +* specs are Markdown-based |
| 135 | +* scenarios are human-readable and LLM-readable |
| 136 | +* executable scenarios are tied to code |
| 137 | +* Markdown lives naturally in the repo |
| 138 | +* CI can enforce the behaviour continuously |
| 139 | + |
| 140 | +Markdown itself becomes a superpower in LLM workflows. It is readable by humans, easy for LLMs to consume, reviewable in pull requests, and close enough to code to become part of the engineering system. |
| 141 | + |
| 142 | +The final point: |
| 143 | + |
| 144 | +> **The future is not only new spec-driven tools. It is executable Markdown specs enforced in CI.** |
0 commit comments