sharness.ai / research note · this page as markdown

Research note: the published design, read in full

Status: a review, as of 24 Oct 2026. Everything published about SHarness was read end to end by a second agent session on 24 October 2026: the eleven design pages, the two articles, the memo, the eight documents of the design pack, the CLI repository, and the sites and documentation the design points at. This page says what holds up, what to improve, what was improved in this release, and what is still open. Written by sharness.build; the editorial responsibility is Dinis Cruz's.

1. What was read

SourceWhatRead
sharness.ai v0.3.1the front page, eleven design pages with their markdown twins, llms.txt, the honest column, the CLI page, comms and release historyall of it
the two articlesA secure harness for agents (from voice memo 01) and What shipped on day oneboth, and the memo transcript
the design packthe brief for the site and documents 00 to 07, verbatim under briefs/all eight, against the pages ported from them
SHarness-AI__CLIdev at commit 0a53a7c: the package skeleton, the pipeline, the READMEall of it
storyboards.sgit.ai and api.storyboards.sgit.aithe format, the quick start, the render guide, the catalogue, the pki series' storyboards and cast, the site repository's READMEthe parts needed to author storyboards for this site
Claude Code documentationhooks (PreToolUse, updatedInput), permissions (deny rules, Bash as a bare deny), sandboxingthe pages, 24 Oct 2026
this session's own environmentthe grant, with the probe (E01): uid 0, all capabilities, Landlock ABI 7, memfd_secret, Claude Code 2.1.310read-only, names of variables only

2. What holds up

3. What to improve, and what this release did about it

#FindingDone in v0.4.0Still open
1Nothing was runnable. The design asked for very simple examples first and the package did nothing.E01 to E04 in the CLI (probe, policy hash, run, hello), with tests; E04 measured; the ladder on Mockups and experimentsE05 to E08; the launcher
2Claude Code's own sandbox was missing from the design as prior art and as a plug-in point. It does, for Bash, much of what sharness.bash would do, and its documented limits (hooks, MCP servers and excluded commands run unsandboxed; hostname-only filtering; an unsandboxed retry) are exactly the side doors the design lists.the comparison on Mockups and experiments; rows on Agents and LLMs §2 and Policies §9generating the sandbox's settings from a policy, as one enforcement layer
3An open question had been answered by the documentation. Agents §2 said a PreToolUse hook rewriting a Bash call was believed yes: verify. The hooks documentation (read 24 Oct 2026) states updatedInput replaces the whole tool input before it runs, and permission rules are evaluated against the rewritten input.Agents §2 updated; the item moved off Evidence's not-yet-measured list as documented, not yet exercisedexercising it on a pinned version
4The policy schema had no version two implementations could hash. The full schema on Policies §4 is right as a target and too large to start with.a v0 shape (six keys, integers only) hashed identically by the CLI and by the browser mockup; on The CLIlayers by intersection; signing by the root key
5The design had no short form. Eleven pages, no way in for someone with ten minutes.three storyboards in the storyboards.sgit.ai kit: the last metre, its one job, hello world inside; each with a markdown scripta fourth on the KMS protocol; the series listed on storyboards.sgit.ai
6The site repository's README called the command sharness. The site and the roadmap say sharness-ai.fixed
7The CLI page was hand-written HTML with no markdown twin, listed as missing on the honest column.the page is now markdown, generated like the design pagesthe status and admin pages still have no twin
8**The memo's maybe a skill had no concrete answer.**the sharness-hello skill in the CLI repository runs E01 and E04 inside a session under the safety rules, and says every time what it does not binda skill that installs a launcher above the session: not possible from inside it
9The observed environment moves. Evidence §7 observed Claude Code 2.1.42; this session ran 2.1.310, with the egress proxy on a different port. Figures tied to a version need the version beside them.noted on Evidence §9re-run the §7 observation when the design is next revised
10Two small things in the published pack (a broken link, harness.<role> in one diagram) are known and listed.unchanged, by the rule that the pack is verbatimfix in the pack's next revision (T2)

4. What is still open, in the order to take it

  1. E06, the process-tree proof of concept. It is the one experiment the design marks not yet run, and it decides whether sharness.bash can be made impossible to skip. Run it under the safety rules, in a child subtree, and publish every side door's result on Evidence.
  2. E05, the edges as a script. The mutual TLS measurements exist; making them a command makes them repeatable on a laptop and in Docker.
  3. E08 before E07. sharness.llm needs the real API key from somewhere; a local sharness.kms v0 that opens a sealed m1 and re-seals derived keys is the smaller piece and unblocks the other.
  4. The launcher, as a script above the agent, on a laptop. The first place the caveat printed by hello stops applying: a script starts Claude Code under a policy it cannot widen. Disposable users per session, measured at about 49 ms each in the cloud workspace, belong here.
  5. Policies for the newsroom's agents. The memo's second user. Their file and network behaviour policies written down are the first real test of the schema.
  6. seccomp, read-only bind mounts, AWS KMS compatibility: still on the not-yet-measured list.

5. What this note does not claim

Sources: every page of this site at v0.3.1; the design pack under the source documents; experiments/README.md; the Claude Code documentation on hooks, permissions and sandboxing; api.storyboards.sgit.ai/docs.