How do you specify your intent with sufficient clarity that autonomous systems can execute reliably
Across the first nine articles in this series, we have explored the foundations of Intent-Driven Development.
We examined why traditional implementation-centred delivery models struggle in an environment where AI systems can generate software at extraordinary speed. We explored how Intent-Driven Development integrates with existing practices such as User-Centred Design, Domain-Driven Design, Behaviour-Driven Development and Test-Driven Development. We introduced governance mechanisms such as risk dials and human gates, and we examined how intent fidelity allows organisations to measure whether autonomous systems remain aligned with the intent that governs them.
We also explored how organisations progress through evidence-based maturity stages, and how the role of practitioners evolves as the centre of gravity shifts from implementation to the design of intent.
At this point in the journey, a practical question inevitably arises:
What does an Intent-Driven specification actually look like?
This article begins to answer that question.
It does not prescribe. The AI landscape is evolving too rapidly, and organisational contexts vary too widely, for any single template to become canonical. Teams will naturally adapt these ideas to the tools they already use, whether that means Markdown documents in repositories, Confluence pages, Jira epics, Notion workspaces or Linear issues.
What matters is not the container.
What matters is that the specification captures the elements that allow autonomous systems to execute reliably while remaining aligned with human intent.
In an Intent-Driven environment, specifications become the artefact through which practitioners govern intent while delegating execution.
The Six Elements of Intent
An effective Intent-Driven specification answers six fundamental questions.
If these questions are clear, autonomous systems can execute safely. If they are ambiguous, implementation drift becomes inevitable.
These six elements are not arbitrary categories. They emerge naturally from the disciplines Intent-Driven Development integrates, User-Centred Design, Domain-Driven Design, Behaviour-Driven Development, Test-Driven Development, and from the governance requirements that prevent autonomous systems from drifting away from human purpose.
Note on evolution
These six elements evolved from the five foundational questions introduced in Article 1. As the Intent-Driven Development framework matured—particularly through the integration of Domain-Driven Design discussed in Article 2, it became clear that domain context required explicit treatment.
Originally, domain understanding sat implicitly within the question “what does success look like?”. In practice, however, autonomous systems require far richer contextual grounding than human teams typically make explicit. Business entities, domain language, bounded contexts and invariants form the conceptual world in which implementation occurs.
As a result, Domain Context emerged as a distinct element of the specification. Separating it from success criteria ensures that autonomous systems understand not just what must be achieved, but the business model within which that achievement must make sense.
1. Intent: The “Why” and the “What”
The first section establishes the fundamental purpose of the system.
Why are we building this?
What problem does it solve?
What outcome defines success?
Without clear articulation of intent, everything downstream becomes interpretation. Autonomous systems will inevitably fill gaps with assumptions. Those assumptions may be technically coherent while still being strategically misaligned.
Intent should answer questions such as:
- What problem are we solving?
- For whom are we solving it?
- What does success look like?
- Why does this matter to the business?
- What outcome are we optimising for?
This is where User-Centred Design thinking becomes foundational. If you cannot clearly articulate the user need and business value, you are not yet ready to delegate implementation.
2. Domain Context: The “World”
The second section situates the specification within its domain.
Autonomous systems perform far more reliably when they understand the conceptual model within which they are operating. Domain-Driven Design provides the structure here.
Domain context should clarify:
- Which bounded contexts are involved
- What entities, aggregates and value objects exist
- What ubiquitous language the organisation uses
- What business rules and invariants must hold
- How this specification fits within the broader domain model
When agents lack domain context, they default to generic patterns. The code may compile and tests may pass, but the implementation will not reflect how the business actually understands the problem.
In organisations managing multiple projects within the same domain, much of this context may be defined once at the domain level and referenced by individual specifications rather than repeated.
This pattern becomes increasingly valuable as Intent-Driven Development scales across enterprise environments.
3. Success Criteria: The “Done”
The third section defines what success looks like in measurable terms.
Both functional requirements (what the system must do) and non-functional requirements (how well it must perform) belong here.
Success criteria typically specify:
- Functional requirements
- Non-functional requirements such as performance, security and scalability
- Acceptance criteria expressed using Behaviour-Driven Development scenarios
- The definition of “complete”
- The threshold for “good enough”
Without clear success criteria, intent fidelity cannot be measured. An implementation may work, but there is no reliable basis for determining whether it works correctly.
4. Validation: The “Proof”
This section defines how we prove the implementation reflects the governing intent.
Validation embodies the spirit of Test-Driven Development by specifying what must be tested, which edge cases matter, and how the system should behave when things go wrong.
Validation should address:
- Test scenarios that prove the system works
- Edge cases that must be handled
- Expected behaviour under failure conditions
- Performance benchmarks
- The evidence required to confirm completion
Autonomous systems are particularly strong in this area. When validation criteria are well defined, agents can generate comprehensive test suites that explore far more combinations than humans typically consider.
But they can only do this when the validation intent has been clearly articulated.
5. Constraints: The “Boundaries”
The fifth section defines the boundaries within which implementation must operate.
Constraints include:
- Technical platform limitations
- Architectural patterns
- Existing system integrations
- Resource limitations
- Regulatory and compliance obligations
Constraints are not restrictions on creativity. They are the operational and architectural realities within which solutions must function.
Autonomous systems require these boundaries to be explicit.
Many constraints, such as organisational architecture standards, technology stacks and compliance requirements, often apply across many projects. Mature IDD organisations typically define these once and allow project specifications to inherit them rather than duplicating them repeatedly.
6. Ethical Considerations: The “Should We”
The final section addresses a question that autonomous systems cannot answer:
Should this system exist at all?
As discussed earlier in this series, certain decisions must remain permanently human. Ethical judgement is one of them.
Ethical considerations should explore:
- Who is impacted by the system
- Potential harms that might arise
- Biases that might emerge
- Privacy implications
- Mitigation strategies
When autonomous systems can build rapidly, the question of whether to build becomes as important as how to build.
Many organisations are unaccustomed to making ethical reasoning explicit. But doing so becomes essential when implementation can be delegated to machines.
A Detailed Example: Abandoned Cart Recovery
To illustrate how these elements come together in practice, consider a common e-commerce scenario: implementing an abandoned cart recovery system.
The example below is intentionally detailed. It shows how the six elements of an Intent-Driven specification can be expressed in a form that autonomous systems can execute against reliably while remaining aligned with human intent.
If you prefer, you can also make the full example available as a downloadable Markdown reference.
Example IDD Specification: Abandoned Cart Recovery
Intent
Problem:
Approximately 35% of customers add items to their cart but abandon the purchase before checkout completion. Current recovery rate is less than 5%. This represents significant lost revenue and suggests friction in the purchase journey.
User Need:
Customers who genuinely intend to purchase may be interrupted, distracted, or encountering technical issues. A well-designed recovery system helps them complete intended purchases without feeling pressured or manipulated.
Business Value:
Industry benchmarks suggest well-executed cart recovery can convert 15-20% of abandoned carts. For our current volume, this represents approximately £2.4M in additional annual revenue. More importantly, it provides signal about where friction exists in the purchase journey.
Success Definition:
Success means converting 15% of abandoned carts within 24 hours of abandonment, while maintaining customer satisfaction scores above current baseline and generating zero complaints about manipulative or intrusive messaging.
Optimization Target:
We are optimizing for conversion that feels helpful rather than pushy. Revenue matters, but so does customer trust. We want customers who convert through recovery to remain long-term customers.
Domain Context
Bounded Context:
This sits within the “Shopping” bounded context, with integration points to “Customer Communication”, “Product Catalog” and “Analytics” contexts.
Domain Model:
- Cart (Aggregate Root)
- Belongs to either authenticated User or anonymous Session
- Contains collection of CartItems
- Has states: Active, Abandoned, Recovered, Converted, Expired
- Tracks abandonment timestamp
- CartItem (Entity within Cart aggregate)
- References Product (from Product Catalog context)
- Captures price at time of addition (protected from price changes)
- May have inventory reservation (time-limited)
- RecoveryAttempt (Entity)
- Tracks communication sent to customer
- Records customer response (opened, clicked, converted, ignored)
- Prevents over-communication
Ubiquitous Language:
- “Abandoned” = Cart inactive for 2 hours with items present and no checkout initiated
- “Recovered” = Customer returns and completes purchase within 24 hours of first recovery communication
- “Soft Recovery” = Email reminder without discount incentive
- “Incentivized Recovery” = Email with time-limited offer (used sparingly)
Business Rules:
- Cart abandonment threshold: 2 hours of inactivity
- Maximum recovery attempts: 2 per abandoned cart
- Minimum time between attempts: 8 hours
- Recovery window closes: 7 days after abandonment
- Price protection: Original cart prices held for 24 hours
- Inventory reservation released: After 30 minutes if abandoned
Domain Events:
- CartAbandoned
- RecoveryAttemptSent
- CartRecovered
- RecoveryWindowExpired
Success Criteria
Functional Requirements:
- Cart Abandonment Detection
- System detects when cart has been inactive for 2 hours
- Abandonment recorded with timestamp and cart state snapshot
- User contact information captured (if authenticated) or tracked (if session-based)
- Recovery Communication
- First recovery email sent within 2-4 hours of abandonment
- Email contains cart contents with prices held constant
- Email provides direct link back to cart with session restoration
- Second recovery email sent after 8-12 hours if no response
- Unsubscribe option present and honored immediately
- Cart Restoration
- Customer clicking recovery link restores exact cart state
- Prices remain as captured at abandonment (for 24 hours)
- Inventory availability rechecked, items removed if unavailable with clear explanation
- Session authentication handled seamlessly
- Conversion Tracking
- System tracks whether recovery led to conversion
- Attribution window: 24 hours from recovery email send
- Non-recovery conversions also tracked for comparison
Non-Functional Requirements:
- Performance
- Abandonment detection latency: Within 5 minutes of threshold
- Email generation and send: Within 15 minutes of detection
- Cart restoration: < 2 seconds from link click to restored cart
- System handles 10,000 concurrent abandonment detections
- Reliability
- Zero lost abandonment events (idempotent processing)
- Email delivery rate > 98% (excluding bounces)
- Cart restoration success rate > 99.5%
- Privacy & Compliance
- GDPR compliant (right to deletion, data portability)
- Email preferences respected in real-time
- Personal data encrypted at rest and in transit
- Audit trail for all recovery communications
- Scalability
- Supports current cart volume (50,000/day) with 5x headroom
- Email sending capacity: 100,000/hour sustained
Validation
Acceptance Criteria (BDD)
Scenario: Authenticated user abandons cart
Given an authenticated user with a valid email address
When they add items to their cart
And the cart remains inactive for 2 hours
Then a recovery email is sent within 4 hours
And the email includes cart contents
And the email provides a restoration link
Scenario: Customer restores cart from recovery email
Given a customer receives a recovery email
When they click the restoration link
Then the cart is restored with original items
And original prices are maintained
And unavailable items are removed with explanation
Scenario: Customer completes purchase after recovery
Given a customer clicks a recovery link
When they complete checkout within 24 hours
Then the purchase is attributed to the recovery campaign
Scenario: Customer unsubscribed from marketing
Given a customer has unsubscribed from marketing emails
When their cart is abandoned
Then no recovery email is sent
Test Scenarios:
- Abandonment Detection
- Cart inactive for 1h59m → No abandonment recorded
- Cart inactive for 2h01m → Abandonment recorded within 5 minutes
- Multiple carts abandoned simultaneously → All detected and processed
- Anonymous session cart abandoned → Tracked appropriately
- Authenticated user cart abandoned → Email address captured
- Recovery Communication
- Abandoned cart → First email sent within 2-4 hours
- No response to first email → Second email sent 8-12 hours later
- Customer clicks link before second email → Second email cancelled
- Customer completes purchase → No further emails sent
- Customer has unsubscribed → No emails sent at all
- Cart Restoration
- Recovery link clicked → Cart restored in < 2 seconds
- Original prices maintained for 24 hours
- Product no longer available → Removed with explanation
- Product price changed → Original price maintained (within window)
- Concurrent cart modifications → Last-write-wins with notification
Performance Benchmarks and Failure Modes:
Include load testing, endurance testing and degraded-mode behaviours for email service outages, database failures, payment timeouts and concurrent modification conflicts.
Constraints
Technical Constraints:
Platform:
Cloud: AWS (eu-west-1)
Compute: ECS with Fargate (containerized services)
Database: PostgreSQL 15 (RDS)
Cache: Redis 7 (ElastiCache)
Email: SendGrid (dedicated IP, domain authenticated)
Integration Points:
Product Catalog service (REST API, rate limit 1000 req/sec)
Payment Gateway (Stripe, PCI-DSS compliant environment)
Analytics platform (event stream via Kinesis)
Customer Communication service (Pub/Sub via SNS/SQS)
Technology Stack:
Backend: Python 3.11 (existing platform standard)
API: REST (JSON), OpenAPI 3.0 specification
Event Bus: SNS/SQS (event-driven architecture)
Monitoring: CloudWatch + Datadog
Architectural Constraints:
Patterns:
Must follow CQRS pattern (read/write separation)
Event-driven communication between bounded contexts
Idempotent message processing (at-least-once delivery)
Circuit breaker pattern for external service calls
Boundaries:
Cannot directly access Inventory database (must use API)
Cannot directly access Customer database (must use API)
Must publish domain events to event bus (not optional)
Must not couple to specific email provider implementation
Security:
All API calls over TLS 1.3
Customer data encrypted at rest (AES-256)
Recovery links single-use with 7-day expiry
Rate limiting on cart restoration endpoint (10 requests/minute per user)
Resource Constraints:
Infrastructure:
Email sending: 100,000 free tier SendGrid, £50/month for overages
Database: RDS instance within existing capacity
Compute: Existing ECS cluster capacity sufficient
Monitoring: Included in current Datadog plan
Compliance Constraints:
GDPR:
Right to deletion: All recovery data deletable on request
Right to data portability: Export format available
Consent management: Marketing preferences honored real-time
Data minimization: Only essential data captured
Retention: Recovery data retained 90 days maximum
PCI-DSS:
Payment data never stored in recovery system
Only reference tokens used
Audit trail for all payment-related actions
Accessibility:
Email templates WCAG 2.1 AA compliant
Plain text alternative for all HTML emails
Link text descriptive (not “click here”)
SOC 2:
Audit trail for all recovery communications
Access controls on customer data
Encryption key management documented
Incident response procedure defined
Ethical Considerations
Impact Assessment:
Who is Impacted?
Customers (Primary):
Those who genuinely intended to purchase but were interrupted
Those who abandoned intentionally (not ready to buy)
Those with financial constraints (may feel pressured)
Those sensitive to email frequency
Customer Support Team:
Will field inquiries about recovery emails
May receive complaints about pressure or manipulation
Need tools and training to handle opt-outs
Business Stakeholders:
Expect revenue increase
May push for aggressive tactics
Need education on sustainable vs extractive practices
Potential Benefits:
For Customers:
Helpful reminder for genuine interruptions
Preserved pricing (for 24 hours)
Reduced friction in completing intended purchases
Signal that the business values their consideration
For Business:
Increased conversion and revenue
Better understanding of abandonment patterns
Improved customer lifetime value (if done well)
Competitive parity with industry practice
Potential Harms:
Manipulation Risk:
Artificial scarcity tactics (“only 2 left!”)
Pressure-based urgency (“cart expires in 1 hour!”)
Excessive discount incentives that devalue product
Dark patterns that obscure choice
Privacy Concerns:
Behavioral tracking across sessions and devices
Email addresses used without explicit marketing consent
Data shared with third-party email provider
Potential for data breach exposing shopping behavior
Financial Pressure:
Customers with limited means may feel pressured to purchase
Recovery emails may trigger impulse buying they later regret
Debt accumulation if payment failures are masked
Psychological Impact:
Email fatigue from too-frequent communications
Feeling surveilled or tracked
Stress from decision pressure
Guilt about not completing purchase
Bias Considerations:
Who Might Be Disadvantaged?
Customers with limited digital literacy (may not understand recovery mechanism)
Those with accessibility needs (if emails not properly formatted)
Price-sensitive customers (if recovery primarily uses discounts)
Those in different time zones (if timing is culturally insensitive)
Data Bias Risks:
Recovery success metrics may favor certain demographics
Optimization algorithms might discriminate based on purchase history
Discount targeting could perpetuate pricing inequality
Mitigation Strategies:
Against Manipulation:
No artificial scarcity messaging (we will not lie about inventory)
No aggressive urgency language (no countdown timers)
Discounts used sparingly and strategically (not as default)
Honest communication: “We noticed you left items in your cart. Would you like to complete your purchase?”
Privacy Protection:
Clear opt-in for cart recovery emails (separate from newsletter)
Easy, immediate unsubscribe (one click, effective immediately)
Transparent data usage notice (who sees this data, how long kept)
No sharing of individual behavior with third parties beyond email provider
Regular privacy impact assessments
Financial Responsibility:
No pressure tactics targeting financially vulnerable
Clear pricing, no hidden fees revealed only at recovery
Payment failure handled transparently, not masked
Limit recovery attempts (max 2) to avoid harassment
Accessibility Commitment:
All recovery emails WCAG 2.1 AA compliant
Plain text alternatives always provided
Link text descriptive and screen-reader friendly
Timing sensitive to time zones (not 3am local time)
Transparency:
Recovery email clearly labeled as automated communication
Customers can request all data about their recovery interactions
A/B testing disclosed in privacy policy
Algorithm decisions explainable on request
Monitoring for Harm:
Customer satisfaction tracked specifically for recovery interactions
Complaint analysis for patterns of harm
Regular review of conversion vs complaint ratio
Ethics review every 6 months
Adapting to Your Context
The example above is deliberately comprehensive and provides lots of different examples. Not every specification needs this level of detail.
More detailed specifications are appropriate when:
- systems operate in high-risk domains
- domain models are complex
- regulatory documentation is required
- teams are new to Intent-Driven Development
- multi-agent coordination is required
Simpler specifications may suffice when:
- systems have limited blast radius
- domains are well understood
- teams share strong contextual knowledge
- prototypes are being explored
- risk levels are low
The goal is not documentation for its own sake.
The goal is clarity of intent.
Starting with Intent-Driven Specifications
For teams beginning their IDD journey, start with two sections:
Intent and Constraints.
Those two elements alone dramatically improve clarity. They force teams to articulate why something should be built and what boundaries govern it.
As teams gain experience, additional elements can be added:
Over time, specifications become more precise and shared language emerges.
What initially feels like additional effort becomes the mechanism that prevents costly misalignment.
What Specifications Enable
When specifications capture these six elements clearly, several capabilities emerge.
Autonomous systems can execute reliably because they have the context, constraints and success criteria required to generate aligned implementations.
Cross-functional teams gain shared understanding because product, engineering, design, security and QA contribute to the same governing artefact.
Intent fidelity becomes measurable because implementations can be evaluated against explicitly defined expectations.
Governance becomes evidence-based because risk dials can be adjusted according to observed alignment.
Institutional knowledge accumulates because specifications record what was intended, not just what was built.
And accountability remains clear.
Delegating execution does not delegate responsibility.
The humans who authored the specification remain responsible for the outcomes it produces.
Scaling Intent Across the Organisation
As organisations mature in their use of Intent-Driven specifications, an interesting pattern begins to emerge.
Many elements of intent are shared across multiple projects.
Industry compliance obligations, organisational architecture standards, platform choices and domain models often apply consistently across teams.
Repeating this information in every project specification quickly becomes inefficient.
Instead, organisations begin structuring intent hierarchically.
Certain elements of intent are defined once at industry, organisational or domain level and then inherited by project specifications.
This approach reduces duplication while ensuring consistent governance across the enterprise.
Managing intent at this scale requires thinking beyond individual specifications toward a broader structure for organising and governing shared intent.
That architectural question will be explored in the next article.
The Core Message
Specifications are not bureaucracy.
They are the artefact through which practitioners govern autonomous systems.
In an environment where AI can build almost anything at speed, the question is no longer whether specifications are necessary.
The real question is whether they are clear enough to safely delegate execution.
The six elements described here, Intent, Domain Context, Success Criteria, Validation, Constraints and Ethical Considerations, provide a practical structure for specifications that enable autonomous systems to execute reliably while remaining aligned with human purpose.
Your specifications will not look exactly like the example above. They should not.
Your domain, regulatory environment, organisational culture and technology stack will all influence how these ideas are expressed.
What matters is that the specification answers the fundamental questions that allow autonomous systems to execute while remaining aligned with human intent.
Start where you are. Use the tools you have. Refine through practice.
The format will evolve.
The principles will endure.
Intent-Driven Development – The New Practitioner
In an Intent-Driven Development environment, engineers, designers, product leaders, architects, QA, security and platform specialists are no longer defined primarily by the artefacts they produce, but by the intent they help design and govern. This article explores how each role evolves when intent becomes the organising structure of delivery, and why the future of software development depends on specialists collaborating around a shared intent specification rather than implementation alone.
Intent-Driven Development – The Intent Hierarchy
The Intent Hierarchy is how Intent-Driven Development scales: shared intent is defined once, inherited everywhere, and refined through implementation. It allows organizations to maintain consistency without duplication, and autonomy without losing alignment with human intent.







0 Comments