Zum Inhalt springen

UIAP Conformance Suite

FeldWert
StatusDraft
Version0.1
Datum2026-03-27
AbhängigkeitenAlle UIAP-Spezifikationen
EditorenPatrick

UIAP Conformance Suite v0.1 definiert, wie Implementierungen von UIAP-Spezifikationen standardisiert geprüft, bewertet und als konform oder nicht konform eingestuft werden.

Die Conformance Suite deckt diese Spezifikationsbereiche ab:

  • 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

Die Suite definiert:

  • Konformitätsklassen und Claims
  • Testmodule und Testfälle
  • Harness- und Fixture-Modell
  • Ausführungs- und Bewertungsregeln
  • Ergebnis- und Report-Format
  • Komposit-Profile für reale Produktclaims

Die Suite definiert nicht:

  • Produktzertifizierungen durch eine bestimmte Organisation
  • kommerzielle Label oder Markenrechte
  • Benchmarking von Modellqualität
  • LLM-Intelligenztests im Sinne von „wirkt der Agent cool genug“

  1. Conformance ist claims-basiert. Getestet wird nur, was eine Implementierung tatsächlich beansprucht.
  2. Pflichttests sind verbindlich. Ein bestandener Claim setzt das Bestehen aller zugehörigen Pflichtfälle voraus.
  3. Komposit-Profile bauen auf Basisprofilen auf.
  4. Negative Tests sind gleichwertig zu Positivtests.
  5. Determinismus schlägt Romantik. Wiederholbare Eingaben müssen reproduzierbare Ergebnisse liefern, soweit die Spezifikation das verlangt.
  6. Conformance misst Spezifikationstreue, nicht Produktgüte.
  7. Selbstbehauptete Kompatibilität ohne Suite-Ergebnis ist kein Konformitätsnachweis.

Die Schlüsselwörter MUSS, DARF NICHT, SOLLTE, KANN in diesem Dokument sind normativ gemäss RFC 2119 und BCP 14 zu interpretieren, wenn und nur wenn sie in GROSSBUCHSTABEN erscheinen.


Eine Implementierung KANN eine oder mehrere dieser Rollen beanspruchen:

type ConformanceRole =
| "CoreEndpoint"
| "CapabilityProvider"
| "WebPublisher"
| "WebConsumer"
| "RuntimeExecutor"
| "RuntimeController"
| "PolicyEvaluator"
| "WebSDK"
| "WorkflowEngine"
| "DiscoveryMapper"
| "AuthoringCompiler";
  • CoreEndpoint: spricht UIAP Core korrekt
  • CapabilityProvider: liefert Capability-Dokumente
  • WebPublisher: publiziert PageGraph, Deltas und Web-Signale
  • WebConsumer: konsumiert Web-Zustände korrekt
  • RuntimeExecutor: führt Actions gemäß Runtime Spec aus
  • RuntimeController: steuert Actions, Confirmations, Cancel
  • PolicyEvaluator: liefert und erzwingt Policy-Entscheidungen
  • WebSDK: implementiert die SDK-API im Browser/Host-Kontext
  • WorkflowEngine: führt Workflows aus
  • DiscoveryMapper: erkundet Apps kontrolliert und erzeugt Discovery-Pakete
  • AuthoringCompiler: kompiliert Authoring-Manifeste zu normierten Bundles

Jede zu prüfende Implementierung MUSS ihre Claims maschinenlesbar deklarieren.

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;
}

Keine Abhängigkeiten.

Abhängig von:

Abhängig von:

Abhängig von:

Abhängig von:

Abhängig von:

Abhängig von:

Abhängig von:

Abhängig von:

Keine Laufzeitabhängigkeit, aber Paket-/Bundle-Konformität.

Abhängig von:

Abhängig von allen Profilen.


type TestStatus =
| "pass"
| "fail"
| "skip"
| "warn"
| "invalid";
  • pass: Test erfüllt alle normativen Assertions
  • fail: Test verletzt mindestens eine normative Assertion
  • skip: Test ist für den Claim nicht anwendbar oder von einer nicht beanspruchten optionalen Fähigkeit abhängig
  • warn: Testfall ist nicht verpflichtend oder nur informativ, zeigt aber ein relevantes Problem
  • invalid: Test konnte wegen Harness-, Fixture- oder Umgebungsfehler nicht korrekt bewertet werden

Ein Profil gilt als bestanden, wenn:

  1. alle required Testfälle des Profils und seiner Abhängigkeiten den Status pass haben,
  2. kein required Test den Status fail oder invalid hat.

Ein Profil gilt als nicht bestanden, wenn:

  • mindestens ein required Test fail oder invalid ist.

