Work in Progress
theory

Semantic Negotiation Layer

Design Systems Infrastructure

What if components could explain their constraints to AI agents—and negotiate alternatives when those constraints are violated?

flowchart LR
    A[Agent] -->|request| B[Component]
    B --> C{Valid?}
    C -->|yes| D[Render]
    C -->|no| E[Alternatives]
    E -->|options| A
Agent-component negotiation flow

The Problem

AI agents generating UI code don't understand why a button has specific padding or why a card enforces maximum content length. They pattern-match from examples, missing the semantic intent behind design decisions.

The result: syntactically correct code that violates design system principles. A button with a 200-character label. A card nested inside another card. Spacing that "looks right" but breaks the underlying system.

The Proposal

Components expose a machine-readable negotiation interface—not just props, but constraint rationales. When an agent requests something invalid, the component responds with alternatives rather than silent failure.

Agent: "Button with label 'Submit your application for review and approval'"

Component: "Label exceeds 40 characters. Options: truncate, wrap, or use a different pattern."

The agent negotiates with the component rather than blindly overriding. Constraints become collaborative, not adversarial.

requested
resolved
Constraint resolution: label truncated to fit mobile layout
agent.request({
  component: "Button",
  props: { label: "Submit your application for review and approval" }
})
component.constraint({
  violated: "label.maxLength",
  limit: 40,
  actual: 52,
  rationale: "Labels over 40 chars break mobile layout"
})
component.alternatives([
  { action: "truncate", result: "Submit your application..." },
  { action: "wrap", result: "Multi-line button" },
  { action: "split", result: "Use secondary action pattern" }
])
agent.select("truncate")
// Component renders with truncated label

Agent requests a Button with a 52-character label

Component explains the violation and its rationale

Component offers valid options to resolve the constraint

Agent selects an option; component renders accordingly

Why Now

LLMs excel at natural language reasoning but struggle with implicit constraint satisfaction. As agentic development scales, the cost of design system violations grows exponentially. MCP (Model Context Protocol) provides structure but not semantic intent—53% of organizations remain paralyzed by AI integration uncertainty.

Structured negotiation beats post-hoc linting. Prevention over correction.

Prior Art

TypeScript's type negotiation. GraphQL schema introspection. Apple's SF Symbols with built-in rendering constraints. Zod schema validation with custom error messages. The pattern exists—it hasn't been applied to design systems.

Constraint communication model layers Negotiation Interface Constraint Rationales (why limits exist) Component API (what exists today) existing new
Semantic enrichment layers on top of traditional component props
Domain Agent-Component Interfaces
Status Theoretical Proposal
Dependencies MCP, Structured Schemas