Method

How every ruling is made.

Verdicts are derived, routes are computed, and both are drift-checked in CI against the published rules below. Nothing on this page is a summary of the code — the routing rule you read here is rendered from the routing module itself.

The rubric

Five axes, each scored 0–2. The total decides the verdict.

OutputCan a current model produce the artefact at all?
InputsCan the reader actually supply what the task needs?
VerificationCan the reader check the result without the expertise they were avoiding?
LiabilityWho carries the consequences if it is wrong?
Effort deltaHow much of the work does the model genuinely absorb?

The capability fields

The seven reader-facing fields on every ruling, with the decision rule that keeps subject 300 consistent with subject 3. Ties always break toward the harder value.

skillLevel none | chat-fluent | power-user | developer
Assign by the highest requirement in the happy path, not the average. Torn between two levels: take the higher.
timeToFirstOutput 2 | 5 | 15 | 30 | 60 | 120 | 240 minutes
Wall-clock time from opening a chat to holding something that looks like the deliverable. Measured, not estimated; round up to the rung.
timeToVerified the same ladder, or n/a — cannot be self-verified
Time until you would act on it: reading critically, checking every number, fixing what is wrong. If verification needs the expertise the reader is avoiding, the value is n/a and the Verification axis must be 0 — CI enforces the link.
costAllIn £0 | £X/month | £X one-off
The cheapest genuinely sufficient route, including any subscription the task actually requires. Paired on every page with what the human alternative costs, sourced and dated.
failureMode recoverable | costly | unrecoverable
Assign by the worst plausible outcome of a competent reader following the page — not the worst imaginable one. Rendered as one flat sentence of prose, never a badge alone.
whoChecks you | a colleague | a professional | nobody can, cheaply
Who must look at the output before it is acted on. “A professional” means a licence, a qualification or accountable authority.
route diy | tool | human
Computed from the fields above by the rule below — never chosen. Forcing a route means changing a field value with a written reason in the audit trail, or an entry in the public override register.

The routing rule, verbatim

Rendered from src/domain/route.ts at rule version1.0.0 — the same function that computed every stored route, whose output CI recomputes and compares on every change. Clauses are evaluated in this order; the first match wins.

  1. humanwhoChecks is 'a professional', or failureMode is 'unrecoverable', or blockers contain legal-accountability, regulated-advice or verification-cost — tested first, overrides the others
  2. diyskillLevel is 'none' or 'chat-fluent', timeToVerified ≤ 60 minutes, and failureMode is 'recoverable'
  3. toolevery remaining case — the residual, never the default

Tool is the residual, never the default — it is the highest-revenue route, which is exactly why it cannot be the fallback anyone reaches for. Manual forces are never edits to a stored route: the only levers are a field change with a written reason, or a public entry inthe override register.

The evidence rules