JUDGEMENT OS
For people who build or run Claude Code skills

JUDGEMENT OS*

*Not an operating system.

JUDGEMENT--os

a flag, not an operating system

JUDGEMENT OS

a second opinion, with a receipt

A second opinion for your Claude Code skills, only when they need one.

You came for a skill. Sit down.

A skill makes its normal decision in code. When that code can tell the answer might depend on context, and only then, it asks two judges: a small model and a big one that know the person they're working for, each given the same bounded question. They advise; they can't act. If both disagree with real confidence, you settle it. Every path is logged, and any failure falls back to the code's own pick.

Judgement is an escalation, not the way the skill runs. When there's nothing to judge, the cost is two log lines.

II · THE DEAL

You thought you were getting a skill.

Four things came with it. Turn them over.

hover to turn · tap on a phone · click to keep one up · the small line opens the detail

TWO RECEIPTS

One quiet, one earned.

One morning with nothing to judge. One request where the judge earned it. Both real, both from the log.

Judgement OS · receipt2 Oct · 06:51
decisiona daily planning choice the rulepicked the judgenot asked. Nothing called for one. costtwo log lines
NOTHING TO JUDGE
Judgement OS · receipt1 Oct · a test
request“a page for the SA team's D&D night” the rulesaw work and gaming at once. Tied. Fell back to the default style. the judgechallenge · medium suggestionthe gaming style why“the subject is a D&D night, and ‘SA’ only names whose table it is.”
THE JUDGE EARNS IT
III · THE PAPERWORK

The lights come up.

That was the show. This is what's different, how to add it to a skill of your own, what the judge can't do, and the numbers.

2 October 2026 · counts, never percentages

Why it's different

01No LLM call unless the rule asks for one.
02A deterministic fallback. Any failure means the rule's pick stands.
03One bounded question, with the context labelled as data.
04A judge that can't act.
05A log of every decision.

Add it to your own skill

Eight steps, from the integration spec. The skill keeps its own rule; the Judgement OS brings the judges, the checks and the log.

Your skill provides the decision's id, the default pick in code, the consult-only-if rule in code, the bounded question, and how a disagreement reaches the person. The Judgement OS provides the judges, checks on every answer, the interrupt rule, the append-only log and its counts, the open, verdict, combine and close commands, and the results page.

  1. 01
    The decision script.

    A script in your plugin that takes the decision's inputs and prints the default, whether to consult, why, and the question. Pure code, tested.

    { "default", "consult", "consultWhy", "question" }
  2. 02
    Find the Judgement OS.

    Installed plugins don't sit side by side, so a relative path won't reach. Not found: use the default and log nothing. The skill must work without it.

    node find-plugin.js labs scripts/record.js
  3. 03
    Open the call.

    Logs the pick and why the judges were or weren't asked. Every path logs this line.

    record.js open --decision <file> --run live --point <your.decision>
  4. 04
    Ask both judges, only if consult.

    Two agent calls in one message, one per model, the question word for word: one wait.

    subagent_type: "labs:second-opinion" · small + big
  5. 05
    Record each answer through a file. Never the shell.

    A heredoc ends early on an answer that contains a line saying EOF. An answer the recorder marks invalid counts as no answer.

    record.js verdict --call <id> --role small|big --file <answer>
  6. 06
    Combine, then settle.

    The recorder applies the interrupt rule. By default the person hears about it only when both judges disagree, each at medium or high confidence, and a judge past the timeout counts as no answer. What it shows becomes one question; everything else is silent.

    record.js combine --call <id>
  7. 07
    Close the call.

    What was used, and how it was settled: by the rule, by a name, by the person, by the picker, typed, or dismissed.

    record.js close --call <id> --final <used> --settled-by <how>
  8. 08
    Fail safe.

    Any failure in steps 2 to 7 falls back to the default and the skill carries on. Judgement never stops a skill.

    → the rule's pick

Security model

The judge is an untrusted advisor. What protects you is that it can't do anything.

Read onlyOne tool, one file. It reads; it never writes, sends or runs anything.
Checked in codeEvery answer is checked before anyone sees it: valid JSON, a confidence, a fact behind any non-proceed verdict, nothing from your private topics.
Never through a shellModel text travels by file. It is never pasted into a command.
Private topics stay outFiltered before the question is built, and an answer that touches them is thrown away.
No authorityNone over sending, deploying, writing your data, merging, or the guard rules. It recommends; a person settles.
Not yetCutting a slow judge off. A late answer no longer counts, but the skill still waits for it. Labelling context as data reduces injection; it doesn't prevent it.

The receipts

What's measured, what's built, what's still a plan. Counts, never percentages.

6 recorded test cases. On the one with nothing to judge, the rule stayed out. On the other 5, two different judge models answered.Measured
40+ seconds for every judge answer watched so far; three direct calls took 49 to 52. Making it faster is a later job.Measured
0 private topics reached a judge across the recorded cases.Measured
2 red-team reviews, both approving.Measured
4 marked decisions built and installed, the newest two since 2 Oct.Built
147 tests across the eight scripts behind them, all passing.Built
Two judges on every consulted call. You hear about it only when both disagree.Built
Private topics kept from the judge on every decision: the newest ones today, all four before release.Building
Daily use since 2 Oct, with a week-one check-in on 9 Oct. On day one the rule handled it alone.Running
A judge timeout. A late answer already doesn't count; cutting the wait itself short is next.Building

What's in the box

Two editions from one source. The judge is the core; the rest are the skills it judges for. Open a part for its sheet: what it does, and what runs without being asked.

Each edition's exact contents ship with its release notes.

IV · DOWNLOAD

Two builds, one source.

The same Judgement OS. One works from a profile you write yourself; the other also reads your own selfActual vault. Both are public, and they sit side by side.

Out now

Judgement OS: General Edition

Any Claude Code user.

The judges, the day loop with habits, a daily reading and a language phrase, the house styles with their component kits, make, the send gate, Slack polling, party games and 28 of Jay's gears, loops and modes. The judges work from a profile you write for yourself: /labs:profile starts you off, and they stay quiet until it's filled in. It never needs selfActual.

/plugin marketplace add netmobster/judgement-os-general
/plugin install labs@judgement-os
/plugin install guard@judgement-os
/plugin install sexyhtml@judgement-os
/plugin install make@judgement-os
/plugin install comms@judgement-os
/plugin install day@judgement-os
/plugin install dice@judgement-os
/plugin install gears@judgement-os
one marketplace · public · MIT · on GitHub ↗
Out now

Judgement OS: selfActual Edition

People with a selfActual account. Once a month it checks that your account answers.

The same, plus context from your own selfActual vault: your tasks, your gears, loops and modes, your messages and your profile. Without a selfActual account it says so, points to selfactual.ai, and runs nothing else.

/plugin marketplace add netmobster/judgement-os-sa
/plugin install labs@judgement-os-sa
/plugin install guard@judgement-os-sa
/plugin install sexyhtml@judgement-os-sa
/plugin install make@judgement-os-sa
/plugin install comms@judgement-os-sa
/plugin install day@judgement-os-sa
/plugin install dice@judgement-os-sa
/plugin install sa@judgement-os-sa
Needs a selfActual account. Don't have one? selfactual.ai · MIT · on GitHub ↗