---
title: "Decision Rooms in a Minute"
subtitle: "Decisions with a long-lasting effect go to a room for a blind evaluation. There, different AI models give their opinion based on facts. Over time, we can measure whether this method improved our code."
date: 2026-10-25
events: "16.–25.10.2026"
tags: ["atlas"]
summary: "A one-minute introduction to the decision rooms, told with one real room: my choice at 50 percent, the room's verdict on it at 3, its condition at 80, and the judging model Jev changing its score once the facts came in. The full story of a room is in The Room That Disagreed With Me."
video: "https://sf3d-media.pages.dev/rooms-explainer/rooms-explainer-en.mp4"
captions: "https://sf3d.fi/video/rooms-explainer-en.vtt"
canonical: https://sf3d.fi/blog/decision-rooms-in-a-minute
html: https://sf3d.fi/blog/decision-rooms-in-a-minute
author: Petri Korhonen, SF3D AI Lab (Sunrise Software Oy, Tampere, Finland)
site: https://sf3d.fi (index of all articles in Markdown: https://sf3d.fi/llms.txt)
numbers: measured on the lab's own hardware unless the text marks them as held for the AMD R9700 whitepaper; the Evidence block at the end of an experimental article names the run, the date, n and the pre-registration each claim rests on
---
<p class="standfirst">The video above is the short version, for someone new to the subject. This page is its evidence: the room it animates, where each number comes from, and where the longer story is.</p>

## The room in the video

AvoQ is the coding app I am building: an AI agent writes the code, and a plan locks the parts other code depends on. One of its decisions is how the app notices when the AI changes such a part. A checker compares the locked functions before and after every change. On 12 October I chose plan A: a code parser with the grammars of three languages. When the decision went to a room on 16 October, my AI assistant's weights put plan A at `0.50`.

Room R-F got the question blind, without my choice. Two models from two families took the seats, Claude Opus 5.5 and GPT-6 Luna, and the room had a page fetched: the TypeScript parser's own README, which says TypeScript and TSX are two grammars. Plan A had one of them. A `.tsx` file could not have been checked.

The room gave plan A `0.03` and named a condition: four grammars, each with its own test. With the condition, the room gave `0.80`. Between the rounds Jev, a judging model from TypeSafe, scored the arguments: plan A at `0.51` before any argument, plan A with the condition at `0.96` after the first round. The whole room took `1 min 53 s`.

I took the condition the same day. It became row 84 of AvoQ's decisions.

<aside class="math">

**MATH BOX**

#### The room's number: the weaker seat

Each seat ends with a weight on every option. The room does not average them. It reads each option at the seat that supports it less, and picks the option whose weakest support is highest:

`value(o) = min over seats s of w_s(o)`, and the room's answer is `argmax over o of value(o)`.

In R-F, plan A had `0.10` from Claude and `0.03` from GPT, so its value was `0.03`. Plan A with the condition had `0.80` and `0.90`, so `0.80`, and no option had a higher weakest support. That is Wald's maximin rule (1950) applied to a room: one enthusiastic seat cannot carry an option the other barely accepts.

Jev's score is a separate reading, the judge's view of the arguments. It is not part of the room's number.

</aside>

## The long version

The video keeps to one room and one minute. [The Room That Disagreed With Me](/blog/the-room-that-disagreed) shows a room in full: the real room in Atlas Connect, its arguments, the record every room leaves, and a room that disagreed with me and was itself unsure.

## What time will show

When the video was made, on the morning of 25 October, rooms had checked `151` of my decisions and disagreed with `30`. By the afternoon the count was `159` and `31`. Every outcome is recorded, so over time the record can measure whether this way of deciding improved the code.

## Transcript

I'm building an app where AI writes the code. Its core has to last, and be built right for privacy and security.

That takes many hard decisions. The ones with a long-lasting effect go to a room for a blind evaluation.

Here's one: how does the app notice when the AI changes code the plan has locked?

My AI assistant weighs the options. Plan A gets 50 percent, and I pick it.

Two AI models from different families give their opinion, based on facts, without seeing my choice.

Between the rounds, a judging model, Jev, scores the arguments, not the votes.

The room disagrees. Plan A falls to 3 percent: it can't check part of the code.

The room's condition: check that part too, and test all four. With it, 80 percent. I took the condition.

Rooms have checked 151 of my decisions and disagreed with 30. Over time, we can measure whether this method improved our code.

## Sources & further reading

- A. Wald, *Statistical Decision Functions* (1950): the maximin rule, choosing the action whose worst case is best.
- tree-sitter-typescript, README (github.com/tree-sitter/tree-sitter-typescript): TypeScript and TSX as two grammars; the page the room fetched.
- [The Room That Disagreed With Me](/blog/the-room-that-disagreed): a room in full, with its own sources.

<aside class="evidence">

**EVIDENCE**

#### Room R-F `huo_771f7e2175f84132` · 16.10.2026 · 2 seats, 2 rounds, 5 options

- pre-registration: `AVOQ-HUONE-6-ENNAKKO` v4, locked 2026-10-16T08:50:58Z; predictions R1 to R6 held — source `AVOQ-HUONE-6-TULOS` v1 — status: measured
- claim: the decision before the room, `dec_8d8acb282a0a44da` at 2026-10-16T08:52:51Z, carrying the owner's choice of 12.10.2026 (AvoQ `docs/DECISIONS.md` row 12): `tree-sitter` chosen, the recommendation's weights `tree-sitter` `0.50`, `tree-sitter-ehdolla` `0.25`, `kielipalvelin` `0.12`, `tekstitaso` `0.08`, `ei-tiedeta` `0.05` — source the Atlas decision log — status: measured
- claim: opened `2026-10-16T08:53:42Z`, closed `08:55:35Z`, `1 min 53 s`; seats Claude Opus 5.5 (N) and GPT-6 Luna (B) — source the room's record (`atlas_huone_lue`) — status: measured
- claim: the fetched `tree-sitter-typescript` README defines TypeScript and TSX as two grammars; a second fetch found `LANGUAGE_TSX` in its Rust binding — source the room's fetches, `AVOQ-HUONE-6-TULOS` v1 — status: measured
- claim: the room's answer `tree-sitter-ehdolla` at maximin `0.80` (N `0.8`, B `0.9`); `tree-sitter` at `0.03` (N `0.1`, B `0.03`) — source the room's record, `maximin` — status: measured
- claim: Jev (`jev-1.13.0`) scored round 1 at `08:54:25Z`, before any argument, top `tree-sitter` `0.51`, and round 2 at `08:55:08Z`, after round 1's arguments and the fetch, top `tree-sitter-ehdolla` `0.96` — source the room's record, `tuomiot` — status: measured
- claim: the owner took the condition, `dec_e6e9917cdc364c8e` at 2026-10-16T12:46:23Z, AvoQ `docs/DECISIONS.md` row 84 — source the Atlas decision log — status: measured
- claim: rooms returned a result on `151` decisions and disagreed with `30`, read the morning of 25.10.2026; `159` and `31` read the same afternoon — source `atlas_decision_calibration` — status: measured
- not shown: whether the condition will turn out right (no world outcome is recorded for row 84 yet); Jev's confidence, the room's declared bar, the judges' token counts; Clef, a second judge on trial whose readings are not counted
- the video's sources, scene by scene: `video/rooms-explainer/sources.md` in the lab's repository

</aside>

---

<p class="sig">— SF3D</p>