Ein Profil KANN trotz warn bestanden sein.


type TestSeverity =
| "required"
| "optional"
| "informational";
  • required: bestimmt die Konformität
  • optional: erweitert die Aussagekraft, aber blockiert Basiskonformität nicht
  • informational: liefert Metriken oder Hinweise, aber keinen Pass/Fail-Effekt auf Profile

type TestMethod =
| "blackbox"
| "graybox"
| "whitebox";
  • blackbox: Prüfung nur über öffentliche Protokoll-/API-Oberfläche
  • graybox: Prüfung mit Einsicht in deklarierte Artefakte, Bundles oder SDK-Hooks
  • whitebox: Prüfung mit interner Instrumentierung

Für UIAP-Konformität SOLLTE der Schwerpunkt auf blackbox und graybox liegen. Whitebox-Tests KÖNNEN ergänzen, DÜRFEN aber keine Basiskonformität ersetzen.


Ein Conformance Harness ist das System, das Tests gegen die zu prüfende Implementierung ausführt.

interface ConformanceHarness {
loadClaims(claims: ConformanceClaimSet): Promise<void>;
prepareFixtures(fixtures: FixtureRef[]): Promise<void>;
runTest(testId: string): Promise<TestCaseResult>;
runProfile(profileId: ConformanceProfileId): Promise<ProfileResult>;
}

Ein konformer Harness SOLLTE diese funktionalen Teile haben:

  • Transport Adapter für UIAP-Nachrichten
  • Fixture Loader für Web-App-, Bundle- und Discovery-Fixtures
  • Oracle/Assertion Engine
  • Artifact Collector
  • Result Aggregator
  • Clock/Timeout Controller

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>;
}

Die Suite SOLLTE mindestens diese Referenz-Fixtures definieren:


Der Harness MUSS Belege für Testentscheidungen speichern können.

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;
}
  • Jeder fail- oder invalid-Fall MUSS mindestens ein referenzierbares Artefakt haben.
  • message-trace SOLLTE für Core-, Runtime- und Workflow-Fälle verpflichtend sein.
  • compiled-bundle SOLLTE für Authoring-Fälle verpflichtend sein.
  • discovery-package SOLLTE für Discovery-Fälle verpflichtend sein.

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;
}

type ConformanceModuleId =
| "core"
| "capabilities"
| "web.profile"
| "action.runtime"
| "policy"
| "sdk.web"
| "workflow"
| "discovery"
| "authoring";

Ziel: Envelope-Pflichtfelder werden korrekt validiert. Assertions:

  • Envelope ohne uiap wird abgelehnt
  • Envelope ohne kind, type, id, ts, source, payload wird abgelehnt
  • payload MUSS Objekt sein

Ziel: Response- und Error-Korrelation. Assertions:

  • response MUSS correlationId tragen
  • error MUSS correlationId tragen

Ziel: Erfolgreicher Session-Handshake. Assertions:

  • session.initialize führt zu session.initialized
  • selectedVersion stammt aus angebotenem Versionssatz
  • Session wird aktiv

Ziel: Fehler bei inkompatibler Version. Assertions:

  • Handshake endet mit unsupported_version

Ziel: Fehler bei fehlender Required Extension. Assertions:

  • fehlende Pflicht-Extension führt zu unsupported_extension oder unsupported_profile

Ziel: session.ping / session.pong. Assertions:

  • pong korreliert semantisch zum Ping
  • Session bleibt aktiv

Ziel: Geordnete Terminierung. Assertions:

  • session.terminate führt zu session.terminated
  • danach werden keine normalen Nachrichten mehr verarbeitet

Ziel: capabilities.get / capabilities.list. Assertions:

  • Capability-Antwort ist formal gültig
  • capabilities.list enthält capabilities

Ziel: Fehlerobjekt und Fehlercodes. Assertions:

  • error.payload.code ist gesetzt
  • message ist gesetzt

Ziel: Unbekannter Nachrichtentyp. Assertions:

  • unbekannter type liefert unknown_message_type

Ziel: Verhandelte Version bleibt bindend. Assertions:

  • nach Handshake tragen Nachrichten die ausgewählte Version

Ziel: Capability Document ist formal gültig. Assertions:

  • modelVersion, profile, roles, stateKeys, affordances, actions, riskLevels vorhanden

Ziel: Action-IDs sind eindeutig. Assertions:

  • keine doppelten action.id

Ziel: verwendete Success-Signal-Arten sind deklariert. Assertions:

  • alle success.kind-Werte stehen in successSignalKinds

Ziel: Risk-Levels sind zulässig. Assertions:

  • nur safe, confirm, blocked, sofern keine dokumentierte Erweiterung

