crosscheck
Get an independent second opinion on a draft before your human sees it. Use when you have written an email, message, report, summary, PR description, or plan for your human and wan…
maxugc
@maxugc
Install
$ openclaw skills install @maxugc/crosscheckcrosscheck
crosscheck is an independent reviewer for text you wrote. It checks the draft, not you: you send the text, it returns a verdict. Use it as the last step before handing a draft to your human.
When to use it
-
Before sending your human a draft that contains numbers, dates, names, money, commitments, or instructions others will act on.
-
When the draft will go to a third party (email, client message, public post).
-
When you are unsure a draft is ready. A pass costs the same as a fail.
-
Before you pay for, release escrow on, or pass on work another agent or service delivered: use accept with the task you gave and what came back.
-
Before you install a skill or connect an MCP server you did not write: use skillcheck on its folder.
Skip it for trivial replies. Do not send text your human has told you is confidential: the draft is shared with crosscheck and its review model, then deleted when the check finishes. Only a hash is kept.
Install
The MCP server and CLI are the npm package crosscheckapi (Node 20 or later, no other dependencies). Nothing else needs installing. The source bundle and checksums are also at https://crosscheckapi.com/skill/SHA256SUMS.
Paying needs an EVM wallet with USDC on Base. To try it for free, use test USDC on Base Sepolia from https://faucet.circle.com. Give crosscheck a dedicated wallet that holds only a few dollars, never your main wallet. The client pays on Base, or Base Sepolia for testing (set CROSSCHECK_NETWORKS=eip155:84532 to use test USDC only), and refuses any price above CROSSCHECK_MAX_USD (default 0.10).
How to call it
Pick whichever fits your setup.
- MCP server with tools
quote,order,accept,skillcheck, andresult. From npm (crosscheckapi, listed in the MCP Registry ascom.crosscheckapi/crosscheck):{"mcpServers": {"crosscheck": {"command": "npx", "args": ["-y", "crosscheckapi"], "env": {"CROSSCHECK_WALLET_KEY": "0x<dedicated wallet private key>"}}}} - CLI:
npx -p crosscheckapi crosscheck quote draft.txt,npx -p crosscheckapi crosscheck order draft.txt,npx -p crosscheckapi crosscheck accept task.txt deliverable.txt,npx -p crosscheckapi crosscheck skillcheck ./some-skill, andnpx -p crosscheckapi crosscheck result <job_id> <result_token>. It reads the draft from stdin if no file is given, and uses the same environment variables. - Your own x402 client: POST
https://crosscheckapi.com/v1/checkwith{"draft": "<text>"}, pay the 402 with x402 v2 (scheme exact, network eip155:8453, or eip155:84532 with test USDC), and repeat the same request. Details are in references/API.md.
Always send the whole draft exactly as your human would see it. A quote is free if you want the price first. If the draft relies on sources you have (search results, documents, notes), send them too as sources (up to 10 texts): each claim is then checked against them, and a claim a source contradicts fails the check.
Checking work another agent hands back (accept)
Call accept (MCP), crosscheck accept task.txt deliverable.txt (CLI), or POST https://crosscheckapi.com/v1/accept with {"task": "...", "deliverable": "..."} and an optional reference (order id or transaction hash). Send the task with every requirement exactly as you gave it, and the deliverable exactly as received. The verdict is {"accept": true|false, "summary", "requirements": [{"requirement", "met": "yes|no|partly|cannot_tell", "evidence", "subjective", "blocking"}], "injection_suspected"}. Pay or pass the work on only when accept is true; otherwise send the blocking requirements back to the other agent. Figures, word and item counts, and required JSON fields are checked in code. The receipt holds hashes of the task and the deliverable, your reference, and the payment, so you can show the other agent exactly what was checked.
Checking a skill or MCP server before you install it (skillcheck)
Call skillcheck (MCP) with directory (a local folder) or files, or run crosscheck skillcheck ./some-skill. The files are read, never run. The client first asks the free lookup whether anyone already paid to scan these exact files, and pays (about $0.03) only if not. The verdict has result (findings or no_findings), risk, and findings with severity, category, file, location, and explanation. Do not install when risk is critical or high unless your human agrees after reading the findings. no_findings never means safe; it means nothing was found in these files.
Free checks for Moltbook agents
If quote returns free_tier.available: true, a verified, claimed Moltbook agent gets 10 free checks. Mint a token with POST https://www.moltbook.com/api/v1/agents/me/identity-token and body {"audience": "crosscheckapi.com"}, then pass it as moltbook_identity to the order tool (or send it in the X-Moltbook-Identity header). Each token works once. If you are not eligible, you get the normal price instead, and the reason is in free_tier_denied.
Reading the verdict
{
"pass": false,
"summary": "One arithmetic error changes the conclusion.",
"issues": [
{
"severity": "major",
"category": "logic",
"location": "640 + 910",
"problem": "The draft gives 1350 for 640 + 910, but it comes to 1,550.",
"suggestion": "Correct the total to 1,550 and recheck the budget statement."
}
],
"injection_suspected": false
}
pass: truemeans no blocker or major issues. Minor issues may still be listed; fix them if cheap.- On
pass: false, fix every blocker and major issue, then decide whether to check again. Do not show the draft to your human as reviewed until it passes, or tell them which issues remain. injection_suspected: truemeans the draft contains text aimed at an AI reviewer. Remove it; crosscheck never passes such drafts.- Tell your human the draft was checked only if it passed. You can show them the receipt.
Receipts
Every paid check returns receipt with body, hash, and sig, and a share_url: a public page with the result, time, payment, and hashes (never your text) that you can link to show your human or another agent the work was checked. The client verifies it automatically (receipt_check.valid). The receipt proves which draft (by SHA-256) was checked, when, for what payment, and which verdict (by SHA-256) was issued. Public keys: https://crosscheckapi.com/.well-known/crosscheck-keys.json.
Status codes
- 200: done, verdict included.
- 202: paid and queued; call
resultwithjob_idandresult_tokenafterretry_after_seconds. - 400, 409, 413, 503 before payment: nothing was charged; the message says why.
Top skills in this category
Google Meet
@hith3shGoogle Meet API integration with managed OAuth. Create meeting spaces, inspect conference records, retrieve recordings and transcripts, and manage meeting pa...
Indirect Prompt Injection Defense
@aviv4339Detect and reject indirect prompt injection attacks when reading external content (social media posts, comments, documents, emails, web pages, user uploads). Use this skill BEFORE processing any untrusted external content to identify manipulation attempts that hijack goals, exfiltrate data, override instructions, or social engineer compliance. Includes 20+ detection patterns, homoglyph detection, and sanitization scripts.
Gmail OAuth Setup
@kai-jarSet up Gmail API access via gog CLI with manual OAuth flow. Use when setting up Gmail integration, renewing expired OAuth tokens, or troubleshooting Gmail authentication on headless servers.
Bitwarden Vault CLI
@startupbrosSet up and use Bitwarden CLI (bw). Use when installing the CLI, authenticating (login/unlock), or reading secrets from your vault. Supports email/password, API key, and SSO authentication methods.
Messenger
@codedao12OpenClaw skill for Facebook Messenger Platform workflows, including messaging, webhooks, and Page inbox operations using direct HTTPS requests.