INTENT.md: Harness or Process Theater?

When agents write code in seconds, the bottleneck shifts to upstream intent and downstream verification. An analysis of Anthropic's AI-Native SDLC Playbook, the 3-tier artifact chain, and how to stop spec slop.

Tiny pink-haired Milim sits cross-legged on a wooden workbench in a vast, sunlit architectural drafting studio, curiously examining a folded paper crane.

You watch an AI coding agent generate 300 lines of flawless TypeScript in six seconds. The tests pass, the types check out, and you take a sip of your morning coffee. Then you open git diff—and realize it quietly refactored your auth database, rewrote your middleware, and imported three unvetted npm packages.

Nobody told it what not to touch.

Code generation is no longer the engineering bottleneck. The bottleneck has split in two: intent formulation (drawing hard boundaries before the model generates a single token) and deterministic verification (compiling those constraints into automated test gates that reject rogue diffs).

In August 2026, Anthropic's Applied AI team published The AI-Native SDLC Playbook, proposing a root artifact to solve this: intent.md. Work begins with a version-controlled proto-spec feeding a three-tier chain:

intent.mdspec.mdplan.mdcode diff\text{intent.md} \longrightarrow \text{spec.md} \longrightarrow \text{plan.md} \longrightarrow \text{code diff}

Is intent.md a vital constraint harness—or just the next layer of corporate process theater?

SDLC Evolution: The Bottleneck Migration

In the AI-Native SDLC, code generation collapses to agent speed while the bottleneck moves to upstream intent capture and downstream verification.

Traditional SDLC vs AI-Native SDLC LoopComparison showing traditional linear SDLC with code authoring as the bottleneck versus AI-Native continuous loop where intent and verification are the primary human-in-the-loop control gates.TRADITIONAL LINEAR SDLCHuman-Speed Code Authoring Bottleneck1. Ambiguous PRD & Backlog Refinement2. System Design & Architecture Specs3. Code Implementation (BOTTLENECK)4. Late QA Gates & Manual Review5. Scheduled Release & Manual TriageAI-NATIVE ARTIFACT LOOPArtifact-First Gates & Continuous Evals1. intent.md (Invariants & Non-Goals)2. spec.md (Schemas & Brand/Security Skills)3. plan.md + Agent Code Gen (< 10s)4. Automated AST Linter & Diff VerifierProduction Incident Trigger5. Automated PR Merge + Incident MonitorArchitecture diagram · Source: Anthropic AI-Native SDLC Playbook (2026)
Traditional Linear SDLC vs. AI-Native Artifact Loop: the bottleneck migrates from code authoring to intent formulation and deterministic verification.

Why markdown in Git changes economics for agents

For human teams, design docs rot. Updating markdown during an outage is high-friction work with zero instant reward, so prose and code drift apart within weeks.

Agents flip this equation. In an agent workflow, markdown isn't passive documentation—it is a machine-executable control harness:

The 4-Tier Artifact Pipeline & Residual Skip-Connection

Preventing the "Telephone Game 2.0": Tier 0 invariants are pinned directly into the coding agent context and evaluated by an adversarial pre-commit verifier.

