Skip to main content

Ouro AX

ax-claims

The Ouro AX standard as data: a claim is one checkable rule about an interface an agent uses, with the reason, the evidence that admitted it, the check ax-xray runs and the fix. A claim is must only when an evaluation showed agents failing without it, or when it guards against a stated safety, compatibility or integrity hazard; every other claim is should.

npx shadcn@latest add ourostack/ouro-ui/ax-claims#v1.3.10

It installs lib/ouro/ax/claims.ts. Its tests are ax-claims-tests. Every item runs on Node 22.18 or later as it is copied: the files import each other as ./<file>.ts. The Ouro AX guide shows how they fit together.

Exports

checkClaimSet

The problems with a claim set, one line each with the fix: a missing field, a repeated id, an unknown surface, tier or scope, and a must claim the admission rule does not allow (one that rests on a principle, an evaluation without its run, or a hazard not stated).

function checkClaimSet(value: unknown): string[]

Claim

interface Claim {
  id: string;
  surface: ClaimSurface;
  tier: ClaimTier;
  applies: ClaimScope;
  rule: string;
  why: string;
  evidence: ClaimEvidence;
  check: string;
  fix: string;
}

CLAIM_SCOPES

Which surfaces a claim applies to. The X-ray decides it from what the interface says about itself (`help --json`, the
routes manifest, tools/list), not from a hand-written waiver:
- `interface`: once per interface.
- `command`, `read`, `others`, `text`, `wait`: CLI commands, the reads among them (effect private), those other people
see, those that take free text, and the wait command.
- `events`: the work-event read the adopter names.
- `route`, `read-route`, `ref-route`, `others-route`: HTTP routes that answer an error, GET routes, routes with an id
in the path, and the probes of writes other people see.
- `tool`, `tool-required`: MCP tools, and those with required arguments.
- `twin`, `action-twin`, `person-only`, `reserved`, `self`, `ui-read`, `listening`, `listening-push`: from the `ui`
inventory, the twins, the twins of agent actions, the person-only actions, the actions with a reserved id, the
actions an agent takes only on its own item (`scope: "self"`), the reads, the reads of what people say, and their
streams.
const CLAIM_SCOPES: readonly ["interface", "command", "read", "others", "text", "wait", "events", "route", "read-route", "ref-route", "others-route", "tool", "tool-required", "twin", "action-twin", "person-only", "reserved", "self", "ui-read", "listening", "listening-push"]

CLAIM_SET

The claims of this version of Ouro AX. Evidence paths are relative to the Ouro UI repository (https://github.com/ourostack/ouro-ui).

const CLAIM_SET: ClaimSet

CLAIM_SET_VERSION

The Ouro AX standard as data: a claim is one checkable rule about an interface an agent uses, with the reason, the evidence that admitted it, the check ax-xray runs and the fix. A claim is must only when an evaluation showed agents failing without it, or when it guards against a stated safety, compatibility or integrity hazard; every other claim is should.

const CLAIM_SET_VERSION: "1.5.0"

ClaimEvidence

Why a claim is in the standard. evaluation: an agent evaluation (source is the run's file); hazard: the harm it guards against, in finding; principle: a design principle, not yet shown by a run (should only).

interface ClaimEvidence {
  basis: "evaluation" | "hazard" | "principle";
  source: string;
  finding: string;
}

ClaimScope

type ClaimScope = (typeof CLAIM_SCOPES)[number];

ClaimSet

interface ClaimSet {
  version: string;
  claims: readonly Claim[];
}

claimSetText

The claim set as canonical JSON (keys sorted), the text its hash is taken over.

function claimSetText(set: ClaimSet): string

ClaimSurface

type ClaimSurface = "cli" | "http" | "mcp" | "ui";

ClaimTier

type ClaimTier = "must" | "should";

loadClaimSet

A claim set read from JSON (an adopter's own copy, say), checked; throws with every problem when it is not one.

function loadClaimSet(value: unknown): ClaimSet

The claims

Must claims first. node lib/ouro/ax/xray.ts claims prints their rules and checks; the standard says how a claim is admitted.

cli.help-parses
Tier: must
hazard
cli.help-effects
Tier: must
hazard
cli.inventory
Tier: must
hazard
cli.exit-codes
Tier: must
hazard
cli.unknown-flag
Tier: must
hazard
cli.ambiguous-verbs
Tier: must
hazard
cli.others-need-why
Tier: must
hazard
cli.wrong-ref-first
Tier: must
hazard
cli.others-preview
Tier: must
hazard
cli.text-as-argument
Tier: must
evaluation: eval-baseline.md
cli.wait-on-refs
Tier: must
evaluation: eval-baseline.md
cli.reads-stay-reads
Tier: must
hazard
cli.refusals-change-nothing
Tier: must
hazard
cli.no-dev-commands
Tier: must
hazard
copy.precise-failure
Tier: must
hazard
http.inventory
Tier: must
hazard
http.wrong-ref-first
Tier: must
hazard
http.others-need-why
Tier: must
hazard
http.reads-stay-reads
Tier: must
hazard
http.refusals-change-nothing
Tier: must
hazard
mcp.effect-annotated
Tier: must
hazard
mcp.inventory
Tier: must
hazard
ui.twin-exists
Tier: must
hazard
ui.twin-effect-matches
Tier: must
hazard
ui.person-only-refuses
Tier: must
hazard
ui.reserved-person-only
Tier: must
hazard
ui.self-scope-refuses
Tier: must
hazard
ui.listening-needs-yes
Tier: must
hazard
cli.listening-push-filtered
Tier: must
hazard
cli.command-help
Tier: should
evaluation: eval-baseline.md
cli.help-width
Tier: should
principle
cli.overview-short
Tier: should
principle
cli.read-json
Tier: should
principle
cli.unknown-command
Tier: should
principle
cli.flag-suggest
Tier: should
evaluation: xray-probe.md
cli.missing-arg
Tier: should
principle
cli.one-line-error
Tier: should
evaluation: eval-baseline-pipes.md
cli.error-teaches
Tier: should
evaluation: eval-baseline-pipes.md
cli.no-stack-trace
Tier: should
principle
cli.plain-pipe
Tier: should
hazard
cli.check-verdict
Tier: should
principle
cli.outcome
Tier: should
evaluation: outcomes-probe.md
cli.wait-typed
Tier: should
evaluation: outcomes-results.md
cli.work-events
Tier: should
evaluation: flow-probe.md
cli.voice-off-in-json
Tier: should
principle
cli.voice-off-when-piped
Tier: should
principle
cli.fact-before-voice
Tier: should
principle
cli.audience-named
Tier: should
principle
cli.text-refs
Tier: should
principle
cli.named-is-listed
Tier: should
principle
cli.help-size
Tier: should
principle
http.json
Tier: should
principle
http.error-shape
Tier: should
principle
http.error-teaches
Tier: should
principle
http.index
Tier: should
principle
http.unknown-route
Tier: should
principle
mcp.tools-list
Tier: should
evaluation: kit-probe.md
mcp.bad-call-teaches
Tier: should
principle
mcp.unknown-tool
Tier: should
principle
ui.read-fields
Tier: should
principle
cli.listening-cursor
Tier: should
principle