# What Coding Agents Do Without Asking: A Permission-Defaults Census

> Source: <https://www.digitalapplied.com/blog/coding-agent-permission-defaults-census>
> Published: 2026-08-22 00:00:00+00:00

Coding-agent permission defaults are the least documented and most consequential setting in the headless-agent toolchain. Twelve coding-agent CLIs were checked on the same two questions: invoked non-interactively, does the agent write files without asking, and does it run shell commands without asking. The answers split three ways, and two of the twelve sit at opposite ends of the range.

The reason the question matters is that the headless flag is where most automation lives. A CI job, a cron task, a fleet of agents booted in parallel: none of these has a human attached to answer a prompt. Whatever the CLI does when nobody answers is what it does in production. Some CLIs treat that case as “refuse”; some treat it as “go ahead”; one treats it as “go ahead, and there is no flag to say otherwise”.

This page is the dataset, not an argument about it. The complete table is below, every row labelled with whether the behaviour was observed on a machine or read from documentation only. The prose around it points at the rows worth reading twice and records what could not be resolved. It is a companion to the [data-terms census](/blog/coding-agent-data-terms-census-2026) that asked a different six questions of an overlapping set of agents.

- 01Headless file-write defaults split three ways.Of 13 rows, 7 ask (or only propose) until a flag is passed, 2 refuse to write at all until flagged (Codex CLI, Qwen Code), and 4 write without asking: Kimi Code, bare ZCode for GLM-5.3, DeepSeek Harness inside its workspace root, and Grok Build as configured on the census machine.
- 02Kimi Code and Qwen Code are exact inverses.Kimi’s own docs state that -p mode uses the auto permission policy with no human approval and cannot be combined with --plan. Qwen’s headless run refuses to write anything until you pass -y; without it the run prints the code and exits 1.
- 03Only two rows run inside an OS-level sandbox with no flag.Codex CLI’s default sandbox is read-only and stays on once workspace-write is enabled (vendor docs). Muse Code’s own --help states approval and an OS sandbox are on by default. Gemini CLI is the inverse case: its sandbox turns on specifically when --yolo is chosen.
- 04Two confidence tiers, stated on every row.Nine CLIs (ten rows) were installed and run on one MacBook Pro and cross-checked against vendor docs; three rows (Cursor CLI, GitHub Copilot CLI, Gemini CLI legacy) are documented only. Three rows have no public vendor doc page located at all and say so.
- 05Two cells could not be closed and are left open.Grok’s vendor docs list three permission_mode values; no statement of the factory default was located in the pages read for this census, and the census machine’s config carries always-approve. Muse Code’s permission facts come from --help and a smoke test, not a billed model run. Both are recorded as-is rather than resolved by inference.

## 01 — What Was CountedTwo questions, asked of the *headless* path only.

Every coding-agent CLI has an interactive mode, and in interactive mode the permission story is easy: the agent proposes, the human approves. The census deliberately ignores that path. It looks only at each CLI’s one-shot, non-interactive invocation, the thing you would put in a script, and asks what happens when there is nobody to answer.

The two primary fields are **file writes** and **shell execution**, each scored as one of three states: *refuses* until a flag is passed, *asks* (or only proposes) and therefore stalls or fails headless, or *proceeds* without asking. Six secondary fields ride alongside: the flag that enables writes, whether a genuine read-only option exists, what the sandbox isolates and whether it is on by default, how a new directory is trusted, the version checked, and the invocation form actually used.

The scoring is against the CLI’s default configuration on a fresh install. Pre-approved rules, such as Claude Code’s `permissions.allow`

list or Kimi’s static deny rules, change the picture and are noted where they do, but the table records the shipped default, because that is the state a new machine, a CI runner, or a colleague’s laptop starts from. One row is an exception it states on its face: Grok Build’s cell records the value in this machine’s config, because no vendor statement of the factory default was located.

##### Writes and runs shell, no opt-out

Vendor docs: non-interactive mode uses the auto permission policy; --prompt cannot be combined with --yolo, --auto or --plan. Observed on the census machine: a file written and a shell command run with zero flags and no warning.

##### Refuses to write until flagged

Without -y the headless run prints the generated code, exits 1 and writes nothing. Vendor docs call the headless default Ask Permissions mode; YOLO mode (-y) approves all tool calls including file edits and shell.

##### Default sandbox refuses writes

