What if the most important file in your next software project isn't a
.java,.ts, or.pyfile—but a.mdfile?
The rise of AI coding assistants has changed how many of us write software.
Instead of manually implementing every class, endpoint, or component, we're increasingly describing what we want and letting AI generate how it's built.
This raises an interesting question:
If AI writes the code, what becomes the primary artifact of software engineering?
I believe the answer is the specification.
More specifically, I think we're moving toward a world where structured Markdown specifications become the interface between humans and AI, while source code becomes an implementation artifact.
This idea is commonly referred to as Spec-Driven Development (SDD).
The Problem With Today's AI Development
Most developers have experienced something like this:
You:
Build me a user authentication system.
AI:
...generates code...
You:
Actually, I wanted JWT.
AI:
...rewrites...
You:
It also needs OAuth.
AI:
...rewrites...
You:
And multi-tenancy...
AI:
...rewrites again...
The AI isn't failing.
It's guessing.
Every new prompt adds context that should have existed from the beginning.
This is often called vibe coding—iteratively steering an AI toward the desired result through conversation.
It works surprisingly well for prototypes.
It doesn't scale well for complex systems.
Enter Spec-Driven Development
Instead of conversations becoming the source of truth, the specification becomes the source of truth.
Rather than repeatedly telling the AI what you meant, you define the system once.
Idea
↓
Specification
↓
Architecture
↓
Implementation Plan
↓
Tasks
↓
Tests
↓
Code
↓
Validation
Every AI agent now works from the same shared understanding.
Why Markdown?
Markdown is surprisingly powerful.
It is:
- readable by humans
- version-controlled
- diff-friendly
- simple enough for product teams
- structured enough for AI agents
A project could look something like this:
specs/
├── constitution.md
├── product-spec.md
├── domain-model.md
├── api-spec.md
├── security.md
├── ux-spec.md
├── acceptance-tests.md
├── implementation-plan.md
└── tasks.md
(Or maybe just one PRD.md -- Product Requirements Document -- is enough for you.)
None of these files execute.
Yet together they describe almost everything needed to build the software.
The Specification Becomes the Control Plane
Instead of writing prompts like:
"Create a billing API."
You define:
- business objectives
- user roles
- domain entities
- API contracts
- validation rules
- security requirements
- performance targets
- acceptance criteria
- edge cases
The AI now has context before writing a single line of code.
Less guessing.
More engineering.
AI Agents Become Specialists
One aspect of SDD that excites me is how naturally it supports multiple AI agents working together.
For example:
Specification
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
Planner Agent Coding Agent Test Agent
│ │ │
└───────────────┼───────────────┘
▼
Human Review
│
▼
Updated Specification
Instead of one giant conversation with a single assistant, each agent has a focused responsibility.
The specification becomes the shared contract between them.
This Changes the Role of Software Engineers
Some people worry AI will replace software engineers.
I think it's changing what we optimize for.
The most valuable engineers may become those who excel at:
- system design
- architecture
- domain modeling
- product thinking
- writing precise specifications
- reviewing AI-generated implementations
- defining quality standards
In other words:
We spend less time telling computers how to do something.
We spend more time defining what should exist.
This Doesn't Replace Programming Languages
Java isn't disappearing.
Neither are Python, Go, Rust, TypeScript, or C#.
Code still matters.
Performance still matters.
Architecture still matters.
Human judgment still matters.
The difference is that code may no longer be the highest-level artifact.
Specifications may become the foundation from which everything else is derived.
Challenges
Like every engineering approach, SDD has trade-offs.
Good specifications take time to write.
Bad specifications produce bad implementations.
Not every project needs this level of rigor.
And AI-generated code still requires review, testing, and validation.
Spec-Driven Development isn't about removing engineers from the process.
It's about giving AI enough context to become a better engineering partner.
Final Thoughts
I don't think Markdown is literally becoming a programming language.
But I do think it's becoming something equally important:
the language through which humans communicate software intent to AI.
That might sound like a subtle distinction.
I don't think it is.
It changes where engineering effort is invested, how teams collaborate, and what becomes the long-term source of truth in a codebase.
As AI continues to improve, I expect we'll spend less time writing implementation and more time writing intent.
And that intent will increasingly live in structured specifications.
Perhaps the first file we'll create in a new project won't be:
main.py
or
App.java
It might simply be:
product-spec.md
References
Martin Fowler — Exploring GenAI: Spec-Driven Development
https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.htmlGitHub Spec Kit
https://github.com/github/spec-kitSpec Kit Documentation
https://github.com/github/spec-kit/blob/main/spec-driven.mdKiro Documentation
https://kiro.dev/docs/specs/Heeki Park — Using Spec-Driven Development with Claude Code
https://medium.com/@heekiparkCJ Roth — Building an Elite Engineering Culture
https://www.cjroth.com/blog/2026-02-18-building-an-elite-engineering-culture
What do you think?
Are we moving toward spec-first engineering, or do you think code will always remain the primary source of truth?
I'd love to hear how you're using AI in your development workflow.
About the author
Wallace Espindola
Senior Software Engineer | Solution Architect | AI Enthusiast
- 💼 LinkedIn: https://www.linkedin.com/in/wallaceespindola/
- 💻 GitHub: https://github.com/wallaceespindola
- 🌐 Website: https://wtechitsolutions.com
Top comments (0)