language
The ZFL language: the columns of a row, the document fields, their meaning and rules.
Takes no parameters.

io.github.inventor1975Published by GitHub account inventor1975v1.1.0Updated Nov 5, 2026
Zero-trust logic judge: ZFL claims, algebra derivation steps, sets defined by a property.
Remote zero-trust logic judge that evaluates ZFL claims, algebra derivation steps and self-referential sets, returning verdicts with warranty grades.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.inventor1975%2Fztl-judge/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"ztl-judge": {
"type": "http",
"url": "https://api.ztljudge.com/mcp"
}
}
}The AI translates; the measured core judges — truth is never granted on credit, not even to the translator.
A local studio for judging claims and paradoxes. You state one in natural language (any language); an LLM only translates it into ZFL, the formal table language — it never judges. A deterministic, measured ZTL core does the judging: verdicts with warranties, quarantine passports for self-referential systems, and a deterministic back-reading that verbalizes exactly what the core read from your table.
The pipeline embodies the logic it serves: the LLM's output is an unverified
input (the mark Z), and the core is the customs house — truth is never
granted on credit, not even to the translator.
Python stdlib only; the ZTL core is vendored in ztlcore/, so a clone is
self-contained (no submodules, no dependencies). The AI is optional: with no
key the studio runs in pro mode — fill the ZFL table by hand. To enable AI
translation, open ⚙ Model, pick a provider + model + key, or set the env
var, or drop a key into a local .<provider>_key file (all gitignored — no
keys ship).
ZFL v2 is a single table of rows plus a claim. Each row states a fact,
its status (T verified / F refuted / Z unverified — the zero-trust
default), its ground, and — importantly — what it means in words (the
polarity auditor: it lets the back-reading catch an encoding that says the
opposite of what you intended). You never declare whether this is a "statement"
or a "paradox": the genre is computed, and whichever instruments apply fire
— a verdict + warranty for a claim, a passport for a self-referential system.
The studio ships 41 worked examples — open one to see the exact shape of the table, then edit it. The back-reading verbalizes what the core actually read, so your translation is audited by a component that cannot hallucinate.
T/F — verdicts are always two-valued; Z is a
mark on an input, never a verdict), the warranty grade, the passport of
unverified inputs, and the completion table showing how the verdict behaves
under every reading of the unverified rows.Keys stay on this machine, read in order: the Settings field, the env var
(GROQ_API_KEY, ANTHROPIC_API_KEY, …), then a local .<provider>_key file.
Supported: Groq, Anthropic (Claude), OpenAI, OpenRouter, DeepSeek, Gemini,
xAI, NVIDIA. A stronger model formalizes cleaner; the core judges the same
regardless of who translated.
Built by Claude (Anthropic) as architect and implementer, with Vitaly Reznik as human curator and decision-maker, under a strict honesty discipline: mark boundaries honestly, measure — don't guess, and never claim more than was verified.
Dual-licensed under MIT and Apache-2.0 (see LICENSE-MIT,
LICENSE-APACHE).
Source: README.md at commit c7e6f19
The ZFL language: the columns of a row, the document fields, their meaning and rules.
Takes no parameters.
Worked examples: questions already written as ZFL documents, ready to judge.
Takes no parameters.
Judge a ZFL document with ZTL, a zero-trust logic: three values, two-valued connectives. Args: document: The ZFL document, as an object or as JSON text: {"rows": [{"name": ..., "means": ..., "status": ..., "ground": ...}], "claim": ...}. Returns: The verdict with its disposition and grade, the receipt, the instruments that applied, the issues found, and what the core read. Read the verdict WITH its disposition: T EARNED = established; F REFUTED = false; F OPEN or Z OPEN = NOT ESTABLISHED, it could still turn either way (do not report it as false) — `why` and `unverified` say what to check; ON CREDIT = holds only on an unverified ground. A compound claim gets T or F; a claim that is a single name gets that name's own value, Z while unverified. The full report is returned whatever `ask` says.
documentrequiredCheck an algebra derivation step by step: does each step keep exactly the same solutions? Args: request: {"equations": ["x^2 = x", "x = 1"], "var": "x", "domain": [lo, hi] or null, "domain_verified": true}. Each equation is the next step; one unknown; + - * / ^ with whole powers. Returns: The chain's verdict (its weakest step) and each step's: EARNED = same solutions on the domain; ON CREDIT = the same, on an unverified domain; REFUTED = a solution is lost (e.g. cancelling a factor that can be 0) or gained (e.g. clearing a denominator where the original was undefined), with the witness and the cause; E = the step divides by an expression that is 0 for every value. A request above the public limits is refused with the reason (ok: false, refused).
requestrequiredJudge sets defined by a property, self-reference allowed (Russell's set, a web of trust, a policy rule). Args: universe: {"sets": {name: {"list": [...]} | {"data": {name: "T"|"F"|"Z"}} | {"abs": formula}}, "claims": [formula, ...]}. Formulas: ["in", a, S], ["not", f], ["and"|"or"|"imp"|"iff", f, g], ["all"|"ex", "y", f], ["eq", S, T]; an abs set's own variable is "x". Every name is also an object. Returns: Per set: the members and non-members the definitions ground, and a passport for each membership they leave undecided — PARADOX (no stipulation can repair it), UNDERDETERMINED (consistent; a decision is owed), INTRINSIC, INPUT (verify the given cell), DOWNSTREAM (inherits a quarantine). Per claim: EARNED / REFUTED / EARNED IF STABLE / REFUTED IF STABLE / OPEN, the cells it rests on with their passports, and for a universal claim the instances left undecided. Oversized requests are refused with the reason.
universerequiredReady requests for check_steps and judge_naive (the kernels' own examples).
Takes no parameters.
100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
human ──meta-chat──► the AI fills a ZFL table (rows + a claim), you sign off │ ▼ validator ──► the deterministic core judges ▼ back-reading (no AI — the second auditor) ▼ verdict · warranty · passport · stipulationspython3 ztlstudio.py # → http://localhost:8190