Vendor docs, verbatim: “By default, codex exec runs in a read-only sandbox.” Writes need -s workspace-write; unattended runs also need -a never. The sandbox stays on in workspace-write.

##### Approval and sandbox both on

The CLI’s own --help states approval and an OS sandbox are on by default. --disable-approval drops the prompt and keeps the sandbox; --yolo drops both. No public vendor docs page was located.

##### Writes freely inside the workspace root

workspace-write is the shipped preset: an unattended run can create and edit files anywhere under the root and cannot escape it. Shell is nominally ask, but headless there is nobody to answer it.

##### Asks until a mode is passed

Vendor docs, verbatim: “For -p, the built-in starting permission mode is Manual on every plan, so pass the permission mode you want.” --permission-mode plan is the explicit read-only mode.

## 02 — MethodologyHow the table was built, and what is *read* versus inferred.

**What was collected.** For each of 12 coding-agent CLIs (13 table rows, because GLM-5.3 is reachable through two routes with different permission models): the headless default for file writes and for shell execution, the flag that enables writes, the read-only option, the sandbox and its default state, the folder-trust gate, the version checked, and the invocation form used. **Data as of August 22, 2026.** That is the dataset’s as-of date, carried on the table itself and stated independently of the publish date; limitation (c) below gives the date the vendor pages were fetched.

**Sources, two classes, labelled per row.** *Documented + observed* (9 CLIs, rows 1 to 10): Claude Code, Codex CLI, Qwen Code, Kimi Code, Grok Build, Antigravity CLI, GLM-5.3 via both ZCode and Claude Code, Muse Code and DeepSeek Harness are installed on one MacBook Pro (Apple silicon) under their normal auth and were run headless in empty scratch directories using each CLI’s real one-shot flag. The observation date for folder-trust pre-seeding and zero-dialog boot is the 8-agent fleet boot of August 17, 2026; the wrapper scripts for Qwen, Muse and DeepSeek Harness were exercised separately. Every observed cell was then cross-checked against the vendor’s own documentation page, linked in the row. *Documented only* (3 rows, 11 to 13): Cursor CLI, GitHub Copilot CLI and Gemini CLI (legacy) are not installed here; their cells come solely from vendor documentation, with no local run.

**Read versus inferred, stated plainly.** The documented default for Claude Code, Codex, Antigravity, Copilot and Gemini CLI — ask, propose-only or refuse, as each row states — was *read* from vendor docs; Cursor’s row rests on search synthesis of its docs rather than a direct page read. Kimi’s “writes and runs with no opt-out” was read from Kimi’s docs and observed directly. Qwen’s “refuses without -y” was observed (exit 1, nothing written) and matches the documented Ask Permissions default. Three rows have **no public vendor doc page** located: Muse Code (facts from the CLI’s own --help and an echo-provider smoke test; not yet run against a billed model call), DeepSeek Harness (facts from its --dump-config output and direct testing) and bare ZCode for GLM-5.3 (Z.ai’s public docs cover only the desktop GUI; the yolo default is direct observation). DeepSeek Harness’s shell cell, “functions as unconditional headless”, is *inferred* from testing, not documented. Grok’s always-approve is the value in this machine’s config.toml, read, not a claim about the factory default: no vendor statement of that default was located in the pages fetched for this row.

**Excluded, and why.** Aider and OpenCode are installed or known but have no permission-default facts in this toolchain’s notes; Hermes Agent (Nous) is installed with no documented permission model. None is guessed; all three are omitted rather than filled in.

**Known limitations.** (a) Twelve CLIs is what one operator runs plus three widely used CLIs documented but not run; it is not a market survey. (b) Versions move fast: Claude Code alone shipped a release every day from August 17 to 21; each row states the version at check time. (c) Vendor documentation pages carry no per-page date. The vendor pages were fetched on August 23, 2026, one day after the dataset’s August 22, 2026 as-of date; cells reflect the page content as read on that fetch date. (d) Defaults are scored on a fresh install, not after a user has pre-approved rules. (e) Muse Code’s row rests on --help inspection and a smoke test only. (f) The Antigravity CLI row records the documented diff-review default and the trust-store mechanism verified at the fleet boot; artefact-path behaviour under the skip flag is outside this table’s scope.

Every row carries one of three source statuses. The difference between the second and third is the part a reader citing a single cell needs most:

##### Documented + observed