Ziel: Konsistenz zwischen Rolle, Affordances und Actions. Beispiel: textbox mit ui.enterText, button mit ui.activate.


Ziel: Snapshot-Grundstruktur. Assertions:

  • PageGraph enthält revision, rootDocumentId, documents, elements, viewport

Ziel: Revisionen steigen monoton. Assertions:

  • spätere Snapshots/Deltas haben keine rückwärtslaufende Revision

Ziel: Deltas referenzieren bekannte Basisrevision. Assertions:

  • baseRevision zeigt auf bekannte vorherige Revision

Ziel: Cross-Origin-Opaque-Frames korrekt. Assertions:

  • opaque Frames sind als access="opaque" markiert
  • keine inneren Elemente werden fälschlich publiziert

Ziel: Closed Shadow DOM wird korrekt behandelt. Assertions:

  • closed Shadow-Inhalte werden nicht als frei zugängliche Elemente publiziert

Ziel: stabile IDs haben Vorrang. Assertions:

  • wenn stableId vorhanden ist, bleibt sie die kanonische Zielidentität

Ziel: zentrale Signale sind publizierbar. Assertions:

  • mindestens Route-, Dialog- oder Status-/Toast-Signale werden korrekt emittiert

Ziel: Fokuszustand ist konsistent. Assertions:

  • focus.target zeigt auf ein existierendes Element oder ist leer

Ziel: Open Shadow DOM wird korrekt modelliert.

Ziel: Bridged Cross-Origin-Frames werden korrekt als bridged publiziert.


Ziel: gültige Action-Requests werden angenommen oder sauber abgelehnt. Assertions:

  • action.request führt zu action.accepted oder error

Ziel: Zielauflösung via stableId. Assertions:

  • eindeutige stableId wird korrekt aufgelöst

Ziel: Ambiguität wird nicht verschleiert. Assertions:

  • mehrdeutige Ziele führen zu target_ambiguous

Ziel: Actionability-Prüfung. Assertions:

  • nicht interagierbare Ziele führen zu target_not_interactable oder dokumentierter Recovery

Ziel: Confirmation Flow. Assertions:

  • confirm-Pflicht führt zu action.confirmation.request
  • ohne grant keine Ausführung
  • deny führt zu cancelled oder failed mit passender Ursache

Ziel: Cancel-Verhalten. Assertions:

  • action.cancel beendet aktive Action sauber

Ziel: Verifikationspolitik all / any / none. Assertions:

  • all verlangt alle Signale
  • any verlangt mindestens eines
  • none verlangt keine Signalprüfung

Ziel: User-Activation-Fälle werden korrekt behandelt. Assertions:

  • aktivierungspflichtige Aktion führt zu waiting_for_user, handoff oder user_activation_required

Ziel: kein unsicherer Retry. Assertions:

  • bei nicht-idempotenter Action mit sideEffectState="unknown" erfolgt kein stiller Wiederholungsversuch

Ziel: Action Result ist vollständig. Assertions:

  • status, verification, optional resolvedTarget, chosenExecutionMode vorhanden

Ziel: Policy-Dokument kann geliefert werden. Assertions:

  • uiap.policy.get führt zu gültigem uiap.policy.document

Ziel: Safe Action mit ausreichendem Grant. Assertions:

  • Ergebnis ist allow

Ziel: Confirm Risk. Assertions:

  • confirm-Risk führt zu confirm, sofern nicht schärfere Regel greift

Ziel: Secret/Credential ohne Grant. Assertions:

  • Ergebnis ist deny oder handoff gemäß Policy, aber nie stilles allow

Ziel: Redaction-Regeln wirken. Assertions:

  • redaktionspflichtige Felder werden in den betroffenen Outputs maskiert

Ziel: Audit-Verhalten. Assertions:

  • bei auditpflichtiger Entscheidung entsteht ein gültiger Audit-Record

Ziel: User-Activation-/Human-Actor-Regel. Assertions:

  • bei passender Obligation wird handoff oder äquivalente Nicht-Autonomie erzwungen

Ziel: strengere Regel gewinnt. Assertions:

  • konfliktierende Regeln werden deterministisch zugunsten der strengeren Wirkung ausgewertet

Ziel: Lifecycle-Methoden existieren und funktionieren. Assertions:

  • start, stop, destroy sind nutzbar

Ziel: bindElement / bindScope prägen den Snapshot. Assertions:

  • gebundene IDs erscheinen im publizierten State

Ziel: registrierte Actions sind ausführbar. Assertions:

  • registerAction stellt die Action zur Verfügung
  • Runtime bevorzugt registrierte App-Action, sofern passend

