Skip to content

Spec 4: Intent Artifacts

DWS Spec 4: Intent Artifacts

Digital Worker Standard — DWS Specification

Version: 1.0 Tier: 1 — Core Primitive Status: Release Candidate Dependencies: Spec 3 (Skill Specification)


1. Overview

Intent artifacts are the structured representation of what should be done and why. They replace ad hoc prompting with codified, verifiable, living intent that bridges human direction and worker execution.

An intent artifact captures an objective, its constraints, its success criteria, and its relationships to other intents. It is the unit against which verification (Spec 8) evaluates worker output. Without structured intent, verification has nothing to verify against, and worker output is indistinguishable from unguided generation.

Intent artifacts are the only DWS primitive that crosses the definition-time / runtime boundary. They begin as git-committed definitions and evolve through event-sourced mutations during execution. This dual nature is central to DWS’s model of disciplined-but-adaptive worker execution.


2. Intent Artifact Schema

2.1 Common Fields

All intent artifacts share these fields:

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$defs": {
"success_criterion": {
"type": "object",
"required": ["dimension", "target", "measurement_method"],
"properties": {
"dimension": { "type": "string" },
"target": { "type": ["string", "number"] },
"measurement_method": {
"type": "string",
"enum": ["automated", "human_review", "metric_threshold"]
},
"evidence_required": { "type": "boolean", "default": true },
"blocking": { "type": "boolean", "default": true }
}
}
},
"type": "object",
"required": ["id", "type", "objective", "success_criteria", "priority", "owner", "status"],
"properties": {
"id": { "type": "string", "format": "uuid" },
"type": {
"type": "string",
"enum": ["strategic", "operational", "constraint"]
},
"objective": {
"type": "string",
"description": "Clear statement of what should be accomplished and why."
},
"constraints": {
"type": "array",
"items": {
"type": "object",
"required": ["description", "enforcement"],
"properties": {
"description": { "type": "string" },
"enforcement": { "type": "string", "enum": ["mandatory", "advisory"] }
}
}
},
"trade_offs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"dimension_a": { "type": "string" },
"dimension_b": { "type": "string" },
"preference": { "type": "string" },
"rationale": { "type": "string" }
}
}
},
"success_criteria": {
"type": "array",
"items": { "$ref": "#/$defs/success_criterion" },
"minItems": 1
},
"priority": { "type": "string", "enum": ["critical", "high", "medium", "low"] },
"owner": { "type": "string", "description": "Human owner responsible for this intent." },
"assigned_workers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": { "type": "string" },
"worker_id": { "type": "string" }
}
}
},
"source_channel": {
"type": "string",
"enum": ["manual", "email", "slack", "api", "webhook", "worker", "scheduled"],
"description": "Channel through which this intent was created. Enables tracking of how work enters the system."
},
"sla": {
"type": "object",
"properties": {
"response_time": {
"type": "string",
"description": "ISO 8601 duration. Maximum time from intent creation to first worker action."
},
"resolution_time": {
"type": "string",
"description": "ISO 8601 duration. Maximum time from intent activation to completion."
},
"on_breach": {
"type": "string",
"enum": ["notify", "escalate", "auto_reassign"],
"default": "notify"
}
},
"description": "Service level agreement for this intent. See Spec 16 for cost implications."
},
"status": {
"type": "string",
"enum": ["draft", "review", "approved", "active", "completed", "superseded", "archived"]
},
"version": { "type": "string" },
"base_version": {
"type": "string",
"description": "Git commit hash of the approved version. Set on approved->active transition."
},
"created_at": { "type": "string", "format": "date-time" },
"updated_at": { "type": "string", "format": "date-time" }
}
}

2.2 Relationship Fields

FieldTypeDescription
parent_intentstring or nullID of the parent intent this was decomposed from.
sibling_intentsarray of stringsIDs of intents at the same decomposition level.
blocking_intentsarray of stringsIDs of intents that must complete before this one can begin.

2.3 Domain Extension Mechanism

Domain-specific fields live in an extensions object keyed by domain name. The base schema validates common fields; extension schemas are registered per domain and validated separately.

{
"extensions": {
"engineering": {
"design_doc_ref": "doc-2026-0451",
"affected_services": ["auth-service", "user-service"],
"test_requirements": {
"unit_coverage_minimum": 0.8,
"integration_tests_required": true
}
}
}
}

3. Intent Type Taxonomy

3.1 Strategic Intent

High-level objectives that decompose into multiple operational intents. Strategic intents are owned by humans and define the “what” and “why” at the broadest level.

Strategic intents MUST have at least one target_outcome. They SHOULD define a decomposition_strategy to guide how they break into operational intents.

3.2 Operational Intent

Specific, assignable units of work with clear success criteria. Operational intents are the level at which workers execute and verification evaluates.

Every operational intent MUST have at least one success_criterion that is testable.

