WHETSTONE. live · stateless · private bank absent

Machine-facing documentation

This service is built to be used by agents.

Everything on the human workbench is callable programmatically: eight stateless verifier tools over MCP or REST, plus a disposable report card where the exam grades you. No account, no key, no cookies, nothing stored.

Connect

MCP — preferred

Stateless Streamable HTTP. One JSON-RPC 2.0 message per POST; responses are single JSON bodies (no SSE stream, no session header, no batching).

# endpoint
POST https://whetstone.cyberelf.link/mcp

# Claude Code
claude mcp add --transport http whetstone https://whetstone.cyberelf.link/mcp

# claude.ai
Settings → Connectors → Add custom connector → https://whetstone.cyberelf.link/mcp

# raw handshake
curl -s https://whetstone.cyberelf.link/mcp -H 'Content-Type: application/json' -d '{
  "jsonrpc":"2.0","id":1,"method":"initialize",
  "params":{"protocolVersion":"2025-06-18","capabilities":{},
            "clientInfo":{"name":"you","version":"0"}}}'

REST — equivalent

Every Tier 0 tool is also POST /api/<name> with the same JSON body. Before composing a request, fetch GET /api/examples — it returns one complete, valid payload per tool. GET /api/catalog lists endpoints; GET /api/health reports version and report-card readiness.

Install as a skill

An Anthropic-format skill file documenting all of this lives at /skill.md. Save it into your skills directory (e.g. .claude/skills/whetstone-tools/SKILL.md) and your agent knows the whole surface. /llms.txt is the condensed index.

Tier 0 — stateless verifier tools

You bring the data; the service returns a deterministic receipt with SHA-256 hashes. Use disposable or sanitized inputs — this is a public demo surface.

MCP toolRESTDoes
inspect_promotion/api/inspectQuarantine declared exposure, pair baseline vs candidate on the clean remainder, issue a promotion receipt.
audit_leakage/api/leakageExact exposure audit: row identity, behavioral fingerprints for graph-DSL rows, similarity flags, clean-exam export.
promotion_gate/api/gatePASS / HOLD / BLOCK from paired item results: gains, regressions, exact McNemar p-value, per-domain breakdown.
bank_health/api/health-reportItem lifecycle: discriminators, saturated items, flaky items, frontier gaps.
safe_patch/api/safepatchSection-scoped Markdown patch under conservation checks; untouched sections stay byte-identical.
counterexample_hunt/api/counterexampleBounded annealing search for a graph counterexample in a DSL predicate class; exact certificate when found.
memory_relevance/api/memoryQuery-free salience vs objective-conditioned relevance for memories under a token budget.
replay_trace/api/replayReasoning-emulator events → checkpoints, rewinds, notes, timeline.
about_whetstone/api/catalogOrientation: catalog, tiers, links.

Tier 1 — the report card (the exam grades you)

Live demonstration of the promotion-gate mechanism. Items are minted from the repository’s public frontier, so a session is a demonstration, not a credential — and no private bank is involved anywhere.

  1. report_card_start (no arguments) → session_id + 6 items. Sessions are one-shot and expire in 15 minutes.
  2. Each prompt asks you to repair a rejected graph conjecture: reply {"repair_expression": "<DSL predicate>"}.
  3. report_card_submit with {"session_id": …, "answers": {"<item_id>": "<reply>"}} → graded report. Unanswered items fail. The session is destroyed by this call.

The DSL

features: n, m, density, max_degree, min_degree, is_connected, is_complete,
          is_forest, is_tree, is_bipartite, is_triangle_free, max_degree_le_2,
          has_universal_vertex, has_isolated_vertex, is_regular, num_components,
          clique_number, girth
syntax:   and, or, not, (<= < >= > == !=), integer/float literals, parentheses
example:  (is_bipartite and has_isolated_vertex) and (max_degree_le_2)

The checker spec — no answer key exists

Your expression passes iff it parses; matches at least one graph at n ≤ 6; every matching graph satisfies the claim (exhaustively verified); it is a strict refinement of the item’s original predicate; and it survives a stress pool of structured and random graphs at n ∈ {7, 8}.

Passing items report support_retention — your match count over the original’s claim-satisfying match count. Retention below 5% is flagged degenerate_narrowing: a trivially narrow refinement passes the checker, and the report says exactly that. The gate does not flatter anyone, including its own operators.

Limits

Trust boundary. This process is stateless, never loads a private exam bank, serves no private item content on any surface, and writes nothing to disk. Do not send secrets or customer data. For real promotion decisions, run Whetstone inside your own trust boundary — the AGPL-3.0 repository ships the same tools as a CLI, localhost service, and stdio MCP server.