4-Tier Artifact Pipeline with Residual Skip-ConnectionDiagram illustrating intent.md flowing to spec.md, plan.md, and code diff, with a direct residual skip-connection from intent.md to the code executor and an automated verifier checking delta between diff and intent.Tier 0: intent.md• Strategic outcome• Hard invariants• Explicit non-goals★ Human RatifiedTier 1: spec.md• Schema contracts• Security boundaries• Non-functional reqs★ Skill ConstrainedTier 2: plan.md• File change DAG• Execution order• Test assertions★ Plan Mode GateTier 3: DIFF• AST Edits• New Tests• Clean Lint★ Code GenRESIDUAL SKIP-CONNECTION (Pinned Invariants & Negative Constraints)CI Verifier: Δ(Code Diff, intent.md)Enforce zero scope creep & invariant violations
4-Tier Artifact Pipeline (Mobile)Vertical 4-tier pipeline illustrating intent.md flowing through spec.md and plan.md into code diff, with a direct residual skip-connection pinning Tier 0 invariants into pre-commit verification.THE 4-TIER ARTIFACT CHAININTENT.MD to Code Diff with Residual Skip-ConnectionTIER 0 · INTENT.MDHUMAN RATIFIEDOutcome & Non-Goals: Strategic target + negative boundariesInvariants: Zero external calls on hot path; no DB migrationDiscipline: 50-Line Budget strictly enforced; zero fluff★ Pinned into agent context as immutable ground truthHop 1: Schema Spec ↓TIER 1 · SPEC.MDSKILL CONSTRAINEDMachine Contracts: Input/output schemas & type contractsSecurity Bounds: Token validation logic, rate limit rulesNFR Budgets: Latency budget < 25ms; memory delta < 512BHop 2: Plan Mode DAG ↓TIER 2 · PLAN.MDPLAN MODE GATEExecution DAG: Whitelisted target files & modification stepsTest Assertions: Explicit command suite for each stepBlast Radius: Calibrated to task ambiguity & reversibilityHop 3: Code Diff ↓TIER 3 · CODE DIFFAGENT CODE GENAST Mutations: Concrete code authored in seconds (< 10s)Test Additions: TDD assertions compile and pass cleanlyCompiler Verification: Clean typecheck & strict linter runRECEIVING TIER 0 INVARIANTS DIRECTLY (Zero Semantic Dropout)PRE-COMMIT GATE: Δ(Code Diff, intent.md)ZERO BREACHESassert(Δ(AST_Diff, Tier0_Invariants) == ∅)Pass Condition: Zero scope violations, clean AST diff• Blocks synthetic spec slop before pull request mergeIllustrative · Spec-driven 4-tier pipeline & residual invariant rail · Gaia Research
Residual Skip-Connection: Pinning Tier 0 invariants directly into Tier 3 prevents semantic dropout across the multi-tier LLM translation chain.

The four tiers: from invariant to AST mutation

Anthropic's playbook formalizes the lifecycle into four decoupled layers:

TierArtifactPrimary OwnerContent & Responsibilities
Tier 0intent.mdHuman Originator / LeadThe why, business outcomes, non-negotiable invariants, risk classification, and explicit non-goals.
Tier 1spec.mdAgent + Product OwnerFormal contracts, schema definitions, latency budgets, and security boundaries, constrained by organizational skills.
Tier 2plan.mdAgent + EngineerOrdered execution DAG, target file list, dependency graph, step verification commands, and rollback strategy.
Tier 3CODE DIFFCoding Agent LoopConcrete AST edits, unit and integration test additions, and configuration changes verified by compilers and test runners.

Enterprise systems: Git as the single source of truth

Enterprise teams often face a split-brain trap: product managers debate in Jira, while agents build in Git. The fix is outbound projection: Git Markdown remains authoritative, and CI hooks automatically sync structured YAML frontmatter to issue trackers:

---
intent_id: "INT-2026-084"
external_refs:
  jira: "CORE-4912"
  servicenow_rfc: "CHG0098124"
risk_classification: "Tier-2"
invariants:
  - "Zero external network calls on /verify hot path"
  - "Backward compatibility with HS256 tokens"
verification_command: "npm run test:auth-matrix"
---

Three critical failure modes

Multi-tier spec chains without discipline hit three reproducible traps:

1. Spec Slop. An agent prompts itself into generating a 500-line pseudo-spec packed with defensive boilerplate and imaginary microservices. Fatigued engineers do a five-second vibe check, hit approve, and downstream coding agents treat hallucinated details as immutable requirements.

2. The Telephone Game 2.0. Information degrades across generative hops (IntentSpecPlanDiff\text{Intent} \to \text{Spec} \to \text{Plan} \to \text{Diff}). Negative constraints—like "do not touch the auth schema"—vanish first during summarization. By Tier 3, the coding agent breaks core invariants because it only saw the plan's task list.

Δ(Diff,intent.md){Scope Violations, Invariant Breaches}\Delta(\text{Diff}, \text{intent.md}) \longrightarrow \{\text{Scope Violations, Invariant Breaches}\}

3. Context Pollution. Dumping all four markdown files into every prompt burns 6,000+ tokens per turn (180k+ over 30 turns), diluting model attention and degrading tool call precision.


