PROSE: An Architectural Style for AI-Native Development

A new discipline is emerging. AI-Native Development recognizes natural language as a programming language itself—not a novelty, but a fundamental shift in how we instruct machines.

Just as code became the medium for directing CPUs, natural language is becoming the medium for directing language models. But we are in the infancy of this transition. As an industry, we lack guidance on how to do this well—reliably, at scale, for real projects with real complexity.

PROSE addresses this gap. It defines an architectural style for reliable, scalable collaboration between humans and AI coding agents. Like REST defined constraints for distributed systems independent of HTTP, PROSE defines constraints for AI-native development independent of any specific model or platform.

Quick Reference

Constraint Principle Induced Property
Progressive Disclosure Structure information to reveal complexity progressively Efficient context utilization
Reduced Scope Match task size to context capacity Manageable complexity
Orchestrated Composition Simple things compose; complex things collapse Flexibility, reusability
Safety Boundaries Autonomy within guardrails Reliability, security, verifiability
Explicit Hierarchy Specificity increases as scope narrows Modularity, inheritance

What PROSE Is Not

  • Not a framework. PROSE is a style, like REST. Implementations vary; constraints remain.
  • Not a file format. The primitives (.instructions.md, etc.) are implementations of the style, not the style itself.
  • Not model-specific. PROSE works with GPT, Claude, Gemini, open-source models, and whatever comes next.
  • Not prescriptive about tooling. Use VS Code, Cursor, CLI agents, or any interface. The constraints apply universally.

The Problem PROSE Solves

Working with language models at scale reveals a fundamental challenge: quality in, quality out—but what does “quality” mean when your programming language is natural language?

Two failure modes dominate:

Context overload: Models have finite context and limited attention. When overloaded with irrelevant information, they lose focus, forget instructions, and hallucinate to fill gaps.

Guidance deficit: Models given vague, unstructured, or insufficient direction produce inconsistent, unpredictable results. Unlike compilers that reject bad syntax, LLMs always produce something—making quality failures silent and insidious.

The industry has prompt engineering techniques for single interactions. But there’s no established guidance for AI-assisted development at project scale: How do you provide the right context, at the right time, in the right measure? How do you make interactions repeatable and reliable across a codebase that evolves?

PROSE addresses this through architectural constraints that manage context as a scarce resource, provide structured guidance that scales, bound non-determinism through explicit boundaries, and enable reliable composition of AI capabilities.

Deriving the Constraints

PROSE constraints aren’t arbitrary. Each addresses a specific failure mode observed in AI-assisted development at scale.

Starting Point: Unconstrained Interaction

Imagine AI-assisted development with zero structure: paste code into chat, ask questions, hope for the best. This works for trivial tasks. For anything complex, five failure modes emerge:

1. Context Overload

You load everything upfront—architecture docs, coding standards, all relevant source files. The model loses focus, forgets instructions, hallucinates to fill gaps. As one developer put it: “Sometimes Copilot generates brilliant code, other times it’s completely off-target.” The difference? What else was competing for attention.

Solution: Progressive Disclosure—context arrives just-in-time, not just-in-case.

2. Scope Creep

A task starts focused: “Find and fix the bug.” Mid-session you add: “also update the tests” and “while you’re there, refactor that utility.” Attention degrades with context length. Quality suffers. The agent loses track of earlier instructions.

Solution: Reduced Scope—decompose into right-sized tasks with fresh context per phase. Compare “Find and fix the bug” with a structured multi-step workflow that separates diagnosis, solution design, and implementation.

3. Monolithic Collapse

A single mega-prompt captures everything: role, rules, examples, constraints, output format. It works… sometimes. Small changes produce wildly different results. Debugging is impossible—which part failed? Teams report: “Different requests for similar tasks produce wildly different quality results.”

Solution: Orchestrated Composition—build from small, chainable primitives that compose predictably.

4. Unbounded Autonomy

The agent can execute any command, modify any file, access any service. Non-determinism plus unlimited authority equals unpredictable and unsafe behavior. Like professional licensing—architects shouldn’t execute builds, engineers shouldn’t set strategy—agents need explicit capability boundaries.

Solution: Safety Boundaries—define what tools, what knowledge, what requires approval.

5. Flat Guidance

Global instructions apply everywhere. Backend security rules load when editing frontend CSS. Frontend patterns load when writing database migrations. The industry fragmented into tool-specific formats—.cursorrules, .clinerules, CLAUDE.md—each locking teams into single tools, none providing hierarchy.