Ziel: Policy Hook greift durch. Assertions:

  • lokale deny-Entscheidung verhindert Ausführung

Ziel: Signal-Emission. Assertions:

  • emitSignal publiziert ein gültiges Web-Signal

Ziel: Frame Bridge validiert Kanal und Origin. Assertions:

  • Nachrichten von falschem origin oder falschem Kanal werden verworfen

Ziel: Overlay ist rein präsentational. Assertions:

  • Overlay-Erfolg ersetzt kein action.result

Ziel: Workflow-Katalog ist formal gültig. Assertions:

  • initialStepId existiert
  • Step-IDs sind eindeutig

Ziel: Start eines gültigen Workflows. Assertions:

  • uiap.workflow.start führt zu uiap.workflow.started

Ziel: fehlende Inputs werden korrekt behandelt. Assertions:

  • collect führt bei fehlenden Werten zu uiap.workflow.input.request
  • input.provide wird korrekt angenommen oder abgelehnt

Ziel: Action Step delegiert an Runtime. Assertions:

  • Workflow-Action führt intern zu Runtime-Ausführung
  • Ergebnis fließt in Workflow-History ein

Ziel: Policy-Integration. Assertions:

  • confirm führt zu waiting_confirmation
  • handoff führt zu waiting_user
  • deny führt zu failed oder definierter Recovery

Ziel: Checkpoint/Resume. Assertions:

  • Checkpoints werden an zulässigen Punkten erzeugt
  • resume setzt korrekt fort

Ziel: expliziter Handoff Step. Assertions:

  • handoff-Step setzt waiting_user

Ziel: Recovery Rules. Assertions:

  • definierte onError-Strategie wird angewendet

Ziel: Workflow-Abschluss. Assertions:

  • complete + globale Erfolgskriterien führen zu uiap.workflow.result

Ziel: Planungsphase ist formal korrekt. Assertions:

  • Discovery Plan akzeptiert gültige Seeds und Umgebung

Ziel: Lifecycle von Start bis Result. Assertions:

  • start führt zu Progress und Result oder sauberem Fehler

Ziel: pro Seed mindestens ein Discovery State. Assertions:

  • initialer State enthält PageGraph und Fingerprint

Ziel: Deduplizierung äquivalenter States. Assertions:

  • mehrfach besuchte identische Zustände erzeugen nicht beliebig neue State Nodes

Ziel: Safety Policy wird respektiert. Assertions:

  • verbotene oder destructive Actions werden nicht autonom ausgeführt

Ziel: Kernkataloge vorhanden. Assertions:

  • Route-, Scope-, Element- und Action-Katalog werden erzeugt

Ziel: Kandidaten tragen Evidence und Confidence. Assertions:

  • jeder Kandidat hat discoveredBy und confidence

Ziel: Review Queue. Assertions:

  • Ambiguitäten, opaque Boundaries oder fehlende Success Signals erzeugen Review Items

Ziel: Workflow-Kandidaten werden synthetisiert.


Ziel: Package Manifest ist gültig. Assertions:

  • genau ein Package
  • genau ein effektives App-Manifest nach Auflösung

Ziel: Imports und Aliase. Assertions:

  • Aliase sind eindeutig
  • importierte IDs werden korrekt namespaced

Ziel: Overlay-Anwendung ist deterministisch. Assertions:

  • identische Inputs und Build-Kontext liefern identisches Ergebnis
  • Konflikte werden nicht stillschweigend versteckt

Ziel: Locale-Referenzen werden aufgelöst. Assertions:

  • fehlende Pflichttexte werden als Fehler oder Review-Block markiert

Ziel: Review-Gates greifen. Assertions:

  • prod-Bundle verletzt keine definierten Review-Regeln

Ziel: Bundle-Kompilierung. Assertions:

  • kompiliertes Bundle enthält keine unaufgelösten Imports/Overlays
  • Build ist reproduzierbar

Ziel: Konfliktbehandlung. Assertions:

  • doppelte IDs oder unvereinbare Overlays führen zu Fehler oder expliziter Review-Warnung

Ziel: Discovery-Importe sind explizit. Assertions:

  • Discovery-Inhalte werden nur via Acceptance-Regel in Authoring übernommen

Dieses Profil ist bestanden, wenn folgende Profile bestanden sind:

Dieses Profil ist bestanden, wenn alle Basisprofile bestanden sind:

  • Core
  • Capabilities
  • Web Publisher
  • Web Consumer
  • Action Runtime
  • Policy
  • SDK Web
  • Workflow
  • Discovery
  • Authoring

