Spec-driven development: Using Markdown as a programming language when building with AI
spec-driven-developmentai-codinggithub-copilotmarkdown
Abstraction: Writing apps entirely in Markdown specs then AI-compiling to production code
Key points:
- Workflow: author app entirely in
main.md(Markdown spec), invokecompile.prompt.mdto have GitHub Copilot "compile" it to Go; developer rarely edits Go directly - Four key files:
README.md(user docs, imported into spec),main.md(the spec/source),compile.prompt.md(repeatable compile prompt), andmain.go(generated artifact) - Markdown spec includes variables, loops, conditionals, database schema, and GraphQL queries — effectively a declarative programming language in plain English
lint.prompt.mdcleans up the spec for clarity; Copilot treats English as a programming language and normalizes synonyms (pull/get/fetch → one term)- Main challenge: compiled output grows as spec grows; next step is splitting spec sections into separate Go modules
- Author notes spec-driven workflow improves continuously with each Copilot agentic update; testing remains essential but is not yet integrated
Connections: Github · Github Copilot · Agentic Coding · Prompt Engineering