Start with the application contract you already have. Most Domains should use defaults. Add learner configuration only after the interaction loop is clear in ordinary language. A Domain is not required when the application only needs continuing evidence or constraints without a declared task grammar.
Define five things
These five answers are enough to begin. Entities, relations, policies, hypotheses, transition mappings, grouping, and support controls are ways to express the answers when the task needs them. They are not prerequisites for understanding a Domain.
Copy this worksheet
Follow the example through one complete loop
The worksheet above describes one work-routing Domain. The complete interaction keeps the Domain, the current observation, the Core result, and the external consequence separate.
The selected route returned by Core, the route committed by the application, and the route executed externally are separate records. Preserve all three when validation or overrides can change the value.
Adaptation in three frames
When applicable evidence is admitted, support, learned relationships, policy or transition state, and a later result may change. The later result may also remain the same.
Within the declared lifecycle, the Domain contract, public vocabulary, result type, and ownership boundary stay fixed. External state and external execution remain outside Core.
A later result is not guaranteed to change or improve after one event. Verify event eligibility, confirm learner admission where exposed, inspect the applicable state change when documented, and preserve the later result separately.
What belongs in the Domain
Include public task semantics that remain stable across the intended scope:
A Domain may declare that
completed is a positive native outcome. It should not declare that a particular current action will cause completion unless that rule is intentionally public task information.
A fresh Domain can begin with no accumulated task history. Supplying the vocabulary is not supplying the task-specific mapping. It gives Core the interface needed to participate.
Define one complete loop
Use the smallest loop that matches the application:Choose learning only after the loop exists
Transition prediction, bounded objective scoring, and action value are different:
One Domain or several
Reuse one Domain when all of these remain compatible:- Public task semantics.
- Result contract and units.
- Consequence or feedback meaning.
- Event and episode boundary.
- State retention and evaluation lifecycle.
domain_id, so their evidence and learned state remain separate.
State lifecycle
Name the lifecycle before evaluation:
State carried from an earlier pass or episode inside the same zero-start run is within-run retention, not held-out transfer. Cold does not mean no Domain definition. Frozen does not mean no learned state. Transfer does not mean the task contract changed.
Minimal route map
The Domain returned by create or read is the resolved contract and may include defaults filled by Adapt-1. Send only the fields your integration needs. Returned defaults do not need to be copied into later create requests.
A successful event write does not prove that every configured learner accepted the event. Advanced workflows should inspect learner admission and the applicable learner version before interpreting an unchanged result.
Domain smell test
Correct the design before implementation when any of these are true:Choose how a Domain learns
Compare multistep action, hidden-process discovery, and structured prediction patterns.
Transition learning, advanced
Configure an observable before-state, action, target, support, grouping, and abstention contract.
Learn from outcomes
Bind decisions, commitments, execution, consequences, and scoped feedback.
Run an inspectable workflow
Preserve ordered provenance and verify the selected state lifecycle.
