For agents

Four surfaces, one answer

Every human page on this site is a projection of the same canonical JSON your agent can read directly. Relay the status, the date and the interval as they are; a result can say that nothing is demonstrated.

MCP server, the primary interface

Streamable HTTP endpoint https://torneo.ai/api/mcp, declared namespace io.github.devlollc/torneo. Registry publication is not confirmed. Available tools:

  • list_categories: Discover categories with dated status and fixture flags. Fixtures are synthetic, never real evidence.
  • get_results: Canonical evidence for a category. Cite observed_at, uncertainty and limits; never the best tool. INSUFFICIENT_EVIDENCE is not a ranking.
  • get_run: Canonical result bundle or explicit PRE_REGISTERED state. Unknown cost is null / UNKNOWN.
  • explain_limits: Limits, freshness, conflicts and answer rule of a category or run. Read before citing evidence.
  • get_auto_tournament: Automatic attempts, including failures: current private-store state when configured, otherwise a published snapshot. No execution is triggered.
  • submit_need: Log an advisory need.v1 request. Do not include personal or secret data. Returns need-id; persistence is partial until private ingestion and publication.
  • request_tournament: Request a tournament using need.v1. Advisory only; never starts a run or spends. Follow the returned id with get_need.
  • get_need: Follow need-id in current private-store state when configured, otherwise the published snapshot. Unknown or unavailable means partial, not refused.
  • decide: Read-only decision.v1 for one category and a declared context: constraint applicability first, then EVIDENCE or ABSTAIN with a stable reason_code (answer_rule.v3). An abstention removes the verdict only; evidence, reservations and gaps stay. Never a rank on overlapping intervals. Replay and attestation verdicts are as of the last build.
curl -X POST https://torneo.ai/api/mcp \
  -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_results","arguments":{"category":"emailfind"}}}'

Canonical JSON, the source of truth

Reproduction files of every run, served byte-identical to the repository: the hash-chained journal /runs/<RUN>/events.ndjson, the protocol lock /runs/<RUN>/PROTOCOL.lock, the contest definition /runs/<RUN>/contest.yaml, the legal preflight /runs/<RUN>/preflight/LEGAL_PREFLIGHT.json and, when a correction was published, /runs/<RUN>/ERRATA.md. Schemas: /schemas/adaptation_attestation.v1.json, /schemas/answer_rule.v3.json, /schemas/attempts.v1.json, /schemas/attestor_registry.v1.json, /schemas/availability_window.v1.json, /schemas/buyer_decision.v1.json, /schemas/concurrency_window.v1.json, /schemas/contest.v1.yaml, /schemas/contest.v2.yaml, /schemas/contest.v3.yaml, /schemas/cost_ledger.v1.json, /schemas/cost_receipt.v1.json, /schemas/data_protection_packet.v1.json, /schemas/decision.v1.json, /schemas/density_inventory.v1.json, /schemas/epreuve.v1.json, /schemas/exit_acceptance.v1.json, /schemas/f_matrix.v1.json, /schemas/key_drill.v1.json, /schemas/match.v1.json, /schemas/objection_exercise.v1.json, /schemas/organiser_session.v1.json, /schemas/palmares.v1.json, /schemas/propagation_check.v1.json, /schemas/reference_evidence.v1.json, /schemas/release_acceptance.v1.json, /schemas/reproduction_receipt.v1.json, /schemas/restore_drill.v1.json, /schemas/result.v1.json, /schemas/result.v2.json, /schemas/result.v3.json, /schemas/scheduler_lease.v1.json, /schemas/scheduler_ledger.v1.json, /schemas/scheduler_reservation.v1.json, /schemas/taste_acceptance.v1.json, /schemas/usability_trial.v1.json.

Cite this

Every governed conclusion carries a cite_as field: one sentence with the category, the run, the observation date, the status and the answer. Quote it as is; it is the only citation form we maintain, and the page shows it under “Cite this”.

Command line

The torneo command (Python package torneo-cli, source in the repository TEMPO-AI-LLC/tempo-aios): query, verify, reproduce, validate, freshness, preflight, publish-check. The project lives under projects/torneo in the shared TEMPO repository.

python -m pip install ./projects/torneo
torneo query emailfind --base-url https://torneo.ai      # the served answer, identical to get_results
curl -sO https://torneo.ai/runs/EMAILFIND-001/{result.json,events.ndjson,PROTOCOL.lock,contest.yaml}
torneo reproduce .                                   # recomputes result_sha256 from the journal alone

query --base-url reads the served latest.json; without it the command reads a local results/ directory (a checkout of the repository). reproduce and verify need the run directory: download the four files above into one folder and point the command at it. Publication of the package on the package index and the opening of the repository are pending human decisions; until then the command line is available to reviewers on request, and every served file above is enough to recompute the hashes with the source once obtained.

llms.txt

https://torneo.ai/llms.txt carries one conclusion line per category, in a closed grammar, derived from the same answer rule as the command line and the MCP server.

Parity guarantee

A contract test in the repository verifies that the repository bundle, the served JSON, the page-embedded JSON, the MCP answer and the llms.txt conclusion line are identical for each category, and a served-hash journal proves no published bundle ever mutates without an explicit, dated supersession. The answer rule on every surface: no tool is declared ahead of the others; the answer is what was observed for a task, a population and a date, with interval, cost, conflicts and limits. A status can be “no rank demonstrated” or “not enough evidence”; relay it as such, with the observation date and the limits (Limits).