Enforcement by construction.
The agent tooling stack — review skills, eval harnesses, operating models, connectors — enforces good behavior by convention. A capability‑typed language enforces it by construction. As agents write and are granted more authority, that difference stops being academic. A skill can be skipped. A type cannot.
Policy is porous · the property is not
Where the skeptic wins
If Garnet is pitched as "a nicer general‑purpose language humans adopt by choice," the skeptic beats it, and it's worth saying so plainly. Every skill in the modern agent stack — ai-first-engineering, agentic-engineering, model routers, eval harnesses — operates on an existing language; the value looks like it lives in the agent, not the target language. Models are most fluent in the incumbents, so a new language starts behind on the axis that now dominates: the training distribution. Capability enforcement already exists at the runtime and OS layer — WASI permissions, --allow-net, seccomp, the sandbox behind every "bypass permissions" button — and an agent‑native language with capability‑declared effects now exists too (see below). Attestation — SBOM, SLSA, Sigstore — is language‑agnostic tooling. And a young project reaching escape velocity against platform‑scale tooling that the labs give away for free is brutal math.
The concession, stated once
On the "better general‑purpose language for humans" framing, the skeptic is right. Garnet's case does not live there. It lives one layer down — and the tooling explosion doesn't shrink that layer, it enlarges it.
The nearest neighbor: Vercel Zero
In May 2026, Vercel Labs released Zero — an experimental agent‑native systems language with capability‑based I/O: effects are declared in function signatures via an explicit World parameter, and the compiler emits JSON diagnostics with typed repair plans so agents can fix code without parsing prose. It crossed 900 GitHub stars in a day. It is the closest thing to this territory that exists, and it deserves to be named rather than discovered by a skeptic mid‑argument.
Here is the difference, stated fairly. Zero makes effects legible to the agent writing the code. Garnet makes authority provable to the human and host accepting it. Zero has no sealed artifact, no compiler‑derived capability manifest, no authority‑diff as the review primitive, no attestation a host can verify before granting, no acceptance gate, no evidence layer. Declaration is the floor; attestation is the product. A platform company entering this category validates the need — and the layer they didn't build is the one this whole page argues for.
Convention vs. construction
Everything in that command palette is policy. A review skill, an eval harness, an operating model, an MCP connector — they are advisory, external to the artifact, probabilistic, and runtime‑optional. They tell an agent what it should do and hope it complied. Not one of them makes it structurally impossible for the shipped code to hold authority it never declared.
That impossibility is the only thing a capability‑typed language sells — and it is the one thing process cannot manufacture. The tooling is convention. Garnet is construction. When authority is a compile‑time property of the artifact, "the agent was told to be careful" is replaced by "the code cannot express authority it didn't declare."
The textual diff of agent code is enormous. The authority diff is small, and machine‑computable.
That is the whole mechanism. A 3,000‑line agent PR is unreviewable by reading; its capability delta is one line. Garnet makes that delta a typed, diffable, sealed property of the code — which is exactly the localization instrument the field is missing for AI‑generated change.
The Five Theses
Everything on this page argues in detail. This is the case in five claims — each carrying its own evidence class, because a page about evidence‑gated authority should be evidence‑gated itself.
The review industry's best tools read finished code and estimate whether it's dangerous. The strongest of them catch roughly half of real runtime bugs — after the code exists, on every pull request, forever. That's a smarter reviewer. It is still a probability.
Garnet moves the question earlier and makes it binary. What code is allowed to do — which files, which network, which processes, which delegated authority — is written as a capability type. Where the trap is proven — the bounded, pinned Gate‑1 surface in the boundary section below — code that invokes authority it never declared isn't flagged for a human to weigh: it fails, deterministically. The wider surface is declared (checker‑only) today, being built to that same standard.
The industry's own principle says the AI that wrote the code shouldn't be the one reviewing it. Its answer is a second model. Garnet's answer is a checker. A compiler doesn't have opinions; it has verdicts — and a verdict is the only kind of review that doesn't get tired, doesn't get noisy, and doesn't get argued past.
Claim class · partial — deterministic traps proven on the bounded surface below; wider surface declared (checker‑only)The AI‑first crisis isn't that agents write bad code. It's that juniors and agents can't be trusted to ship unreviewed — so senior engineers became full‑time reviewers, and their judgment became the scarcest resource in the org. Every review tool on the market re‑spends that judgment on every change. Process must be re‑applied every time.
A type applies once. Garnet doesn't replace senior judgment — it changes what it's spent on. One senior encodes the security envelope as capability types: what this service may touch, what this agent may delegate, what this module may never do. That is the design; what is proven today is narrower — the deterministic traps named in the boundary section below — with the full envelope vocabulary declared (checker‑only) and built toward the same standard at zero marginal senior attention.
Review time then becomes taste time. Humans argue about the things worth arguing about — naming, architecture, product — because the floor is no longer up for debate.
Claim class · partial — the primitive is proven on the bounded surface below; the full envelope vocabulary is roadmapMulti‑agent topologies are the default now. Orchestrators spawn sub‑agents that spawn sub‑agents, and the newest frontier models improvise their own delegation patterns — sub‑agents mutating parent state, cleanup routines inheriting kill‑anything scope from the top of the tree. Charming when it's benign. Nothing granted it; nothing could have denied it.
Prompts can't enforce attenuation. Connectors don't attenuate. Skills don't compose permissions. Garnet's design puts a capability lattice in the type system: a delegated capability is constrained to a subset of the delegator's, so authority narrows at every edge of the tree — whatever the model, however novel its orchestration style. The machine‑checked proof of that lattice is in progress, not complete; until it lands, this is a design commitment, not a shipped guarantee.
The swarm keeps its creativity. What the design takes from it is ambient authority — the difference between hoping your fleet behaves and building toward a fleet whose authority is bounded by an envelope the toolchain checks.
Aerospace, defense, healthcare — the buyers who matter don't accept "an AI reviewed it and said it was fine." A comment thread is not an artifact. A chat log is not a control. When the auditor asks how you know, they mean something you can hand over.
The planned garnet build --evidence flag — no such build flag exists in the shipping CLI today — is designed to emit a Verifiable Evidence Bundle with the build: what this code is capable of, what it is incapable of, and the capability declarations those facts derive from. What is a consultant engagement today — weeks of humans reading documents — would become a compiler flag that runs on every build.
That is the roadmap, not the present: evidence stops being a deliverable you assemble for the audit and becomes exhaust the toolchain produces anyway. Until that flag ships, the runnable surface is garnet caps, garnet diff-caps, and garnet seal. No authority without evidence — and no evidence without a check that proves it.
For a few years, frontier labs kept a lid on dangerous capability by training their models to refuse. That era is closing. Frontier‑class open‑weight models now ship with little or no safety posture — they will run the offensive task, the swarm audit, the kernel exploit, for anyone, and their weights live on hardware nobody governs.
You can no longer locate trust in a model's disposition. A refusal is a property of one vendor's checkpoint; your security has to hold across every model your org and your adversaries will ever run. And the trust engineers are now extending to agents is behavioral — earned per checkpoint, per month, per "it cheats less than it used to." It doesn't transfer to the next model, the fine‑tune, or the open‑weight drop. Every unit of earned trust converts directly into expanded autonomy — less human review, longer unattended runs — which raises, not lowers, the cost of the day that trust is wrong. So trust moves down — out of the model, into the substrate the model's output must pass through.
Garnet is that substrate. Enforcement in the type system is model‑agnostic by design: a compiler's verdict doesn't depend on which model wrote the code or how persuasively it argues. Today that verdict covers the bounded, pinned surface stated below — not a universal sandbox — and every widening must arrive with its own trap. The less you can trust the author of the code, the more that property is worth.
Claim class · claim about the world — sourced, not self‑assertedThe agent‑era toolchain is settling into three layers. They answer different questions, and they stack.
garnet check — deterministic enforcement proven today on the bounded surface below, not yet wired into garnet build — delegation designed to attenuate, and an evidence flag on the roadmap. Structural, not sampled.
Tests are empirical — they check behaviors someone thought to check. Capabilities are structural — they are built to bound behaviors nobody thought of. A swarm can pass every test in the suite while holding authority it never needed; no green checkmark speaks to that. Which is why garnet check runs inside your CI, whoever's runners it's on: the faster the pipeline, the more often the declared envelope is checked — and, once the evidence flag ships, the more often the evidence would regenerate.
The strongest argument against Garnet isn't a competing tool — it's comfort. Fast CI, good models, and AI review together produce a real feeling of safety, and many teams won't reach for structural guarantees until an incident forces the question. If probabilistic confidence stays good enough for your risk profile, you may never feel the need.
We think that feeling is sampling error — confidence in the runs you've seen, extended to the runs you haven't. For teams whose auditors, regulators, or customers accept "we felt confident" as an answer, adopting Garnet early is a judgment call. For teams where that answer is inadmissible, it isn't. Either way, we'd rather you hear the objection from us, priced honestly, than discover it in a postmortem.
Claim class · self‑assessment — argued, not provenNothing in this section claims enforcement beyond the two pinned Gate‑1 claims in the boundary section below.
Ten reasons, July 2026
Construction beats convention
A skill can be skipped, mis‑prompted, or forgotten; a type cannot. When authority is a property of the artifact, the gap between "told to be careful" and "structurally unable to overstep" closes — and nothing outside the code can close it.
Acceptance the model can't fake
An LLM‑as‑judge produces a probabilistic verdict from the same class of system that wrote the code. Garnet's acceptance is a deterministic trap: where the trap is proven — the bounded, pinned Gate‑1 surface below — garnet check proves the claim or fails, deterministically; that proof lives on the check path today, not yet the build path. Verification that doesn't depend on a model's judgment is rare, and getting rarer.
The guarantee travels with the artifact
Your operating model, your CI, your reviewer's diligence live in the environment that produced the code. Ship it elsewhere and those evaporate. Garnet's seal moves with the binary — today it attests the declared capability surface without re‑running the checker; verification lives at garnet check, and binding seal to a passing check is named, unshipped work — which matters the moment agent code crosses boundaries. It now does, constantly.
The connector explosion is the threat, not its refutation
MCP now runs in ~80% of observed cloud environments; 38% of scanned servers have no authentication; a CVSS‑9.4 CVE proved unauthenticated RCE; supply‑chain attacks ship malware under valid signatures. All authority‑management failures. More agents × more connectors = a larger ungoverned‑authority surface — the problem the tooling growth is making worse.
Diff‑caps keeps a human in control at agent volume
When one senior can't read everything ten agents ship, review has to move into the artifact: accept a huge PR by reading one thing — did its authority envelope change? No skill provides that; it's a property of the type system.
Incumbent fluency ships incumbent footguns
An agent writes fluent Python and Python's ambient‑authority footguns, because the language predates capability thinking and bolts safety on coarsely, after the fact. A language built for capability from the type system up makes the safe thing the only expressible thing.
Garnet is the substrate under the tooling, not a rival to it
An MCP tool server written in Garnet declares its authority in its types, so the host verifies the envelope before granting it. "The only standard library where every function's authority is declared and verified" isn't competing with the connector economy — it's the trust layer that economy is missing.
Regulation is writing Garnet's spec — with no reference implementation
The EU Cyber Resilience Act's reporting obligations land this September; FDA change‑control plans, automotive OTA, and avionics all encode the same test — a change is allowed iff it stays inside a pre‑approved envelope, done by humans reading documents today. The planned garnet build --evidence flag is designed to turn a consultant engagement into a compiler flag.
Attenuating delegation across agent swarms
When A delegates to B to C, authority should only shrink. Skills don't compose permissions; connectors don't attenuate; prompts can't enforce it. A capability lattice in the type system can make delegation provably narrow authority — load‑bearing as multi‑agent topologies become the default.
It amortizes senior judgment instead of re‑spending it
The crisis the AI‑first model creates is that juniors and agents can't be trusted to ship unreviewed. Garnet doesn't replace senior judgment — one senior defines the envelope once, and the compiler is built to hold it for every junior and every agent thereafter (proven today on the bounded pinned Gate‑1 surface below). Process must be re‑applied every time; a type applies itself.
Where it bites
Ten domains other languages own. In each, the incumbent solves the execution problem; none solves the acceptance problem — and acceptance is what breaks when code arrives faster than trust.
Runs with god‑credentials and near‑zero review. A Garnet step provably can't read the signing key or reach the network.
The #1 category agents write; touches prod data by definition. Exfiltration becomes a compile error, not an incident.
Pure authority manipulation in languages with no authority types. Garnet diffs the grant, not just the resource.
Move the contract into the artifact: per‑invocation bounds and caps that are the deployment policy. Upload evidence, not promises.
Every store reviews hand‑written manifests an attacker can lie in. Garnet manifests are compiler‑derived and sealed — verify, don't trust.
BEAM owns fault tolerance for processes; nothing owns it for agents. Supervised agent trees where a child can't exceed delegated authority.
An installed tool is ambient authority on the operator's machine. Garnet CLIs install with their manifest; brew info shows the authority surface.
Concede codegen; win the update acceptance path — verify incoming firmware's authority surface didn't grow before flashing.
Move protects assets on chain; the off‑chain code that decides to move money has nothing. Make the deciding code as auditable as the settling contract.
The languages own the math; none owns trust in the result. Sealed runs make "rerun my exact analysis" a verification, not an archaeology.
Other languages solve the execution problem. None solves the acceptance problem.
The world is writing the spec
The strongest signal isn't the argument above — it's that the demand is arriving from four directions at once, none of them aware Garnet exists.
Regulation, on a verified clock
On September 11, 2026, the EU Cyber Resilience Act's Article 14 reporting obligations go live: actively exploited vulnerabilities must be reported within 24 hours, with full notification in 72 — retroactively covering products already on the market, with penalties up to €15M or 2.5% of global turnover. Full conformity (the envelope/SBOM regime) follows December 11, 2027. FDA predetermined‑change‑control plans, automotive OTA, and avionics change‑impact analysis encode the same envelope test — today performed by humans reading documents, the exact process that collapses when AI‑velocity change meets human‑document validation.
verified · European Commission, digital-strategy.ec.europa.eu (CRA, Reg. EU 2024/2847)An insurance market with nothing to price
Agent‑liability insurance is real now — and look at what it underwrites on. Klaimee (YC 2026) insures AI agents from a public‑data scan plus a governance questionnaire; Testudo writes Lloyd's‑backed generative‑AI liability with limits marketed up to $10M, expressly with "no integration with your AI systems"; Armilla pairs Lloyd's‑backed coverage with independent point‑in‑time model assessments and red‑teaming; Munich Re's HSB launched SMB AI liability in March 2026. The other side of the ledger moves faster: ISO's January 2026 endorsements (CG 40 47 / CG 40 48 / CG 35 08) let carriers exclude generative‑AI harms outright, and Berkshire, Chubb, and Travelers subsidiaries have won state approvals to adopt them. Both facts have one cause: underwriting rests on questionnaires, snapshots, and external litigation data, because no continuous, verifiable statement of what an insured agent can actually do exists to price. A capability envelope is the missing actuarial instrument.
verified · Klaimee (YC) · Testudo · Armilla · Munich Re/HSB 2026‑03‑18 · Verisk/ISO forms · approvals per a Wolfe Research analysisA threat landscape making the timing argument for us
In May 2026 this stopped being hypothetical. The Shai‑Hulud worm hit the registries through hijacked GitHub Actions OIDC tokens and signed its malware through Sigstore — the first documented npm worm shipping validly‑attested malicious packages (373 malicious package‑versions across 169 npm and 2 PyPI packages; the first wave landed 84 versions in about six minutes; attributed to TeamPCP, which claimed it publicly). slsa.dev's own postmortem drew the lesson: a signed artifact is not necessarily a trustworthy one. Days later, the Megalodon campaign pushed 5,718 malicious commits to 5,561 GitHub repositories in a six‑hour window — assessed by OX Security as a likely copycat, with no shared code linking the two — and drew a joint CISA alert. Meanwhile the baseline holds: two independent 2026 test programs — 100+ models (eBuilder), 150+ (Veracode) — converge on the same flat line, ~45% of AI‑generated code carries a known security flaw even as syntax correctness passed 95%; MCP runs in ~80% of observed cloud environments with 38% of 500+ scanned servers unauthenticated; and a CVSS‑9.4 MCP CVE proved unauthenticated remote code execution. Every one is an authority‑management failure — and the flat line means the fix will not come from better models or more review. It has to come from construction.
verified · StepSecurity · CSA · slsa.dev postmortem · SafeDep · OX Security · CISA 2026‑05‑28 · eBuilder 2026 · Veracode Spring 2026 · Wiz 2026 · CVE‑2025‑49596A language author walking the thesis, unprompted
Armin Ronacher — creator of Flask — has traced this page's argument across eight months without ever mentioning this project. June 2025, diagnosing agentic coding: "Hiding permission checks in another file or some config file will a[l]most guarantee you that the AI will forget to add permission checks in when adding new routes." February 2026, sketching what a language for agents needs — authority declared in the signature itself: fn issue(sub: UserId, scopes: []Scope) -> Token needs { time, rng }. First the failure mode, then the language‑level fix: capability requirements as compile‑visible types, not policy buried in config. That is the diff‑caps layer, described from the outside, twice.
What this argument does not claim
Three honest boundaries
- This is a narrower, sharper need than a grand vision. Garnet is the trust substrate and enforcement layer for agent‑authored and agent‑granted authority — the thing beneath MCP, the planned
--evidencelayer, the swarm‑delegation primitive — not a general‑purpose better‑Python humans adopt for pleasure. - Need is not adoption. These reasons argue Garnet should exist. Whether it reaches the people who need it is a separate, unsolved bet that rides on a playground you can touch in thirty seconds, a real library shelf, and a community that doesn't exist yet. The idea can be right and still not make it.
-
The foundation claim is now bounded by a closed Gate 1, not an open‑ended promise. Gate 1 is closed on the documented canonical-macOS + sealed-Windows boundary. One required Windows closure row was truth gate fail-closed +
verify examples(canonical macOS #409; sealed Windows #468).The two public claim upgrades — and only those two — are:
- Test‑runner entry authority. enforced:
garnet testrejects a@caps()test that invokes undeclared authority, proven by test. The sealed regression probe exercises undeclaredfsauthority through a helper and matchesgarnet run. Evidence: canonical macOS #410 + sealed Windows #466;cargo test -p garnet-cli --test test_entry_authority. - VM/interpreter scope parity, including property tests. enforced: block-local leakage is stopped before backend divergence:
--vmfalls back to the reference path and returns the same value as--interp, proven by the parity test and proptest. Evidence: canonical macOS #411 + sealed Windows #467;cargo test -p garnet-vm --test scope_shadowing_parity.
The complete five-probe record, commands, counts, and honest scope live in the cross-OS reproducibility ledger.
Fences that remain. Garnet is research‑grade v0.x, not production or regulatory‑ready. Linux Gate‑1 rows remain open. Linux‑only seccomp is the only proven OS‑sandbox application; macOS/Windows OS‑sandbox application is not proven. S114 acceptance is recorded as
accepted-scopedby Jon; the independent verdict remainsindependently-re-verified-with-fixes. WV‑5 proves the Wasm build and real Node execution from a clean Windows checkout; browser‑page execution remains unproven until the W‑PLAY Playwright gate passes. - Test‑runner entry authority. enforced:
A skill can be skipped.
A type cannot.
The agent era doesn't retire the need for a capability‑typed language — it's the first era that makes the need unavoidable. Not because Garnet is a nicer language, but because it lives in the one layer the tooling can't reach: the artifact itself.