Contrast: Fluffy spec slop vs. the 50-line Invariant Budget

Anti-pattern: Verbose prose spec (unanchored)

# Intent Document: User Authentication Enhancement
## Background and Strategic Importance
In our ongoing initiative to modernize enterprise infrastructure, we must empower
our user base with state-of-the-art authentication mechanisms. Security is a primary
pillar of our engineering culture...

## Proposed Architectural Solution
The system should leverage modern paradigms to seamlessly facilitate multi-token
validation across diverse endpoint surfaces with maximum flexibility...

Zero machine-verifiable assertions. Zero negative boundaries. Fifty lines of unfalsifiable marketing prose.

Recommended: The 50-Line Invariant Budget

# INTENT: Auth Service Token Rotation
## 1. Outcome
Support asymmetric RS256 token verification alongside symmetric HS256 without downtime.

## 2. Invariants (Hard Constraints)
- MUST NOT add external network calls to `/verify` hot path.
- MUST NOT introduce new runtime dependencies to package.json.
- Memory allocation delta per verification must remain < 512 bytes.

## 3. Explicit Non-Goals
- NOT migrating user profile database tables in this milestone.
- NOT deprecating legacy API keys.

## 4. Contract Schema
- Input: `Authorization: Bearer <jwt_string>`
- Output: `Result<SessionClaims, AuthError>`

## 5. Verification Gate Command
`npm run test:auth-matrix && npm run bench:verify-latency`

Every line is a negative boundary, a contract interface, or an executable verification command.


The practitioner framework: Tiered governance

Not every one-line fix needs a four-tier pipeline. Mandating intent.md for CSS padding is pure process theater. Calibrate rigor to blast radius:

Tiered Governance Matrix: T-Shirt Sizing SDLC Rigor

Scale documentation rigor with structural blast radius and task ambiguity to prevent process theater on small patches.

Tiered Governance Matrix2x2 grid plotting Structural Blast Radius against Task Ambiguity, identifying Tier 1 Tactical, Tier 2 Standard, Tier 3 Architectural, and the Process Theater danger zone.Task Ambiguity & Cross-Functional Reach →Structural Blast Radius →COMPACT CONTRACT GATE• Schema & Migration Checks• Ban full narrative prose specs50-line Invariant Budget strictly enforcedTIER 3: ARCHITECTURAL PIPELINE• Full 4-Tier: intent → spec → plan → diff• Signed GPG commits & CAB projectionMulti-agent fan-out, auth rewrites, core migrationsTIER 1: TACTICAL EDITS• Prompt-to-Diff (Zero markdown artifacts)• Existing test suite & linter verificationBugfixes, CSS styling, typo repairs, single-file patchesTIER 2: STANDARD FEATURE (EPHEMERAL)• Intent lives in Issue / PR body• TDD: compile acceptance criteria to tests firstNew API routes, component features, internal tools
Tiered Governance Matrix: Reserve full four-tier artifacts for high-blast-radius architecture, while using ephemeral issue-body intent and TDD for standard features.
TierScopeArtifact StrategyVerification Gate
Tier 1: TacticalBugfixes, CSS tweaks, single-file editsDirect prompt-to-diff. No standalone markdown artifacts.Standard unit tests and linters pass.
Tier 2: StandardMulti-file features, internal APIsEphemeral intent captured in the Issue/PR body; inline test plan.TDD assertions pass; diff matches issue scope.
Tier 3: ArchitecturalAuth rewrites, schema migrations, subagent fan-outsFull four-tier chain (intent.md \to spec.md \to plan.md).CI AST diff-scope analyzer, signed commits.

What to do with this

intent.md is a deterministic constraint harness for stochastic code generators—not a silver bullet. Four rules for production:

  1. Cap intent.md at 50 lines: Invariants, non-goals, interfaces, and test commands only. Zero narrative essays.
  2. Wire residual skip-connections: Always inject Tier 0 invariants directly into the final coding loop, bypassing intermediate summaries.
  3. Ground intent in automated tests: If a constraint can't be asserted by a test or compiler, treat it as advisory.
  4. Scale by blast radius: Reserve full four-tier chains for high-risk architectural work; use lightweight issue-body intent for daily features.

Sources & Primary Citations