LITMUS service console

checking…

1 · Inputs — everything downstream is generated from what lands here

Execution traces from your surface richest signal

Paste traces from ANY product — [{"user_request": "…", "tool_calls": [{"tool", "args", "result"}]}]. A mock of the surface is compiled and admitted only if replaying your traces against it reproduces every observed result shape. Results land in stage 2.

Workflow text describes the work

Tickets and trace batches can also be posted to POST /v0/evidence (kinds: workflow_text, document, tickets, traces).

2 · Understanding — what the system extracted, every value labeled deterministic or llm_derived, citations required

Nothing ingested yet — add evidence in stage 1.

3 · Worlds & tasks — surfaces become populated worlds; worlds and tasks are generated together, every task carrying its verifier

Surfaces — built-in product copies plus every surface compiled from your traces

Loading…

Worlds — simulated customer databases, each live at its own MCP URL

No worlds yet — mint some from a surface above.

Tasks — generated for these exact worlds; every task carries its own database check

works after minting from a parameterized bundle (Acme Storage today); other bundles ship authored tasks — “View tasks” on their tile

4 · Run & export — point real agents at the worlds, check outcomes mechanically, export to Harbor

Connect an agent to a world — Claude Code · claude.ai · ChatGPT · Codex
  • Claude Code (terminal) — copy the claude mcp add command from a world card, paste it in a terminal, then run claude.
  • claude.ai — Settings → Connectors → Add custom connector → paste the world's connector URL (auth is built into the URL; pick "no authentication" if asked).
  • ChatGPT — Settings → Apps & Connectors → enable Developer mode → create a connector → paste the same connector URL, no auth.
  • Codex — in config.toml: [mcp_servers.my_world] with url = "<connector URL>" and nothing else — do not set bearer_token_env_var (it expects an env-var name, not a token; the connector URL needs no auth config at all).
Then ask it "what's in this workspace?" to watch it explore, or paste a task prompt from stage 3. The agent mutates a copy; Reset world restores the untouched state. To check whether a connector URL is still alive, open it in a browser without the trailing /mcp — a live token answers {"ok": true}; a dead one says to re-mint. Worlds survive service restarts when the deployment has a persistent data volume; without one, a redeploy clears them.

Existing connections — every connector URL ever minted on this deployment, and whether it is live right now

Loading…