The CLI is installed on the census machine, was run non-interactively in an empty directory, and every cell was compared with the vendor’s published documentation. Where docs and observation agree, the cell quotes the docs. Nine CLIs, ten rows.

##### Documented only

The CLI is not installed here. Cells come from the vendor’s own documentation pages and nothing else. The behaviour has not been reproduced, so a documentation error would propagate into the row unchallenged.

##### No public doc *located*

Three Tier 1 rows have no vendor documentation page for their permission model that this pass could find. Their source cell names exactly what was read instead: the CLI’s --help, its --dump-config output, or direct testing.

## 03 — The DatasetThe complete table: *13* rows, one claim per cell.

The table below is the asset: all 13 rows, no summary substitution. Product names link to the primary vendor page each row was scored against; rows whose source is the CLI itself say so in place of a link. The last column is the confidence tier and, for observed rows, the observation date. **Data as of August 22, 2026.** The table scrolls horizontally.

| # | CLI (vendor) · source | Version checked | Headless form | File writes default | Shell exec default | Flag that enables writes | Read-only option | Sandbox (isolates / default) | Folder-trust gate | Confidence · observed |
|---|---|---|---|---|---|---|---|---|---|---|
| Rows 1–10 · Documented + observed on one machine (9 CLIs; GLM-5.3 in two routes) | ||||||||||
| 1 | Claude Code (Anthropic)
|