Solution: Explicit Hierarchy—specificity increases as scope narrows, with universal discovery through standards like AGENTS.md.

The Minimal Sufficient Set

These five solutions become the five PROSE constraints. Each is necessary to address its failure mode. Together, they form a minimal sufficient set for reliable AI-native development at scale.

The Five Constraints

PROSE defines five architectural constraints. Each addresses a fundamental property of language models and induces desirable system properties.

P — Progressive Disclosure

“Context arrives just-in-time, not just-in-case.”

Constraint: Structure information to reveal complexity progressively, allowing agents to access deeper detail only when contextually relevant to the current task.

Rationale: Context windows are finite. Loading everything upfront wastes capacity and dilutes attention. Progressive disclosure preserves context for what matters.

Mechanism: Markdown links as lazy-loading pointers. Skills metadata as capability indexes. Hierarchical file references. Descriptive labels that enable relevance assessment.

Induced Property: Efficient context utilization.

R — Reduced Scope

“Match task size to context capacity.”

Constraint: Complex work is decomposed into tasks sized to fit available context. Each sub-task operates with fresh context and focused scope.

Rationale: Attention degrades with context length. When a task exceeds what an agent can hold in focus, quality suffers. Decomposition restores focus.

Mechanism: Phased execution (plan → implement → test). Subagent delegation. Session splitting between domains.

Induced Property: Manageable complexity, consistent quality.

O — Orchestrated Composition

“Simple things compose; complex things collapse.”

Constraint: Favor small, chainable primitives over monolithic frameworks. Build complex behaviors by composing simple, well-defined units.

Rationale: LLMs reason better with clear, focused instructions. Composition preserves clarity while enabling sophistication. Monolithic prompts become unpredictable.

Mechanism: .instructions.md, .prompt.md, .agent.md as atomic primitives. Skills as composable capability packages. Workflows as compositions, not mega-prompts. Explicit contracts between agents working in parallel.

Induced Property: Flexibility, reusability, maintainability.

S — Safety Boundaries

“Autonomy within guardrails.”

Constraint: Every agent operates within explicit boundaries: what tools are available (capability), what context is loaded (knowledge), and what requires human approval (authority).

Rationale: LLMs are non-deterministic and can hallucinate confidently. Unbounded autonomy produces unpredictable results. Boundaries constrain variance while preserving usefulness. Grounding outputs in deterministic tool execution transforms probabilistic generation into verifiable action.

Mechanism: Tool whitelists. applyTo patterns for context scoping. Validation gates requiring human approval. Deterministic tools (MCP) as truth anchors—code execution, API calls, and file operations ground agent claims in verifiable reality.

Induced Property: Reliability, trust, safety, verifiability.

This constraint is foundational to agentic security—agents that operate within explicit boundaries are auditable, controllable, and safer. Grounded execution through deterministic tools addresses the hallucination problem at an architectural level.

E — Explicit Hierarchy

“Specificity increases as scope narrows.”

Constraint: Instructions form a hierarchy from global to local. Local context inherits from and may override global context. Agents resolve context by walking up the hierarchy.

Rationale: Different domains require different guidance. Global rules ensure consistency; local rules enable specialization. Hierarchy prevents context pollution.

Mechanism: Root AGENTS.md defines project-wide principles. Nested AGENTS.md files add domain-specific rules. .instructions.md with applyTo patterns enable file-type targeting.

Induced Property: Modularity, domain adaptation, inheritance.

How Constraints Relate

The five constraints form an integrated system:

  • Progressive Disclosure determines what enters context
  • Reduced Scope determines how much the agent handles at once
  • Orchestrated Composition determines how primitives combine
  • Safety Boundaries determine what the agent can do
  • Explicit Hierarchy determines which rules apply

Grounding Principles

PROSE stands on three foundational truths about language models:

1. Context is finite and fragile

Context windows have capacity limits, and attention within those limits is not uniform. Information competes for attention; content far from focus gets lost. Treat context as a scarce resource that degrades under load.

Implication: Manage both quantity and quality of what enters the window.

2. Context must be explicit

Agents can only work with externalized knowledge. Tacit understanding, undocumented decisions, implicit agreements, and prior session history are invisible to AI. Models are stateless—what isn’t in the context window doesn’t exist for the agent.

Implication: Continuously surface and codify the knowledge your projects depend on.

3. Output is probabilistic

