OKX.AI
Reference priority
Use the routing tables below as the only top-level intent map. The selected feature reference overrides generic guidance for command selection, confirmation, output, and recovery. Structured inbound envelopes take precedence over free-text routing.
Response language
Keep the flow in the user's initial language. Translate every English source
template's prose, titles, field labels, table introductions, table headers,
status labels, descriptions, and action guidance into that language; preserve
IDs, URLs, raw tokens, A2A/A2MCP, timestamps, and user-authored text.
English source templates define field order and meaning only; they are not
permission to leave a user-facing title or table header in English when the
user uses another language. When a CLI-returned template's amount line reads
Amount: Free — an exact-zero payment (e.g. the buyer escrow job_accepted
acceptance playbook), with the currency symbol omitted — never add a currency
symbol to it (the zero is intended). This label is not a numeric amount, so the
amount/currency preservation rule in
references/a2a/notify.md [blocked] does not apply to it.
For every task, subscription, refund, evaluation, or rating result, render and
translate the CLI-provided statusLabel and statusDescription exactly as you
would a title. Never render raw state fields such as status, statusName,
statusCode, taskStatus, jobStatus, evaluationStatus, or
arbitrationPhase to an end user unless the user explicitly requests protocol
diagnostics. These raw fields remain machine keys only; the CLI owns their
mapping to readable business wording.
Preflight
Structured A2A envelopes, [SKILL_PREFETCH], a trusted task-parameter or
execution-clarification notification, and the owner reply bound to that
notification are exempt here. Route each through the exact top-level row below;
do not run preflight checks before its bound task-session context is known.
Preflight checks: At the start of each thread, complete the checks in ../okx-agentic-wallet/_shared/preflight.md. If missing, read _shared/preflight.md.
Top-level routing
Route by envelope shape before free text, and select exactly one row across all tables. For free text, prefer exact Runtime or Identity matches over broad A2A. Load only the selected row's references and any next reference they or a CLI result explicitly name; never preload or search for alternatives. If a linked file is missing, report an incomplete installation and stop.
Runtime routes
Bound Runtime continuation routes
Bound Runtime continuations are not free-text intents. Use the bound-continuation routes below only when a selected reference, structured action, or CLI result requires an internal Runtime operation without naming its final leaf. Never re-enter them when an upstream reference links the final leaf directly.
Read exactly one selected reference:
Preserve the bound task, session, decision, action parameters, and origin. Never infer an internal operation from prose or preload sibling files. A missing mapping is a coverage failure—report it and stop.
A2MCP routes
Use these routes to invoke a confirmed A2MCP service or inspect its synchronous result.
A2MCP results are synchronous and never enter A2A, XMTP, subscription, or watch
flows. Only the CLI-returned paymentId enters the Payment Protocol; raw 402
payloads, endpoint metadata, and business parameters never do.
Identity routes
Global Progression Contract
Use this envelope when a CLI result requires continuation:
phase: current business stage.decision:ready,blocked, orrequires_user_input.reason: machine-readable reason.nextAction: currently allowed stable actions; render non-blankactionLabelvalues in returned order as numbered, localized options and wait for the user. Do not expose Action IDs,recommend, orparams.payload: current facts.
For every structured CLI result, apply this contract before applying any domain-specific rendering or routing rules.
invoke_a2mcp starts an active A2MCP invocation. Its explicit MCP preparation
result enters
references/a2mcp/handoff.md [blocked]; while active,
route the direct CLI result through references/a2mcp/invoke.md. Clear the
context after a free result, payment-protocol handoff, cancellation, or error,
then route afresh.
For a System envelope, a2a/router.md calls next-action once, handles an
exact cross-domain action before role selection, then loads one role router and
its final leaf. For every other non-A2MCP result, the reference that invoked the
CLI owns the result: apply the Global Progression Contract above, then
follow its exact result matrix or the exact leaf named by the CLI. When only a
role-scoped action ID is known, load that bound role router directly. Never
re-enter this Skill or the A2A parent router merely because nextAction exists.
Never infer an action from prose or preload possible later leaves.