Ein fehlgeschlagener required Test DARF genau einmal automatisch wiederholt werden, wenn der erste Lauf wegen offenkundig externer Umgebungsstörung invalid war.

Ein Test, der ohne Änderungen zwischen pass und fail schwankt, MUSS als invalid markiert werden, bis die Ursache geklärt ist.

Jeder Test SOLLTE ein Timeout haben. Timeout-Verletzungen in required Fällen führen zu fail oder invalid, je nach Ursache.

Für Authoring-, Policy- und bestimmte Discovery-Fälle MUSS Reproduzierbarkeit geprüft werden, wenn gleiche Inputs und gleicher Kontext vorliegen.


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;
}
  • Jeder beanspruchte Claim MUSS im Report auftauchen.
  • failedProfiles MUSS auch Profiles enthalten, die nur wegen Abhängigkeitsverletzung scheitern.
  • Reports SOLLTEN maschinenlesbar serialisierbar sein.

Eine Referenz-Conformance-Suite v0.1 MUSS mindestens bereitstellen:

  • Profildefinitionen
  • Testfallkatalog
  • Referenz-Fixtures
  • Report-Schema
  • Ergebnisaggregation
  • Dokumentation zur Harness-Ausführung

Sie SOLLTE zusätzlich bereitstellen:

  • Referenz-Harness
  • CI-kompatiblen Runner
  • Golden Artifacts
  • Beispiel-Claims
  • Beispiel-Reports

{
"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",
"profiles": ["[email protected]"],
"extensions": [
{ "id": "uiap.policy", "version": "0.1" }
]
}
]
},
"claims": [
{ "componentId": "host", "profileId": "[email protected]" },
{ "componentId": "host", "profileId": "[email protected]" },
{ "componentId": "host", "profileId": "[email protected]" },
{ "componentId": "host", "profileId": "[email protected]" },
{ "componentId": "host", "profileId": "[email protected]" },
{ "componentId": "host", "profileId": "[email protected]" },
{ "componentId": "host", "profileId": "[email protected]" }
]
}

{
"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": [
{ "componentId": "host", "profileId": "[email protected]" }
],
"environment": {
"harnessVersion": "0.1.0",
"browser": "Chromium 126"
},
"results": [
{
"profileId": "[email protected]",
"status": "pass",
"testResults": [
{
"id": "CORE-SES-001",
"status": "pass",
"durationMs": 48,
"assertions": [
{ "id": "a1", "status": "pass" },
{ "id": "a2", "status": "pass" }
]
}
]
},
{
"profileId": "[email protected]",
"status": "fail",
"testResults": [
{
"id": "SDK-FRAME-001",
"status": "fail",
"durationMs": 33,
"assertions": [
{
"id": "a1",
"status": "fail",
"message": "Nachricht mit falschem origin wurde verarbeitet."
}
],
"artifacts": [
{
"id": "art_17",
"type": "message-trace",
"note": "Frame bridge accepted untrusted origin"
}
]
}
]
}
],
"summary": {
"passedProfiles": ["[email protected]"],
"failedProfiles": ["[email protected]"],
"invalidProfiles": [],
"passCount": 11,
"failCount": 1,
"skipCount": 3,
"warnCount": 0,
"invalidCount": 0
}
}

Eine Implementierung DARF nur dann öffentlich behaupten:

Wenn nur Teilbereiche bestanden sind, MUSS die Aussage präzise sein. Also nicht „wir sind UIAP-kompatibel“, wenn in Wahrheit nur das Envelope-Parsing lebt und der Rest aus Hoffnung besteht.


Nach dieser Spec fehlen praktisch noch drei Dinge, damit das sofort produktiv brauchbar wird:

  1. Referenz-Fixture Pack v0.1 mit Demo-Web-App, Policy-Fällen, Workflow-Fällen, Discovery-Umgebung und Authoring-Sample-Pack.

  2. Conformance Report JSON Schema v0.1 damit Reports maschinenvalidierbar sind.

  3. CI Runner Spec v0.1 damit Teams Claims automatisch in CI prüfen und Bundle-/SDK-/Runtime-Releases blockieren können.


  • [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
  • Conformance-Tests DÜRFEN NICHT gegen Produktivsysteme ohne explizite Autorisierung ausgeführt werden.
  • Test-Fixtures KÖNNEN sensitive Muster enthalten; Test-Ergebnisse SOLLTEN vor der Veröffentlichung redaktiert werden.
  • Conformance-Ergebnisse SOLLTEN kryptographisch signiert werden, wenn sie als Nachweis gegenüber Dritten verwendet werden.
VersionDatumÄnderungen
0.12026-03-27Initialer Entwurf