> ## Documentation Index
> Fetch the complete documentation index at: https://docs.domesystems.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Judges

> Configure The Court convening trigger, read rulings, and manage judges

Configure when The Court convenes and what its verdicts do. These tools manage the Intelligent Authorization depth — refer to [Intelligent Depth](/govern/judges#decision-flow) for the conceptual model. All Judges tools require workspace context.

<Info>
  Renamed from `dome_moot_*` in the 2026-06 release. Update saved agent configs and tool allowlists — the old names are no longer registered.
</Info>

## Get workspace mode

`dome_judges_get_workspace_mode`

Return the active workspace's current Court config: convening trigger, effect, `escalate_no_match`, `strict_audit_convene`, the legacy `mode` mirror, and last-changed metadata. A workspace with no settings row returns `mode=disabled` (graceful default).

| Parameter | Type | Required | Description   |
| --------- | ---- | -------- | ------------- |
| —         | —    | —        | No parameters |

**Permission:** `judges.view`

## Update workspace mode

`dome_judges_update_workspace_mode`

Set the active workspace's Court config. Either pass the structured trigger (recommended) or the legacy `mode` (back-compat).

When `convening` is set, it is authoritative and `mode` is ignored. `policy_escalation` convenes the Court on a deterministic permit/forbid whose bundle carries a matching [court-scope marker](/govern/judges). `effect=audit` observes without overriding; `effect=live` applies the verdict under the directional clamp.

A `@court("strict")` pin on a determining policy always forces the deterministic outcome — the Court can never move it. By default a strict pin suppresses the Court entirely; set `strict_audit_convene` to `true` to still convene observe-only and record an audit ruling. Refer to [Resolve Access Ambiguity](/govern/judges).

| Parameter              | Type   | Required | Description                                                                                                                          |
| ---------------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `convening`            | string | No       | Trigger: `disabled`, `no_match`, `policy_escalation`, `all`, or `judge_policy`                                                       |
| `effect`               | string | No       | Effect once convened: `audit` (default) or `live`                                                                                    |
| `escalate_no_match`    | bool   | No       | `policy_escalation` only — also convene on no\_match (default `true`)                                                                |
| `strict_audit_convene` | bool   | No       | `judge_policy` / `all` only — convene observe-only on `@court("strict")` pins to record an audit ruling (default `false` = suppress) |
| `mode`                 | string | No       | Legacy single-axis fallback: `disabled`, `audit`, or `live`. Ignored when `convening` is set                                         |

**Permission:** `judges.manage`

```json title="Convene on policy escalation, apply verdicts live" theme={"system"}
{
  "name": "dome_judges_update_workspace_mode",
  "arguments": {
    "convening": "policy_escalation",
    "effect": "live",
    "escalate_no_match": false
  }
}
```

```json title="Legacy single-axis mode (back-compat)" theme={"system"}
{
  "name": "dome_judges_update_workspace_mode",
  "arguments": {
    "mode": "audit"
  }
}
```

<Info>
  `convening=all` + `effect=live` runs a full Court deliberation on every governed decision (\~14–18s added per call). Pair `all` with `effect=audit` for high-coverage shadow validation without affecting agent latency.
</Info>

## List rulings

`dome_judges_list_rulings`

List Court rulings, newest first. Each ruling carries the deterministic baseline (`tier_breakdown.tier0`) the Court convened on plus the final outcome — overrules are visible by comparing the two.

| Parameter    | Type    | Required | Description                                                      |
| ------------ | ------- | -------- | ---------------------------------------------------------------- |
| `outcome`    | string  | No       | Filter by Court outcome: `permit`, `forbid`, `court_unavailable` |
| `agent_id`   | string  | No       | Filter by agent UUID                                             |
| `vote_split` | string  | No       | `unanimous` or `split`                                           |
| `start_time` | RFC3339 | No       | Lower time bound                                                 |
| `end_time`   | RFC3339 | No       | Upper time bound                                                 |
| `limit`      | int     | No       | Maximum results                                                  |

**Permission:** `judges.view`

## Get ruling

`dome_judges_get_ruling`

Return one ruling's full detail — case inputs, votes per judge, tier breakdown, applied constitution clauses.

| Parameter   | Type   | Required | Description |
| ----------- | ------ | -------- | ----------- |
| `ruling_id` | string | Yes      | Ruling UUID |

**Permission:** `judges.view`

## Judges, panel, and constitution

The same workspace-scoped tools also expose CRUD over the judge panel and constitution. Each operation is gated by `judges.view` for reads and `judges.manage` for writes.

| Tool                                | Permission      | Description                                |
| ----------------------------------- | --------------- | ------------------------------------------ |
| `dome_judges_list_judges`           | `judges.view`   | List all judges available in the workspace |
| `dome_judges_get_judge`             | `judges.view`   | Show one judge's configuration             |
| `dome_judges_create_judge`          | `judges.manage` | Create a custom judge                      |
| `dome_judges_update_judge`          | `judges.manage` | Update a custom judge                      |
| `dome_judges_delete_judge`          | `judges.manage` | Delete a custom judge                      |
| `dome_judges_get_judge_panel`       | `judges.view`   | Read the panel seating and weights         |
| `dome_judges_update_judge_panel`    | `judges.manage` | Replace the panel config                   |
| `dome_judges_list_constitutions`    | `judges.view`   | List constitution clauses                  |
| `dome_judges_create_constitution`   | `judges.manage` | Add a constitution clause                  |
| `dome_judges_update_constitution`   | `judges.manage` | Edit a clause                              |
| `dome_judges_delete_constitution`   | `judges.manage` | Remove a clause                            |
| `dome_judges_list_personality_axes` | platform read   | Read the personality-axes catalog          |

Preconfigured judges are immutable. Attempts to update or delete one return a structured error.
