Markdown for LLMs
Judgment channel: pitfalls
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# Judgment channel: pitfalls
Wrong forms, silent outcomes, diagnostics, typical formalizer
and AI-agent mistakes, and how to detect them. "Confirmed by running" items were reproduced
in this study on installed `law` (semantics `law.core/0.2`).
## 1. A silent judge as `FALSE_ONLY`
"The court stayed silent — so the condition is unmet" — no: before an adjudicated
assertion the result is `NEITHER` with `REQUIRES_JUDGMENT`. Silence never reads
as `ACTIVE` nor as achievement. In a composite condition
every judge-leaf gets the query with a `NEITHER` pair while the whole condition is `NEITHER`;
once the other leaves decide, there is no query.
Detection: `expect evaluation_status == REQUIRES_JUDGMENT`, not only
`truth_status`.
## 2. An answer of the wrong origin (confirmed by running)
Only `origin adjudicated` closes the channel. A court answer filed
as `case_input` is ordinary support: if the head is a judgment relation, it
closes anyway (a fact is a fact), but the organ and form (`judgment`)
checks never run; another's evaluation filed as `adjudicated` passes for
the organ's answer (an answer without `judgment` is an assertion of the
relation). Detection: name the origin literally in tests; in
doubtful places demand a `judgment` object with organ and form.
## 3. A dead rule awaiting a judge
A query comes only from a live rule: a refuted neighbour, a false
comparison, `false`, a support found under `not_known`, a diverging
status test make the rule dead — the answer is `NEITHER`/`COMPUTED` with
empty `judgmentRequests`. The exception is a `refuted` test over the
judgment relation itself at `NEITHER`: "is it refuted" undecided yet, the
judge decides, the rule is live. Detection: a control pair of
scenarios (dead rule silent / live rule asking).
## 4. A question without `kind`
A question literal is the same `Literal` as in CLIR, with mandatory
`kind: "literal"`. An off-schema question is rejected before computation
(`QUERY_INVALID`), never answered in another sense. Historically the same question
without `kind` gave `COMPUTED` where with `kind` it is `REQUIRES_JUDGMENT`, with no
single diagnostic. Detection: the question schema.
## 5. An invented threshold instead of an organ
"'Excessive = over N' as a number in a rule" substitutes counting for the channel. If
the criterion is genuinely countable (42 hours of rest), this is not judgment but a fact with
a threshold from the text; if evaluative ("plainly excessive") — a judgment
relation, and inventing a number is forbidden. The reverse mistake: the countable given to
the judge — eternal waiting for an unneeded answer. Detection: the
three-way fork (judgment / court fact / reading) — in a comment on
every evaluative feature, as in the Turkish constitution.
## 6. A typo in `authority`
A declaration's `authority` is the institution's StableId, not a term: needs no
declaration, checked by equality. A typo (`Cort` for `Court`) gives no
diagnostics — the real organ's answer is simply never accepted
(`JUDGMENT_AUTHORITY_MISMATCH` on an answer with `judgment`, silence on an answer
without it), and the case hangs in `REQUIRES_JUDGMENT` forever. Detection: grep
`authority` across the package and reconcile with the answer's organ.
## 7. A judge through defeat and immunity correctly silent
A defeasible rule whose defeater already gave an application with no priority over it
gives no query: no adjudicated assertion revives it. A power
whose effect is locked by an applicable undefeated immunity is not live:
no query from `valid_when`, the answer is `NEITHER`/`COMPUTED`. This is not a channel
defect but liveness: the judge's answer changes nothing. Detection: read
the defeat/immunity outcome before the query path.
## 8. AI-agent trap: writing the answer for the judge
"'The court will presumably find the measure proportionate'" is forbidden:
a presumption is a fact without support, and support without origin. A test with
an invented `adjudicated` passes but proves the test author's imagination, not law.
Close the channel in examples only with a marked synthetic
answer (`origin adjudicated` in a teaching case), in the corpus only with
a real one.
## 9. Words after "bearer" — lowercase only
Write `bearer`/`holder` only as lowercase keywords.
## 10. Judgment channel without `authority` — `LDC-E0201`
A body without an organ never names who decides — a static `LDC-E0201`
refusal ("judge without an organ"; the mutation cutting
`authority Court;` expects exactly this code). Not to confuse with item 6:
a typo in the organ stays silent until execution,
while a missing organ already fails `check`. Detection: the same mutation —
cut `authority` from a copy of the example and expect `LDC-E0201`.