with one click
release
// Use this skill for EVERY XClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.
// Use this skill for EVERY XClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped.
Generate or edit images via BlockRun's image API. Trigger when the user asks to generate, create, draw, make an image — or to edit, modify, change, or retouch an existing image.
Use this skill — NOT browser or web_fetch — for ALL Polymarket, Kalshi, dFlow, and prediction market data. Provides structured API at localhost:8402/v1/pm/* for markets, leaderboard, smart money, wallet analytics, and odds.
Smart LLM router for OKX — agentic wallet, 55+ models, x402 micropayments on Base + Solana. Routes every request to the cheapest capable model. 11 free NVIDIA models included.
| name | release |
| description | Use this skill for EVERY XClawRouter release. Enforces the full checklist — version sync, CHANGELOG, blockrun server constant, build, tests, npm publish, git tag, GitHub release. No step can be skipped. |
| triggers | ["release xclawrouter","ship xclawrouter","publish xclawrouter","version bump xclawrouter","tag xclawrouter release","npm publish xclawrouter","xclawrouter release"] |
This skill is mandatory for every release. Execute every step in order. Do not skip.
Read the current version:
cat package.json | grep '"version"'
Ask: "What version are we releasing?" Confirm it follows semver and is higher than current.
package.json VersionEdit package.json — bump "version" to the new version.
Open CHANGELOG.md. Add a new section at the top (after the header) in this format:
## v{VERSION} — {DATE}
- **Feature/Fix name** — description
- **Feature/Fix name** — description
Rules:
Mar 8, 2026CURRENT_CLAWROUTER_VERSION in blockrunThis is the most commonly forgotten step.
File: /Users/vickyfu/Documents/blockrun-web/blockrun/src/app/api/v1/chat/completions/route.ts
Find this line:
const CURRENT_CLAWROUTER_VERSION = "x.y.z";
Update it to match the new version. Verify with:
grep CURRENT_CLAWROUTER_VERSION /Users/vickyfu/Documents/blockrun-web/blockrun/src/app/api/v1/chat/completions/route.ts
Do not skip this. It controls the update nudge shown to users running outdated versions.
npm run build
Fix any TypeScript or build errors before proceeding.
npm test
npm run typecheck
npm run lint
All must pass. Fix failures before proceeding.
Stage and commit:
git add package.json CHANGELOG.md
git commit -m "chore: bump version to {VERSION}"
If blockrun's route.ts was updated, commit that separately in the blockrun repo.
git push origin main
git tag v{VERSION}
git push origin v{VERSION}
gh release create v{VERSION} \
--title "v{VERSION}" \
--notes "$(sed -n '/^## v{VERSION}/,/^## v[0-9]/p' CHANGELOG.md | head -n -1)"
Verify the release on GitHub: https://github.com/BlockRunAI/XClawRouter/releases
The release notes must match the CHANGELOG entry exactly.
npm publish --access public
Verify: https://npmjs.com/package/@blockrun/xclawrouter
Expected output: + @blockrun/xclawrouter@{VERSION}
Run this checklist to confirm everything is in sync:
# 1. package.json version
cat package.json | grep '"version"'
# 2. CHANGELOG has the entry
head -10 CHANGELOG.md
# 3. blockrun CURRENT_CLAWROUTER_VERSION
grep CURRENT_CLAWROUTER_VERSION /Users/vickyfu/Documents/blockrun-web/blockrun/src/app/api/v1/chat/completions/route.ts
# 4. npm package is live
npm view @blockrun/xclawrouter version
# 5. GitHub tag exists
git tag | grep v{VERSION}
# 6. GitHub release exists
gh release view v{VERSION}
All 6 must match the new version. If any mismatch, fix before declaring the release done.
| Mistake | Prevention |
|---|---|
Forgot to update CURRENT_CLAWROUTER_VERSION in blockrun | Step 4 — always check |
| CHANGELOG entry missing or incomplete | Step 3 — write it before building |
| npm publish before tests pass | Steps 5-6 must precede Step 11 |
| GitHub release notes empty | Step 10 — extract from CHANGELOG |
| Git tag not pushed | Step 9 — push tag separately |
| docs not reflecting new features | Update docs in same PR as the feature |