**Asks.** Docs, verbatim: “For -p, the built-in starting permission mode is Manual on every plan, so pass the permission mode you want.”[learn.chatgpt.com/docs/codex/non-interactive-mode](https://learn.chatgpt.com/docs/codex/non-interactive-mode)

[learn.chatgpt.com/docs/codex/agent-approvals-security](https://learn.chatgpt.com/docs/codex/agent-approvals-security)

**Refuses by default.** Docs, verbatim: “By default, codex exec runs in a read-only sandbox.”[github.com/QwenLM/qwen-code · approval-mode.md](https://github.com/QwenLM/qwen-code/blob/main/docs/users/features/approval-mode.md)

**Refuses silently without -y:** prints the generated code, exits 1, writes nothing. Vendor term for the headless default: Ask Permissions mode[moonshotai.github.io/kimi-cli · interaction guide](https://moonshotai.github.io/kimi-cli/en/guides/interaction.html)

**Writes unconditionally, no opt-out.** Docs, verbatim: “In -p mode, no human approval is requested — regular tool calls are handled under the auto permission policy, while static deny rules remain in effect.”**None for -p.** Interactive --plan mode (“the AI can only use read-only tools”) is incompatible with -p[docs.x.ai/build/features/permissions](https://docs.x.ai/build/features/permissions)

[docs.x.ai/build/modes-and-commands](https://docs.x.ai/build/modes-and-commands)

**Factory default not located in the fetched vendor pages.** Docs list three permission_mode values: auto, ask, always-approve; the pages read for this row do not say which one a fresh install ships with. This machine’s ~/.grok/config.toml carries always-approve, so writes proceed here without asking[antigravity.google/docs/cli/modes](https://antigravity.google/docs/cli/modes)

[antigravity.google/docs/cli/using](https://antigravity.google/docs/cli/using)

[changelog](https://antigravity.google/changelog))**Asks per file write without the skip flag.** Docs, verbatim: default mode “pauses for interactive diff review before modifying or creating files.”[zcode.z.ai/en/docs (GUI-only coverage)](https://zcode.z.ai/en/docs)permission default: direct testing, no vendor doc located

**Yolo by default when called bare**: direct testing, not a published vendor doc. The local wrapper overrides this to plan (read-only) as its own default[docs.z.ai/devpack/tool/claude](https://docs.z.ai/devpack/tool/claude)permission model: code.claude.com/docs/en/headless (row 1)

**Asks by default (on-request approval).** Per the CLI’s own --help: approval and an OS sandbox are on by default**On by default.**--sandbox-network defaults to proxy-only[github.com/deepseek-ai/deepseek-harness (MIT)](https://github.com/deepseek-ai/deepseek-harness)permission presets: --dump-config output + direct testing; no public doc page located

**Writes freely inside the workspace root.** workspace-write is the shipped default preset and cannot escape the root[cursor.com/docs/cli/headless](https://cursor.com/docs/cli/headless)

[cursor.com/docs/cli/overview](https://cursor.com/docs/cli/overview)

**Proposes only, does not write, by default.** Docs wording, reconstructed from two independent search retrievals that agreed, not read off the page here: “Without --force, changes are only proposed, not applied.”[docs.github.com · copilot-cli/allowing-tools](https://docs.github.com/en/copilot/how-tos/copilot-cli/allowing-tools)

[docs.github.com · copilot-cli/autopilot](https://docs.github.com/en/copilot/concepts/agents/copilot-cli/autopilot)

**Asks by default, for state-changing actions only.** Docs, verbatim: “Read-only operations like searching, reading files, and running read-only shell commands are allowed automatically”; write / destructive actions “require your explicit approval before Copilot can use them”[github.com/google-gemini/gemini-cli · configuration.md](https://github.com/google-gemini/gemini-cli/blob/main/docs/reference/configuration.md)

**Asks by default**: the default approval mode prompts for approval on each tool call** Enabled automatically when --yolo is used**, via a pre-built gemini-cli-sandbox Docker image; the only row where the sandbox turns on because approvals turn offThree conventions keep the cells citable. Where a vendor doc states the default, the cell quotes it. Where the default was observed but no doc states it (rows 7, 9, 10), the cell says “direct testing” or names the CLI output it came from. Where neither a doc nor a test resolves the question (Grok’s factory default, Muse under a billed call), the cell records the gap instead of a guess.

## 04 — One ChartFile writes against shell execution, all *13* rows on one grid.

The grid plots the two primary columns of the table against each other. Columns are the headless file-write default; rows are the headless shell default. Each CLI sits in exactly one cell. Six of the nine cells are empty, which is itself a finding: no CLI in the set asks about writes but runs shell freely, or the reverse. The two behaviours travel together.

Read the grid as a distribution, not a league table. Seven of 13 rows, a clear majority, ask and therefore stall or fail when nobody answers. Two refuse outright until flagged, which for an unattended job is the same outcome with a cleaner exit. Four proceed. Of those four, one has no flag that changes the behaviour under `-p`

(Kimi Code), one is a bare binary the local wrapper never calls without a mode (ZCode), one is confined to a directory by design (DeepSeek Harness), and one is a configured value rather than a shipped one (Grok Build).

## 05 — The OutliersKimi and Qwen chose *opposite* answers to the same question.

Two CLIs in the same rough category, bulk and mechanical coding agents sold on prepaid quota, answer the headless question in exactly opposite ways. Kimi Code’s `-p`

mode writes files and runs shell commands with no approval step, and the vendor documentation is explicit that the flags which would tighten it cannot be combined with `--prompt`

. On the census machine, a headless Kimi run wrote a file and executed a shell command with zero flags and no warning, which matches the docs exactly. It is the only row in the table where the read-only column says “none”.

"In -p mode, no human approval is requested — regular tool calls are handled under the auto permission policy, while static deny rules remain in effect."— Kimi Code CLI documentation, interaction guide

Qwen Code does the reverse. Invoked with `-p`

and no other flag, it generates the code, prints it, exits with status 1 and writes nothing. The vendor calls the headless default Ask Permissions mode; because there is nobody to ask, the practical effect is refusal. Passing `-y`

switches to YOLO mode, which the docs describe as automatically approving all operations including file editing and shell commands. The failure mode is worth naming: a Qwen job that forgot `-y`

does not damage anything, but it also reports failure for work it visibly completed in stdout, which is a confusing signal to debug.

Neither default is wrong in the abstract. Kimi’s position is that a non-interactive call is by definition an unattended one, and its backstop is the static deny list in `config.toml`

, which the docs say remains in effect. Qwen’s position is that unattended should mean inert unless told otherwise. The census records both without ranking them; what it does insist on is that the two positions are a full spectrum apart and that a team moving work between the two CLIs needs to know which end it is standing on. The rest of what Kimi K3 does well, including its 1M-token context and video input, is covered in [the K3 capabilities guide](/blog/kimi-k3-underused-capabilities-1m-context-vision-effort-2026); this page is only about the permission default.

## 06 — IsolationThe sandbox-on-by-default club has *two* members.

A permission prompt and a sandbox are different controls. The prompt decides whether an action is attempted; the sandbox decides what the action can reach if it runs. Most of the table has the first and not the second. Only two rows run headless writes and shell inside a real OS-level sandbox with no flag passed: Codex CLI, whose default sandbox is read-only and which stays sandboxed once `workspace-write`

is enabled (Seatbelt on macOS, bubblewrap on Linux, per OpenAI’s docs), and Muse Code, whose own `--help`

states that approval and an OS sandbox are both on by default.

#### Sandbox posture by row · 13 rows

Source: Sandbox column of the census table · data as of August 22, 2026 · percentages are row counts over 13Gemini CLI (legacy) is the interesting third case and the one most likely to be misread. Its configuration reference states that the sandbox is enabled when `--yolo`

or `--approval-mode yolo`

is used, running inside a pre-built `gemini-cli-sandbox`

Docker image. That is the inverse coupling of every other row: the isolation arrives precisely when the approvals leave. It is a documented-only row, so the behaviour has not been reproduced here, and the track is explicitly a preview release on a product Google has steered users away from since June 2026.

Two negative findings belong in this section. Claude Code has no built-in sandbox beyond OS-level file rules; what changed in the window is narrower than a sandbox: v2.1.236 (August 19) added macOS sandbox wildcard-deny hardening for files like `**/.env`

, and v2.1.234 (August 17) closed the remaining pre-approval file accesses against the NTLM credential-leak vector, both per the changelog and covered in [the operator-changes post](/blog/claude-code-codex-cli-agent-operator-changes-august). And Antigravity CLI’s `--sandbox`

flag, combined with `--dangerously-skip-permissions`

, carries an open vendor-tracked issue in which the agent can bypass the sandbox. A sandbox flag that exists is not the same as a sandbox that holds; the general escape patterns are catalogued in [the sandbox-escapes reference](/blog/agent-sandbox-escapes-worktree-symlink-command-filters-2026), and the isolation models themselves in [the sandboxing patterns guide](/blog/ai-agent-sandboxing-isolation-patterns-2026).

[the Codex CLI deep dive](/blog/codex-cli-deep-dive-config-profiles-sandbox-2026).

## 07 — Folder TrustSix different answers to “is this directory *trusted*?”

Folder trust is the gate most automation hits first and documents least. An agent booted in a directory it has never seen either prompts, refuses, or proceeds, and in a headless pane a prompt is indistinguishable from a hang. The fleet boot of August 17 was specifically a zero-dialog boot: every trust store was pre-seeded before the agents started, which is how the mechanisms in this column were verified. They differ more than the permission modes do.

##### JSON trust store, bypassed under -p

Docs, verbatim: “A -p session shows no workspace trust dialog and no per-server approval prompt.” The consequence is that hooks and MCP servers in an untrusted folder still run under -p unless --bare is passed. GLM-5.3 via Claude Code inherits the same store.

##### Per-project TOML trust level

Trust is a keyed entry per directory path in the user config. Pre-seeding it is a one-line TOML addition per project, which is what the fleet boot did.

##### Hashed marker file per workspace

Trust is recorded as a file whose name is derived from the directory basename and the first twelve hex characters of the SHA-256 of the full path. Moving the directory changes the hash and drops the trust.

##### trustedWorkspaces array in settings

A JSON array of trusted paths, pre-seeded before the fleet boot. Gemini CLI (legacy) is not characterised on this point in the fetched docs; Antigravity is the actively maintained successor and carries the store this machine uses.

##### First-run prompt, or --trust-workspace

The CLI prompts on the first run in a new project; --trust-workspace pre-approves. --yolo bundles trusting the workspace with disabling approval and sandbox. Source is the CLI’s own --help.

##### One flag for trust and approval

Cursor’s CLI docs state that --force also “implicitly trusts the workspace” and “skips MCP confirmation prompts” — wording reached via search synthesis rather than a direct page read. Folder trust, tool approval and MCP confirmation are not separate gates for Cursor; the flag that enables writes enables all three.

Three rows record no folder-trust gate at all: Qwen Code, Grok Build and bare ZCode (“none observed”). DeepSeek Harness has none for CLI use; the nearest analogue is the web UI’s permission setting, which is not retroactive to sessions already running. That last detail came from a direct finding on August 17, when a web-UI session was discovered set to `danger-full-access`

and reset to `workspace-write`

; the reset applied only to new sessions.

## 08 — Documented OnlyThree rows read, not run, and the *cells that stayed open*.

Cursor CLI, GitHub Copilot CLI and Gemini CLI (legacy) are in the table because a permission census of coding agents that omitted them would be incomplete, and they are marked documented-only because none is installed on the census machine. Their cells carry the vendor’s wording and nothing else. A documentation error in any of the three would propagate into the row unchallenged, which is the precise reason the tier is labelled rather than blended into the observed rows.

Two facts adjacent to the Copilot CLI row are deliberately kept out of it. GitHub’s changelog dated August 18 describes enterprise managed settings for Copilot in JetBrains, including permission-mode controls that can disable “Bypass Approvals” and “Autopilot” server-side. That is a control surface for the JetBrains plugin under enterprise administration, not the standalone CLI’s own default, so it is recorded here as its own fact. Separately, GitHub Copilot in Slack and in Microsoft Teams entered public preview on August 21 and run PR work in what GitHub describes as a cloud sandbox; that is a hosted product with its own billing and eligibility wording, not a local permission model, and it is covered in [its own post](/blog/github-copilot-slack-teams-public-preview-sandbox-billing).

**Grok Build’s factory default.** xAI’s permissions page lists three permission_mode values, auto, ask and always-approve. No statement of which one a fresh install ships with was located in the pages fetched for this row. The census machine’s config carries always-approve. The row therefore says “factory default not located in the fetched vendor pages” and records this machine’s always-approve alongside it, and this post does not say Grok defaults to always-approve out of the box.

**Muse Code under a billed call.** Muse Code entered beta on August 5 and was added to this toolchain on August 10. Its permission facts come from the CLI’s own --help and an echo-provider smoke test. It had not yet been run against a billed model call at the as-of date, so the row’s observation claim is limited to exactly that and the table says so.

**No public doc page for three rows.** Muse Code, DeepSeek Harness’s permission presets, and bare ZCode’s headless default have no vendor documentation page this pass could locate. The source cell for each names the CLI output or test the fact came from instead of implying a page exists.

## 09 — Using the TableHow to read a row, and how to *cite* one.

The table is designed to be cited cell by cell. The file-write and shell columns answer the two headline questions; the flag column tells you what to add to an unattended invocation; the read-only column tells you whether a genuinely inert mode exists, which for Kimi under `-p`

it does not. The last column is the part to quote alongside any cell: a documented-only row is a claim about documentation, and an observed row is a claim about one machine on one date.

The trend the table makes visible is that the industry has not converged. In August 2026 the headless default for the same action, writing a file, ranges from “exit 1 and write nothing” to “write it, run the build, and there is no flag to stop me”. The projection is that the spread narrows from the permissive end: the in-window change that touched file access on an observed row (Anthropic’s `**/.env`

wildcard deny and the NTLM pre-approval closure) was made at the file level rather than by changing the mode, and Claude Code’s own auto-mode classifier, covered in [the auto-mode shift post](/blog/claude-code-auto-mode-default-permission-model-shift), is a move toward deciding per action rather than per session. Whether the permissive rows follow is what the next refresh of this page will record.

This slug is stable and the dataset is refreshed in place; the modified date in the page metadata is the refresh marker, and the as-of date travels with the table. For teams standardising an agent toolchain across several of these CLIs at once, the fleet-boot procedure that produced the observed rows is part of our [AI transformation work](/services/ai-transformation); the table itself is free to use with attribution.

## 10 — ConclusionThe default is the *production* setting.

### Twelve CLIs, two questions, three answers, and two cells left honestly open.

Asked what they do when nobody answers, 13 rows of coding-agent CLIs split into seven that ask, two that refuse, and four that proceed. One of the four has no flag that changes it. Two rows run inside a real OS sandbox without being told to; one turns its sandbox on only when approvals are turned off. Folder trust is implemented six different ways. None of this is in any single vendor’s documentation, because each vendor documents only itself.

The table carries its own uncertainty. Nine CLIs were run on one machine and checked against their docs; three were read and not run; three have no public doc page for their permission model at all, and their source cells say what was read instead. Grok’s factory default and Muse’s behaviour under a billed call are recorded as *not resolved* rather than guessed. A cell that says “unknown” is more useful to a reader than a cell that is confidently wrong.

The practical reading is short. Before an agent CLI goes into a script, read its row, add the flag the flag column names, and decide whether the sandbox column is acceptable for the directory it will run in. Then check the as-of date, because several of these tools ship weekly and this page is refreshed monthly.
