routescore-ai is a small library of agent-readable skills. Loaded into a
coding agent, they teach it two disciplines:
check-swap-preflight— call Routescore'scheck_swapevidence surface (REST or MCP) before proposing or executing any onchain swap, and read theclear / caution / unsupportedverdict as evidence, never as execution approval.verdict-and-caveat-relay— relay that evidence honestly in the final user-facing answer: the verdict as returned, every caveat verbatim,score_state, and themethodology_version— with stale, partial, degraded, or unsupported states represented as gaps, never as confidence.
Routescore is one composable element of an agentic stack — the evidence/attestation element alongside your planner, executor, and wallet elements. The composition the skills assume:
plan → preflight (Routescore) → execute (venue/agent) → record (Routescore)Routescore never signs, executes, routes funds, custodies assets, or gives
investment advice. A verdict is evidence for your own policy to weigh —
clear reports the absence of caution-level findings among the checks that
ran, nothing more.
Install (raw files, no registry)
The skill files are served directly by this site. Fetch them into your agent's skills directory:
BASE=https://www.routescore.io/skills/routescore-ai
mkdir -p .claude/skills/check-swap-preflight .claude/skills/verdict-and-caveat-relay
curl -fsSL "$BASE/skills/check-swap-preflight/SKILL.md" \
-o .claude/skills/check-swap-preflight/SKILL.md
curl -fsSL "$BASE/skills/verdict-and-caveat-relay/SKILL.md" \
-o .claude/skills/verdict-and-caveat-relay/SKILL.mdREADME.md— the library overview, written for agents to read.check-swap-preflight/SKILL.mdverdict-and-caveat-relay/SKILL.md
Each SKILL.md carries name and description YAML frontmatter — the same
grammar other agent skill libraries use — so .claude/skills/ (Claude
Code), Cursor rules/context files, and custom frameworks can all load them
unchanged. A skill-registry listing (npx skills add …) is on the roadmap,
not live today.
What the agent needs
- An API key (free agent tier) for the keyed surfaces the skills call:
POST /api/public/v1/check/swapover REST, or thecheck_swaptool in the@routescore/mcpserver —check_swapis on the free agent tier (free 100/day, Pro 1,000, Power 10,000, per account), so any signed-in tier can mint a key and call it. Generate one at Account → Developer → API & MCP access; keys are shown once. - No key for the browser surfaces the skills fall back to: /route-check and /swap-slippage-checker.
The relay contract, in brief
The skills bind any agent that uses them to four rules:
verdict,reasons[], andcaveats[]reach the end user verbatim — not paraphrased, softened, or dropped.clearis never a recommendation — it reports the absence of caution-level findings within the stated coverage andscore_state.unsupported(HTTP 422) means not evaluated — the agent must not guess, substitute another chain's model, or infer a score.score_stateandmethodology_versionare surfaced with every relayed result.
Every keyed check_swap call also attempts to persist an owner-scoped
evidence record and returns its record_id — null, with a
record_persistence_failed caveat, if the record store is unavailable. See
verifiable pre-sign evidence records
for how a third party re-derives the record hash offline.
Check a relay mechanically
The deterministic half of the relay eval harness ships in
@routescore/mcp (0.3.0+): given a check_swap response and the agent's
final user-facing answer, it reports pass/fail findings per relay rule.
npx -y -p @routescore/mcp routescore-relay-lint response.json answer.txt
# exit 0 = relay contract honored; 1 = fail findings; 2 = usage errorEverything the skills relay is modeled, point-in-time decision support with
a methodology_version — not investment, legal, or tax advice, and not an
execution service. Known limitations are published at
/limitations; methodology at /methodology.