The Anatomy of Intent

Moving from Spec-Driven Fragility to the ICE Framework

A comprehensive masterclass on Intent-Driven System Design (IDSD). Explore why traditional Spec-Driven Development (SDD) stalls AI Coding Maturity, how engineering roles are fundamentally transforming, and how the “ICE” framework enables goal-oriented, autonomous cognitive runtimes.

The Paradigm Shift

Understanding the evolution from manual keystrokes to autonomous system orchestration.

1. Collapse of SDD

Rigid specs require constant human re-prompting. In an AI context, giving step-by-step instructions breaks down because the AI lacks the freedom to optimize or repair execution trees.

2. IDSD Emerges

Intent-Driven System Design shifts the paradigm from imperative coding to declarative orchestration. You define the Goal, and the AI resolves the How.

3. The ICE Framework

Intent, Context, Expectations. This triad replaces the PRD/Spec. It provides the strict boundaries an agent needs to operate safely without micromanagement.

4. Cognitive Runtimes

Moving past “AI Lipstick” (chatbots wrapping dumb APIs) to systems where autonomous agents evaluate capability graphs and generate features on the fly.

Why Your AI Coding Maturity Has Stalled

The industry is experiencing a “J-Curve” that is jeopardizing the AI-Native SDLC. When engineering teams transitioned from manual coding, they first adopted Vibe Coding—prompting without structure—which quickly collapsed due to a lack of determinism and massive technical debt.

To regain control, leadership fell back on what they knew: Spec-Driven Development (SDD). They tried to give AI highly detailed, step-by-step Jira tickets.

  • The Token/Logic Trap: SDD forces the LLM to follow a specific path. If step 2 of a 10-step spec is logically flawed for the current codebase, the AI fails the entire task.
  • The Reinterpretation Tax: “One test survived AI iteration; the spec needed four reinterpretations.” Humans spend more time rewriting specs for the AI than they would have spent coding.
  • AI Lipstick: Wrapping rigid rules around a dynamic intelligence. It creates an illusion of control but results in brittle systems.

The Evolution of Software Crafts

Tracing the path to true autonomy.

Phase 1: Vibe Coding
“Make me a chat app.”
Result: Immediate technical debt, zero scalability.
Phase 2: Spec-Driven Development
“Create a React component, use Axios, fetch from /api/users, handle 404s this exact way.”
Result: Stalled. AI is treated as a fast typist, not a reasoner.
Phase 3: Intent-Driven System Design
“Ensure users can view their profile data securely.”
Result: Autonomous architecture composition.

Deconstructing the ICE Framework

To shift to IDSD, we must replace the human-readable “Spec” with a machine-readable, constraint-based payload. ICE is the shared mental model that allows Orchestrators to work without hallucinating.

Intent

The Declarative Goal. We define the exact business value or system state required, without prescribing the technical steps to achieve it.

intent:
  id: "user_checkout"
  goal: "Process a secure payment
         and deduct inventory"
  priority: "p0"
  actor: "authenticated_user"
  • Focuses on State Change
  • Ignorant of specific UI/API steps
  • Defined by the “Specifier” role

Context

The Environment & Constraints. The real-time knowledge graph the agent uses to reason. What APIs exist? What are the architectural rules?

context:
  capabilities:
    - "stripe_api_v3"
    - "inventory_grpc_service"
  constraints:
    max_latency: "200ms"
    compliance: "PCI-DSS"
  • Exposes Capability Graphs
  • Often injected via RAG
  • Maintained by the “Designer”

Expectations

The Verification Boundaries. Instead of unit-testing AI-generated code (which changes frequently), we test the resulting system contracts.

expectations:
  post_conditions:
    - "inventory.count -= 1"
    - "payment_status == 'cleared'"
  contract_test: "pact_verify.json"
  • Contract & Boundary Testing
  • Uses tools like Microcks/Pact
  • Enforced by the “Validator”

Implementing IDSD: The 5 New Roles

As software engineering moves away from syntax-heavy programming toward architecture orchestration, the traditional “Front-end/Back-end/QA” silos dissolve. The industry is collapsing into five distinct roles necessary to run an Intent-Driven SDLC:

1
Specifiers (Goal Setters)

They replace PMs writing Jira tickets. They define the Intent, mapping business value to capability requirements rather than UI step-flows.

YAML Intents Notion / Linear
2
Designers (Context Providers)

They replace traditional System Architects. They establish the semantic descriptor graphs and schemas. They give the AI the Context it needs to reason.

Capability Graphs Backstage / Neo4j
3
Builders (Agent Toolsmiths)

No longer writing application glue code. Builders create the discrete tools, APIs, and access parameters that the orchestrator will consume.

Micro-tools / APIs Go / Rust / Python
4
Orchestrators (The Cognitive Runtime)

The AI models (e.g., Claude, Gemini) themselves. They dynamically compose the agents needed to achieve the intent, building execution trees on the fly.

Execution Trees LLMs / LangGraph
5
Validators (Expectation Managers)

Replacing manual QA. They define the Expectations, ensuring the generated system honors the original contract using boundary testing.

Contract Tests Microcks / Testcontainers

The Shift in Responsibility

In SDD, humans define the Path, and AI generates the Syntax. In IDSD, humans define the Boundaries, and AI generates the Path.

Human FocusSystem Topology
AI FocusExecution Routing
Test FocusContract Fidelity

Actionable Transition: E-Commerce Case Study

The Old Way: SDD (Fragile)

The PM writes a rigid Jira ticket restricting the AI's ability to optimize.

# Jira Ticket-402
1. Create a React Button component.
2. OnClick, call POST /api/v1/checkout.
3. Pass payload: { userId, cartId }.
4. If 200 OK, show Green Success Toast.
5. If 500, show Red Error text.
6. Write Jest unit test for the Button.

Failure Point: If the backend upgrades to /api/v2 or switches to WebSockets, the spec breaks. The AI fails. The unit test fails. A human must rewrite everything.

The New Way: IDSD (Resilient)

The team provides an ICE payload. The Orchestrator resolves the implementation.

{
  "Intent": "Allow user to finalize
             cart purchase securely.",
  "Context": {
    "available_tools": [
      "PaymentGateway_v2", "CartGraph"
    ],
    "platform": "Web_React"
  },
  "Expectations": {
    "contract": "checkout_pact_v2.json",
    "state_change": "cart.status = empty"
  }
}

Success Point: The AI decides the optimal UI component, discovers the correct backend API from the Context, and the Validator ensures the end contract is met. The code is disposable; the intent is eternal.

The 3 Rules of IDSD Migration

1. Stop Writing Steps2. Expose Tools, Not Workflows3. Contract Testing > Unit Testing