v0.37.1 — make every skill installable, and add the one that routes to the rest
Makes every skill in this repo actually installable, and adds the entry-point
skill that says which of the twenty tools answers a given question.
-
feat(skills)— all thirteen skills are registered. Nine of them
(crypto-data,surf,rpc,search,image-prompting,phone,modal,
gentech-blockrunand the new core skill) sat on disk while
.claude-plugin/marketplace.jsonlisted only four, so/plugin marketplace addcould not reach them. No decision was ever taken to withhold them:
entries had been added alongside the skill that prompted them, and the rest
were never backfilled. Now 13 on disk, 13 registered, no orphans.Verified by installing rather than by reading the JSON —
claude plugin marketplace addagainst the checkout, theninstallplusplugin details
onblockrun,search,rpc,signal-to-trade-demoand
gentech-blockrun. Each reportsSkills (1). That also settles a standing
question about the layout: a plugin directory withSKILL.mdat its root and
no.claude-plugin/plugin.jsondoes register its skill, which is what every
entry here has always relied on. -
feat(skills)— newskills/blockruncore skill. The entry point the
repo lacked: tool routing, how the wallet works, and how to get a first call
working for free. Wallet, budget and x402 mechanics live in
rules/wallet-and-payment.mdsoSKILL.mdstays small enough to load on
every match — measured at ~405 always-on tokens against ~3.1k on invoke.It deliberately carries no price table, and says why: every flat per-call
price published in this repo's other skills is one retired$0.002
transaction fee too high, because each was a typed copy. It points at
blockrun_models, the402itself andllms.txtinstead. -
fix(skills)— seven claims in the new skill corrected againstsrc/.
Found by reviewing it against the code rather than the marketing copy. The
worst two were the same failure the skill itself warns about:routing: "free"is not a parameter —blockrun_chattakesmode. Because
the tool declares a raw zod shape, the SDK strips the unknown key rather than
erroring,modefalls through to"balanced", and the paragraph headed
"Free, no wallet, no key" made a paid frontier call. And "six open-weight
chat models" is eight; that count and the RPC chain count are now
br:markers fed bybrand-numbers.jsonand enforced by
sync-brand-numbers --checkin CI, because an unmarked number is invisible
to that check — which is precisely how the prices drifted.Also:
blockrun_polymarket_readwas missing entirely, so "what are my
positions?" routed to the money-moving tool rather than the free read-only
one;blockrun_realfacewas listed in the frontmatter but had no row, so it
was advertised and unroutable;action:"deposit"is the Coinbase card onramp
(launchTopUp, Base only), not "deposit details", which is why the funding
steps hand-rolledPOST /api/v1/onramp/tokeninstead of calling the tool
that does it;api_key="not-needed-for-free-models"appears nowhere in this
repo or in either SDK and was dropped; and the free tier does not truncate
silently —freeTierTruncationNote()reports the dropped fraction through
the MCP, so only the direct HTTP path is silent.Tool coverage is now 20/20 against the names registered in
src/, in both
the frontmatter and the routing table, with no orphans in either direction.
Known and not fixed here, each wanting its own pass: the flat prices in the
other eleven skills are still a fee high, and skills/prediction-markets still
advertises dFlow, whose three paths have returned upstream 404 since
2026-08-04. A partial sweep would leave those files half-right, which is the
failure mode that produced the drift in the first place.