The same input can produce different outputs. Language models interpret rather than execute; variance is inherent. Determinism comes from constraints, structure, and grounding—not from the model itself.

Implication: Reliability is architected through boundaries and guardrails, not assumed.

These properties persist regardless of model size, architecture, or provider.

PROSE Compliance Checklist

Assess whether your AI-native development approach is PROSE-compliant:

Constraint Compliance Question
Progressive Disclosure Is context loaded on-demand rather than all upfront? Do agents see indexes/summaries before full detail?  
Reduced Scope Are complex tasks decomposed into right-sized subtasks? Do agents get fresh context per phase?  
Orchestrated Composition Are capabilities built from small, chainable primitives? Or do you rely on monolithic mega-prompts?  
Safety Boundaries Are agent capabilities, knowledge scope, and approval requirements explicitly defined?  
Explicit Hierarchy Do instructions form a global-to-local hierarchy? Can local rules specialize or override global ones?  

Scoring:

  • 5/5: Fully PROSE-compliant
  • 3-4/5: Partially compliant—identify gaps and address
  • 0-2/5: Ad-hoc approach—significant restructuring needed

PROSE Maturity Model

The journey from ad-hoc prompting to PROSE-compliant systems:

Level Name Description Key Indicators
0 Ad-hoc One-off prompts with no persistent context or structure No saved instructions; each session starts fresh; results vary wildly
1 Structured Persistent instructions guide agent behavior .instructions.md or AGENTS.md in use; some repeatability emerges
2 Composed Multiple primitives work together with explicit boundaries Skills, workflows, and hierarchical context; validation gates; clear scoping
3 Orchestrated Multi-agent coordination with fresh context per scope Subagent delegation; session splitting; async agent workflows; continuous context capture
4 Distributed Primitives packaged and reused across projects and teams Skills published as packages; cross-project primitive consumption; ecosystem participation

Level Progression

  • 0 → 1: Recognize that instructions should persist beyond a single session
  • 1 → 2: Recognize that primitives compose; structure enables reliability
  • 2 → 3: Recognize that complex work requires coordination across agents and phases
  • 3 → 4: Recognize that well-structured primitives are inherently shareable—the “npm moment”

Level 4 insight: PROSE constraints don’t just improve your project—they make your primitives distributable. Quality structure enables ecosystem reuse. This is when AI-native development scales beyond individual teams to community-level compound intelligence.

Anti-Patterns

Clear examples of what violates PROSE:

Anti-Pattern Violated Constraint Why It Fails
Monolithic prompt Orchestrated Composition All instructions in one block; small changes produce unpredictable results; impossible to debug
Context dumping Progressive Disclosure Wastes context capacity; dilutes attention on what matters
Undocumented rules Grounding Principle #2 Agents can only use explicit context; invisible rules produce invisible failures
Unbounded agent Safety Boundaries Unbounded autonomy + non-determinism = unpredictable and unsafe behavior
Flat instructions Explicit Hierarchy No specialization possible; either over-general or polluted with irrelevant detail
Stale context Grounding Principle #2 Context must be explicit and current; stale guidance produces stale results
Scope creep Reduced Scope Task grows beyond context capacity; attention degrades; agent loses track of earlier instructions

The meta-pattern: Most anti-patterns stem from ignoring that context is finite and fragile. Whether through monolithic prompts, context dumping, or casual approaches that lack PROSE structure—complexity without architecture produces unreliable results. The Maturity Model describes the progression from ad-hoc methods to structured practices.

The Outcomes

When PROSE constraints are followed, systems exhibit:

Outcome Description
Reliability Consistent results from non-deterministic systems
Scalability Same patterns work from simple scripts to large, complex codebases
Portability Works across any LLM-based agent platform
Maintainability Primitives can evolve independently
Transparency Agent behavior is inspectable and explainable
Security Explicit boundaries and inspectable behavior reduce attack surface and enable audit

Key Takeaways

PROSE is an architectural style for AI-native development defined by five constraints:

Constraint Core Idea
Progressive Disclosure Load context just-in-time
Reduced Scope Right-size tasks to context capacity
Orchestrated Composition Compose simple primitives
Safety Boundaries Bound autonomy with explicit limits
Explicit Hierarchy Layer guidance from global to local

When followed, these constraints induce reliability, scalability, and portability in AI-assisted development—independent of any specific model, platform, or technology.

Ready to implement PROSE? Continue to The Practice for the three disciplines, or jump to Getting Started for hands-on implementation.