Prove OwnUX support, level by level. Three levels. Only L2 and above will earn the planned OwnUX Ready badge.
ownux test v0 checks L1 and L2. L3 and the OwnUX Ready badge are planned for Beta.
L1 Declared
Manifest valid
L2 Verified
Every change proven
L3 Adaptive
Beta: not in v0
Three levels, each a stronger promise. No product may claim to be certified or compatible outside these definitions.
Declared
Your manifest is valid.
- Every action has risk, preconditions, a verify step and a fallback
- Entities, actions and risk levels described
- Locked surfaces are listed
Verified
Every change is proven against your product.
- Reads return valid tasks from this workspace, and a missing task is not_found
- Each change executes, reads back, writes once and falls back to a real link
- A viewer is refused, and nothing changes
- Eligible for the OwnUX Ready badge, once it launches
Adaptive
OwnUX runs in your product, as promised.
- The runtime is integrated and Interface DNA is honoured
- Automated accessibility checks pass on rendered surfaces
- Locked surfaces are never re-rendered
Inside L2 Verified
Checks that catch integrations that only look right. Each one prints exactly what to fix.
L2 checks reads first, then every declared change, in a test environment as an editor and a viewer. Hardest to fake: a fresh connection must see the new value.
- A write that does nothing is never reported as verified.
- An integration that echoes what it sent fails.
- Leftover TODO(ownux) steps block publishing; LATER(ownux) is a note.
Reads
Each change
Finally
What it proves
list pages to the end, at most 50 pages, with valid tasks of this app and workspace, and no task twice.
✓ task.list_assigned: lists valid tasks from this workspace, and paging ends
// when it fails
✗ task.list_assigned: the list is not valid: task 3 has no workspace_id
Fix: list({ cursor }) must return { items, next_cursor }: valid Tasks of this app and workspace (see "The Task contract" in AGENTS.md), no task twice, and next_cursor null on the last page.
The OwnUX Ready badge
A badge that says what it means. Planned: earned at L2, and always shown with its level.
The OwnUX Ready badge is planned. It will tell users your product supports OwnUX and has proven it: every change verified at the source, every permission respected. The badge will always state its level.
- L1 Declared: no badge.
- L2 Verified: OwnUX Ready · L2.
- L3 Adaptive: OwnUX Ready · L3, once checks arrive in Beta.
Acme Projects
Use Acme your way
L1 Declared
- Valid capability manifest
- Actions, risk levels and fallbacks described
- Locked surfaces listed
L2 Verified
- Every change executes, verifies and falls back
- Permission-denied paths are safe
- Reads are real, never echoed
L3 Adaptive
- Runtime integrated, Interface DNA honoured
- Accessibility checks pass on rendered surfaces
- Locked surfaces never re-rendered
L1 is a valid start, not something users can rely on. The badge needs L2 or above.
For people, pipelines and AI assistants. ownux test is a command-line tool with a plain-words report and a JSON report.
- ownux test --config <file>
- Runs L1, then L2 against a test target: your integration, two test accounts and one test task.
- ownux test --manifest <file>
- Runs L1 only, and exits with an error, because nothing is publishable before L2.
- --json
- A machine-readable report. Each failed check has message and fix; recommendations carry note: true.
- Exit codes
- 0 publishable, 1 a check failed, 2 the check could not run. Until the developer portal exists, a blocked publish is exit 1.
$ npx ownux test --config src/ownux/ownux.config.ts --json{ "app": { "id": "acme-projects", "version": "1.4.0" }, "level": "L1", "publishable": false, "findings": ["task.set_due_date: verify is not real"], "checks": [ { "level": "L2", "capability": "task.set_due_date", "name": "verify_is_real", "ok": false, "message": "task.set_due_date: verify is not real", "fix": "get(ref) must read your product, never remember what execute sent." } ], "tested": { "task": "HQ-7", "resets": 10 }}Shortened: a real report lists every check, passed or failed.
Questions, answered.
In developmentownux test v0 checks L1 and L2, and our Reference App passes both. L3 Adaptive, the OwnUX Ready badge and the developer portal are planned for Beta.
No. L1 shows only that the manifest is valid. When the planned badge launches, only products at L2 Verified or above may show it, and it will always state its level.