01Safety
0.0 / 30
What changed in the harness
Selection accuracy 100%, destructive-action safety rate 0% (baseline only -- no rewrite pass applied).
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
28.7 / 30
13.7 / 20
8.2 / 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
0 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 |
|---|---|---|
| No description defects were flagged in this assessment. | ||
Selection evidence
6 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
bizhawk_press_buttons |
bizhawk_press_buttons_multi |
medium | A task like 'have player 1 press A while player 2 presses B on the same frame' could lead an agent to call press_buttons twice (landing on different frames) instead of the required press_buttons_multi, since both tools accept a 'buttons' map and the single-vs-simultaneous distinction is only explained in prose. |
bizhawk_read16 |
bizhawk_read32 |
medium | A vague task like 'read the player's score/timer at address 0x1000' doesn't specify bit width, and an agent could plausibly guess read16 vs read32 for values that could plausibly be either size. |
bizhawk_read8 |
bizhawk_read16 |
medium | Tasks referencing a generic 'value' or 'counter' at an address without stating byte width are common, and 8-bit vs 16-bit fields are both plausible defaults, risking selection of the wrong read width. |
bizhawk_write16 |
bizhawk_write32 |
medium | A task like 'set the score/timer to 9999' doesn't indicate field width, so an agent might pick write16 vs write32 incorrectly when either could represent the target value. |
bizhawk_write8 |
bizhawk_write_range |
low | For a task writing a short sequence of 2-3 bytes, an agent might use looped write8 calls or a single write_range call; the tools' own descriptions steer toward write_range for >1 byte but a naive agent could still pick write8 in a loop. |
bizhawk_read8 |
bizhawk_read32 |
low | Less likely than the 8/16 or 16/32 pairs since the size gap is larger and less commonly conflated, but an ambiguous 'read the value' task without width could still occasionally select the wrong one. |
Compare the field