Spec Driven AI Programming
Overview
Spec driven AI programming uses explicit requirements, acceptance criteria, and architecture constraints to guide AI assisted implementation. It differs from ad-hoc prompting because delivery is measured against defined outcomes.
Core Principles
- Start from a written specification
- Define acceptance tests before implementation
- Require traceability from requirement to code change
- Enforce review and validation gates
flowchart LR
A[Specification] --> B[AI Draft]
B --> C[Automated Tests]
C --> D[Code Review]
D --> E[Release]
Practical Example - Feature Contract First
A feature specification can define:
- API request and response schema
- Error codes and validation rules
- Performance targets
AI can generate initial code and test skeletons, but merge should remain blocked until contract tests pass.
public sealed record CreateInvoiceRequest(string CustomerId, decimal Amount);
public sealed record CreateInvoiceResponse(string InvoiceId, string Status);
public interface IInvoiceService
{
Task<CreateInvoiceResponse> CreateAsync(CreateInvoiceRequest request, CancellationToken ct);
}
Production Example - Governance in CI
Teams using AI coding tools often add policy checks in CI:
- Pull request must include requirement reference
- Contract test suite must pass
- Security scan must report no new high severity issue
- Reviewer validates architecture boundaries
Common Pitfalls
- Prompting without a concrete specification
- Accepting generated code without deterministic checks
- No change log describing what AI generated
Key Takeaways
- The specification is the control plane for AI assisted implementation.
- Validation gates convert AI speed into safe delivery.
- Human review remains critical for architecture and risk.