01Safety
0.0 / 30
What changed in the harness
Selection accuracy 100→98, token cost up 7%, unconfirmed writes 0%→0%.
Category breakdown
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
0.0 / 30
29.0 / 30
19.4 / 20
13.8 / 20
Highest-impact fix
Estimated gain +30 pointsExpose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
4 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
live |
no_return_description |
Checks whether the system described by EN source code (or a path to a .en/.txt file) can deadlock or experience entity overflow. Returns: isStructurallyLive (boolean flag; true when every siphon contains a trap, meaning no structural deadlock is possible); uncoveredSiphons (entity groups that can drain permanently, with the actors and locations affected); isStructurallyBounded (boolean flag; true when no entity can accumulate without limit); unboundedCycles (action sequences that could cause overflow). See the server instructions for EN language syntax. |
reachable |
no_return_description |
Determines whether X can reach Y in the EN source code, following directed data flow first and falling back to undirected traversal. `from` and `to` accept entity names or action names (resolved against the program). Returns a Path where each step shows the actor and location, and a locationCrossings count of boundary transitions. When `defense_nodes` is provided, returns coverage results, where coverage.fullCoverage=false means unguarded routes exist. See the server instructions for EN language syntax. |
equivalent |
no_return_description |
Compares two EN systems or previews what would change in one. Compare mode (source_a + source_b) returns structural differences, edit distance, and spectral equivalence; isCospectral=true means identical graph structure up to relabeling — topologically the same despite different names, actors, or locations. Evolve mode (source + patch) dry-runs a change and returns the diff plus new/lost bridge nodes. Patch directive types: a plain EN statement adds an action; a line starting with `-` (and not containing `do:`) removes the named action; a statement whose action name matches an existing one replaces the original. See the server instructions for EN language syntax. |
render |
no_return_description |
Returns an SVG or PNG diagram rendered from EN source code (or a path to a .en/.txt file); the rendered image is delivered to the user, not injected into the model's context. Only call when the user explicitly asks to visualize. Options: theme (curated preset or 'dark'/'light' variant; overridden by `color`), isDark (true or false), type (png default or svg, rasterized server-side via Batik), quality (small, mid, or max), view (partition by actors or locations), structure_layers (bitmask: 1=subsystems, 2=pipelines, 4=cycles, 8=forks, 16=joins, 32=hubs, 64=deadlock, 128=overflow; default 255), color (seed hex #RRGGBB for a custom palette), direction (LR or TB), and output (file path to save the rendered image). See the server instructions for EN language syntax. |
Selection evidence
0 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
| No confusable tool pairs were flagged in this assessment. | |||
Compare the field