UIAP Conformance Suite
UIAP Conformance Suite v0.1
Section titled “UIAP Conformance Suite v0.1”| Field | Value |
|---|---|
| Status | Draft |
| Version | 0.1 |
| Date | 2026-03-27 |
| Dependencies | All UIAP specifications |
| Editors | Patrick |
1. Purpose and Scope
Section titled “1. Purpose and Scope”UIAP Conformance Suite v0.1 defines how implementations of UIAP specifications are tested, evaluated and classified as conformant or non-conformant in a standardized manner.
The Conformance Suite covers these specification areas:
- UIAP Core v0.1
- UIAP Capability Model v0.1
- UIAP Web Profile v0.1
- UIAP Action Runtime Spec v0.1
- UIAP Policy Extension v0.1
- UIAP SDK API v0.1
- UIAP Workflow Extension v0.1
- UIAP Discovery Mapper Spec v0.1
- UIAP Authoring/Manifest Spec v0.1
The suite defines:
- Conformance classes and claims
- Test modules and test cases
- Harness and fixture model
- Execution and evaluation rules
- Result and report format
- Composite profiles for real-world product claims
The suite does not define:
- Product certifications by a specific organization
- Commercial labels or trademarks
- Model quality benchmarking
- LLM intelligence tests in the sense of “does the agent seem cool enough”
2. Core Principles
Section titled “2. Core Principles”- Conformance is claims-based. Only what an implementation actually claims is tested.
- Required tests are binding. A passed claim requires passing all associated required cases.
- Composite profiles build on base profiles.
- Negative tests are equal to positive tests.
- Determinism beats romance. Repeatable inputs MUST produce reproducible results, insofar as the specification demands it.
- Conformance measures specification adherence, not product quality.
- Self-asserted compatibility without suite results is not proof of conformance.
3. Normative Keywords
Section titled “3. Normative Keywords”The key words MUST, MUST NOT, SHOULD, MAY in this document are to be interpreted as described in RFC 2119 and BCP 14, when and only when they appear in ALL CAPS.
4. Roles of the System Under Test
Section titled “4. Roles of the System Under Test”An implementation MAY claim one or more of these roles:
type ConformanceRole = | "CoreEndpoint" | "CapabilityProvider" | "WebPublisher" | "WebConsumer" | "RuntimeExecutor" | "RuntimeController" | "PolicyEvaluator" | "WebSDK" | "WorkflowEngine" | "DiscoveryMapper" | "AuthoringCompiler";Role Semantics
Section titled “Role Semantics”- CoreEndpoint: speaks UIAP Core correctly
- CapabilityProvider: delivers capability documents
- WebPublisher: publishes
PageGraph, deltas and web signals - WebConsumer: consumes web states correctly
- RuntimeExecutor: executes actions according to the Runtime Spec
- RuntimeController: controls actions, confirmations, cancel
- PolicyEvaluator: delivers and enforces policy decisions
- WebSDK: implements the SDK API in a browser/host context
- WorkflowEngine: executes workflows
- DiscoveryMapper: explores apps in a controlled manner and produces discovery packages
- AuthoringCompiler: compiles authoring manifests into normalized bundles
5. Conformance Claims
Section titled “5. Conformance Claims”5.1 Claim Descriptor
Section titled “5.1 Claim Descriptor”Every implementation under test MUST declare its claims in a machine-readable format.
interface ConformanceClaimSet { suiteVersion: "0.1"; implementation: ImplementationDescriptor; claims: ProfileClaim[];}interface ImplementationDescriptor { vendor: string; product: string; version: string; buildId?: string;
components: ImplementedComponent[]; metadata?: Record<string, unknown>;}interface ImplementedComponent { id: string; roles: ConformanceRole[];
uiapCore?: string; profiles?: string[]; extensions?: Array<{ id: string; version: string; }>;
metadata?: Record<string, unknown>;}interface ProfileClaim { componentId: string; profileId: ConformanceProfileId;}6. Conformance Profiles
Section titled “6. Conformance Profiles”type ConformanceProfileId =6.1 Profile Dependencies
Section titled “6.1 Profile Dependencies”No dependencies.
Depends on:
Depends on:
Depends on:
Depends on:
Depends on:
Depends on:
Depends on:
Depends on:
No runtime dependency, but package/bundle conformance.
Depends on:
[email protected][email protected][email protected][email protected][email protected][email protected]
Depends on all profiles.
7. Status and Result Semantics
Section titled “7. Status and Result Semantics”type TestStatus = | "pass" | "fail" | "skip" | "warn" | "invalid";Semantics
Section titled “Semantics”- pass: test fulfills all normative assertions
- fail: test violates at least one normative assertion
- skip: test is not applicable for the claim or depends on an unclaimed optional capability
- warn: test case is not required or is informational only, but indicates a relevant issue
- invalid: test could not be correctly evaluated due to a harness, fixture or environment error
Profile Evaluation
Section titled “Profile Evaluation”A profile is considered passed when:
- all required test cases of the profile and its dependencies have status
pass, - no required test has status
failorinvalid.
A profile is considered failed when:
- at least one required test is
failorinvalid.
A profile MAY still pass despite warn.
8. Test Severity Levels
Section titled “8. Test Severity Levels”type TestSeverity = | "required" | "optional" | "informational";- required: determines conformance
- optional: enhances the expressiveness of results but does not block base conformance
- informational: provides metrics or hints but has no pass/fail effect on profiles
9. Test Methods
Section titled “9. Test Methods”type TestMethod = | "blackbox" | "graybox" | "whitebox";Semantics
Section titled “Semantics”- blackbox: verification only through the public protocol/API surface
- graybox: verification with insight into declared artifacts, bundles or SDK hooks
- whitebox: verification with internal instrumentation
Normative Requirement
Section titled “Normative Requirement”For UIAP conformance, the emphasis SHOULD be on blackbox and graybox. Whitebox tests MAY supplement but MUST NOT replace base conformance.
10. Harness Model
Section titled “10. Harness Model”10.1 Test Harness
Section titled “10.1 Test Harness”A conformance harness is the system that executes tests against the implementation under test.
interface ConformanceHarness { loadClaims(claims: ConformanceClaimSet): Promise<void>; prepareFixtures(fixtures: FixtureRef[]): Promise<void>; runTest(testId: string): Promise<TestCaseResult>; runProfile(profileId: ConformanceProfileId): Promise<ProfileResult>;}10.2 Harness Components
Section titled “10.2 Harness Components”A conformant harness SHOULD have these functional parts:
- Transport Adapter for UIAP messages
- Fixture Loader for web app, bundle and discovery fixtures
- Oracle/Assertion Engine
- Artifact Collector
- Result Aggregator
- Clock/Timeout Controller
11. Fixture Model
Section titled “11. Fixture Model”11.1 Fixture Reference
Section titled “11.1 Fixture Reference”interface FixtureRef { id: string; type: | "message-sequence" | "web-app" | "compiled-bundle" | "policy-context" | "workflow-catalog" | "discovery-environment" | "authoring-package";
version: string; metadata?: Record<string, unknown>;}11.2 Reference Fixtures
Section titled “11.2 Reference Fixtures”The suite SHOULD define at least these reference fixtures:
[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]
12. Artifact Model
Section titled “12. Artifact Model”The harness MUST be able to store evidence for test decisions.
type ArtifactType = | "message-trace" | "snapshot" | "delta" | "policy-decision" | "policy-audit" | "workflow-history" | "compiled-bundle" | "discovery-package" | "screenshot" | "log" | "diff";interface ArtifactRef { id: string; type: ArtifactType; uri?: string; note?: string;}- Every
failorinvalidcase MUST have at least one referenceable artifact. message-traceSHOULD be required for core, runtime and workflow cases.compiled-bundleSHOULD be required for authoring cases.discovery-packageSHOULD be required for discovery cases.
13. Test Case Model
Section titled “13. Test Case Model”interface TestCaseDefinition { id: string; moduleId: string; title: string; targetRoles: ConformanceRole[];
severity: TestSeverity; method: TestMethod;
prerequisites?: string[]; fixtures?: string[];
purpose: string; assertions: AssertionDefinition[];
metadata?: Record<string, unknown>;}interface AssertionDefinition { id: string; description: string; required: boolean;}interface TestCaseResult { id: string; status: TestStatus; durationMs: number;
assertions: AssertionResult[]; artifacts?: ArtifactRef[]; notes?: string[];}interface AssertionResult { id: string; status: "pass" | "fail" | "skip"; message?: string;}14. Module Taxonomy
Section titled “14. Module Taxonomy”type ConformanceModuleId = | "core" | "capabilities" | "web.profile" | "action.runtime" | "policy" | "sdk.web" | "workflow" | "discovery" | "authoring";15. Test Modules and Required Cases
Section titled “15. Test Modules and Required Cases”15.1 Module core
Section titled “15.1 Module core”Required Cases
Section titled “Required Cases”CORE-ENV-001
Section titled “CORE-ENV-001”Goal: Envelope required fields are correctly validated. Assertions:
- Envelope without
uiapis rejected - Envelope without
kind,type,id,ts,source,payloadis rejected payloadMUST be an object
CORE-ENV-002
Section titled “CORE-ENV-002”Goal: Response and error correlation. Assertions:
responseMUST carrycorrelationIderrorMUST carrycorrelationId
CORE-SES-001
Section titled “CORE-SES-001”Goal: Successful session handshake. Assertions:
session.initializeleads tosession.initializedselectedVersioncomes from the offered version set- Session becomes active
CORE-SES-002
Section titled “CORE-SES-002”Goal: Error on incompatible version. Assertions:
- Handshake ends with
unsupported_version
CORE-SES-003
Section titled “CORE-SES-003”Goal: Error on missing required extension. Assertions:
- Missing required extension leads to
unsupported_extensionorunsupported_profile
CORE-SES-004
Section titled “CORE-SES-004”Goal: session.ping / session.pong.
Assertions:
pongcorrelates semantically to the ping- Session remains active
CORE-SES-005
Section titled “CORE-SES-005”Goal: Orderly termination. Assertions:
session.terminateleads tosession.terminated- No further normal messages are processed afterwards
CORE-CAP-001
Section titled “CORE-CAP-001”Goal: capabilities.get / capabilities.list.
Assertions:
- Capability response is formally valid
capabilities.listcontainscapabilities
CORE-ERR-001
Section titled “CORE-ERR-001”Goal: Error object and error codes. Assertions:
error.payload.codeis setmessageis set
CORE-ERR-002
Section titled “CORE-ERR-002”Goal: Unknown message type. Assertions:
- Unknown
typereturnsunknown_message_type
CORE-VER-001
Section titled “CORE-VER-001”Goal: Negotiated version remains binding. Assertions:
- After handshake, messages carry the selected version
15.2 Module capabilities
Section titled “15.2 Module capabilities”Required Cases
Section titled “Required Cases”CAP-DOC-001
Section titled “CAP-DOC-001”Goal: Capability Document is formally valid. Assertions:
modelVersion,profile,roles,stateKeys,affordances,actions,riskLevelspresent
CAP-ACT-001
Section titled “CAP-ACT-001”Goal: Action IDs are unique. Assertions:
- No duplicate
action.id
CAP-SIG-001
Section titled “CAP-SIG-001”Goal: Used success signal kinds are declared. Assertions:
- All
success.kindvalues appear insuccessSignalKinds
CAP-RISK-001
Section titled “CAP-RISK-001”Goal: Risk levels are valid. Assertions:
- Only
safe,confirm,blocked, unless a documented extension exists
Optional Cases
Section titled “Optional Cases”CAP-CONS-001
Section titled “CAP-CONS-001”Goal: Consistency between role, affordances and actions.
Example: textbox with ui.enterText, button with ui.activate.
15.3 Module web.profile
Section titled “15.3 Module web.profile”Required Cases
Section titled “Required Cases”WEB-SNAP-001
Section titled “WEB-SNAP-001”Goal: Snapshot basic structure. Assertions:
PageGraphcontainsrevision,rootDocumentId,documents,elements,viewport
WEB-REV-001
Section titled “WEB-REV-001”Goal: Revisions increase monotonically. Assertions:
- Later snapshots/deltas do not have a backward-running revision
WEB-DELTA-001
Section titled “WEB-DELTA-001”Goal: Deltas reference a known base revision. Assertions:
baseRevisionpoints to a known previous revision
WEB-DOC-001
Section titled “WEB-DOC-001”Goal: Cross-origin opaque frames are correct. Assertions:
- Opaque frames are marked as
access="opaque" - No inner elements are falsely published
WEB-SHADOW-001
Section titled “WEB-SHADOW-001”Goal: Closed Shadow DOM is handled correctly. Assertions:
- Closed shadow contents are not published as freely accessible elements
WEB-BIND-001
Section titled “WEB-BIND-001”Goal: Stable IDs take precedence. Assertions:
- When
stableIdis present, it remains the canonical target identity
WEB-SIG-001
Section titled “WEB-SIG-001”Goal: Core signals are publishable. Assertions:
- At least route, dialog or status/toast signals are emitted correctly
WEB-FOCUS-001
Section titled “WEB-FOCUS-001”Goal: Focus state is consistent. Assertions:
focus.targetpoints to an existing element or is empty
Optional Cases
Section titled “Optional Cases”WEB-SHADOW-002
Section titled “WEB-SHADOW-002”Goal: Open Shadow DOM is modeled correctly.
WEB-FRAME-001
Section titled “WEB-FRAME-001”Goal: Bridged cross-origin frames are correctly published as bridged.
15.4 Module action.runtime
Section titled “15.4 Module action.runtime”Required Cases
Section titled “Required Cases”ACT-REQ-001
Section titled “ACT-REQ-001”Goal: Valid action requests are accepted or cleanly rejected. Assertions:
action.requestleads toaction.acceptedorerror
ACT-TGT-001
Section titled “ACT-TGT-001”Goal: Target resolution via stableId.
Assertions:
- Unique
stableIdis resolved correctly
ACT-TGT-002
Section titled “ACT-TGT-002”Goal: Ambiguity is not concealed. Assertions:
- Ambiguous targets lead to
target_ambiguous
ACT-CHECK-001
Section titled “ACT-CHECK-001”Goal: Actionability check. Assertions:
- Non-interactable targets lead to
target_not_interactableor documented recovery
ACT-CONF-001
Section titled “ACT-CONF-001”Goal: Confirmation flow. Assertions:
confirmrequirement leads toaction.confirmation.request- Without
grant, no execution occurs denyleads tocancelledorfailedwith an appropriate cause
ACT-CANCEL-001
Section titled “ACT-CANCEL-001”Goal: Cancel behavior. Assertions:
action.cancelcleanly terminates an active action
ACT-VER-001
Section titled “ACT-VER-001”Goal: Verification policy all / any / none.
Assertions:
allrequires all signalsanyrequires at least onenonerequires no signal verification
ACT-USER-001
Section titled “ACT-USER-001”Goal: User activation cases are handled correctly. Assertions:
- An action requiring activation leads to
waiting_for_user,handofforuser_activation_required
ACT-RETRY-001
Section titled “ACT-RETRY-001”Goal: No unsafe retry. Assertions:
- For non-idempotent actions with
sideEffectState="unknown", no silent retry occurs
ACT-RES-001
Section titled “ACT-RES-001”Goal: Action result is complete. Assertions:
status,verification, optionallyresolvedTarget,chosenExecutionModepresent
15.5 Module policy
Section titled “15.5 Module policy”Required Cases
Section titled “Required Cases”POL-GET-001
Section titled “POL-GET-001”Goal: Policy document can be delivered. Assertions:
uiap.policy.getleads to a validuiap.policy.document
POL-EVAL-001
Section titled “POL-EVAL-001”Goal: Safe action with sufficient grant. Assertions:
- Result is
allow
POL-EVAL-002
Section titled “POL-EVAL-002”Goal: Confirm risk. Assertions:
confirmrisk leads toconfirm, unless a stricter rule applies
POL-EVAL-003
Section titled “POL-EVAL-003”Goal: Secret/credential without grant. Assertions:
- Result is
denyorhandoffper policy, but never silentallow
POL-RED-001
Section titled “POL-RED-001”Goal: Redaction rules take effect. Assertions:
- Fields subject to redaction are masked in affected outputs
POL-AUD-001
Section titled “POL-AUD-001”Goal: Audit behavior. Assertions:
- For an audit-required decision, a valid audit record is produced
POL-HAND-001
Section titled “POL-HAND-001”Goal: User activation / human actor rule. Assertions:
- With a matching obligation,
handoffor equivalent non-autonomy is enforced
POL-STRICT-001
Section titled “POL-STRICT-001”Goal: Stricter rule wins. Assertions:
- Conflicting rules are deterministically evaluated in favor of the stricter effect
15.6 Module sdk.web
Section titled “15.6 Module sdk.web”Required Cases
Section titled “Required Cases”SDK-LIFE-001
Section titled “SDK-LIFE-001”Goal: Lifecycle methods exist and function. Assertions:
start,stop,destroyare usable
SDK-BIND-001
Section titled “SDK-BIND-001”Goal: bindElement / bindScope shape the snapshot.
Assertions:
- Bound IDs appear in the published state
SDK-ACT-001
Section titled “SDK-ACT-001”Goal: Registered actions are executable. Assertions:
registerActionmakes the action available- Runtime prefers the registered app action when appropriate
SDK-POL-001
Section titled “SDK-POL-001”Goal: Policy hook takes effect. Assertions:
- A local
denydecision prevents execution
SDK-SIG-001
Section titled “SDK-SIG-001”Goal: Signal emission. Assertions:
emitSignalpublishes a valid web signal
SDK-FRAME-001
Section titled “SDK-FRAME-001”Goal: Frame bridge validates channel and origin. Assertions:
- Messages from an incorrect
originor incorrect channel are discarded
Optional Cases
Section titled “Optional Cases”SDK-OVER-001
Section titled “SDK-OVER-001”Goal: Overlay is purely presentational. Assertions:
- Overlay success does not replace
action.result
15.7 Module workflow
Section titled “15.7 Module workflow”Required Cases
Section titled “Required Cases”WF-DOC-001
Section titled “WF-DOC-001”Goal: Workflow catalog is formally valid. Assertions:
initialStepIdexists- Step IDs are unique
WF-START-001
Section titled “WF-START-001”Goal: Starting a valid workflow. Assertions:
uiap.workflow.startleads touiap.workflow.started
WF-INPUT-001
Section titled “WF-INPUT-001”Goal: Missing inputs are handled correctly. Assertions:
collectleads touiap.workflow.input.requestwhen values are missinginput.provideis correctly accepted or rejected
WF-STEP-001
Section titled “WF-STEP-001”Goal: Action step delegates to runtime. Assertions:
- Workflow action leads internally to runtime execution
- Result flows into workflow history
WF-POL-001
Section titled “WF-POL-001”Goal: Policy integration. Assertions:
confirmleads towaiting_confirmationhandoffleads towaiting_userdenyleads tofailedor defined recovery
WF-CHK-001
Section titled “WF-CHK-001”Goal: Checkpoint/resume. Assertions:
- Checkpoints are created at permitted points
resumecontinues correctly
WF-HAND-001
Section titled “WF-HAND-001”Goal: Explicit handoff step. Assertions:
handoffstep setswaiting_user
WF-FAIL-001
Section titled “WF-FAIL-001”Goal: Recovery rules. Assertions:
- Defined
onErrorstrategy is applied
WF-RES-001
Section titled “WF-RES-001”Goal: Workflow completion. Assertions:
completeplus global success criteria lead touiap.workflow.result
15.8 Module discovery
Section titled “15.8 Module discovery”Required Cases
Section titled “Required Cases”DISC-PLAN-001
Section titled “DISC-PLAN-001”Goal: Planning phase is formally correct. Assertions:
- Discovery plan accepts valid seeds and environment
DISC-RUN-001
Section titled “DISC-RUN-001”Goal: Lifecycle from start to result. Assertions:
startleads to progress and result or a clean error
DISC-STATE-001
Section titled “DISC-STATE-001”Goal: At least one discovery state per seed. Assertions:
- Initial state contains
PageGraphand fingerprint
DISC-DEDUPE-001
Section titled “DISC-DEDUPE-001”Goal: Deduplication of equivalent states. Assertions:
- Repeatedly visited identical states do not generate arbitrarily many new state nodes
DISC-SAFE-001
Section titled “DISC-SAFE-001”Goal: Safety policy is respected. Assertions:
- Forbidden or destructive actions are not executed autonomously
DISC-ART-001
Section titled “DISC-ART-001”Goal: Core catalogs are present. Assertions:
- Route, scope, element and action catalogs are produced
DISC-EVID-001
Section titled “DISC-EVID-001”Goal: Candidates carry evidence and confidence. Assertions:
- Every candidate has
discoveredByandconfidence
DISC-REV-001
Section titled “DISC-REV-001”Goal: Review queue. Assertions:
- Ambiguities, opaque boundaries or missing success signals produce review items
Optional Cases
Section titled “Optional Cases”DISC-WF-001
Section titled “DISC-WF-001”Goal: Workflow candidates are synthesized.
15.9 Module authoring
Section titled “15.9 Module authoring”Required Cases
Section titled “Required Cases”AUTH-PKG-001
Section titled “AUTH-PKG-001”Goal: Package manifest is valid. Assertions:
- Exactly one package
- Exactly one effective app manifest after resolution
AUTH-IMP-001
Section titled “AUTH-IMP-001”Goal: Imports and aliases. Assertions:
- Aliases are unique
- Imported IDs are correctly namespaced
AUTH-OVR-001
Section titled “AUTH-OVR-001”Goal: Overlay application is deterministic. Assertions:
- Identical inputs and build context produce identical results
- Conflicts are not silently hidden
AUTH-LOC-001
Section titled “AUTH-LOC-001”Goal: Locale references are resolved. Assertions:
- Missing required texts are marked as errors or review blocks
AUTH-REV-001
Section titled “AUTH-REV-001”Goal: Review gates take effect. Assertions:
prodbundle does not violate defined review rules
AUTH-BLD-001
Section titled “AUTH-BLD-001”Goal: Bundle compilation. Assertions:
- Compiled bundle contains no unresolved imports/overlays
- Build is reproducible
AUTH-CONFLICT-001
Section titled “AUTH-CONFLICT-001”Goal: Conflict handling. Assertions:
- Duplicate IDs or incompatible overlays lead to an error or explicit review warning
AUTH-DISC-001
Section titled “AUTH-DISC-001”Goal: Discovery imports are explicit. Assertions:
- Discovery content is only incorporated into authoring via acceptance rules
16. Composite Profiles
Section titled “16. Composite Profiles”This profile is passed when the following profiles are passed:
[email protected][email protected][email protected][email protected][email protected][email protected]
Recommended Additional Cases
Section titled “Recommended Additional Cases”[email protected], if onboarding/assistance use cases are advertised
This profile is passed when all base profiles are passed:
- Core
- Capabilities
- Web Publisher
- Web Consumer
- Action Runtime
- Policy
- SDK Web
- Workflow
- Discovery
- Authoring
17. Test Execution Rules
Section titled “17. Test Execution Rules”17.1 Retry
Section titled “17.1 Retry”A failed required test MAY be automatically retried exactly once if the first run was invalid due to an obviously external environment disturbance.
17.2 Flaky Tests
Section titled “17.2 Flaky Tests”A test that fluctuates between pass and fail without changes MUST be marked as invalid until the cause is resolved.
17.3 Time Limits
Section titled “17.3 Time Limits”Every test SHOULD have a timeout. Timeout violations in required cases lead to fail or invalid, depending on the cause.
17.4 Determinism
Section titled “17.4 Determinism”For authoring, policy and certain discovery cases, reproducibility MUST be verified when identical inputs and identical context are present.
18. Report Format
Section titled “18. Report Format”interface ConformanceReport { suiteVersion: "0.1"; generatedAt: string;
implementation: ImplementationDescriptor; claims: ProfileClaim[];
environment: ConformanceEnvironment; results: ProfileResult[];
summary: ConformanceSummary; artifacts?: ArtifactRef[];}interface ConformanceEnvironment { harnessVersion: string; runnerId?: string; os?: string; browser?: string; nodeVersion?: string; metadata?: Record<string, unknown>;}interface ProfileResult { profileId: ConformanceProfileId; status: "pass" | "fail" | "invalid"; testResults: TestCaseResult[];}interface ConformanceSummary { passedProfiles: string[]; failedProfiles: string[]; invalidProfiles: string[];
passCount: number; failCount: number; skipCount: number; warnCount: number; invalidCount: number;}- Every claimed claim MUST appear in the report.
failedProfilesMUST also contain profiles that fail solely due to dependency violations.- Reports SHOULD be machine-readably serializable.
19. Minimum Suite Deliverables
Section titled “19. Minimum Suite Deliverables”A reference conformance suite v0.1 MUST provide at least:
- Profile definitions
- Test case catalog
- Reference fixtures
- Report schema
- Result aggregation
- Documentation for harness execution
It SHOULD additionally provide:
- Reference harness
- CI-compatible runner
- Golden artifacts
- Example claims
- Example reports
20. Example of a Claim Set
Section titled “20. Example of a Claim Set”{ "suiteVersion": "0.1", "implementation": { "vendor": "Acme", "product": "Acme Web Agent Host", "version": "1.2.0", "components": [ { "id": "host", "roles": [ "CoreEndpoint", "CapabilityProvider", "WebPublisher", "RuntimeExecutor", "PolicyEvaluator", "WebSDK" ], "uiapCore": "0.1", "extensions": [ { "id": "uiap.policy", "version": "0.1" } ] } ] }, "claims": [ ]}21. Example of a Report Fragment
Section titled “21. Example of a Report Fragment”{ "suiteVersion": "0.1", "generatedAt": "2026-03-26T18:20:00Z", "implementation": { "vendor": "Acme", "product": "Acme Web Agent Host", "version": "1.2.0", "components": [ { "id": "host", "roles": [ "CoreEndpoint", "CapabilityProvider", "WebPublisher", "RuntimeExecutor", "PolicyEvaluator", "WebSDK" ] } ] }, "claims": [ ], "environment": { "harnessVersion": "0.1.0", "browser": "Chromium 126" }, "results": [ { "status": "pass", "testResults": [ { "id": "CORE-SES-001", "status": "pass", "durationMs": 48, "assertions": [ { "id": "a1", "status": "pass" }, { "id": "a2", "status": "pass" } ] } ] }, { "status": "fail", "testResults": [ { "id": "SDK-FRAME-001", "status": "fail", "durationMs": 33, "assertions": [ { "id": "a1", "status": "fail", "message": "Message with incorrect origin was processed." } ], "artifacts": [ { "id": "art_17", "type": "message-trace", "note": "Frame bridge accepted untrusted origin" } ] } ] } ], "summary": { "invalidProfiles": [], "passCount": 11, "failCount": 1, "skipCount": 3, "warnCount": 0, "invalidCount": 0 }}22. External Conformance Statements
Section titled “22. External Conformance Statements”An implementation MAY only publicly claim:
- “UIAP Core v0.1 conformant”, if
[email protected]is passed - “UIAP Web Agent Host v0.1 conformant”, if
[email protected]is passed - “UIAP Full Reference v0.1 conformant”, if
[email protected]is passed
If only partial areas are passed, the statement MUST be precise. In other words, do not claim “we are UIAP-compatible” when in reality only the envelope parsing works and the rest consists of wishful thinking.
23. Recommended Next Artifacts
Section titled “23. Recommended Next Artifacts”Following this spec, three things are practically still needed to make this immediately production-ready:
-
Reference Fixture Pack v0.1 with demo web app, policy cases, workflow cases, discovery environment and authoring sample pack.
-
Conformance Report JSON Schema v0.1 so that reports are machine-validatable.
-
CI Runner Spec v0.1 so that teams can automatically verify claims in CI and block bundle/SDK/runtime releases.
Normative References
Section titled “Normative References”- [UIAP-CORE] UIAP Core v0.1
- [UIAP-CAP] UIAP Capability Model v0.1
- [UIAP-WEB] UIAP Web Profile v0.1
- [UIAP-ACTION] UIAP Action Runtime v0.1
- [UIAP-POLICY] UIAP Policy Extension v0.1
- [UIAP-SDK] UIAP SDK API v0.1
- [UIAP-WORKFLOW] UIAP Workflow Extension v0.1
- [UIAP-DISCOVERY] UIAP Discovery Mapper v0.1
- [UIAP-MANIFEST] UIAP Authoring/Manifest v0.1
- [RFC2119] Key words for use in RFCs to Indicate Requirement Levels, BCP 14
Security Considerations
Section titled “Security Considerations”- Conformance tests MUST NOT be executed against production systems without explicit authorization.
- Test fixtures MAY contain sensitive patterns; test results SHOULD be redacted before publication.
- Conformance results SHOULD be cryptographically signed when used as evidence toward third parties.
Changelog
Section titled “Changelog”| Version | Date | Changes |
|---|---|---|
| 0.1 | 2026-03-27 | Initial draft |