3.3 Constraint Intent

Cross-cutting rules that apply to multiple operational intents. Constraint intents are not executed directly; they are loaded as context that shapes how operational intents are executed.

The applies_to field uses either explicit intent_ids or a pattern expression. Runtimes MUST apply constraint intents to matching operational intents during execution.

3.4 Type Relationships

  • Strategic decomposes into one or more Operational intents.
  • Constraint applies across one or more Operational intents.
  • Operational intents reference their parent Strategic intent via relationships.parent_intent.

4. Intent Lifecycle & Versioning

4.1 States

StateDescriptionAllowed Transitions
draftInitial authoring.-> review, -> archived
reviewUnder review by stakeholders.-> approved, -> draft
approvedReviewed and accepted. Ready for execution.-> active, -> superseded, -> archived
activeCurrently being executed by workers.-> completed, -> superseded
completedExecution finished. Success criteria evaluated.-> archived
supersededReplaced by a newer version.-> archived
archivedRetained for audit. No longer active.(terminal state)

4.2 Dual Versioning Model

Pre-execution (git-backed): States draft, review, and approved. Intent artifacts in these states are authored, committed, and reviewed through standard git workflows.

Activation bridge: When an intent transitions from approved to active, the git commit hash becomes the base_version field.

During execution (event-sourced): In the active state, intent artifacts may evolve as verification findings reveal gaps. These mutations are events, not git commits.

4.3 Runtime Mutations

Each mutation during execution is recorded as an intent.mutated event (Spec 11):

{
"event_type": "intent.mutated",
"intent_id": "intent-2026-0451",
"base_version": "abc123def456",
"mutation": {
"field_path": "$.success_criteria[2]",
"previous_value_ref": "evt-2026-0890",
"new_value": {
"dimension": "latency",
"target": "< 200ms",
"measurement_method": "metric_threshold"
},
"cause_type": "verification_finding",
"cause_ref": "vf-2026-0445"
}
}

4.4 Reconciliation

When execution completes, the dws reconcile tool proposes a new git commit that updates the intent artifact to reflect runtime learning. This is a deliberate human act. Runtime mutations do not auto-commit.


5. Intent Decomposition

5.1 Coverage Assertion

Runtimes SHOULD validate decomposition completeness:

  • Every target_outcome in the parent strategic intent MUST be covered by at least one child operational intent.
  • Circular dependencies MUST be rejected.

5.2 Dependency Mapping

Operational intents within a decomposition MAY have dependencies. Dependency types follow Spec 7 (Coordination Protocol): hard, soft, and output.

5.3 Recomposition

When all child operational intents reach completed status, the parent’s target_outcomes are re-evaluated against aggregated results. The parent transitions to completed only if all target_outcomes are satisfied.


6. Success Criteria Structure

Every operational intent MUST have at least one success criterion with measurement_method set to automated or metric_threshold. Intents with only human_review criteria are valid but SHOULD be flagged during authoring as they create human bottlenecks.


7. Intent Authoring Conventions

7.1 Good Intent Artifacts

  • Specific objectives. “Reduce P95 latency of /api/users below 200ms” over “improve API performance.”
  • Testable success criteria. Every criterion should have a clear pass/fail boundary.
  • Explicit constraints. State what workers must NOT do, not just what they should do.
  • Trade-off documentation. When the author has made a deliberate trade-off, record it.

7.2 Anti-Patterns

Anti-PatternProblemFix
Vague objectives”Make the system better” gives workers no direction.State a measurable outcome.
Missing constraintsWorkers may take unexpected approaches.Add boundary constraints.
Untestable success criteriaVerification becomes subjective.Add measurement method and target.
Over-decompositionCreates coordination overhead.Match granularity to task complexity.

8. Key Design Decisions

DecisionResolutionRationale
Intent versioning modelDual: git-backed pre-execution, event-sourced during execution, reconciled post-executionIntents must be stable enough for verification but flexible enough for execution.
Success criteria structureStructured with dimension, target, and measurement methodFreeform prose is too ambiguous for automated verification.
Schema prescriptivenessModerate: required common fields, optional domain extensionsEnough structure to enable cross-domain tooling, enough flexibility for diverse domains.

9. References

  • BDD (Behaviour-Driven Development) — Success criteria structure informed by given/when/then syntax.
  • Amazon “Working Backwards” PR/FAQ — Intent-first design: define success before workers begin.
  • Spec 3: Skill Specification — Operational intents reference skills via assigned_skill.
  • Spec 6: Workflow & Phases — Workflows execute intents through phases.
  • Spec 8: Verification Framework — Verification gates evaluate worker output against intent success criteria.
  • Spec 11: Events & Telemetry — Intent lifecycle transitions and runtime mutations produce events.
  • Spec 16: Cost & Budget — SLA breach actions may have cost implications.