Course Drift Oracle

live since 2026-08-28 · MCP over streamable HTTP at https://signetworks.atelieri.workers.dev/mcp

Scans the ai-agents-for-beginners course repo for model pins and package-version floors that have drifted from upstream reality, signs the findings, and sells the results. Ten tools: four free, six paid, each paid product sold as identical goods on two payment rails. Machine-readable catalog: catalog.json. Agent-oriented index: llms.txt.

Tools

toolpricerailreturns
drift_summary free — finding counts by severity and lesson, plus a signed receipt
verify_report free — checks a receipt's Ed25519 signature and findings hash
drift_report $0.25 USD MPP (Tempo testnet) every finding: file, line, diagnosis, fix
drift_report_x402 $0.25 USD x402 (USDC, Base Sepolia testnet) identical report, for x402 Bazaar discoverability
model_status free — one model id's catalog entry (or an honest "unknown"), plus the signed catalog receipt
model_status_batch $0.10 USD MPP (Tempo testnet) one signed answer across all pinned models, with an any_action_needed gate boolean
model_status_batch_x402 $0.10 USD x402 (USDC, Base Sepolia testnet) identical batch answer, paid via x402
site_audit_summary free — "N of 12 checks passed" for a submitted site URL, plus target and date
site_audit $0.25 USD MPP (Tempo testnet) all 12 checks with per-check status and detail, as a signed dated receipt
site_audit_x402 $0.25 USD x402 (USDC, Base Sepolia testnet) identical report, paid via x402

There is also a free HTTP badge: GET /badge?models=<ids> returns shields.io endpoint JSON from the same catalog lookup the paid batch tool uses, so a README can wear its model-drift status in one line.

Heartbeat

last settlement badge  This paywall re-proves itself: an automated buyer purchases a report every week with a real x402/USDC settlement on Base Sepolia, and every sale stamps the server's own last-settlement record. GET /heartbeat serves that record as a free shields.io badge ("last settlement: N days ago"), so "payments work here" is a continuously renewed claim you can check, not a launch-day anecdote.

Site audit

A buyer submits a site URL. The worker makes a small, fixed set of bounded fetches against that origin (at most 10, against well-known paths, response sizes capped, private and internal addresses refused, rate-limited per target) and checks whether the site is legible to AI agents: robots.txt for named AI crawlers, llms.txt presence and shape, MCP advertisement, structured data, meta and charset sanity, content-type sanity, and whether the homepage responds without JS rendering. Twelve checks total, run once, scored where a check has a right answer and reported as fact where it does not. Free summary tells you how many of 12 passed; the paid tier returns every check with its status and detail, signed live with a dedicated Ed25519 audit key kept separate from the report chain key. The signature proves what was checked, when, and that the report was not altered afterward; it does not prove the site is good, and it does not prove the 12 checks are exhaustive. If the audit key is not yet provisioned, the tools still run and return an explicitly unsigned report that says so. Same logic as the drift report: not information nobody else has, information nobody can quietly edit afterward.

For people (card checkout)

The tools above sell to agents at machine prices on testnet rails. If you are a person with a website, there are two things you can buy with a card, paid via Stripe in real money:

Why $49 when an agent pays $0.25: the agent buys a JSON response. You buy the checks run, the failures explained in the order worth fixing, and a signed record you can show someone else.

Why pay for this

Not because the bytes are scarce. Because the answer does not exist until someone does the work of checking each pin against the platform's own retirement calendar, and the free tier only tells you that something drifted, not where. Full argument in the repository README.

Verification

Both tiers commit to the same findings_hash, so the free summary is a binding claim about the paid tier's contents. Call verify_report before paying to audit the claim, and after paying to confirm you received everything. Signatures are Ed25519 over the SHA-256 digest of RFC 8785 canonical JSON; a receipt signed by the Python publisher (oracle/receipt.py) verifies against the TypeScript Worker with no shared trust required. See catalog.json for the exact fields and file references.