Public leaderboard

Public assessment

Pantani/ableton-mind (ableton-mind)

ableton-mind · v0.1.1 · scanned

What changed in the harness

Selection accuracy 96→96, token cost up 1%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

23.9 / 30

23.9 out of 30
03Economics

12.2 / 20

12.2 out of 20
04Discoverability

16.1 / 20

16.1 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

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
track_upsert
params_unexplained
Find a track matching name and type, or create it if none exists. Use when a workflow needs a named target track but should avoid duplicates. The optional index sets the insertion position used only when a new track is created (ignored when an existing match is found); omit to append at the end. Idempotent: returns changed=false when the track already exists; verified by returned name/type/index.
clip_set_loop
params_unexplained no_return_description
Configure a clip's loop_start, loop_end, and/or looping flag while preserving any fields omitted from the call. loop_start and loop_end are given in beats from the clip start (loop_end must exceed loop_start); looping toggles whether the clip repeats. Use for clip loop edits after locating the clip via track_index/clip_slot_index. Idempotent within 1e-4; returns the before/after values of only the fields provided by the caller, with a verification diff on mismatch.
push_set_pad_color
params_unexplained
Set the color of one Ableton Push 2/3 pad on the 0..63 grid (pad indexed row-major across the 8x8 grid). color is a Push RGB-LED palette index (0-127), not a raw RGB value. Use for visual feedback or performance layouts after hardware detection. Requires Push 2/3; returns sent=true with the pad and color accepted by the bridge.
push_set_button_led
params_unexplained
Set the LED color and animation mode for a named Push transport or utility button (e.g. Play, Record, Mute). color is a Push RGB-LED palette index (0-127), not a raw RGB value; mode selects solid, blink, or pulse animation and defaults to solid. Use for hardware feedback after Push detection. Requires Push 2/3; returns sent=true with the accepted button/color/mode.

Selection evidence

Confusable tool pairs.

15 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
stop clip_stop high A task like 'stop that clip' or 'stop it' without specifying scope could lead the agent to call global transport stop instead of the slot-specific clip_stop, or vice versa, since both halt playback and share near-identical descriptions.
track_create track_upsert high A request like 'create a track named Bass' is ambiguous: track_create always makes a new track while track_upsert finds-or-creates by name, and the user rarely specifies whether duplicates are acceptable.
device_inspect_patcher device_inspect_plugin medium Both are read-only 'inspect this device' tools differing only by device technology (M4L patcher vs VST/AU plugin); a generic task like 'inspect the device on track 2' gives no signal on which to pick without already knowing the device type.
track_set_name clip_set_name medium A vague rename request such as 'rename this to Intro' doesn't indicate whether the user means the track or a specific clip, and both tools share nearly identical parameter shapes and descriptions.
track_get_info session_get_info medium A task like 'give me info about the current state' could target either the whole session (session_get_info) or a specific track (track_get_info), especially if the user hasn't specified an index yet.
session_get_info session_snapshot medium Both are read-only orientation tools returning session state; session_get_info is described as a 'snapshot' and session_snapshot is a 'deep snapshot', so a task like 'capture the current session state' is ambiguous about depth/verbosity needed.
clip_fire clip_stop medium A task phrased as 'toggle clip 2 on track 1' or ambiguous playback instructions could cause the agent to pick the wrong directional action since both target the same slot with opposite effects.
clip_fire scene_fire medium A task like 'launch this' or 'trigger row 3' is ambiguous between firing a single clip slot versus an entire scene row, especially if the user conflates clip and scene terminology.
list_recipes list_prompts medium list_prompts' description explicitly says 'use when the user asks what workflows are available', which overlaps with list_recipes' music workflow/pattern listings, creating genuine ambiguity for a task like 'what workflows can I use?'
list_recipes apply_recipe medium A task like 'use the tech-house drum recipe' could be misrouted to list_recipes (to find it) instead of apply_recipe (to actually apply it) if the agent isn't sure the recipe_id is already known.
push_set_pad_color push_set_button_led medium Both set visual feedback on Push hardware; a task like 'light up the Play control in red' is ambiguous whether it refers to a pad or a named transport button, especially if the user's terminology is imprecise.
device_get_parameters device_inspect_patcher medium A generic task like 'tell me about this device' could route to either the parameter listing or the M4L patcher discovery tool, since both are read-only device introspection with overlapping descriptions.
device_get_parameters device_inspect_plugin medium A task like 'what plugin is this and what can I adjust' blends parameter listing and plugin identity discovery, making it unclear which read-only device tool to call first.
track_create create_midi_clip low Both are 'create' actions in a music production flow ('create a new MIDI track' vs 'create a MIDI clip'), and a terse task like 'create MIDI for the drums' could be misparsed as creating a track rather than a clip.
session_snapshot session_diff low These are meant to be used together (snapshot before, diff after), so a task like 'show me what changed' could mistakenly trigger session_snapshot again instead of session_diff if the agent hasn't tracked the prior snapshot state.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard