ismail
Summary: ismail is an agent-driven music production and live-performance server that lets an AI compose, render, analyze, and perform music/audio entirely through text-based MCP tools.
Project management: create projects (
project_new), inspect them (project_info), change settings like BPM, offset, objective, reference, and derived lineage (project_set), and undo past states (undo).Tracks, busses, and mixing: add/remove/rename tracks, set volume/pan/mute/solo/sends/offset, create effect-return busses, and manage mixer settings (
track_add,track_set,track_remove,bus_add).Instruments and voices: browse presets and voice modules, inspect instrument parameters, set instruments, model track sounds, and use built-in or recorded mimic profiles (
presets_list,voices_list,voice_help,instrument_help,instrument_set,instrument_show,track_model,mimic_measure).Composition: write note events, step patterns, read/clear/copy/transform notes, and get piano-roll or relative-note views (
notes_write,pattern_write,notes_read,notes_clear,notes_copy,notes_transform).Effects and automation: add/set/remove effects, look up effect types, and automate volume, pan, instrument params, fx params, or expression lanes over time (
fx_add,fx_set,fx_remove,fx_help,automation_set,automation_clear,automation_read).Sound design: synthesize sounds, import audio, place clips, speak text to speech, extract one-shots by averaging repetitions, fit instruments to targets, compare sounds, and retune references (
sound_make,sound_import,sound_list,audio_place,sound_speak,sound_extract,instrument_fit,sound_compare,ref_retune).Rendering: render the full project or a window to WAV/MP3, optionally stems, and get levels, clipping, and timing info (
render).Analysis and comparison: analyze grid, overview, bars, chords, melody, notes, pitches, drums, envelopes, spectrum, timbre, formants, key, structure, roll, swing, sections, and kit components; compare/align/separate references; run detailed stem and bar comparisons (
analyze_*,compare,align,separate,spectrogram,cmp_run,cmp_summary,cmp_sections,cmp_bars,cmp_worst,cmp_zoom,cmp_arrangement,cmp_list).Level and mixing assistance: set faders from reference stem balance, EQ-match a track to a reference, and tune a track in context (
levels_from_ref,eq_match,track_fit).Live performance: start/stop a live engine, manage decks, load songs, transition between decks, create live tracks/buses, perform filter sweeps and fades, queue/cancel/view clips, listen to live output, record sets, check parity, and switch audio devices (
live_startthroughlive_device).Agent workflow helpers: read the usage guide, record the user's vocabulary, find capabilities by intent, batch operations atomically, map reference stems, and monitor machine resources (
guide,lexicon_note,lexicon_find,lexicon_view,ops_find,batch,stem_map_set,machine_status).
Used to encode MP3 previews of rendered tracks (e.g. render mp3=also or mp3=only). The binary is looked up on the PATH or configured explicitly via the ISMAIL_FFMPEG environment variable.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ismailcreate a 16-bar deep house loop in F minor and render an mp3"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
New here? You don't need to know music or code. Open an AI agent that can run programs on your computer (Claude Code, Codex, Cursor, or the Code tab in the Claude desktop app) and paste this line:
Set me up with ismail: https://github.com/newsbubbles/ismailIt installs everything, asks what you want to make, and plays you a first idea. If you have a VR headset, it can put you on a stage inside your music later. You don't need to know what a "skill", "MCP" or "plugin" is: your agent handles that.
ismail
Interfaces your agent runs and rebuilds for you: a DAW, a VR stage and a phone page.
The agent you already use does the work in the background. You bring the taste.
If you are an AI agent: read AGENTS.md first; it is short. Then the playbook, skills/ismail/SKILL.md. Setup for every client is in setup.md (one command with uv:
uvx --python 3.12 --from git+https://github.com/newsbubbles/ismail ismail mcp). Your first tool call isguide. Find any tool by what you need withops_find. Every render comes back to you as text.

Agents built a 1958 juke joint for the Crossroads Rewired music video; Nate walked in with a Quest 3 and directed them from inside: voice notes, and dance takes they play on the characters (4:43).
What ismail is
ismail is a set of recursively modifiable interfaces. A recursively modifiable interface is a shared space between a person and their agents, one side for each, that the agents keep rebuilding from the person's feedback while they use it, within constraints the person sets, and where the test that decides whether a change helped can itself be changed.
In plain words: ask for a button on your phone, an object in your VR room, a new way to read a mix, and the agent builds it from ismail's tools. The engines underneath stay put, and you decide whether a change actually helped (why it works this way).
It is an interface, not a harness: it interfaces to your harness and interfaces to you. It connects to the agent you already use (Claude Code, Codex, Cursor, any MCP client) on one side and to you on the other.
The DAW. Your agent can't hear, so it reads. It writes music as notes, sounds and code, renders it, and reads every render back as text. A song is code, so "change bar 12" changes bar 12 and nothing else. Then it plays it live, on decks.
The VR stage. A scene in your headset or browser that agents build while you stand in it. Objects carry their own behaviour, and when you dance, they put your moves on a character.
The phone page. The set in your pocket, with the screen off. Talk back through your earbuds; the agent puts its own panels on the page for whatever it needs to ask you, from "sample this or play it as a melody?" to a blind listening exam.
The agent measures everything it can and asks your ears and eyes only what its measurements can't settle.
Related MCP server: opendaw-mcp
Listen
Songs made with it, each shown with the text the agent read while making it. The playhead runs across that text as the song plays.
song | what it is |
a jam made from phone recordings of a ukulele, strums, beatbox and a voice, turned into psytrance, then a studio version | |
an Afro 6/8 in D Dorian: a bembe bell, congas, flute and trumpet in thirds, triplet guitar arpeggios and a Rhodes solo | |
a blues trio where a slow blues and a boogie share one song, every instrument synthesized | |
Debussy on the measured piano, slowed and softened, with strings, harp and flute drawn from its own harmony, over rain. Piano performance: Bernd Krueger (piano-midi.de, CC BY-SA) | |
a live soundscape: a rainforest bed and Tambopata's birds singing their own calls, with a piano that answers them, borrowing from Rachmaninoff, Scriabin, Lyadov and early Stravinsky | |
an original song for a 1970 power trio, synthesized | |
dawn in a rainforest canopy: synthesized birds and a small band | |
psytrance at 145 BPM, sounds fitted to a reference record's drums and bass | |
drum and bass at 174 BPM |
One line of direction: Frère Jacques on ismail's piano, the same tune before and after one line of feedback: a canon, then minor to major. More on video: the build devlog.
Agents do the work, each in a role
ismail comes with roles for more than one agent, in whatever harness you use:
a studio agent makes one piece (a song, a set, a scene) and only writes in that piece's folder;
a contributor dev changes ismail itself on its own copy of the code, and sends it upstream when you say yes;
an area dev owns one part end to end (today the stage dev, who also develops VR);
helpers (subagents) take one scoped job and report back.
They hand work to each other through files, so a session that restarts picks up where it was. When your harness has helpers and sessions that talk to each other, ismail uses them; when it doesn't, one agent does it all. ismail itself is built this way (the team, development.md).
Install
Paste the line at the top to your agent and it sets everything up. By hand, Python 3.10 or newer:
pip install "ismail @ git+https://github.com/newsbubbles/ismail"Then ismail mcp for any MCP client, ismail -p <project> <op> on the command line, or from ismail import api.
Extras and per-client setup are in docs/reference.md.
Where to look
you want | read |
to set it up as an agent | |
how to make music with it (the playbook) | |
what is built, every tool area, install details | |
why it works this way, with the numbers | |
what is done and what is next | |
to change ismail itself | |
to give something back (no git needed) |
Where it falls short
A new song from a blank page is the weak spot: the first sketch can sound generic and miss the genre's identity. It is strongest where there is something to measure: a reference to recreate, a song to play live, a scene to build.
Singing: ismail speaks (text to speech) and has no singing voice yet. Suno sings, and makes a polished song from one sentence.
Mimic needs more notes for instruments whose colour changes from note to note, like the piano (the
grand_pianovoice is the better piano today). Bowed strings miss a last crispness, and notes don't glide into each other yet.One tempo per project, no MIDI import or export, no plugin hosting.
The agent's own changes to a live set land between its turns, 5 to 30 seconds apart (your taps on the phone or the stage act at once).
The VR stage is tested on one headset (Quest 3) with one person.
It needs a capable agent, and your ear stays the final judge. The blind exams so far had one listener.
How it compares with Suno, streaming models such as Lyria RealTime, and bridges into Ableton or FL Studio: see the showcase page.
Contributors
Nate Codes (newsbubbles): author and maintainer.
eddiehavila: PR #116, the Docker image works under a non-root
--userwith no extra flags.The agent team: AI agent sessions, each with one role (who does what).
Sample sources: the recorded sets behind the measured and sampled voices, with their licences, are in docs/reference.md.
Made something with it? Open an issue with the song (a link is fine) and the prompt you gave your agent. The best ones go on the showcase page.
Please credit
ismail is MIT-licensed: use it for anything, commercial work included. We only ask, as a request and not a licence term, that when you publish something made with ismail, you say so.
Music, videos, posts: "Made with ismail" and a link to https://github.com/newsbubbles/ismail. The
creditsop writes CREDITS.md with that line and the recordings the agent measured; keep it with the piece.Papers and reports: use "Cite this repository" on GitHub (from
CITATION.cff).If your agent measured someone else's recording to model a sound, credit them too; CREDITS.md lists them.
License
MIT, see LICENSE.
Available Tools
97 toolsalignAlignB
Timing lag between two sources (onset cross-correlation, optionally in one band e.g. band='sub' for kicks). Use it to line a render up with the reference: project_set(offset_sec = offset_sec + lag).
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | render | |
| b | No | ref | |
| band | No | ||
| bars | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the algorithm (onset cross-correlation) and that the result is a lag value applied elsewhere, implying a non-destructive read. It does not state permissions, cost, or explicitly that it mutates nothing, leaving meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose followed by the actionable workflow. No wasted words, though the inline example is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, with 5 parameters at 0% schema coverage and no annotations, the description leaves the agent guessing on bars and project, making it only partially complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, so the description must compensate. It explains band with a concrete example ('sub' for kicks) and implies a/b are the two sources, but bars and the required project parameter are entirely unexplained, leaving most parameters opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific computation ('timing lag between two sources (onset cross-correlation)') with a concrete verb+resource, and the parenthetical explains the method. It is clear enough to distinguish from generic analysis siblings like compare or cmp_*, though it never explicitly names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit workflow: compute the lag, then apply it via project_set(offset_sec = offset_sec + lag). That tells the agent exactly when and how to use the result. It stops short of stating when NOT to use it or naming alternatives, so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_barsAnalyze BarsC
Per-bar table (max 32 bars): level dB, 6 band energies, spectral centroid, onset count, chroma chord.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| source | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, and it only partially meets it. It does surface one genuine behavioral trait not present in the schema: results are capped at 32 bars, which signals truncation. It says nothing about read-only safety, permissions, cost, or whether analysis has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the key noun ('Per-bar table') and the cap, then lists the columns. No filler, though it is telegraphic to the point of omitting necessary context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the enumerated columns are somewhat redundant and return values needn't be explained here. But with zero schema coverage on inputs and no usage guidance among a crowded analyze_* family, the definition leaves an agent unable to determine parameters or selection criteria.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the three parameters (project, bars, source) are entirely undocumented in the schema. The description only obliquely touches the bars parameter via 'max 32 bars' (an output cap, not input semantics) and says nothing about what 'source' selects or what form 'project' takes. It fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete artifact (a per-bar feature table) and enumerates its columns, so the agent knows what comes back. However, it never states the action performed (no verb) or the input it operates on, and it gives no differentiation from the many sibling analyzers (analyze_grid, analyze_sections, analyze_overview, analyze_timbre). Purpose is inferable but not sharply defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: nothing says when to pick analyze_bars over analyze_grid, analyze_sections, or cmp_bars, nor what prerequisites (e.g. a project must exist, bars must be defined) apply. The agent must guess from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_chordsAnalyze ChordsC
Chord + bass note per 1/per_bar of a bar (max 32 bars).
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| source | No | ||
| per_bar | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose one useful constraint (max 32 bars), but says nothing about whether analysis is read-only, what permissions the project requires, or how the source parameter affects behavior. For an unannotated tool this is a thin disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence, so nothing is wasted, but it is arguably over-terse to the point of ambiguity rather than genuinely concise. The core information is front-loaded but opaque.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, but with 0% parameter coverage, no annotations, and a cryptic one-liner, the definition leaves too much for the agent to infer about a four-parameter analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with four parameters. The description loosely maps to 'bars' and 'per_bar', but the required 'project' parameter and the 'source' parameter are never explained. It compensates only partially for the total absence of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (chords + bass note) which does distinguish it from many analyze_* siblings like analyze_key or analyze_melody. However, the phrasing 'per 1/per_bar of a bar' is cryptic and the intended verb is only implied by the name. It states what is analyzed but not clearly enough to confidently separate it from adjacent analyzers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the many other analyze_* siblings, no prerequisites, and no alternatives named. An agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_drumsAnalyze DrumsA
Drum hits as step strings per bar in 3 lanes (low/snare/hat bands), max 16 bars. Paste into pattern_write. Best on an isolated drum source: 'track:' after render(stems=True), or 'ref:drums'. On a full mix ('render', 'ref') the lanes are band activity, so bass, pads and leads also register as hits.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| sens | No | ||
| source | No | ref:drums | |
| project | Yes | ||
| steps_per_beat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful behavior: output granularity (3 band lanes, 16-bar cap), the false-positive risk on mixed sources where non-drum elements register as hits, and the downstream use (paste into pattern_write). It omits sensitivity/source-authorization details, but the false-positive warning is genuine behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the output format, then workflow integration, then source guidance. Four sentences with no filler, though the 'Paste into pattern_write' and source hints could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return format is covered, and the source/mix caveat is strong. However, with five params at 0% schema coverage and no annotations, the total absence of any explanation for `sens` and `steps_per_beat` leaves the definition incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It clarifies the `source` parameter ('track:<drum track>', 'ref:drums', 'render', 'ref') and the 16-bar cap tied to `bars`, but leaves `sens` and `steps_per_beat` entirely undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource and precise output: 'Drum hits as step strings per bar in 3 lanes (low/snare/hat bands), max 16 bars.' This clearly separates it from sibling analyzers like analyze_grid, analyze_structure, or analyze_bars without needing the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use conditions ('Best on an isolated drum source: track:<drum track> after render(stems=True), or ref:drums') and a when-not/degraded case ('On a full mix the lanes are band activity, so bass, pads and leads also register as hits'). It doesn't name an alternative tool, but the source-selection guidance is explicit enough to steer invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_envelopeAnalyze EnvelopeC
Level per step as digits 0-9 (max 8 bars); band = sub|bass|lowmid|mid|himid|air to isolate a range. Reveals sidechain pumping, gating, note rhythm.
| Name | Required | Description | Default |
|---|---|---|---|
| band | No | ||
| bars | No | ||
| source | No | ||
| project | Yes | ||
| steps_per_beat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It hints at the result shape ('digits 0-9, max 8 bars') but says nothing about side effects, permissions, cost, or what the tool actually returns as a whole, leaving the safety and behavior profile unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the input encoding then the payoff. Dense and essentially waste-free, though the 'Level per step as digits' phrasing is terse enough to be slightly cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be spelled out, but with 5 parameters at 0% schema coverage and no annotations, the description leaves most inputs (source, project, bars, steps_per_beat) and the tool's behavioral profile undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters. The description only clarifies 'band' (sub|bass|lowmid|mid|himid|air) and marginally bounds 'bars' (max 8); 'source', 'project', and 'steps_per_beat' remain entirely undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description tells the agent this tool derives an amplitude envelope ('Level per step as digits 0-9') and what it surfaces ('sidechain pumping, gating, note rhythm'), which is a clear specific activity. It differentiates loosely from other analyze_* siblings by naming the phenomenon it detects, but it never explicitly names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use vs when-not-to-use guidance and no mention of any sibling such as analyze_drums, analyze_bars, or analyze_swing. The stated outputs imply a use case but the agent must infer when this tool is preferred over the many other analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_formantsAnalyze FormantsB
Vowel view of a voice: LPC formants F1/F2/F3 per step and the nearest vowel (max 8 bars). Use it to see what a vocal part is saying/singing and to match a vocoder / formant sound to it.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| source | No | ref:vocals | |
| project | Yes | ||
| steps_per_beat | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose real behavioral traits: the LPC method, per-step resolution, and a hard cap of 8 bars. However, it says nothing about read-only vs mutating behavior, whether it needs rendered audio, or what the defaults do — significant gaps for a zero-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with the output shape front-loaded and usage second; every clause carries information. The opening "Vowel view of a voice" is slightly colloquial but quickly resolves into concrete detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be re-explained, and the description's framing of the analysis is adequate for selection. But with 0% schema coverage on four parameters, the definition leaves too much about inputs unspecified to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 4 parameters, so the description must compensate. It hints at the bars limit ("max 8 bars") and per-step resolution ("per step"), but never explains the `source` ref format, `project`, or the structure of the `bars` array, leaving most parameters opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific analysis output (LPC formants F1/F2/F3 per step plus nearest vowel), which is a concrete verb+resource and clearly distinct from siblings like analyze_spectrum or analyze_timbre. It stops short of explicitly naming the alternatives it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it to see what a vocal part is saying/singing and to match a vocoder / formant sound to it" gives clear context for when the tool applies. It offers no exclusions or named alternatives, but the use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_gridAnalyze GridB
Estimate tempo, the time of bar 1 (kick, harmony, section changes and snare on 2 and 4 vote), the tuning offset from A440 and, with a reference drum stem, the swing. Use the result in project_new/project_set.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| project | Yes | ||
| bpm_hint | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses conditional behavior (swing is only computed when a reference drum stem is supplied) and the internal voting heuristic for bar 1 (kick, harmony, section changes, snare on 2/4). It does not state that the operation is read-only, whether it mutates project state, or its cost/expense profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence listing outputs followed by a short directive sentence; front-loaded with the core purpose and free of filler. The parenthetical voting detail is somewhat crammed but still earns its place by explaining bar-1 estimation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be re-explained, and the description covers what is estimated plus the follow-up workflow. It nevertheless leaves gaps around the required project parameter, bpm_hint, and the read-only/cost profile that an un-annotated tool should disclose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 3 parameters, so the description must compensate. It implicitly maps 'reference drum stem' to the source parameter, but never mentions the required project parameter or the bpm_hint parameter at all. The bpm_hint omission is especially costly for a tempo-estimation tool where a hint plausibly changes behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Estimate) and enumerates concrete outputs: tempo, bar-1 position, A440 tuning offset, and swing. It partly distinguishes itself from siblings by scoping swing detection to the presence of a reference drum stem. However, it does not clearly separate itself from near-neighbors like analyze_swing, analyze_bars, or analyze_structure, so an agent must still infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use the result in project_new/project_set' gives a downstream workflow hint, implying this is a preparatory analysis step before setting up a project. But there is no explicit when-to-use vs analyze_swing/analyze_bars, and no stated prerequisites or exclusions. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_keyAnalyze KeyB
Key estimate (Krumhansl) over the whole source or bars [a, b].
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| source | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but discloses little: it names the Krumhansl estimation method but says nothing about permissions, read-only nature, side effects, or defaults. It adds the algorithm detail but leaves the operational profile unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words; scope and method are packed efficiently with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, with no annotations and 0% parameter description coverage, the terse sentence leaves gaps: the required 'project' parameter and any permission/default behavior are undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does add meaning for two parameters: 'source' (the whole source to analyze) and 'bars' (a range given as [a, b]), but the required 'project' parameter is never mentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Key estimate') and scopes it to 'the whole source or bars [a, b]', naming the Krumhansl algorithm. This clearly differentiates it from other analyze_* siblings in intent, though it does not explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied via the scope clause 'over the whole source or bars [a, b]', which tells the agent it can target either the full source or a bar range. There is no when-to-use/when-not guidance and no alternative tool named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_kitAnalyze KitA
Discover the pieces of a drum kit: NMF splits the drum source into k components (each a spectrum + when it
hits), prints each one's pitch region, share of energy and hit pattern per 16th folded over a cycle-bar loop,
and writes each component's audio to /analysis/kit/comp_.wav (use it as a sound_import /
instrument_fit target, never in the render). analyze_drums shows 3 band lanes and hides pieces: on a G-funk
record this found 6 (punch kick apart from the 808, ghost snares). Raise k until new components are only
fragments (< 2% energy, or a copy of another's pattern).
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | ||
| bars | No | ||
| cycle | No | ||
| source | No | ref:drums | |
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that audio files are written to <project>/analysis/kit/comp_<n>.wav, the folding/print format of the analysis, and the constraint not to use the outputs in a render. It stops short of stating compute cost or whether the source audio is modified, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core verb and mechanism, and the tuning guidance and sibling comparison each add value rather than padding. The second and third sentences are dense run-ons with stacked parentheticals, which slightly hurts readability, but little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is analytically complex, yet the description covers the mechanism, side effects, output locations, and tuning guidance; and since an output schema exists, return-value detail is not required. The main gap is the under-explained source and bars inputs, which leaves a small hole for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It conveys real meaning for k (number of components, with a stopping heuristic) and cycle (the loop length in bars the hit pattern folds over), but source (default ref:drums), bars, and the exact indexing of cycle are left unexplained, leaving roughly half the parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Discover the pieces of a drum kit") and names the NMF mechanism (splits into k components, each a spectrum + hit time) plus the concrete artifact produced (comp_<n>.wav). It also explicitly contrasts with the sibling analyze_drums ("shows 3 band lanes and hides pieces"), so an agent can separate the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete tuning rule for when to stop ("Raise k until new components are only fragments (< 2% energy, or a copy of another's pattern)") and names alternatives by pointing output at sound_import/instrument_fit while warning it is "never in the render." The conditions for choosing this tool over analyze_drums are stated outright.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_melodyAnalyze MelodyB
Monophonic pitch -> note list in notes_write format (max 16 bars). Best on a stem or a soloed line.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| fmax | No | C7 | |
| fmin | No | C1 | |
| quant | No | ||
| source | No | ref:other | |
| project | Yes | ||
| min_conf | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the output format and a hard 16-bar limit, plus the input-material requirement, which is real behavioral context. It says nothing about permissions, reversibility, or what happens on non-monophonic input.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact fragments, front-loaded with the core transformation and no wasted words. Brevity is a virtue here, though it verges on under-specification given the parameter load.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. But for a 7-parameter tool with zero schema coverage and no annotations, the description leaves most parameters and all failure/permission behavior undocumented, which is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters, so the description must compensate and largely does not. Only the bar limit (relating to 'bars') is hinted at; fmin, fmax, quant, source, min_conf, and project are never explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific transformation: monophonic pitch becomes a note list in notes_write format, capped at 16 bars. That is a clear verb+resource+output mapping. It does not, however, distinguish itself from closely named siblings like analyze_pitches or analyze_notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Best on a stem or a soloed line" gives an implied precondition and, by implication, a failure condition on polyphonic material. It names no explicit alternative tool, so the agent is left to infer routing among analyze_pitches/analyze_notes/notes_from_audio.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_notesAnalyze NotesC
Polyphonic note estimate -> notes_write format (max 16 bars). Raise threshold to drop weak/ghost notes.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| fmin | No | C1 | |
| quant | No | ||
| source | No | ref:other | |
| project | Yes | ||
| max_poly | No | ||
| threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it discloses only a bar cap (max 16) and threshold behavior. It does not say whether existing notes are overwritten, whether it writes anything at all or just returns data, what permissions are needed, or how the result is delivered. The '-> notes_write format' phrasing leaves the read/write nature genuinely ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is very short and front-loads the core function, which is good, but the arrow notation and fragments read as under-specification rather than disciplined brevity. Every word is load-bearing only because so little is said.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a 7-parameter audio-analysis tool with no annotations, the description is far too thin: it omits what the tool consumes (audio source), how 'source' is interpreted, and how it relates to sibling analysis tools. It is not complete enough to call correctly without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Seven parameters at 0% schema coverage, yet the description addresses only 'threshold' (with useful semantics: raise it to drop weak/ghost notes). bars, fmin, quant, source, project, and max_poly are undocumented in both schema and description, so an agent must guess at units, formats, and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a resource (notes) and an output target ('notes_write format'), plus a constraint (max 16 bars), so the agent can roughly tell it produces note data. But 'Polyphonic note estimate' is jargon rather than a clear verb+resource statement, and it never distinguishes itself from siblings like notes_from_audio, notes_from_audio_loop, analyze_pitches, or analyze_melody. Purpose is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is a parameter hint ('Raise threshold to drop weak/ghost notes'), which is not a when-to-use rule. There is no indication of when this tool should be chosen over the many sibling analyze_* or notes_from_audio* tools, nor any prerequisite or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_overviewAnalyze OverviewC
Loudness, key and a section map (bars, level, dominant bands, chroma) of an audio source on the project grid.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it only lists output contents. It does not state that the operation is read-only/non-destructive, whether analysis is expensive or time-consuming, or what happens when 'source' is omitted (the schema default is null). 'Analyze' weakly implies a safe read, but nothing is disclosed explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no filler and the resource named up front. It is efficient, though it is a noun fragment rather than a front-loaded statement of purpose and action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be re-explained, but for a two-parameter tool with 0% schema coverage and no annotations, the description leaves key gaps: the meaning of 'source' and its default behavior, and any indication of when to prefer this over the specialized analyze_* siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters, so the description must compensate and does not. Neither 'source' (optional, defaults to null) nor 'project' (required) is mentioned or explained; 'on the project grid' gestures vaguely at project scope but leaves unclear what an audio source is (file, track, clip) or what the default source is.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names concrete outputs (loudness, key, section map with bars, level, dominant bands, chroma) of an audio source, so the resource is identifiable, but it uses no verb and gives no indication of how this overview differs from heavily overlapping siblings such as analyze_key, analyze_bars, analyze_sections, or analyze_structure. An agent can guess it is a combined summary but cannot confidently route to it over the specialized tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternatives despite a large family of sibling analyze_* tools. The only contextual hint is the phrase 'on the project grid', which does not tell the agent when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_pitchesAnalyze PitchesB
Pitches sounding in each 1/per_bar of a bar, loudest first with dB (max 16 bars). Best view for pads, drones, sustained basses and chords; use analyze_melody for fast monophonic lines.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| fmin | No | C1 | |
| source | No | ref:other | |
| per_bar | No | ||
| project | Yes | ||
| floor_db | No | ||
| max_notes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses a real constraint (max 16 bars) and the output ordering (loudest first with dB), which is useful, but it says nothing about how the analysis is sourced, whether it is a safe read-only operation, or any performance/authorization considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loading what the tool returns before the usage guidance, with essentially no filler. Minor awkwardness in the opening clause slightly hurts readability but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return format needn't be explained, and the description covers scope, ordering, and best-fit use cases. However, for a 7-parameter analysis tool with no annotations and 0% schema coverage, the near-total silence on most parameter meanings leaves the definition thinner than it should be.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters, so the description must compensate, and it only clarifies per_bar (subdivisions of a bar) and the bars cap. Key parameters like fmin, source, floor_db, and max_notes receive no explanation, leaving most of the schema opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and output shape: pitches sounding per 1/per_bar subdivision, ordered loudest first with dB, capped at 16 bars. It is distinguishable from analyze_melody, though the phrasing ('Pitches sounding in each 1/per_bar of a bar') is grammatically awkward and omits an explicit verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear when-to-use guidance ('Best view for pads, drones, sustained basses and chords') and names the alternative ('use analyze_melody for fast monophonic lines') with the condition that selects it. It does not address overlap with other sibling analyzers such as analyze_chords or analyze_notes, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_rollAnalyze RollB
Piano roll of any source from the same step features the comparisons score: one row per pitch, one char per 16th ('#' note starts, '=' sustains). low/high limit the pitch range (split bass / chords / lead that share a stem); rel_db = how far under the step's loudest note still counts; floor_db = absolute floor. as_notes=True returns a notes_write list (beats relative to the first bar) instead - write it, then cmp to verify.
| Name | Required | Description | Default |
|---|---|---|---|
| low | No | C1 | |
| bars | No | ||
| high | No | C8 | |
| rel_db | No | ||
| source | No | ref:other | |
| project | Yes | ||
| as_notes | No | ||
| floor_db | No | ||
| max_bars | No | ||
| min_steps | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the output structure and the dual mode (ASCII grid vs. notes_write list), which is useful. However it never states that this is a read-only analysis operation, nor any constraints on cost, scope, or side effects, so it only partially fulfills the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main purpose is front-loaded, but the prose is dense and occasionally ungrammatical ('from the same step features the comparisons score'), forcing re-reading. It is reasonably sized for a 10-param tool but not cleanly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, yet the description helpfully details the grid encoding anyway. The gap is on the input side: for a 10-parameter tool with zero schema coverage, several parameters remain unexplained, so the definition is not fully complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 10 parameters, so the description must compensate. It explains low/high (pitch range for splitting bass/chords/lead), rel_db (threshold under the loudest note), floor_db (absolute floor), and as_notes, but leaves source, bars, project, max_bars, and min_steps entirely undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: rendering a piano-roll comparison score of a source, with an explicit output encoding ('#' note starts, '=' sustains). It distinguishes itself within the crowded analyze_* family by describing a grid/score output rather than pitch, chord, or melody summaries, though it never names a sibling directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a hint of a workflow ('as_notes=True returns a notes_write list ... write it, then cmp to verify'), but no explicit guidance on when to choose this over analyze_notes, analyze_pitches, analyze_melody, or analyze_grid. The agent is left to infer the selection condition from the output format alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_sectionsAnalyze SectionsB
Loudness per section: rms, peak, loudest and quietest 400 ms, and the song's dynamic range. sections =
{"intro": [1, 4], "climax": [25, 28], ...} (bars inclusive); omitted = blocks of block bars. Flags the
section right before the loudest when it is 2 dB or more quieter on average but peaks within 3 dB of it (a build
as loud as its climax: the climax will not arrive, and this only showed up here) and sections so quiet they vanish at normal volume.
| Name | Required | Description | Default |
|---|---|---|---|
| block | No | ||
| source | No | render | |
| project | Yes | ||
| sections | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose the computed metrics, the section-indexing semantics, the default blocking behavior, and the exact flagging thresholds (2 dB average drop, 3 dB peak proximity), which is meaningful behavioral detail. It omits anything about cost or side effects despite source defaulting to 'render'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The output content is front-loaded, which is good, but the whole definition is a single dense paragraph and the trailing parenthetical about the build never arriving is editorial rather than operational. Every clause is informative, yet the structure makes it harder to scan than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values, yet it is otherwise reasonably complete for a nested-object analysis tool: it covers the sections format and flag semantics. The unexplained `source` parameter, which governs whether audio is rendered, is a real gap for an agent deciding how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the `sections` object format with a concrete example and the bars-inclusive convention, and ties an omitted value to the `block` parameter. However, `project` and `source` (default 'render') receive no explanation at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise statement of what is computed per section (rms, peak, loudest/quietest 400 ms, dynamic range), which is far more specific than the tool name. It does not, however, explicitly distinguish itself from nearby siblings like analyze_structure, analyze_bars, or cmp_sections, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no named alternative, despite a crowded field of analyze_* and cmp_* siblings. The build/climax flag narrative hints at a diagnostic use case but never states it as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_spectrumAnalyze SpectrumC
1/3-octave levels + strongest peaks (with note names) over a window. Window: span=[a, b] in fractional bars, end exclusive (span=[5, 6] = all of bar 5, [5, 5.25] = its first beat), or bars=[a, b] inclusive like the other analysis tools, or t0/t1 in seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| t0 | No | ||
| t1 | No | ||
| span | No | ||
| source | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It describes output content but says nothing about the operation being read-only/non-destructive, whether it can mutate state, or any permission or cost considerations, leaving the safety profile unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool returns, then the window-format rules. The window sentence is dense but every clause earns its place by disambiguating span versus t0/t1 semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema means return values needn't be described, yet the params remain half-documented (0% coverage, source/project missing) and the safety profile is absent. It is adequate for basic invocation but has clear gaps for a five-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain all five params. It clearly defines span (fractional bars, end-exclusive) and t0/t1 (seconds) with worked examples, but leaves 'source' and 'project' completely unexplained and even references a 'bars' parameter that does not exist in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific analysis and its output (1/3-octave levels + strongest peaks with note names), which distinguishes it from siblings like spectrogram or analyze_timbre. It never names an alternative tool directly, but the content mapping is clear enough for an agent to pick it correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not guidance, and no sibling alternative is named among the many analyze_* tools. The only hint is the parenthetical 'like the other analysis tools,' which implies a convention rather than telling the agent when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_structureAnalyze StructureA
Macro view of a whole song: arrangement map (bands + stems, one char per bar), sections lettered by similar material, repeats, loop length. source='ref' uses reference stems; 'render' uses your stem groups (default: the reference if the project has one, else your render).
| Name | Required | Description | Default |
|---|---|---|---|
| stems | No | ||
| source | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose real behavior: the output shape (bands + stems, one char per bar), that sections are lettered by similar material, that repeats and loop length are reported, and critically the default source resolution ('reference if the project has one, else your render'). It omits any statement of read-only nature or cost, but for an analysis tool this is meaningfully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose before the source-mode detail. Dense but every clause carries information; no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be spelled out, yet the description still summarizes them usefully. For a 3-param analysis tool with no annotations, the main residual gap is the undocumented project parameter and absent sibling routing, but the core invocation context is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the source parameter well (ref vs render + default logic) and implies the stems boolean through 'bands + stems', but the project parameter is entirely undocumented and the stems behavior is only inferable, not stated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Analyze Structure' → macro view of a whole song) and enumerates the concrete outputs: arrangement map, sections lettered by material, repeats, loop length. It clarifies scope ('whole song', macro view) but never names the closely related siblings (analyze_sections, analyze_bars) to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied via 'macro view of a whole song', suggesting it is the high-level counterpart to bar/section analyzers, and it explains the source-mode choice (ref vs render with default resolution). However, it never says when to prefer this over analyze_sections or analyze_bars, nor gives any explicit when-to-use trigger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_swingAnalyze SwingA
How late the swung hi-hats land, in beats and ms (16ths: the 'a' against the 'and'; 8ths: the 'and' against the beat). Default source: the reference drum stem if there is one, else the reference/render. Use it on a reference before writing swung notes, and on 'track:' to check yours. Straight = 0.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose real behavior: the default source resolution chain (reference drum stem if present, else reference/render), the meaning of the returned value, and that straight timing yields 0. It does not state read-only/safety characteristics or latency, but for a read-oriented analysis tool this is solid disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core measurement, then usage, with no filler sentences. The 16ths/8ths parenthetical is dense but earns its place by defining the metric. Slightly packed but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return-value documentation is rightly omitted, and the description covers purpose, timing semantics, default source, and workflow. The only real gap is the unexplained required `project` parameter and no safety indication, which keeps it from 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does explain the `source` parameter's default and value syntax ('track:<hats>', reference stem), which is valuable. However the required `project` parameter gets no explanation at all, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific measurement: how late swung hi-hats land, reported in beats and ms, with clear unit semantics (16ths vs 8ths) and 'Straight = 0'. This is far more specific than a tautology and implicitly distinguishes it from generic analyzers like analyze_grid or analyze_notes, though it never names a sibling to route against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: 'on a reference before writing swung notes, and on track:<hats> to check yours.' This is concrete workflow context. It lacks a when-not or an explicit alternative-tool pointer, so it falls just short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_timbreAnalyze TimbreA
Describe the sound in a window: envelope, pitch, harmonic profile -> waveform guess, brightness/filter, noisiness, stereo width. Use on isolated sounds (stems, sound bank, soloed tracks) for sound design. Window: span=[a, b] in fractional bars, end exclusive (span=[5, 6] = all of bar 5, [5, 5.25] = its first beat), or bars=[a, b] inclusive like the other analysis tools, or t0/t1 in seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| t0 | No | ||
| t1 | No | ||
| span | No | ||
| source | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses what the analysis computes, and the presence of an output schema covers the return value, but it never states that the tool is read-only/non-destructive or what the 'source' selection implies. Adequate but incomplete for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, followed by usage then window syntax; every sentence carries information. The window-selection sentence is long and dense but each example earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the window semantics are well covered. However, for a 5-parameter, 0%-coverage, unannotated tool, the unexplained 'source' parameter (which sound is analyzed) and the phantom 'bars' option leave real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It thoroughly documents the window selectors (span/end-exclusive with worked examples, t0/t1 in seconds), which is high value, but leaves 'source' and 'project' entirely unexplained and references a 'bars' parameter that does not exist in the schema, creating mild confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Describe the sound') plus the exact output dimensions (envelope, pitch, harmonic profile, waveform guess, brightness/filter, noisiness, stereo width). This clearly differentiates it from siblings like analyze_spectrum, analyze_envelope, and analyze_formants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear use context: 'Use on isolated sounds (stems, sound bank, soloed tracks) for sound design.' It implies when this tool is appropriate but does not explicitly rule out the noisy/mixed-material cases handled by other analysis tools, so it stops just short of naming an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audio_placeAudio PlaceC
Place a bank sound on a track's timeline at bar (fractional ok) as an audio clip.
| Name | Required | Description | Default |
|---|---|---|---|
| bar | Yes | ||
| sound | Yes | ||
| track | Yes | ||
| gain_db | No | ||
| project | Yes | ||
| offset_sec | No | ||
| length_beats | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a mutation (creating a clip) but says nothing about undo/reversibility, permissions, or what happens if a clip already exists at the target bar. For a write operation with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though its brevity is partly a symptom of under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. But with 7 parameters at 0% coverage, no annotations, and no usage guidance, the description leaves an agent without enough context to invoke a placement/mutation tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters. The description only clarifies `bar` semantics ('fractional ok'), leaving gain_db, offset_sec, length_beats, and the exact track/sound/project references completely undocumented in both the schema and the description. It does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (place), resource (bank sound), and target (track timeline as an audio clip), which distinguishes it from note-writing siblings like notes_write and from creation siblings like sound_make. However, it does not explicitly name an alternative tool to route the agent, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no named alternatives among the many siblings (sound_import, sound_list, notes_write). The phrase 'bank sound' implies the sound must already exist in the bank, but this prerequisite is never spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_clearAutomation ClearA
Remove automation for one param (or all when param is None).
| Name | Required | Description | Default |
|---|---|---|---|
| param | No | ||
| track | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses a non-obvious behavioral trait: passing param=None clears all automation. However, it says nothing about reversibility, undo support (a sibling undo exists), permissions, or what the destructive 'remove all' path actually affects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero waste, front-loading the action and immediately clarifying the special None case. Nothing extraneous and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. But for an unannotated destructive operation, the description omits the safety context (irreversibility, undo, permissions) that would make it complete enough to call confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds real meaning for param (None means all), but project and track are left entirely undocumented beyond their self-evident names, leaving a partial gap in the three-parameter surface.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (remove) and resource (automation) plus the scope of the operation (one param, or all). It is clearly distinguishable from automation_set and automation_read by name and intent, though it never explicitly names those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: clear automation rather than set or read it. There is no explicit statement of when this should be preferred over automation_set (which might also overwrite/remove) or any prerequisite conditions, so the agent must infer the selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_readAutomation ReadB
List automation lanes on a track ('master' and 'bus:' too) as [bar, value] points.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the return shape ('[bar, value] points') and the special track identifiers ('master', 'bus:<name>'), but says nothing about auth/permissions, pagination, ordering, or behavior on an empty lane. Some value added beyond structured fields, but significant behavioral gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the operation front-loaded and the special-case detail parenthetically attached. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained in depth (the description's brief format note is a bonus). However, for a tool with zero annotation and zero schema-description coverage, it leaves the 'project' parameter and read-operation safety profile undocumented, which is a noticeable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies the accepted values for 'track' (including 'master' and 'bus:<name>'), which is genuinely useful, but never mentions the required 'project' parameter nor the format of ordinary track names. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('List') and resource ('automation lanes on a track'), and adds scope detail by noting that 'master' and 'bus:<name>' are also valid targets. It is clearly a read operation, distinguishable from automation_set/automation_clear by name and verb, though it never explicitly names those siblings as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus automation_set or automation_clear, nor any prerequisites (e.g., a project must be open). The read-only intent is only inferable from the verb 'List', so usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automation_setAutomation SetA
Automate a parameter over time (track='master' for a master volume fade, track='bus:' for a bus's volume_db or fx.., e.g. a filter sweep on a drum bus). points = [[bar, value], ...] with fractional bars allowed (17.5 = beat 3 of bar 17); linear between points (log for Hz params), held before/after. param: 'volume_db' (dB OFFSET added to the track fader: 0 = unchanged, -30 = fade out), 'pan', 'inst.' (inst.filter.cutoff, inst.oscs.0.level ... see instrument_help), 'inst.lane.' (an expression lane of a performer voice, e.g. a guitar's bend in semitones: voice_help lists its lanes), 'fx..'. mode='merge' keeps existing points outside the new points' span.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | replace | |
| param | Yes | ||
| track | Yes | ||
| points | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it discloses interpolation behavior (linear between points, log for Hz params, held before/after) and explains that mode='merge' preserves existing points outside the new span, implying the default 'replace' overwrites. It omits auth/permission needs and does not explicitly state what replace destroys, but the curve semantics are unusually well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main purpose is front-loaded before the dense parenthetical examples, and given the genuine complexity the length is justified. However, the single run-on paragraph with stacked parentheticals is harder to scan than a structured breakdown would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. For a 5-parameter, 0%-coverage mutation tool the description supplies nearly everything an agent needs (points format, interpolation, param syntax, mode), with the only real gap being explicit precedence/overwrite behavior in replace mode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it defines track formats ('master', 'bus:<name>'), points structure ([[bar, value], ...] with fractional bars), mode semantics, and the full range of param values including dB-offset behavior and inst/fx paths. Only 'project' is left undocumented, which is self-evident.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource, 'Automate a parameter over time', and immediately clarifies the scope (master, bus, or inst automation). An agent can tell it writes/creates automation curves rather than reading or clearing them, though it never names the sibling tools automation_read/automation_clear explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the detailed how-to content (track formats, param syntax, mode semantics), but there is no explicit when-to-use guidance, no exclusion conditions, and no routing to alternatives such as automation_clear or automation_read. The agent must infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batchBatchB
Run many ops in order: ops = [{"op": "notes_write", "track": ..., ...}, ...] (project is implied). Mutations are atomic: if one fails the project is restored to its state before the batch. Returns each op's output.
| Name | Required | Description | Default |
|---|---|---|---|
| ops | Yes | ||
| project | Yes | ||
| stop_on_error | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose a meaningful trait: mutations are atomic with rollback to the pre-batch state on failure, plus ordered execution and per-op output. However it says nothing about error surfacing, permissions, or how the stop_on_error parameter changes behavior relative to the always-atomic guarantee.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the call format and atomicity guarantee front-loaded. The example earns its place by showing the op object shape; nothing is redundant, though the prose is quite compressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out, and atomicity is covered. The remaining gap is the undocumented stop_on_error parameter and the unresolved question of how it interacts with the unconditional rollback described — an agent cannot predict behavior when an op fails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It partially does: the ops array format is illustrated with a concrete example and 'project is implied' clarifies the project parameter. But stop_on_error (default true) is never explained, leaving one of three parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb and resource ('Run many ops in order'), and the inline example of an op object makes the nature of the tool concrete. It does not name any sibling or explicitly contrast with the many single-op tools (notes_write, track_set, etc.), so an agent must infer that this is the batching alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to prefer batching over calling individual op tools repeatedly, nor any exclusion or prerequisite. The only guidance is implicit in the format example, which shows how ops are shaped but not why or when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bus_addBus AddB
Add an effect-return bus (e.g. reverb). Route with track_set(sends={name: -12}) or track_set(output=name).
| Name | Required | Description | Default |
|---|---|---|---|
| fx | No | ||
| name | Yes | ||
| project | Yes | ||
| volume_db | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It says nothing about the defaults (volume_db=0, fx=null), what an effect-return bus does to the project state, whether it persists, or what permissions are needed. For a mutation tool with zero annotation coverage this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: purpose first, follow-on routing second. Every clause earns its place and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, which lightens the load. However, with four parameters at 0% schema coverage and no annotations, the description leaves key calling details undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does not. Only 'name' is referenced (via the sends/output syntax); project, fx, and volume_db are never explained, and the sends=-12 example is ambiguous about which parameter it maps to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Add an effect-return bus') and gives a concrete example ('reverb'), so the agent knows exactly what is created. It does not distinguish itself from related siblings such as live_bus, which is the only gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent how to use the created bus afterward: route via track_set(sends={name: -12}) or track_set(output=name). This is actionable operational guidance. It stops short of saying when to prefer bus_add over alternative routing approaches, so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmp_arrangementCmp ArrangementB
Arrangement maps, yours vs reference, per stem (one char per bar): the macro structure at a glance.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses the output format (one char per bar, per stem, yourself vs reference), but says nothing about whether the operation is read-only, its cost, or any side effects. For an apparent analysis tool this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence, front-loaded with the tool's function and ending with the payoff ('macro structure at a glance'). Nothing is wasted, though the terse phrasing borders on cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description adds useful framing about the map format. However, with no annotations and zero parameter documentation, the definition leaves real gaps for an agent deciding how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two parameters, so the description must compensate and largely does not. It never mentions 'project' or 'id' by name; only the implicit 'yours vs reference' framing loosely maps to them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and action: it produces arrangement maps comparing 'yours vs reference, per stem' with 'one char per bar'. This distinguishes it reasonably from siblings like cmp_summary and cmp_sections, though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It hints at a use case ('the macro structure at a glance') but gives no when-to-use instruction, no prerequisites, and no guidance on choosing this over cmp_sections, cmp_bars, or cmp_summary. The agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmp_barsCmp BarsC
Per-bar metrics for one stem, 32 bars per page (bars=[a, b]).
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| bars | No | ||
| stem | No | mix | |
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it only discloses pagination ('32 bars per page'). It says nothing about what metrics are returned, whether any state is mutated, permissions required, or how the comparison is scoped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the scope and pagination front-loaded and no filler. It is terse rather than bloated, though the brevity borders on cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, which lightens the burden. Still, for a 4-parameter analysis tool with 0% schema coverage the description leaves too much (metrics definition, 'id'/'project' roles) unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 4 parameters. The description hints at the 'bars' range syntax (bars=[a, b]) and implies the 'stem' selector, but leaves 'id' and 'project' entirely undocumented, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Per-bar metrics for one stem' identifies the resource (bar-level metrics) and scoping (single stem), which does loosely separate it from cmp_sections and cmp_worst. But there is no verb and no statement of what is being compared or measured, so an agent cannot fully tell what 'cmp' computes without inspecting the output schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of any alternative among the many cmp_* siblings (cmp_worst, cmp_sections, cmp_zoom, cmp_summary). The pagination note is not usage guidance, so the agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmp_listCmp ListB
All stored comparisons with closeness per stem, oldest first: progress over time.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden alone. It does disclose two behavioral traits beyond the schema: the result is exhaustive ('All stored comparisons') and sorted oldest-first, which supports trend reading. It says nothing about whether the call is read-only or how the required project scopes the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tightly-packed sentence with the key facts (scope, payload, ordering, purpose) front-loaded and no filler. It is terse rather than padded, though the compressed phrasing costs some precision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return shape need not be explained, but for a tool whose only required parameter is undocumented, and with no annotations and no differentiation from five sibling cmp_* tools, the description leaves too much for the agent to infer before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the sole required parameter 'project' is never mentioned in the description. Because 'All stored comparisons' suggests an unfiltered list, the description arguably obscures whether project is a filter or a container, leaving the parameter's meaning to guesswork.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (all stored comparisons) plus the ordering (oldest first) and content (closeness per stem), which tells an agent this is the historical list rather than a single-run comparison. It stops short of naming how it differs from siblings like cmp_summary or cmp_worst.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trailing phrase 'progress over time' hints at the intended use case, but there is no explicit when-to-use versus cmp_summary, cmp_worst, or cmp_run, and no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmp_runCmp RunA
Build and store a full comparison of your latest render (A) vs the reference (B): every stem (mix, drums, bass, other, vocals), every bar, every 16th step. stems: 'tracks' (your stems from stem_map; needs a full render(stems=True)), 'demucs' (separate your render with the reference's model: apples to apples, slower), 'none' (mix only). Returns the summary vs ceiling/floor baselines. Drill in with cmp_sections, cmp_bars, cmp_worst, cmp_zoom, cmp_arrangement; cmp_list shows progress across runs.
| Name | Required | Description | Default |
|---|---|---|---|
| b | No | ref | |
| label | No | ||
| stems | No | tracks | |
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses key behavioral traits: the tool stores the comparison ('store a full comparison'), requires a full render with stems for the 'tracks' option, notes that 'demucs' is slower, and returns summary vs ceiling/floor baselines. It does not mention authentication, rate limits, or whether the stored comparison persists across sessions, but the core operation and its requirements are well described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and scope, then efficiently lists enum options and routing to related tools. It packs a lot of information into a few sentences without repetition. The only minor inefficiency is the implicit assumption that the agent understands 'stem_map' and 'render(stems=True)' from context, which requires prior knowledge but is not wasted verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no schema descriptions, no annotations, but an output schema exists), the description is quite complete. It explains the comparison scope, the stems behavior, the return summary, and how to drill down. It does not explain the 'label' or 'b' parameters in detail, but the presence of an output schema reduces the need to describe return values. It covers what an agent needs to invoke the tool correctly in most scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so by explaining the semantics of the 'stems' parameter with all three enum values and their requirements ('tracks' needs a full render, 'demucs' uses the reference's model and is slower, 'none' is mix only). It also implies the 'b' parameter is the reference and 'project' is the target. The 'label' parameter is not explained, but the critical parameter receives detailed treatment, substantially adding value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: 'Build and store a full comparison of your latest render (A) vs the reference (B)'. It clearly distinguishes the tool from the many siblings by naming the exact scope (every stem, bar, 16th step) and positioning it as the top-level comparison entry point. It does not explicitly name the sibling it is not, but the level of detail is sufficient for an agent to identify its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool versus alternatives. It lists the valid enum values for the 'stems' parameter and explains the condition that selects each: 'tracks' needs a full render(stems=True), 'demucs' is apples to apples but slower, 'none' is mix only. It also routes the agent to drill-down tools (cmp_sections, cmp_bars, cmp_worst, cmp_zoom, cmp_arrangement) and to cmp_list for progress. This is comprehensive guidance for invocation and follow-up.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmp_sectionsCmp SectionsC
Metrics per reference section for one stem.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| stem | No | mix | |
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and it delivers almost nothing. It implies a read-only analysis result, but never states that, nor what 'metrics' are computed, how they relate to the reference, or what happens with the default stem='mix'. For a tool with zero annotation coverage this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short, front-loaded sentence with no filler, which is structurally clean. However, it is terse to the point of being uninformative rather than genuinely concise — the brevity comes from omitting content, not from editing it down.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, but everything else is missing: no annotations, no parameter documentation, and no differentiation from the crowded cmp_* family. An agent cannot confidently select or invoke this tool from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all three parameters and does not. 'one stem' loosely maps to the stem parameter (which silently defaults to 'mix'), but id and project are never explained, and no format, valid values, or defaults are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The sentence names no verb at all — it describes a return value ('metrics per reference section') rather than an action, leaving the agent to guess that this computes or fetches comparison metrics. 'Metrics' and 'reference section' are undefined jargon, and the phrasing gives no way to tell it apart from cmp_bars, cmp_summary, or cmp_zoom in the sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of any alternative tool despite a dense cluster of cmp_* siblings that clearly overlap. The agent is left entirely on its own to decide whether cmp_sections or cmp_bars is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmp_summaryCmp SummaryC
Summary of a stored comparison (default latest): per-stem metrics vs ceiling/floor baselines.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only summary but never states that explicitly, nor does it disclose permission requirements, whether anything is mutated, or what the baselines represent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the key noun phrase front-loaded and no filler. It is dense but appropriately sized for the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, but with no annotations and 0% schema description coverage the description leaves behavioral and parameter gaps. The baseline terms 'ceiling/floor' are undefined, so an agent lacks context to interpret the summary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 2 parameters. The '(default latest)' clause adds meaning for the id parameter, but the required project parameter is entirely unaddressed in the description, leaving the coverage gap only partially compensated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and operation: a summary of a stored comparison, scoped to per-stem metrics against ceiling/floor baselines. It is distinguishable from sibling list/view tools (cmp_list, cmp_sections), though the jargon-heavy phrasing leaves the exact output shape unclear without the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the parenthetical '(default latest)', which concerns parameter defaults rather than when to use this tool over alternatives. No when-to-use condition or named alternative (e.g., cmp_list, cmp_worst) is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmp_worstCmp WorstB
The n worst bars of a stem, overall or by one metric (note_f1 pc_f1 attack_f1 hit_low hit_snare hit_hat shape dlevel).
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | ||
| id | No | ||
| stem | No | mix | |
| metric | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It implies a read-only analysis returning a bounded ranking ('n worst'), which is reasonable, but it never explicitly states it is non-mutating, describes paging/limits, or notes anything about cost. Adequate but thin for an un-annotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The inline metric enumeration is dense but earns its place since the schema provides no enums for that parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. The metric options are covered, but for a 5-parameter tool the required 'project' and optional 'id' remain opaque, and there is no routing against sibling comparison tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It usefully explains n ('n worst'), stem ('of a stem'), and metric, even enumerating the valid metric values (note_f1, pc_f1, etc.) that have no enums in the schema. However, the required 'project' and the 'id' parameters are entirely unexplained, leaving a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource combination ('the n worst bars of a stem') with a clear ranking scope and lists the metric dimension. An agent can tell what it returns, though it never differentiates itself from the closely-named sibling cmp_bars or compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no exclusions. The availability of an 'overall or by one metric' mode hints at a use case, but nothing tells the agent when to reach for cmp_worst versus cmp_bars, cmp_summary, or compare.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cmp_zoomCmp ZoomC
Step-level A vs B for bar..bar+bars-1: level digits, drum-lane hits, one row per pitch (b both, r reference only = you miss it, y yours only = extra, UPPERCASE = the note starts). layers: level bands hits notes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| bar | Yes | ||
| bars | No | ||
| stem | No | mix | |
| layers | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it is thin: it never states whether this is read-only, whether it requires a loaded reference, what happens with missing/invalid bars, or performance/rate characteristics. It does disclose output semantics (the b/r/y/UPPERCASE legend), which is genuine added context, earning it above the minimum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single compact sentence, which is appropriately sized, but it is heavily jargon-dense and not front-loaded from a newcomer's perspective. The legend (b/r/y/UPPERCASE) and layer info are packed together without structural separation, slightly hurting readability despite brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters at 0% schema coverage, no annotations, and output schema present (justifying omission of return values), the description is still too sparse. It leaves project, stem, and id semantics unexplained and provides no usage context versus the many comparison siblings, so an agent cannot reliably invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for six parameters, so the description must compensate. It only partially covers bar/bars ('bar..bar+bars-1') and layers ('level bands hits notes'), leaving project, stem (default 'mix'), and id completely unexplained. The critical 'stem' default and its meaning versus 'project' are unaddressed, which is a significant gap for an A/B comparison tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says it performs a 'Step-level A vs B' comparison over a bar range ('bar..bar+bars-1'), which identifies a specific verb (compare) and resource (step-level note data across bars). However, it uses cryptic shorthand (b, r, y, UPPERCASE markers) that assumes domain familiarity, and it does not clearly distinguish itself from siblings like cmp_bars, cmp_worst, cmp_sections, compare, or sound_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when to use this tool versus the many comparison siblings (cmp_* family, compare, sound_compare, cmp_run). The description only explains what output looks like, not when this tool is the right choice. Usage must be inferred entirely from the name and terse content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compareCompareB
Compare two sources bar by bar on the project grid (default: your render vs the reference). Scores: chroma_sim, rhythm_corr, band dB deltas, log-mel L1, plus the worst bars and advice. Compare stems too: a='track:bass', b='ref:bass'.
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | render | |
| b | No | ref | |
| bars | No | ||
| detail | No | ||
| project | Yes | ||
| offset_b | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral load; it discloses that output covers similarity metrics, worst bars, and advice, which tells the agent the shape of the analysis. It says nothing about whether comparison is non-destructive, cost, or alignment implications of offset_b, leaving real behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core compare action front-loaded, followed by a compact metric list. Slightly dense with unexplained jargon terms, but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema excuses explaining return values, and the description does enumerate the scoring dimensions. But with six undocumented parameters, no annotations, and heavy sibling overlap, it stops short of what an agent needs to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must define all six parameters. It only illuminates 'a' and 'b' (defaults plus the 'track:bass'/'ref:bass' stem syntax); 'bars', 'detail', 'offset_b', and 'project' are never explained, so the agent is left guessing at scope, granularity, and alignment offset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('compare two sources bar by bar on the project grid') and clarifies the default operands (your render vs the reference). However, it does not distinguish itself from the many sibling comparison tools (cmp_run, cmp_bars, cmp_summary, sound_compare), so an agent cannot tell which comparator to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the named default case (render vs reference) and the stem-comparison example, which shows a concrete invocation pattern. But there are no when-to-use/when-not statements and no routing relative to the cmp_* or sound_compare siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eq_matchEq MatchA
Match a track's long-term spectrum to the reference stem over bars [a, b]: renders the track's stem group (stem_map), compares 1/3-octave levels with the same window of the reference stem, and writes a peaking EQ at octave centres (63 Hz .. 16 kHz, gains clipped to +-max_db) as the track's fx 0 (replacing an earlier eq_match EQ), plus the level difference on the fader when level=True. Best where that track dominates its stem in the window (e.g. a pad in an intro).
| Name | Required | Description | Default |
|---|---|---|---|
| bars | Yes | ||
| apply | No | ||
| level | No | ||
| track | Yes | ||
| max_db | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the render step, the 1/3-octave comparison, the octave-centre EQ band range (63 Hz..16 kHz), the +-max_db gain clip, that it replaces an earlier eq_match EQ, and that it writes a level difference to the fader. It stops short of explaining what apply=false does or any permission/undo implications, leaving some behavioral gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is long and clause-dense but front-loads the purpose and every clause adds operational detail rather than filler. The trailing usage sentence is efficient. It could be split for readability but wastes little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. For a mutation tool with zero annotations the description supplies rich effect/destruction context, but the missing explanation of apply semantics leaves a meaningful gap given the 0% parameter coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 6 parameters, so the description must compensate. It meaningfully explains bars ([a,b]), max_db (gain clipping bound), and level (fader write), but leaves apply and the project/track identifiers unaddressed, and apply in particular has non-obvious dry-run semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb+resource+mechanism: it matches a track's long-term spectrum to a reference stem and writes a peaking EQ as fx 0. It is clearly distinguishable from siblings like levels_from_ref or compare, which do not describe this specific render-and-EQ-write pipeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete applicability condition ('Best where that track dominates its stem in the window (e.g. a pad in an intro)'), which tells the agent when this is the right choice. However, it names no alternatives or exclusions (e.g. when to prefer levels_from_ref or fx_set instead), so the routing is contextual rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_addFx AddB
Add an effect to target ('', 'bus:' or 'master'). fx = {'type': ..., params}; see fx_help. index = position in chain (default end).
| Name | Required | Description | Default |
|---|---|---|---|
| fx | Yes | ||
| index | No | ||
| target | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, yet it discloses only target syntax and chain-index placement. It says nothing about mutation semantics, required permissions, reversibility, or failure conditions for what is clearly a state-changing operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core action and followed by the two clarifying details; no filler. Slightly terse on project/fx, but structurally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and target/index are covered. But for a 4-parameter mutating tool with 0% schema coverage and no annotations, leaving 'project' and the fx field's structure undocumented (even by reference) is a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It usefully documents target (with a literal grammar for track/bus/master) and index (default end), but leaves 'project' unexplained and defers the fx object's contents entirely to fx_help.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Add an effect') and the target scope ('<track>', 'bus:<name>' or 'master'), so an agent knows exactly what the tool does. It does not explicitly distinguish itself from siblings like fx_set or fx_remove, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It routes the agent to fx_help for the fx payload and explains the index default, which implies usage. However, it never says when to use fx_add versus fx_set/fx_remove, nor any prerequisite or exclusion, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_helpFx HelpB
Effect types with default params; type= for one. Automatable params listed per type.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It conveys the informational nature of the tool and adds that automatable params are listed per type, but never explicitly states it is non-mutating or side-effect-free. For a help tool the risk is low, so a middle score is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse clauses, front-loaded with the primary behavior and followed by the filter clause. No wasted words, though the extreme brevity borders on under-specification rather than pure conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, with zero annotation coverage and 0% schema description coverage, the description does not fully cover the project parameter or clarify list-vs-detail behavior, leaving gaps for a 2-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the type parameter's purpose and syntax (type=<name> returns a single entry), but the project parameter is left completely undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (effect types) and what it returns (default params, automatable params per type). Combined with the name fx_help, an agent can tell this is a reference/lookup tool distinct from mutators like fx_add, fx_set, and fx_remove. The telegraphic phrasing keeps it from being fully explicit about being a help operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"type=<name> for one" gives an implied usage pattern (omit type to list all, supply it to get one), but there is no explicit when-to-use vs alternatives and no when-not guidance. The routing intent is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_removeFx RemoveA
Remove effect #index from target. Automation on later fx indices is re-pointed automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| target | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose a real side effect: automation on later fx indices is re-pointed automatically. That is meaningful behavioral context an agent could not derive from the schema. It stops short of covering permissions, invalid-index errors, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with zero filler; the purpose comes first and the side-effect caveat second.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, and the key index-shifting behavior is covered. However, for an annotation-free mutation the description omits the 'project' parameter's role and any error behavior, leaving gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies 'index' as an effect index and 'target' as the effect host, but says nothing about the required 'project' parameter or valid index ranges. Partial compensation for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Remove effect #index from target') that clearly distinguishes it from fx_add and fx_set. It does not name siblings explicitly, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as fx_set for modifying an effect instead of removing it. Usage is only inferable from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_setFx SetC
Update params of effect #index on target (merge).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| params | Yes | ||
| target | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. '(merge)' does signal non-replacement semantics, which is useful. But there is no mention of permissions, reversibility, error behavior if the index is invalid, or what parts of the effect state are preserved – all important for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and wastes no words. It is terse to the point of under-specification, but the sentence structure itself is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param required mutation tool with no annotations, zero schema description coverage, and nested objects, this description is far too thin. The presence of an output schema means return values need not be explained, but parameter meaning and usage context are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions none of the four parameters by name (project, target, index, params). 'effect #index on target' only loosely gestures at index and target, leaving project and params entirely unexplained at zero schema coverage. This is a severe gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb (Update) and a resource (params of effect #index on target), but 'fx' and 'index' are cryptic without domain context and no sibling is named to differentiate (fx_add vs fx_remove vs fx_set). The 'effect #index on target' phrasing implies a hierarchy but doesn't explain it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus fx_add or fx_help. The '(merge)' hint implies it updates a subset of params, but no explicit conditions, prerequisites, or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
guideGuideA
Read this first: how to use this DAW as an agent (workflow, conventions, which tool for which question).
| Name | Required | Description | Default |
|---|---|---|---|
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the guide's content (workflow, conventions, tool routing), which is meaningful for a reference tool, but it never states that it is side-effect-free/read-only or that its content is static and authoritative. Adequate but thin for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence, front-loaded with the imperative 'Read this first' and then the content scope. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and for a simple one-parameter orientation tool the description covers purpose and content well. The only real gap is the undocumented 'project' parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'project' parameter has 0% schema description coverage, and the description never mentions it—so neither the field's meaning nor whether it scopes the guide's content is documented anywhere. The description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific role: the onboarding/meta-guide for using the DAW as an agent, with the scope enumerated (workflow, conventions, tool routing). It clearly frames itself as the top-level orientation tool. It does not explicitly distinguish itself from sibling help tools (voice_help, instrument_help, fx_help), so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Read this first' is an explicit, front-loaded when-to-use instruction that tells the agent to consult this before acting. It gives clear context but names no exclusions or alternatives, so it doesn't reach the when/when-not/alternatives bar of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instrument_fitInstrument FitA
Search instrument parameters so its sound matches a target (spectrum + envelope + width). target: a source like 'sound:refsnare' (cut one first with sound_import); instrument: dict, 'preset:x' or 'track:' (start from that track's instrument); params: {"path": [lo, hi]} e.g. {"tone_hz": [100, 250], "filter.cutoff": [300, 8000], "oscs.0.detune": [0, 40]}; notes: what to play (beats at project tempo; use the target's pitch); fmin/fmax restrict the spectral match to a range (e.g. ignore kick bleed below 70 Hz). Saves the result as sound save_as and/or sets it on apply_to_track.
| Name | Required | Description | Default |
|---|---|---|---|
| fx | No | ||
| fmax | No | ||
| fmin | No | ||
| seed | No | ||
| iters | No | ||
| notes | No | 0 C4 1 | |
| params | Yes | ||
| target | Yes | ||
| project | Yes | ||
| save_as | No | ||
| instrument | Yes | ||
| length_sec | No | ||
| target_window | No | ||
| apply_to_track | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the matching dimensions (spectrum + envelope + width), the fmin/fmax spectral-window rationale, and the side effects ('Saves the result as sound save_as and/or sets it on apply_to_track'). But it omits determinism/cost behavior around seed and iters (80 default), and does not state auth/permission or runtime expectations for an iterative search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, and the remaining lines are dense, information-bearing parameter hints. Some parenthetical asides are terse, but little is wasted given 14 undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the primary mutation targets (save_as, apply_to_track) are covered. However, for a 14-parameter, 4-required, iterative fitting tool with zero schema descriptions and no annotations, six parameters (including seed/iters controlling reproducibility) remain unexplained, leaving clear completeness gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are 14 parameters, so the description must compensate. It documents target, instrument, params (with concrete syntax examples like {"tone_hz": [100, 250]}), notes, fmin, fmax, save_as, and apply_to_track — a substantial majority. It leaves project, fx, seed, iters, length_sec, and target_window undocumented, so not fully compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'Search instrument parameters so its sound matches a target (spectrum + envelope + width).' An agent can understand this is a parameter-fitting search tool. However, it never distinguishes itself from close siblings like track_fit, eq_match, or ref_retune, which appear to do analogous matching work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the workflow hints: the target 'source like sound:refsnare (cut one first with sound_import)' gives a prerequisite, and the description says how to seed params and instrument. But there is no explicit when-to-use versus the sibling match/fit tools, and no exclusions or mode-selection guidance beyond the inline hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instrument_helpInstrument HelpA
Full parameter reference (with defaults) for an instrument type: synth (= sprite), sampler, kit, code, mimic, kick, snare, hat, clap, tom, noise_hit.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | synth | |
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Help' strongly implies a read-only, side-effect-free lookup, and it discloses the returned content (parameter reference with defaults), but it never states read-only semantics explicitly nor explains the role of the 'project' parameter. Reasonable but not thorough for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler: the resource and content type come first, followed by the value enumeration. The long inline list is dense but each element earns its place as it defines valid inputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values, and the tool is low-complexity. It conveys what it returns and which types are valid, which is most of what an agent needs. The only real gap is the undocumented 'project' parameter and the absence of any read-only confirmation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does add real value for 'type' by enumerating the accepted values and the synth=sprite alias (which the schema does not encode as an enum). However, the 'project' parameter is entirely unexplained in both schema and description, leaving half the parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it returns the 'full parameter reference (with defaults)' for an instrument type. That is clear enough for an agent to know this is a reference/help lookup rather than a mutation. It does not explicitly contrast with siblings like instrument_show, voice_help, or fx_help, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: you call it to learn the valid parameters for a given instrument type. There is no explicit when-to-use/when-not guidance and no mention of alternatives such as instrument_show or voice_help, which cover adjacent concerns. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instrument_setInstrument SetB
Set a track's instrument. merge=True deep-merges the given keys into the current instrument (oscs list is replaced whole); merge=False replaces it. instrument may be 'preset:'.
| Name | Required | Description | Default |
|---|---|---|---|
| merge | No | ||
| track | Yes | ||
| project | Yes | ||
| instrument | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does deliver substantive mutation semantics: merge=True deep-merges keys while replacing the oscs list whole, merge=False replaces outright. It still omits side effects like undo coverage, failure modes for bad presets, and whether the change is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Roughly two dense sentences, front-loaded with the core action and followed by the merge distinction. The awkward mid-sentence line break and the un-explained parenthetical about oscs cost it a point, but nothing is wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the merge behavior is the key unknown the description resolves. For a mutation tool with zero annotations it should still say more about permissions, error behavior, or reversibility to be fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does compensate partially by explaining merge (default behavior and its two modes) and the 'preset:<name>' form of instrument. It says nothing about project or track, leaving two of four parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Set a track's instrument'), which cleanly separates it from siblings like instrument_show, instrument_help, and instrument_fit. It lacks any explicit reference to those siblings, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no naming of alternatives such as instrument_show for inspection. The merge semantics explain how the call behaves but not when an agent should reach for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instrument_showInstrument ShowC
Show a track's instrument JSON (full=True includes all defaults).
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | ||
| track | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It implies a read ("Show") but discloses nothing else: no permissions, no side effects, no note about what happens when the track has no instrument. The full/default note is parameter behavior, not behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. Terse to the point of under-specification, but efficient as written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-format detail is not required. For a simple read tool that is adequate, but with 0% param coverage and no annotations, the description leaves the two required parameters unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, yet it only addresses one of three parameters (full=True includes all defaults). The required project and track parameters are left entirely undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Show") and resource ("a track's instrument JSON"), which clearly distinguishes it from sibling mutators like instrument_set and from instrument_help/instrument_fit. It does not explicitly name a sibling, but the noun scope communicates the read purpose unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no reference to alternatives. With siblings like instrument_set, instrument_help, and instrument_fit present, the agent gets no signal about when viewing raw instrument JSON is the right call versus editing or getting help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
levels_from_refLevels From RefA
Set faders from the reference's stem balance instead of by feel: for every stem in the stem map, compares its level against the sum of the mapped stems in the reference (demucs stems) and in your render (track stems), and proposes a fader change per track (the same change for every track of one stem). apply=True writes them. Needs stem_map_set, separate(source='ref') and render(stems=True) over the same bars. Re-render and re-check after applying: compressors and the limiter move levels again.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| apply | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose significant behavior: apply=True writes fader changes, the proposed change is uniform per stem, and downstream processors alter levels after application. It does not detail permissions, reversibility, or error conditions, which leaves some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and apply behavior are front-loaded, but the second clause about comparing sums is dense, and the prerequisite and re-render advice make the paragraph long and somewhat run-on. It is informative but could be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation. However, for a tool with a destructive side effect (apply=True), unknown bars semantics, and no annotations, the description is adequate but not fully complete on parameter behavior and error/permission conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should explain the three parameters. It documents apply=True well and implies a project/reference context, but it does not explain the bars parameter at all, leaving one of three parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it compares per-stem levels against a reference and proposes fader changes, with apply=True writing them. This is clearly distinguishable from siblings like separate or stem_map_set, though the 'sum of the mapped stems' phrasing is slightly dense.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states prerequisites: needs stem_map_set, separate(source='ref') and render(stems=True) over the same bars. It also advises re-rendering and re-checking after applying because compressors and the limiter move levels. It does not, however, name an alternative tool or explicitly say when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lexicon_findLexicon FindB
Look up the person's words in both directions: from their word to the system ("what did 'crisp' mean last time?") and from a system term to their word (text='high shelf' finds what they call it, so you can say it their way). Best matches first, with whether the change worked.
| Name | Required | Description | Default |
|---|---|---|---|
| who | No | user | |
| text | No | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose result ordering ('best matches first') and that results include a 'whether the change worked' signal, which is useful behavioral context. However it does not state that this is a read-only operation, nor any permission or rate considerations, leaving the safety profile unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the opening clause, followed by the two directional examples. The parentheticals are informative rather than filler, though the phrasing is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. But with no annotations and 0% schema description coverage across three parameters, two of which ('who', 'project') are entirely undocumented, the definition is only partially complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the 'text' parameter well via the example text='high shelf', but the 'who' and 'project' parameters are documented nowhere in either the schema or the description, so only one of three parameters gains meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: a bidirectional lookup between a person's vocabulary and system terms, with a concrete example ('crisp', 'high shelf'). It does not explicitly name or distinguish itself from the nearby siblings lexicon_note and lexicon_view, so the agent must infer the read-vs-write split from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the motivating examples ('what did X mean last time', 'so you can say it their way'), which convey why an agent would call it. There is no explicit when-not guidance and no reference to lexicon_note/lexicon_view as alternatives for writing or viewing entries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lexicon_noteLexicon NoteA
Record what the person called something, and what it means in ismail. said: their words, verbatim ("too clean", "the snare is boxy"). means: the system terms it maps to, a list or ';'-separated ("fx eq peak 400 Hz -3 dB on snare; analyze_timbre centroid"). craft: the role the word belongs to (composer, arranger, performer, sound designer, recording/mixing/mastering engineer, producer, dj, director, cinematographer, colourist, editor, choreographer, listener). outcome: open | worked | partly | missed, with why. Update an entry with id=... (means, craft, outcome, why); the words themselves never change. Words about the work only: never record emotion, mood or health. The file is local and shared by every session (lexicon_view shows where). Returns the entry and what the same words meant before.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| who | No | user | |
| why | No | ||
| said | No | ||
| craft | No | ||
| means | No | ||
| where | No | ||
| outcome | No | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the file is local and shared by every session (writes are globally visible), that updates mutate only means/craft/outcome/why while 'said' is immutable, and what the tool returns. It omits any permissions/rate-limit or concurrency caveats, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and the body is organized as field:meaning pairs with concrete examples that earn their place. It is dense and reads as one long run-on paragraph, with some parenthetical examples that could be trimmed, but little is genuinely redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nine-parameter tool with no annotations and 0% schema coverage, the description covers the core fields, allowed values, constraints, update semantics, and shared-file behavior. The output schema exists so return values need not be spelled out (it still notes them), and the undefined who/where/project params are the main residual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it documents six of nine params in detail: said (verbatim words), means (mapped system terms), craft (with a full enumerated role list absent from the schema), outcome (open|worked|partly|missed), id, and why. Only who, where, and project are left undefined, so it substantially but not fully closes the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Record what the person called something, and what it means.' The record-a-lexicon-entry purpose is clear. However it does not differentiate itself from the sibling lexicon_find/lexicon_view tools, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear update mode ('Update an entry with id=...; the words themselves never change') and an explicit exclusion ('Words about the work only: never record emotion, mood or health'). It even points at lexicon_view for locating the file. It stops short of saying when to record vs. when to look up, so it is not a full when/when-not/alternatives statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lexicon_viewLexicon ViewB
The person's vocabulary as a readout: entries by craft and outcome, the share of trade words in what they say by month (description moving toward technique), new entries per week, entries not mapped yet, the newest ten. since='2026-10-01' limits it. Read it at the start of a session to speak the person's language.
| Name | Required | Description | Default |
|---|---|---|---|
| who | No | user | |
| craft | No | ||
| since | No | ||
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It implies a safe read ('view', 'readout', 'Read it') and discloses the 'since' scoping constraint, but says nothing about permissions, rate limits, or whether the aggregate readout is cached/live.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the middle is a dense run-on enumerating readout sections with parentheticals, making it hard to scan. Several clauses could be tightened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described and the content enumeration is a bonus. However, three of four input parameters are undocumented, which is a real gap for an agent trying to filter the readout.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for 4 parameters. The description explains only 'since' (with an example) and leaves 'who', 'craft', and 'project' entirely undefined in both schema and text, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates what the readout contains (entries by craft/outcome, share of trade words by month, new entries per week, unmapped entries, newest ten), which conveys the resource. But it never states a clean verb+scope ('view the lexicon'), relies on the poetic 'vocabulary as a readout,' and gives no hint it differs from lexicon_find or lexicon_note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Read it at the start of a session to speak the person's language' is explicit timing guidance for when to invoke it. It stops short of naming alternatives or when-not-to-use (e.g. vs lexicon_find), so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_busLive BusA
Create or change a send bus (a shared effect such as one hall for many tracks; tracks feed it with live_track(sends={bus: dB})). fx: its chain (list, or 'bus:' / 'track:' to copy from project.json); reverbs and delays on a bus output only the wet signal unless given 'dry'. A replaced chain's tail rings out. remove=True deletes it and the sends into it.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | now | |
| fx | No | ||
| bus | Yes | ||
| remove | No | ||
| project | Yes | ||
| volume_db | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers real behavioral context: wet-only signal behavior for reverb/delay unless 'dry' is given, that a replaced chain's tail rings out, and that remove=True destroys both the bus and the sends into it. It does not mention permissions, rate limits, or throttling, and avoids return-format detail (an output schema exists), so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose before diving into fx and remove semantics, and every sentence carries information. It is dense and parenthetical-heavy, but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, an output schema (so return values need not be described), and 0% schema coverage, the description covers the destructive semantics and fx grammar but leaves 'at' and 'volume_db' unaddressed. Adequate but with a clear gap in the parameter surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate across 6 params. It explains fx thoroughly (list, or 'bus:<name>'/'track:<name>' copy syntax from project.json) and clarifies remove=True, but says nothing about 'at' (default 'now') or 'volume_db', leaving two parameters entirely undocumented in both schema and text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create or change a send bus') and immediately defines the concept with a concrete example ('one hall for many tracks'). An agent can distinguish it from generic siblings like bus_add and fx_add. It stops short of explicitly contrasting itself with the similarly-named bus_add sibling, so 5 is not warranted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description shows the intended integration path ('tracks feed it with live_track(sends={bus: dB})') and notes remove=True deletes it, which implies usage. However, it never states when to prefer this over the sibling bus_add or when not to use it, leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_cancelLive CancelA
Remove clips that have not started yet (ids from live_queue / live_view). A playing clip cannot be cancelled: queue {track, stop: true} or a replacement instead.
| Name | Required | Description | Default |
|---|---|---|---|
| clips | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It usefully states the core constraint that only unstarted clips can be cancelled and points to alternatives for playing clips, but it does not say whether removal is permanent, undoable, or requires specific permissions. It adds some behavioral value but leaves important mutation-safety context unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences. The purpose is front-loaded, followed immediately by the critical constraint and fallback behavior. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple cancellation tool with an output schema, the description covers the main purpose and limitation adequately. However, with no annotations and 0% schema description coverage, it should also explain the 'project' parameter and clarify the clips array item format. It is minimally complete but leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for two undocumented required parameters. It partially clarifies the 'clips' parameter by saying IDs come from live_queue / live_view, but gives no format details and says nothing about the required 'project' parameter. The compensation is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Remove') and resource ('clips that have not started yet'), and explicitly distinguishes its scope from playing clips that must instead be stopped or replaced. It also identifies where valid IDs come from (live_queue / live_view), so an agent can tell it apart from sibling live tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear when-to-use criteria ('clips that have not started yet') and an explicit when-not/alternative path ('A playing clip cannot be cancelled: queue {track, stop: true} or a replacement instead'). No inference is required to choose between this and stopping a playing clip.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_deckLive DeckA
A deck's channel strip (a deck = a group of tracks, e.g. a loaded song). volume_db: fader (-60 or less =
off). low_db / mid_db / high_db: 3-band isolator, bands split at 250 Hz and 2.5 kHz; -40 or less kills the
band. filter: one knob, -1 (low-pass closed) .. 0 (off) .. +1 (high-pass closed). These glide over ramp_beats
from at ('now' or a live_queue value), like live_fx. transpose: semitones for the deck's pitched tracks
(drums stay), from at. cue=True takes the deck off the air (live_listen(deck=...) still hears it: prepare
the next part there); cue=False puts it on air. remove=True deletes the deck and its tracks.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | now | |
| cue | No | ||
| deck | Yes | ||
| filter | No | ||
| low_db | No | ||
| mid_db | No | ||
| remove | No | ||
| high_db | No | ||
| project | Yes | ||
| transpose | No | ||
| volume_db | No | ||
| ramp_beats | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it discloses that remove=True deletes the deck and its tracks (destructive), that cue=True pulls the deck off air while live_listen still hears it, and gives concrete value thresholds (-60 or less = off, -40 or less kills the band). Gaps remain on auth/permission requirements and reversibility, but overall it is rich for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph, front-loaded with the core resource definition, and every sentence adds parameter or behavioral information with no filler. The density is appropriate for a 12-parameter tool, though the lack of any grouping makes it slightly harder to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter mutation tool with no annotations, the description covers parameter semantics and behavioral consequences well, and an output schema exists so return values need not be restated. The main omissions are explicit usage routing and permission/authorization context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does for most of the 12 parameters: volume_db, the three isolator bands with their split frequencies and kill thresholds, filter range, ramp_beats/at glide, transpose, cue and remove all get semantic meaning. The identifiers project and deck are only loosely addressed, keeping it just short of full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource concretely ('A deck's channel strip', with 'deck = a group of tracks') and enumerates the controllable elements (volume, 3-band isolator, filter, transpose, cue, remove). It is specific but leaves the verb implicit and does not explicitly contrast itself with siblings like live_bus or live_fx.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is conveyed indirectly through behavioral detail: cue=True is framed as 'prepare the next part' off-air, and glide behavior is likened to live_fx. However, there is no explicit 'use this when / not when' routing or named alternative to select against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_deviceLive DeviceA
Move a running set to another audio output without stopping it: the timeline, the queue and the audio mixed ahead carry on, with a gap of about a second. device: 'default' (the system's default output now: use it after connecting a Bluetooth speaker), a name or part of one ('JBL'), an index, or 'none'. With device 'default' the engine also follows the system default by itself (checked every few seconds; follow=False stops that), and a device that stops taking audio (a speaker switched off) falls back to the default.
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | default | |
| follow | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses a ~1-second gap during the switch, the fallback behavior when a device stops taking audio, and the automatic following of the system default with a 'follow' parameter. It does not cover authentication or rate limits, but these are likely irrelevant for a local audio tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense paragraph front-loaded with the primary function and followed by parameter details. Some sentences are long and could be broken up, but overall it is efficient and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description needn't explain return values. It provides a thorough behavioral picture for a 3-parameter tool with no annotations, covering device semantics, follow behavior, and fallback. The only minor gap is the lack of explicit when-to-use vs siblings, but that overlaps with usage guidelines.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'device' parameter in detail (valid values: 'default', a name or part of one, an index, or 'none'), and touches on 'follow' via 'follow=False stops that'. The 'project' parameter is implied but not described, leaving a small gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Move a running set to another audio output without stopping it.' This clear verb+resource is further elaborated with the effect on the timeline, queue, and audio mixing. While it doesn't name a specific sibling tool, the function is unambiguous and distinct from other live_* tools that start, stop, or manage tracks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—while a set is running—and gives a hint for 'default' (after connecting a Bluetooth speaker). However, it does not explicitly state when to choose this tool over alternatives like live_start or live_stop, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_fxLive FxA
Change params of one effect in a live chain. target: a track, or 'bus:'; index: 0-based position in
its chain (live_status lists chains), or the effect's type ('filter'; 'filter:2' = the second filter), which
survives edits to the chain. Automatable params (fx_help lists them: cutoff, mix, gain_db, depth ...)
glide from their current value to the new one over ramp_beats, starting at at ('now' or a live_queue
value): one call = a filter sweep over 8 bars, a fade, a build. Frequencies glide in log space. Other params
rebuild that chain at at (the old tail rings out).
A chain scheduled with live_track(fx=..., at=...) can be swept before it plays: an at at or after its swap
targets the new chain, and a swap drops the sweeps written for the old one.
clear=True cancels the scheduled moves on the target from at on (one effect with index, or every effect and
the volume without it): each param holds where it is. Use it before a section reuses a track whose old
choreography is still scheduled.
moves: a list of these calls as dicts, [{target, index, params, ramp_beats, at}, ...], scheduled in one call
(a whole cycle of throws, sweeps and gaps; ismail.live.djkit builds them).
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | now | |
| clear | No | ||
| index | No | ||
| moves | No | ||
| params | No | ||
| target | No | ||
| project | Yes | ||
| ramp_beats | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses glide-over-ramp behavior, log-space frequency interpolation, that non-automatable params rebuild the chain at `at` with the old tail ringing out, and exactly what clear=True cancels. It doesn't cover failure modes or preconditions (e.g., whether live must be running).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and target/index/model semantics, then layers scheduling and clear semantics. It is dense, near a wall of text, but essentially every sentence earns its place. Minor tightening possible in the scheduling paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 8-param, nested-object live performance tool with no annotations, it covers routing, timing, glide behavior, scheduling interactions, and cancellation. An output schema exists so return values need not be explained. Only edge behavior (errors, live-running preconditions) is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 0% schema coverage with 8 params, the description compensates almost fully: target ('track' or 'bus:<name>'), index (0-based or type like 'filter:2' that survives edits), at ('now' or a live_queue value), ramp_beats, clear, params (automatable names via fx_help), and the moves dict shape. This is meaning the schema does not carry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Change params of one effect in a live chain') and the target/index semantics make clear it operates on live chains rather than the studio fx_set. It references live_status/live_track/fx_help for supporting concepts. It never explicitly contrasts itself with fx_set or automation_set, so the boundary with siblings is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use scenarios ('one call = a filter sweep over 8 bars, a fade, a build') and a specific procedural rule for using clear=True before a section reuses a track. It also names related tools (live_track, live_queue, live_status, fx_help) as prerequisites. No explicit when-NOT-to-use or a direct alternative to pick instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_listenLive ListenA
Hear the live output: analyse the last bars complete bars (max 32; bar numbers are the live set's).
view: bars (level, bands, centroid, onsets, chord per bar) | envelope (level per 16th, max 8 bars; band=
sub|bass|lowmid|mid|himid|air) | pitches | drums | chords. This is the audio after the safety chain.
recording='rec_.wav' (in /live/) analyses a finished live_record take instead, with bars=[a, b]
in the set's own bar numbers; works after live_stop too. deck='B' hears only that deck, after its strip, even
while it is cued (off the air): the headphones for preparing the next part.
| Name | Required | Description | Default |
|---|---|---|---|
| band | No | ||
| bars | No | ||
| deck | No | ||
| view | No | bars | |
| project | Yes | ||
| recording | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose non-obvious traits: the audio is 'after the safety chain', deck B is heard 'after its strip, even while it is cued (off the air)', and it works after live_stop. It doesn't state read-only semantics, session prerequisites, or timing/latency, but the substantive monitoring behavior is well conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded with the core action, then organized by parameter. Every clause (safety chain, bars=[a,b], deck-after-strip) earns its place. The run-on pipe-delimited view/band enumeration is terse rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter read tool with an output schema, the description covers purpose, modes, and parameter behavior adequately; return values needn't be explained since an output schema exists. Minor gaps remain around the `project` parameter and error/precondition cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and largely does: `bars` (max 32, in the live set's bar numbers), the full `view` enum with per-view contents, `band` options slotted into envelope, `recording` format/path and `bars=[a,b]` convention, and `deck`. Only `project` is left unexplained, which is trivially inferable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Hear the live output: analyse the last `bars` complete bars'. The tool's scope (live output, or a finished live_record take with `recording`) is clear. It never explicitly names which sibling (e.g. live_view, analyze_bars, analyze_envelope) it is competing with, so an agent must infer differentiation from the 'live' framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: `recording='rec_<time>.wav'` signals the post-take analysis mode ('works after live_stop too') and `deck='B'` signals monitoring a deck while cued. There is no explicit when-not or named alternative, so the agent has to reconstruct the decision boundary from the parameter prose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_loadLive LoadA
Load an ismail song (its project folder: tracks, instruments, effects, buses, notes) onto a deck; every track starts on the same bar. bars=[a, b] takes a section. It plays at the house tempo (re-rendered, not time-stretched) and loops unless loop=False. Cued (off air) by default while another deck is on air: listen with live_listen(deck=...), then bring it in with live_transition. The song's mix comes over as rendered: its automation (effect params and volume as ramps, instrument params rendered with the notes, the master fade; repeated every pass on a looping deck) and its group buses (a reverb on a drum bus keeps the dry drums). Placed audio clips and the master effect chain do not (the reply lists what was left out). Loading replaces what a cued deck held.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | next_bar | |
| cue | No | ||
| bars | No | ||
| deck | Yes | ||
| loop | No | ||
| song | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses tempo re-rendering (not time-stretching), looping behavior, that loading replaces the cued deck's contents, and precisely which mix elements survive (automation ramps, group buses) versus which are dropped (placed clips, master FX chain). The note that the reply lists omissions is valuable operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then layered detail. The mix-fidelity parenthetical is long but each clause conveys a distinct behavior. Slightly dense semicolon splicing prevents a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex live-performance tool, the description covers operation, default state, follow-up tools, and fidelity trade-offs, and since an output schema exists it does not need to enumerate return fields (and even notes the reply lists omissions). Nothing essential to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It meaningfully documents bars (section slice), loop (default true), and cue (off-air default), and implies the next_bar default for 'at'. It leaves deck, song, and project entirely unexplained, which is a gap for a 7-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: loads an ismail song (project folder with tracks, instruments, effects, buses, notes) onto a deck. It also implicitly distinguishes itself from live_transition and live_listen by describing the cue/air model those tools operate on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes the workflow: cued off-air by default, then listen with live_listen(deck=...), then bring in with live_transition. It also names the section mechanism (bars=[a,b]) and the loop=False escape hatch, so an agent knows the branches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_parityLive ParityA
Does this song play on a deck as it renders in the studio? Renders bars=[a, b] in the studio and plays them on a silent engine of its own (no live_start needed, nothing is late), then compares each track, each bus and the mix: level, envelope, octave bands, and the residual (how close to sample for sample; -100 dB and below is identical; under -80 dB nobody can tell). Judged from the second bar: in the first, the studio rings in what came before the window and a deck starts clean (its own line, 'edge'). tracks limits both sides to those tracks. Takes about as long as rendering the bars twice.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | Yes | ||
| song | Yes | ||
| tracks | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that it runs a silent engine, states the runtime cost ('about as long as rendering the bars twice'), and quantifies result interpretation ('-100 dB and below is identical; under -80 dB nobody can tell'). The edge-bar caveat is genuinely useful nuance. It stops short of operational details like side effects or permissions, hence not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the framing question, which is good, but the body is dense and rambling with stacked clauses and parentheticals that could be trimmed. Every idea is relevant, but the delivery is longer than needed for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the description covers the core mechanics and interpretation thresholds well. The main gap is the undocumented song parameter and lack of explicit routing against similar comparison tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and only partially does: bars is described as the window [a, b] and the second-bar judgment rule, and tracks is explained as limiting both sides. The song parameter is never explained, leaving one of three params undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific comparison operation — rendering bars in the studio versus playing them on a silent deck — and names exactly what it compares (tracks, buses, mix) across named dimensions (level, envelope, octave bands, residual). This is clearly distinguishable from the analyze_*/cmp_* and live_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly tells the agent it does not need live_start and that nothing is late, which orients it against the live_* siblings. However it gives no explicit when-to-use versus alternatives like compare, cmp_run, or cmp_bars, so the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_queueLive QueueA
Queue clips (a batch; all or nothing). Each clip: {track, notes and/or lanes, bars, loop, at}. notes: ' <dur_beats> [vel]; ...' with beats from the clip start (same as notes_write). lanes: {pitch: 'x...x...'} step strings (same as pattern_write), step = beats per char (0.25). bars (or beats, for odd lengths): clip length; default = whole bars covering the notes. It repeats every length. loop: repeats before it ends (default 'forever': it plays until something replaces it). expr: {lane: [[beat, value], ...]} expression for a performer voice (bend in semitones, vib in cents ...), beats from the clip start; the voice's INFO lists its lanes. at: next_bar (default) | next_beat | next_2 | next_4 | next_8 | next_16 (phrase boundaries counted from bar 1) | asap | bar: | after: (when that clip ends; chain clips to pre-program an arc) | after:# (when item k of this same batch ends: a whole arc in one call, no ids needed). A clip on a track replaces whatever that track would play from its start (a playing clip is cut there; its last notes ring out). {track, stop: true, at} silences a track. The reply gives each clip's id and the exact bar it lands on (moved later when its first notes cannot render in time) and the runway: how long until the queue stops changing. Before a long job (sound design, fitting), queue enough that the runway covers it.
| Name | Required | Description | Default |
|---|---|---|---|
| clips | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It discloses several behavioral traits: all-or-nothing batch, replacement semantics (a clip replaces whatever the track would play from its start), stop silencing, reply format (ids and exact bar), and the runway concept. This is substantial, though it doesn't mention permissions or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy and dense, packing multiple concepts into nested lists without clear front-loading. While information-rich, it could be better structured with headings or bullets for readability. Some redundancy exists, but most sentences earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description explains key return values (clip ids, landing bar, runway) because these are critical for coordinating subsequent actions. It covers all necessary aspects for an agent to construct complex scheduling calls, including chaining via after:<clip id> and after:#<k>.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It thoroughly explains the clips array structure and each field: track, notes, lanes, bars, loop, expr, at, and stop, with detailed syntax for note strings, lane step strings, and scheduling options. It also clarifies the project parameter implicitly. This fully compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: queue clips, batch all-or-nothing, contrasted with notes_write and pattern_write. It clearly describes scheduling clips with rich parameters, though it doesn't explicitly differentiate from live_start or live_record beyond the queueing aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for scheduling performance clips, with a note about pre-queueing before long jobs. No explicit when-to-use vs live_start, live_record, or live_cancel alternatives, and no clear exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_recordLive RecordB
Record the live output (after the safety chain) to /live/rec_.wav; on=False stops it.
| Name | Required | Description | Default |
|---|---|---|---|
| on | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the output location and file-naming scheme and that the flag toggles recording off, but it says nothing about prerequisites (must a live session be running?), permissions, or whether an existing file is overwritten.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the destination front-loaded and the toggle behavior appended after a semicolon. No wasted words, though the '<project>' and '<time>' placeholders are left unexplained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. For a 2-param tool with no annotations and 0% schema coverage, the description is adequate but leaves the relationship to live_start/live_stop and the meaning of the 'safety chain' unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the effect of on=False and embeds project into the <project>/live/rec_<time>.wav path, giving both params some meaning, but it never names them explicitly or clarifies the default-on behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (record) and resource (the live output, after the safety chain) plus a concrete destination path pattern. It is distinguishable from generic siblings like live_start/live_stop, but it does not explicitly say how it relates to those tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'on=False stops it' clause implies the on/off usage pattern, so an agent can infer how to start and stop. However, there is no explicit guidance on when to use this versus live_start, live_stop, or live_track, which are nearby siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_startLive StartA
Start the live engine for project (any folder; a project.json there lends its sound bank, song voices and
'track:' instruments). It plays from bar 1 immediately, silent until you queue clips, and keeps playing
between your calls: clips loop until replaced. Tempo is fixed for the run (live_stop, then start again to change
it). device: 'default' (speakers), a device name/index, or 'none' (no audio out; for testing and listen-only
analysis). workers: render processes (default: cores - 4, from 2 to 4; more for many mimic voices). Output always passes a limiter and loudness cap you cannot raise.
The reply names any other live engine still running on this machine (two on one device can freeze both).
Next: live_track, then live_queue.
| Name | Required | Description | Default |
|---|---|---|---|
| bpm | Yes | ||
| device | No | default | |
| project | Yes | ||
| workers | No | ||
| beats_per_bar | No | ||
| follow_device | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers: plays from bar 1 immediately, silent until clips are queued, keeps playing between calls, clips loop until replaced, tempo locked for the run, output always passes an unraisable limiter/loudness cap, and the reply warns about other live engines on the same device (freeze risk). This is unusually rich behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded, leading with the core action before the parenthetical qualifications and constraints. Multi-clause sentences carry real information rather than filler, though the parentheticals could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex engine-start tool, the definition covers lifecycle, audio routing, resource sizing, output constraints, and multi-instance hazards, and an output schema exists so return values needn't be explained. Nothing essential to calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains project (folder + project.json sound bank/voices/'track:<name>' instruments), device ('default', name/index, 'none'), and workers (default cores - 4, range 2-4, more for mimic voices). beats_per_bar and follow_device are left undocumented, and bpm is only implied by the tempo discussion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Start the live engine for `project`') and immediately clarifies the scope (any folder, project.json behavior). An agent can distinguish it from live_stop, live_status, and the other live_* siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear workflow ('Next: live_track, then live_queue') and an explicit condition for the tempo constraint (live_stop, then start again to change it). It doesn't explicitly state when NOT to use it vs alternatives like live_load, but the context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_statusLive StatusA
Where the live set is: bar heard, each deck (on air or cued, fader, eq, filter, level, song), each track not on a deck (instrument, fader, level now and the loudest over the last 10 s, playing/next clip, render cost, errors), the safety chain's gain reduction since the last status, runway (the last scheduled change and what loops after it) and render health (backlog, late events, underruns). A STALLED line means the audio device stopped asking for audio. deck='B' lists that deck's tracks and buses instead. Problems that arrive between calls (a dropped note, a stall) are added to the next reply of any live op.
| Name | Required | Description | Default |
|---|---|---|---|
| deck | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it explains what a STALLED line means, that the safety chain reports gain reduction since the last status, and that problems arriving between calls are attached to the next live op reply. It omits any read-only/permission framing and rate-limit context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is dense and largely a single sprawling enumeration that is not front-loaded with a crisp summary, opening with the vague 'Where the live set is'. Every clause carries information, but structure and retrieval-friendliness suffer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, yet the description richly characterizes the returned content and the inter-call error behavior. It is nearly complete, missing only operational framing (read-only nature, permissions) for a status tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies the deck parameter (deck='B' switches to that deck's tracks and buses), but does nothing for the required project parameter, leaving half the parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description makes clear this reports the state of the live set, enumerating exactly what is reported (decks, tracks, safety chain, runway, render health). It is specific about the resource and its facets, though it does not name itself against a sibling like live_view, leaving some overlap to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the deck='B' note tells the agent how to drill into one deck's tracks and buses, and the closing sentence implies you need not poll separately for errors since they surface in the next live op's reply. There is no explicit when-to-use vs live_view or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_stopLive StopA
Fade out and stop the live engine (closes any recording). Waits until the process has gone; an engine that does not stop (a dead audio device, a hung process) is killed with its render workers.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | ||
| fade_sec | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that it blocks until the process exits, that a stuck engine (dead audio device, hung process) is force-killed along with its render workers, and that recordings are closed. It omits any auth/permission requirements, but the destructive/blocking semantics are clearly conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the primary action and then the failure/fallback behavior. No wasted words for the amount of behavioral detail conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the behavioral narrative (fade, wait, force-kill, close recording) is complete for a simple stop tool. The main gap is the undocumented parameters, which leaves the agent guessing about fade_sec units/default and the project argument.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there are 2 parameters. The description's mention of 'fade out' loosely gestures at fade_sec but does not name the parameter, give units, or state its default (1s), and the required 'project' parameter is not explained at all, so the description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('stop the live engine') and adds scope detail (fade out, closes any recording), which lets an agent distinguish it from siblings like live_start, live_cancel, and live_status without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage context (a graceful shutdown that fades and closes recordings) but never explicitly states when to use it versus alternatives such as live_cancel or live_start, nor any prerequisites. Usage is inferable but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_trackLive TrackA
Create or change a live track. instrument: a dict (instrument_help), 'preset:' (presets_list),
{'type': 'code', 'voice': ''} (voices_list) or 'track:' (copy from the folder's project.json).
fx: the track's whole effect chain, a list of effect dicts (fx_help), or 'track:' to copy a project
track's chain; [] removes all. Sidechain/duck/vocoder sources must be live tracks. sends: {bus: dB} replaces
the track's sends (post-fader; live_bus creates buses). A new instrument or chain on a playing track takes
over at at (live_queue values, or 'now'); a replaced chain's tail rings out. New instruments warm up off the
air first (live_status shows WARMING). volume_db <= +6. remove=True silences and deletes the track now.
To move one effect param (a sweep, a fade), use live_fx instead of resending the chain. deck='B' puts a new
track on deck B (created if needed): it then plays through that deck's strip and cue.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | next_bar | |
| fx | No | ||
| pan | No | ||
| deck | No | ||
| sends | No | ||
| track | Yes | ||
| remove | No | ||
| project | Yes | ||
| volume_db | No | ||
| instrument | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so richly: volume_db <= +6 ceiling, chain tail rings out on replacement, new instruments warm up off-air (WARMING), remove=True silences and deletes immediately, sends are post-fader and replace wholesale, and sidechain/duck/vocoder sources must be live tracks. These are exactly the side-effect and constraint disclosures an agent needs for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and nearly every sentence adds a distinct operational fact. It is dense and reads as a run-on with many parenthetical cross-references, which costs some scannability, but there is little true filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-param mutation tool with nested objects, the description covers timing, side effects, format variants, and limits thoroughly, and an output schema exists so return values need not be described. The omission of pan semantics is the main gap; otherwise an agent has what it needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 10 params, so the description must compensate and largely does: instrument formats ('preset:<name>', code/voice dict, 'track:<name>') with pointers to instrument_help/presets_list/voices_list, fx as a list of effect dicts or track copy with [] meaning remove-all, sends as {bus: dB} replacing, at accepting live_queue values or 'now', volume_db, remove, and deck='B' behavior. Only pan and the project/track identifiers go unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: 'Create or change a live track,' which is unambiguous about the operation. It explicitly carves out its niche versus live_fx ('To move one effect param... use live_fx instead'), but doesn't distinguish itself from the non-live siblings track_add/track_set, leaving some ambiguity about the 'live' vs studio-track split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-to-use rule for the closest alternative (live_fx for single-param sweeps/fades rather than resending the whole chain) and references live_bus, live_queue, and live_status for related operations. It lacks explicit when-not-to-use guidance against track_add/track_set, but the routing to live_fx is genuinely actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_transitionLive TransitionA
Queue a mix from one deck to another as ramps on their strips, starting at at (a phrase boundary).
style: blend (new deck fades up without bass, bass swap half-way, old fades out) | bass_swap (both full, one
bass at a time, old leaves in the last quarter) | filter (old thins out through a rising high-pass while the
new opens from a low-pass) | cut (switch on the boundary). The to deck must be playing by then (live_load
or live_queue it first, cued); it goes on air at the start. from_deck defaults to the one deck on air. With
stop_from, the old deck's tracks stop when the transition ends. The reply is the timeline of every move.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | next_8 | |
| to | Yes | ||
| bars | No | ||
| style | No | blend | |
| project | Yes | ||
| from_deck | No | ||
| stop_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it does disclose real behavior: the new deck goes on air at the start, the mix runs as ramps on the strips from a phrase boundary, stop_from halts the old deck's tracks at the end, and the response is a per-move timeline. Gaps remain on error handling when the deck isn't playing and on reversibility/cancellation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and every sentence adds information. The inline pipe-delimited style list is dense and somewhat hard to scan, but there is little waste overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description needn't explain return values (though it briefly does). For a 7-parameter mutation with no annotations, it covers most of what an agent needs, leaving only `bars`/`project` semantics and failure behavior unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and largely does: it fully explains the `style` enum values, `at` as a phrase boundary, `to`'s playing requirement, `from_deck`'s default, and `stop_from`'s effect. It leaves `bars` (transition length) and `project` unexplained, so it is strong but not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb (queue a mix / transition) and resource (from one deck to another), plus the phrase-boundary timing. It distinguishes itself from siblings by explicitly naming the prerequisite flow (live_load / live_queue) and the on-air behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition (the `to` deck must already be playing, loaded/queued and cued) and names the tools to use first. It does not however state when NOT to use this versus alternatives like live_start, live_stop, or live_cancel.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
live_viewLive ViewB
The queue ahead: which clip each track plays at each bar for the next bars bars (max 64), plus the
runway. clip='c3' shows that clip's notes and timing instead.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| clip | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral context. It discloses the 64-bar maximum and distinguishes the clip-specific mode, which is useful. However, it says nothing about whether this is a pure read operation, what 'runway' means operationally, or any other behavioral trait beyond the superficial view.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two efficient sentences that front-load the main behavior before the clip variant. There is no filler or repetition. The only minor cost is that it spends words on one parameter example while omitting more essential parameter context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description adequately sketches the main return content (queue ahead and runway). But with no annotations and 0% schema coverage, it should do more: the required project parameter is unexplained, bars' default is absent, and the relationship to sibling live_* tools is not clarified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all three parameters. It partially explains bars (max 64) and clip (example 'c3'), but the required project parameter is completely undocumented, and bars' default of 8 is not mentioned. The compensation is incomplete for a required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-like view action: it shows the queue ahead, what each track plays per bar, and the runway, with a variant for a specific clip. It is more than a restatement of 'Live View' and gives a clear mental model. However, it does not explicitly distinguish itself from sibling tools like live_queue or live_status, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what happens when clip='c3' is used, but it never states when to use live_view versus alternatives such as live_queue, live_status, or live_deck. There are no when-not-to-use conditions or prerequisite hints. This is minimal guidance buried in one parameter example.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
machine_statusMachine StatusA
The shared machine before anything heavy (a render over a minute, separate, mimic_measure, a fit, Blender,
whisper): GPU heat and throttling, CPU, free memory, every heavy job running now in any session, and whether a new
GPU or CPU job may start. Heavy ops check it themselves and refuse with the reason; run commands outside ismail
through python -m ismail.machine run --gpu|--cpu -- <command> so they take a slot too.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses that heavy ops self-check and refuse with a reason, and explains how outside commands must be wrapped (`python -m ismail.machine run --gpu|--cpu`) to take a slot. It doesn't explicitly state it is read-only/non-mutating, which is the only real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the trigger and the reported data, then the slot/wrapper mechanics. The parenthetical list of heavy operations is a bit dense but earns its place by making the trigger concrete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be detailed, and the description nonetheless narrates them. For a no-annotation status tool it covers behavior and usage well; the missing `project` parameter semantics is the one incomplete element.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single `project` parameter has 0% schema description coverage and is never mentioned in the description, so its meaning (does it scope the running-job report to one project?) is entirely undocumented. The description does not compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (report machine status) and enumerates exactly what it returns: GPU heat/throttling, CPU, free memory, running heavy jobs, and whether a new GPU/CPU job may start. No sibling tool does anything similar, so an agent can identify it without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-to-use trigger ('before anything heavy') with concrete operation examples (a render over a minute, separate, mimic_measure, a fit, Blender, whisper). It also notes heavy ops self-check, implying you may not need to call it manually, but it never names an alternative tool or an explicit when-not condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mimic_measureMimic MeasureA
Measure an instrument from recorded notes into a mimic profile (/voices/.mimic.json), then
use it as {"type": "mimic", "profile": ""}. notes: [[source, pitch], ...] or [[source, pitch, vel,
[t0, t1]]] where source is 'sound:', 'ref', 'ref:' or a path, pitch like 'A4', vel 0..1 (how hard
it was played; default vel), [t0, t1] seconds to cut one note out of a longer file. folder: a directory of
one-note files named by pitch (A4.wav, Fs3.mp3, C#5.flac) instead of notes. One note per file or window,
isolated, a few across the range; two dynamics of the same pitch teach velocity. kind: auto | sustained
(bowed, blown, sung) | decaying (plucked, struck). check=True rebuilds every measured note from the OTHER
notes and reports how close it lands (leave-one-out), the honest estimate for pitches you did not record.
defaults: mimic params stored in the profile and used unless a track overrides them, e.g. the open strings of a
bowed instrument {"strings": ["G3", "D4", "A4", "E5"]} (instrument_help(type='mimic') lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| vel | No | ||
| kind | No | auto | |
| name | Yes | ||
| check | No | ||
| notes | No | ||
| folder | No | ||
| project | Yes | ||
| defaults | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add real substance: the output file location, that check=True performs leave-one-out reconstruction and reports error, and that defaults are stored in the profile and applied unless a track overrides them. It does not cover permissions, overwrite risk for an existing profile, or cost/time for large folders.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded and most sentences carry unique information, so little is wasted. However, it is a dense run-on block with nested parentheticals that is hard to parse quickly and buries key constraints mid-flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and the description covers the meaningful inputs and behavioral side effects for a complex 8-param tool with a nested defaults object. Gaps are minor, mainly naming project/name explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 params, so the description must compensate, and it largely does: it defines the notes tuple shape, folder naming convention, kind enum values with concrete instrument examples, check semantics, vel meaning/default, and defaults contents. Only project and name are left to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: measure an instrument from recorded notes into a mimic profile at a concrete path, and then how to reference that profile. It is clearly distinguishable from analysis siblings, though it never names a competing tool by name for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains how to supply input (notes vs. folder, the note-tuple format) and mentions instrument_help(type='mimic') for defaults, which implies the intended context. But it never states when to choose this over alternatives like notes_from_audio or instrument_fit, and offers no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notes_clearNotes ClearC
Delete notes starting in bars [a, b]; optionally only the given pitches.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | Yes | ||
| track | Yes | ||
| pitches | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it says nothing about irreversibility, whether deletes can be undone, required permissions, or whether the operation affects only the specified track. For a destructive mutation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the verb and resource front-loaded, and no filler. It is appropriately sized but arguably too terse given the destructive nature of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but for a 4-parameter destructive tool with no annotations and 0% schema coverage, the description omits critical context such as scope, safety, and the semantics of project/track.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must clarify parameters, but it only glosses bars and pitches. It never explains 'project' or 'track', and describing bars as a range [a, b] is ambiguous since the schema types it as an array.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and resource (notes) plus scope (bars, optionally pitches). It is distinguishable from siblings like notes_write and notes_read, though it doesn't explicitly contrast with notes_transform or undo, which could also affect note data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives named, and no mention of the undo sibling for recovering deleted notes. The agent must infer usage entirely from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notes_copyNotes CopyC
Copy notes from bars [a, b] of track to start at to_bar (of to_track, default same), tiled times.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | replace | |
| times | No | ||
| track | Yes | ||
| to_bar | Yes | ||
| project | Yes | ||
| to_track | No | ||
| from_bars | Yes | ||
| transpose | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It explains the copy/tile mechanics but says nothing about what `mode` selects, whether destination notes are overwritten, or that `transpose` alters pitch. For a mutation tool with zero annotation coverage, this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence, front-loaded with the verb and framed source-to-destination. No wasted words, though the parenthetical packing makes it terse rather than a model of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An 8-parameter mutation tool with no annotations and 0% schema coverage needs more than this single sentence. Return values are covered by the output schema, but mode/transpose behavior and usage conditions are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies from_bars ("bars [a, b]"), to_bar, to_track (default same), and times ("tiled"), but leaves three meaningful params — mode, transpose, and project — entirely unexplained, and transpose silently changes pitch.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (copy) and resource (notes) with source and destination clearly identified: bars [a,b] of `track` to `to_bar` of `to_track`, tiled `times`. This distinguishes it from mutation siblings like notes_write, notes_clear, and notes_transform, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not guidance. The intent (duplicate/relocate an existing note range) is only implied by the verb; there is no steering toward notes_transform, notes_write, or other alternatives for editing notes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notes_from_audioNotes From AudioA
Transcribe a pitch range of an audio source into a track over bars [a, b] (any length), using the same step features the comparisons score (so writing them raises note_f1 by construction). mode='replace' clears that range of the track first. Use low/high to route registers of one stem to different tracks (bass / stabs / lead). Check the result with notes_read(view='roll') and cmp_run.
| Name | Required | Description | Default |
|---|---|---|---|
| low | No | C1 | |
| bars | Yes | ||
| high | No | C8 | |
| mode | No | replace | |
| track | Yes | ||
| rel_db | No | ||
| source | Yes | ||
| project | Yes | ||
| floor_db | No | ||
| min_steps | No | ||
| transpose | No | ||
| max_notes_per_step | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose the critical destructive behavior: mode='replace' clears that bar range of the track first. It leaves unstated what non-replace modes do (overlay vs. skip) and whether the source must be pre-separated, so it is not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core action and scope, then side effects and verification. Dense but each sentence adds information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the key destructive behavior is covered. However, for a 12-parameter transcription tool with 0% schema coverage, the detection-threshold parameters that govern what notes are produced are unexplained, leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it only partly does: it explains bars, low/high, and mode, and implies source/track/project. Five parameters that materially affect output (rel_db, floor_db, min_steps, transpose, max_notes_per_step) are undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: transcribe a pitch range of an audio source into notes on a track over a bar range, plus the side effect that this raises note_f1. It does not explicitly differentiate itself from the sibling notes_from_audio_loop, though 'any length' bars implicitly contrasts with a loop-based variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent how to route registers with low/high (bass/stabs/lead) and how to verify results via notes_read(view='roll') and cmp_run. It never states when not to use it or when the loop/stem-based sibling is preferable, so there is no explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notes_from_audio_loopNotes From Audio LoopA
Consensus transcription: average the step-note grid of source over every repetition of a loop_bars-long
cycle inside bars [a, b], keep only notes present in >= min_presence of the repetitions (artefacts, echoes and
leakage that don't repeat drop out), drop notes quieter than min_rel_db under the loudest, then tile the clean
cycle over write_bars (default = bars). Use for loop-based music; prefer it over notes_from_audio.
Loop VARIANTS (the song alternates two versions of its loop): transcribe each variant from its own repetitions and
pass base_bars = the whole span; notes the variant shares with the base consensus are written exactly as the
base has them (same length and velocity), so variants differ only where the reference differs.
| Name | Required | Description | Default |
|---|---|---|---|
| low | No | C1 | |
| bars | Yes | ||
| high | No | C8 | |
| mode | No | replace | |
| track | Yes | ||
| rel_db | No | ||
| source | Yes | ||
| project | Yes | ||
| floor_db | No | ||
| base_bars | No | ||
| loop_bars | No | ||
| min_steps | No | ||
| min_rel_db | No | ||
| write_bars | No | ||
| min_presence | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the core algorithm—averaging step-note grids, filtering by min_presence and min_rel_db, tiling over write_bars—and explains that non-repeating artefacts drop out. However, it does not clarify whether existing notes are replaced or appended, what the default 'replace' mode actually does, or any permission/side-effect constraints. This leaves significant mutation semantics ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured and front-loaded with the core concept ('Consensus transcription'). The second paragraph on loop variants is a useful special case, not filler. It is appropriately sized for a complex algorithm, though it could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives a solid overview of the consensus workflow and the loop-variant case, which is useful for a complex tool. However, it leaves critical parameters (especially mode) and mutation side effects unexplained, and with no annotations or schema descriptions those omissions matter. An output schema exists, so return values need not be covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 15 parameters. The description adds meaning for several key parameters (source, bars, loop_bars, min_presence, min_rel_db, write_bars, base_bars), but leaves many undocumented: low, high, mode, track, project, rel_db, floor_db, and min_steps. For a 15-parameter tool with no schema descriptions, this partial compensation is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Consensus transcription' and specifies the resource (notes from audio) and the exact method used. It explicitly distinguishes itself from the sibling tool notes_from_audio by saying 'prefer it over notes_from_audio.' An agent can tell exactly what this tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the intended context ('Use for loop-based music') and the alternative ('prefer it over notes_from_audio'). It also provides a special usage case for loop variants, including the condition ('the song alternates two versions of its loop') and the required parameter change ('pass base_bars = the whole span'). This is explicit when-to-use and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notes_readNotes ReadA
Read a track's notes in bars [a, b] (inclusive). view='list' (bar, beat in the bar, pitch, dur, vel, and an @offset when a note is nudged), 'roll' (ASCII piano roll, max 8 bars, on the beats), or 'rel' (notes_write format relative to bar a - copy/edit/write back, offsets included). A track offset is named on the first line.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| step | No | ||
| view | No | list | |
| track | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does reasonably well: it discloses the per-view output contents, the max-8-bars limit on 'roll', and how offsets and the track offset are surfaced. It still omits explicit confirmation that it is non-mutating and says nothing about error or empty-range behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then the view taxonomy. Three dense sentences with no filler, though the view enumeration is compact to the point of being terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the view descriptions cover output shape well. Still, for a 5-param tool with 0% schema coverage and no annotations, the silence on 'step' and 'project' leaves an agent with an incomplete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It thoroughly explains 'view' (all three modes) and clarifies 'bars' semantics, but leaves 'step' (default 0.25) and 'project' entirely undocumented in both schema and description, so it only partially fills the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read'), resource ('a track's notes'), and scope ('bars [a, b] (inclusive)'). This clearly distinguishes it from siblings like notes_write, notes_clear, notes_copy, and analyze_notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description routes among the three view modes and hints that 'rel' exists for a copy/edit/write-back workflow with notes_write, which is useful context. However, it gives no explicit guidance on when to choose this over analytical siblings (analyze_notes, track_model, analyze_roll) or any when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notes_transformNotes TransformB
Edit notes in bars [a, b]: transpose (semitones), velocity (set) / vel_scale, shift_beats, quantize (grid in beats; a note's @offset is kept, so a nudge survives quantizing), dur_scale / dur_set, legato (extend each note to the next onset), offset_ms (set each note's nudge in ms, negative = earlier; 0 removes it). pitches limits to those pitches.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | Yes | ||
| track | Yes | ||
| legato | No | ||
| dur_set | No | ||
| pitches | No | ||
| project | Yes | ||
| quantize | No | ||
| velocity | No | ||
| dur_scale | No | ||
| offset_ms | No | ||
| transpose | No | ||
| vel_scale | No | ||
| shift_beats | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose useful per-operation behavior: quantize preserves a note's @offset so a nudge survives, legato extends each note to the next onset, and offset_ms with negative = earlier / 0 = removes. However, it says nothing about permissions, undo/reversibility, or whether the edit persists, which are significant gaps for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the scope ('bars [a, b]') followed by a dense enumeration of operations. It is a single long sentence that stays informative without padding, though the run-on structure slightly hurts scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the operation semantics are well covered. But for a 13-parameter mutation tool with no annotations, the absence of any usage or safety context leaves the definition only adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it explains transpose (semitones), velocity/vel_scale, shift_beats, quantize (grid in beats), dur_scale/dur_set, legato, offset_ms, and pitches semantics. Only project and track are left unexplained, which are self-evident strings, so the coverage is strong.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Edit notes in bars [a, b]') and enumerates the transformation operations, which distinguishes it from sibling mutation tools like notes_write (creating notes), notes_clear, and notes_copy. It is clear but never names or contrasts those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over notes_write, notes_copy, or pattern_write, nor any prerequisites or exclusions. The description lists available operations but leaves the selection decision entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notes_writeNotes WriteA
Write notes starting at bar. notes: one per line or ';'-separated: ' <dur_beats> [vel]
[@offset]' with beat relative to the bar's beat 1 (0, 0.5, 1/3 ...). Chords: 'C4,E4,G4'. @offset nudges the
sound off its beat in milliseconds ('@-40ms' = 40 ms early, so a late attack lands on the beat); the note still
belongs to its beat. mode='replace' first clears the written span (length bars, default = bars the notes
cover); mode='add' merges. repeat=N tiles the block N times.
| Name | Required | Description | Default |
|---|---|---|---|
| bar | Yes | ||
| bars | No | ||
| mode | No | replace | |
| notes | Yes | ||
| track | Yes | ||
| repeat | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does well: it discloses that mode='replace' destructively clears the written span, that 'add' merges, that length defaults to the span the notes cover, and that @offset shifts audio without moving beat ownership. It stops short of covering undo-ability, error behavior, or what happens to pre-existing notes outside the cleared span.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The primary purpose is front-loaded in the first clause, and nearly every sentence carries necessary grammar or mode detail that the schema does not supply. It is a dense single paragraph rather than a structured breakdown, which makes the note-format spec harder to scan than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-required/7-total-parameter mutation tool with zero schema descriptions and no annotations, the description supplies the critical missing layer — the note DSL, offset semantics, and mode behavior — while the existing output schema covers return values. Remaining gaps are project/track identification and failure/undo behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must document all 7 parameters, and it effectively documents bar, notes (full DSL grammar with chord and velocity syntax), bars (default derived from notes), mode, and repeat. Only `project` and `track` are left undefined — presumably name strings — so the compensation is strong but not total.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and resource ('Write notes starting at `bar`') and pins the scope to project/track/bar, which is unambiguous. It never contrasts itself with adjacent siblings such as notes_transform, notes_clear, or pattern_write, so an agent must infer the boundary from behavior alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mode semantics ('replace' clears the written span, 'add' merges) and the repeat tiling give real usage context for how to call the tool. However, there is no explicit when-to-use-this-vs-alternative guidance, no statement of prerequisites, and nothing telling the agent when to prefer notes_transform or notes_clear instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pattern_writePattern WriteC
Step-sequence: lanes = {pitch: 'x...x...X...x..o'} ('.' rest, X accent 127, x 100, o 70, - 45, '_' tie). step = beats per character (0.25 = 16ths). Pattern length (chars*step) sets the span; repeat tiles it.
| Name | Required | Description | Default |
|---|---|---|---|
| bar | Yes | ||
| dur | No | ||
| mode | No | replace | |
| step | No | ||
| lanes | Yes | ||
| track | Yes | ||
| repeat | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, yet it omits the critical mutation semantics: that mode defaults to 'replace' (implying existing notes are overwritten), what dur does, and how bar placement interacts with the tiled span. It explains encoding nicely but not the destructive/write behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dense and free of filler, but it front-loads encoding detail instead of the tool's purpose, and the compact notation style (with legend parentheses) is readable but not optimally structured for an agent scanning for intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but for an 8-parameter, annotation-free write tool the description omits the write semantics (replace vs add), parameter roles for bar/dur/mode, and any usage context, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 8 params, so the description must compensate. It does add real meaning for lanes (character legend), step (beats per char), and repeat (tiling), but leaves bar, dur, mode, track, and project completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is framed around the lane notation format rather than stating the action. From the name and required params (project, track, bar, lanes) an agent can infer it writes a step pattern into a track at a bar, but the description never says 'write' and does not distinguish it from siblings like notes_write or notes_transform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives (notes_write, notes_clear, notes_transform). It explains the input encoding but not the situations that call for pattern_write.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
presets_listPresets ListC
List instrument presets with their type (voice presets name their voice module).
| Name | Required | Description | Default |
|---|---|---|---|
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It hints at output shape (voice presets name their voice module) but says nothing about permissions, scoping, or pagination, and 'List' only weakly implies a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is tightly scoped, though the parenthetical adds little for such a short description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema means return values need not be described, and the tool is simple (one optional param). However, the undocumented parameter and absent usage guidance leave gaps an agent would need to resolve elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented 'project' parameter, but it never mentions it or explains its scoping effect. The single optional parameter is left entirely to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (instrument presets), plus a clarifying note about what voice presets include. An agent can tell what it does, but there's little to distinguish it from neighbors like voices_list or sound_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this versus voices_list, instrument_show, or sound_list. There are no prerequisites or exclusion conditions, leaving the agent to infer the right context on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_infoProject InfoB
Summary of the whole project: grid, tracks (instrument, note count, bars used, fx), buses, master, sounds.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it discloses the content scope of the summary (tracks, buses, master, sounds). However, it never states that the operation is non-destructive/read-only, nor any side effects or permissions, leaving key behavioral traits implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence listing the summary's contents with no filler. Efficient, though the parenthetical enumeration is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required. For a simple one-parameter info tool, the content list is reasonably complete, but the undocumented 'project' argument leaves a gap the agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required 'project' parameter, so the description must compensate, but it says nothing about what form the project identifier takes. Baseline 4 for zero-parameter tools does not apply here, and the description adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('the whole project') and enumerates the contents it summarizes (grid, tracks with instrument/note count/bars/fx, buses, master, sounds), so an agent knows this is a project-wide read/info tool. It is clear but does not explicitly differentiate itself from analyzer siblings like analyze_overview or analyze_structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, nor any prerequisites or exclusions. The reader must infer that this is the high-level read tool from the name and content list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_newProject NewC
Create a new project directory. offset_sec = time of bar 1 (match a reference's grid with analyze_grid). objective: what this piece is for, in the person's words ("keep a listener asleep for 3 hours"); see project_set. derived_from: the project this one is a version of; its objectives and lineage are carried over, so a derivative keeps the intent it came from (intent provenance).
| Name | Required | Description | Default |
|---|---|---|---|
| bpm | Yes | ||
| name | No | ||
| project | Yes | ||
| objective | No | ||
| reference | No | ||
| offset_sec | No | ||
| length_bars | Yes | ||
| derived_from | No | ||
| beats_per_bar | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose one real trait — derived_from carries over objectives and lineage (intent provenance) — but says nothing about side effects of creation, what the new project directory contains, permissions, or error behavior for a mutation tool with 9 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, which is good, but the remainder reads as a loose set of parameter notes rather than a structured explanation. Size is moderate but the transition from creation semantics to per-field commentary is abrupt.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, but for a 9-parameter creation tool with 0% schema coverage and no annotations, the description leaves most inputs and all behavioral traits undocumented. It is not sufficient to call this tool correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does add genuine meaning for offset_sec ('time of bar 1', tied to matching a reference grid via analyze_grid), objective, and derived_from, but the required parameters project, bpm, and length_bars plus name, reference, and beats_per_bar are left entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Create a new project directory' gives a specific verb (create) and resource (project), which is enough to separate it from project_info and project_set on the 'new' axis. However, it does not explicitly state the create-vs-update relationship to project_set, leaving some differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to create a new project versus working with an existing one, nor on prerequisites. analyze_grid and project_set are named only as cross-references for parameter meaning, not as alternatives to choose between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_setProject SetB
Change project settings. Changing bpm keeps notes on the same beats (the song gets faster/slower). reference_stems = a folder of already-separated stems (drums.wav, bass.wav, ...) for the reference. objective: what the piece is for, in the words of whoever set it (objective_by, default 'user'): a sleep set's might be "stay asleep", a cover's "sound like the 1970 record". Earlier objectives are kept as history; project_info shows the current one, and every version made from this one carries them (derived_from).
| Name | Required | Description | Default |
|---|---|---|---|
| bpm | No | ||
| name | No | ||
| project | Yes | ||
| tail_sec | No | ||
| objective | No | ||
| reference | No | ||
| offset_sec | No | ||
| length_bars | No | ||
| objective_by | No | user | |
| reference_stems | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose real behavior: changing bpm keeps notes on the same beats, and earlier objectives are retained as history that propagates to derived versions via derived_from. However, it never says whether this is a partial or full update, what happens to unmentioned settings, or what permissions/preconditions apply, so coverage is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence is well front-loaded, but the remainder is a dense run-on of parentheticals and mid-sentence line breaks that make it hard to map explanations to parameters. It is not padded, but it is not cleanly structured either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The existence of an output schema means return values need not be explained, which the description correctly omits. Still, for a 10-parameter mutation tool with no annotations and 0% schema coverage, leaving 6 parameters and the partial-vs-full update semantics undocumented is a real completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does explain bpm, reference_stems, objective, and objective_by with genuine semantic detail (including the history/derived_from behavior). But 6 of 10 parameters (name, reference, tail_sec, offset_sec, length_bars, project) receive no explanation at all, leaving the compensation incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Change project settings') that an agent can act on, and implicitly separates it from project_info by explaining that project_info shows the current objective. It does not name project_new, so the boundary with the sibling that also creates/configures projects is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named despite project_new, project_info, track_set, and instrument_set being obvious neighbors. The objective explanation gives semantic context for one field but does not tell the agent when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ref_retuneRef RetuneA
Retune the reference (and its stems) onto A440 for analysis: measures the offset (or takes cents), writes
pitch-shifted copies next to the originals and points the project at them. A record tens of cents off (a sped-up
sample) makes every note read as a pair of semitones in the pitch, chord, key and transcription tools; timing is
unchanged. analyze_grid prints the offset and says when to run this. The originals stay in reference.original.
| Name | Required | Description | Default |
|---|---|---|---|
| cents | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that it writes pitch-shifted copies next to the originals, repoints the project at them, leaves timing unchanged, and preserves the source in reference.original. It stops short of stating permissions or an explicit undo path, but the preservation note effectively signals non-destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and the sentences are dense but each carries information (target pitch, effect on analysis tools, side effects, preservation). Slightly packed, but no wasted sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained. For a mutating tool with no annotations, the description adequately covers behavior, side effects, and preservation, leaving only minor gaps around parameter formats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains `cents` meaningfully (measures the offset when omitted, or accepts a supplied value), but the required `project` parameter is only implied by 'points the project at them' with no stated format or scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Retune'), the resource ('the reference and its stems'), and the target ('onto A440 for analysis'). It is immediately distinguishable from sibling analysis tools, which measure rather than modify pitch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear triggering condition ('a record tens of cents off... makes every note read as a pair of semitones') and names the diagnostic that signals it ('analyze_grid prints the offset and says when to run this'). No explicit when-not or alternative tool is named, but the context is well supplied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
renderRenderA
Render to renders/latest.wav (and renders/.wav). bars=[a,b] renders a window (fast iteration); tracks limits to those tracks (+ their sidechain sources, which stay silent); stems=True writes per-track files for analysis as 'track:'. Analysis of a windowed render and its stems still uses song bar numbers (bars outside the window raise). mp3='also' writes renders/.mp3 next to the wav, mp3='only' writes the named render as mp3 only (latest.wav is always written: analysis reads it); needs ffmpeg on PATH or $ISMAIL_FFMPEG. Returns levels, clipping and timing.
| Name | Required | Description | Default |
|---|---|---|---|
| mp3 | No | none | |
| out | No | ||
| bars | No | ||
| cache | No | ||
| stems | No | ||
| tracks | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden well: it discloses external dependencies (ffmpeg on PATH or $ISMAIL_FFMPEG), a side effect (latest.wav is always written because analysis reads it), error behavior (bars outside the window raise), and muted sidechain tracks. It does not mention caching or idempotency behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded with the primary output location before sub-option details, and each clause adds a distinct fact. It is somewhat run-on across the middle, but no sentence is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with 0% schema coverage, the description covers the important parameters, side effects, and dependency constraints, and summarizes returns. The unexplained cache parameter keeps it from being fully complete, though an output schema exists to cover the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does for bars, tracks, stems, mp3 and out (via renders/<out>.wav), including the string values mp3 accepts. The cache boolean and the project parameter are left entirely unexplained, leaving a modest gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — render the project to renders/latest.wav or a named <out>.wav — and names the concrete output artifacts. It is clearly distinct from the surrounding analyze_*/cmp_* siblings that read audio rather than produce it, though it never contrasts itself with them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear per-option context: bars for a fast-iteration window, tracks to limit and keep sidechain sources silent, stems for per-track analysis, mp3='also' vs 'only' for output format. It never states when to prefer render over alternatives or any when-not conditions, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
separateSeparateB
Split a source into drums/bass/other/vocals stems with demucs (GPU if available). For 'ref' the stems become 'ref:drums' etc.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | htdemucs_ft | |
| source | No | ref | |
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral-disclosure burden. It usefully discloses the demucs method, optional GPU usage, and stem-naming behavior for the 'ref' source, but it does not state side effects, permissions, whether files or tracks are created, or expected runtime.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with no wasted words. It front-loads the core purpose and then adds a targeted behavioral note about the 'ref' source.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, with no annotations, 0% schema description coverage, and a required 'project' parameter left opaque, the description does not provide enough context for fully reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for three undocumented parameters. It clarifies the source value 'ref' and implies the demucs model family, but it does not explain the required 'project' parameter, model choices, or defaults beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: splitting a source into drums/bass/other/vocals stems using demucs. It also names the method and GPU behavior, making the tool's function readily distinguishable from sibling analysis or mapping tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when stems are needed, but it gives no explicit when-to-use guidance, prerequisites, or alternatives. There is no mention of when not to use it or how it relates to siblings such as analyze_drums or stem_map_set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sound_compareSound CompareA
A/B two sounds: 1/3-octave bands side by side (with << >> where A is >6 dB off), envelope from onset, centroid, stereo width, and one distance number. a/b are sources ('sound:', 'ref:drums', 'track:x', ...); window=[t0, t1] seconds or span=[start_bar, end_bar] (fractional) selects a slice.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | ||
| b | Yes | ||
| fmax | No | ||
| fmin | No | ||
| a_span | No | ||
| b_span | No | ||
| project | Yes | ||
| a_window | No | ||
| b_window | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add real behavioral detail: the meaning of the '<< >>' markers (>6 dB off), the metric set returned, and the accepted source syntax. It does not disclose permissions, whether it mutates anything, or performance characteristics, so it is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and output, then transitions to parameter guidance in two tight clauses. Dense but every sentence carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be enumerated, yet the description usefully previews them. For a 9-param, no-annotation analysis tool, the main gaps are fmin/fmax and per-source slice parameters, which the schema at least defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 9 params, so the description must compensate. It does explain source string formats ('sound:<name>', 'ref:drums', 'track:x') and the window/span slice semantics (seconds vs fractional bars), but leaves fmin/fmax, project, and the relationship between a_window/b_window and a_span/b_span unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: A/B compare two sounds, and enumerates the concrete outputs (1/3-octave bands, onset envelope, centroid, stereo width, one distance number). This clearly distinguishes it as a spectral/sonic A/B tool, though it never explicitly contrasts itself with the sibling 'compare' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mechanics of how to point it at sources and slices are described, which implies usage, but there is no explicit when-to-use statement, no preconditions, and no routing away from alternatives like 'compare' or 'analyze_spectrum'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sound_extractSound ExtractA
Build a clean one-shot of a repeated event by averaging every occurrence at grid position step
(0-based within the bar, 16ths by default) over bars [a, b] (which='all'|'odd'|'even'; every=8 takes bars
a, a+8, a+16... i.e. the same position of an 8-bar loop), aligned by
cross-correlation. Sounds that repeat identically (drum samples, stabs) add up; everything else averages down.
Reports how consistent the occurrences were.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | Yes | ||
| name | Yes | ||
| step | Yes | ||
| every | No | ||
| which | No | all | |
| pre_ms | No | ||
| source | Yes | ||
| project | Yes | ||
| normalize | No | ||
| length_sec | No | ||
| steps_per_bar | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It helpfully discloses the internal behavior (cross-correlation alignment, identical sounds summing while noise averages down) and that it 'reports how consistent the occurrences were,' but it omits whether a sound file is written, where, whether project state is mutated, and any permission or overwrite implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single dense paragraph that front-loads the purpose before the parameter details. Every sentence carries information, though the parenthetical parameter asides make it somewhat run-on and harder to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description is appropriately silent there while adding the consistency-report note. Against a complex 11-parameter tool with 0% schema coverage, however, several parameters remain unexplained, leaving a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 11 parameters. The description meaningfully explains `step`, `bars`, `which`, and `every` (including the 8-bar loop convention), but leaves source, project, name, pre_ms, normalize, length_sec, and steps_per_bar completely undocumented, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and result ('Build a clean one-shot of a repeated event') plus the exact mechanism (averaging occurrences at grid position `step`, aligned by cross-correlation). It clearly conveys the operation's intent, though it never names or contrasts with sibling audio tools like sound_make or sound_import.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the mechanism: it explains `which`, `every`, and the bars range, so an agent can infer this is for taming repetition in looping material. However, there is no explicit when-to-use versus alternatives (e.g., sound_make or sound_import) and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sound_importSound ImportC
Import audio into the bank from a file or any analysis source (ref, ref:vocals, track:x, render...), optionally a time slice (seconds) or bars [a, b] on the project grid.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | No | ||
| name | Yes | ||
| source | Yes | ||
| end_sec | No | ||
| project | Yes | ||
| normalize | No | ||
| start_sec | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says nothing about whether an import overwrites an existing sound with the same name, whether it mutates the project state, what permissions are required, or whether the operation is reversible — significant gaps for a write/mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the core action front-loaded and the optional slicing modes trailing. Nothing is wasted, though the parenthetical source list is slightly crowded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, 0% schema coverage, no annotations, and a mutation-style operation, the description should do much more. It omits normalize, project and name semantics and any statement about effects on existing bank content, leaving an agent with an incomplete picture even though the output schema covers return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does add real value for three parameters: the source syntax forms, the bars format [a, b] on the project grid, and the seconds-based time slice. It leaves project, name, and especially normalize completely unexplained, so the compensation is only partial across seven parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Import') and resource ('audio into the bank'), which is enough to separate it from sound_make, sound_extract and audio_place. It does not, however, explicitly name which sibling to use instead in a given situation, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists valid source syntaxes (ref, ref:vocals, track:x, render), which is helpful, but never says when to choose sound_import over sound_make, sound_extract or audio_place, and gives no prerequisites or exclusions. An agent must infer the routing decision on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sound_listSound ListC
List the sound bank.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only implies a read-only listing and says nothing about permissions, rate limits, pagination, or side effects. The minimal verb 'List' hints at safety, but no concrete behavioral traits are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise, front-loaded, and contains no wasted words. However, its extreme brevity means it does not fully serve the tool's documentation needs, though that gap is better captured in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the required parameter, zero schema coverage, and no annotations, the description is incomplete. It does not explain the 'project' input or provide any usage context; only the presence of an output schema relieves it of return-value documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the description does not mention the required 'project' parameter at all. It fails to explain what 'project' represents or how it affects the listing, leaving the parameter's semantics entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('List') and resource ('the sound bank'), making the tool's basic function immediately understandable. It does not explicitly differentiate from siblings like sound_import or sound_make, but the listing operation is distinct enough for an agent to infer its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as sound_import, sound_make, or sound_compare. The description provides no context about prerequisites or typical scenarios, leaving the agent to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sound_makeSound MakeA
Synthesize a sound into the bank: play notes (notes_write format, beats at project tempo) on instrument
through fx. Use it as a sampler source, a wavetable, a vocoder modulator or an audio clip. Returns a timbre
description of the result.
| Name | Required | Description | Default |
|---|---|---|---|
| fx | No | ||
| name | Yes | ||
| notes | No | 0 C4 1 | |
| project | Yes | ||
| describe | No | ||
| tail_sec | No | ||
| normalize | No | ||
| instrument | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose meaningful behavior: a persistent artifact is written into the bank, notes follow the notes_write format at project tempo, and a timbre description is returned. It omits mutation semantics that matter here, such as what happens on a name collision, whether an existing sound is overwritten, and the cost/time of rendering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and its inputs, with the parenthetical format note earning its place. Slightly dense packaging but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and the core generative flow is conveyed. However, for an unannotated 8-parameter mutation tool with 0% schema coverage, the definition leaves too much open: overwrite behavior, parameter meanings, and rendering characteristics are all missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 parameters, so the description must compensate. It explains the non-obvious `notes` format ('notes_write format, beats at project tempo') and names `instrument` and `fx`, but `project`, `name`, `describe`, `tail_sec`, and `normalize` receive no explanation at all, leaving most of the surface undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Synthesize a sound into the bank') with the exact inputs named (notes on instrument through fx). The generative framing clearly separates it from siblings like sound_import (bring in external audio) or sound_extract (pull audio out), so an agent can route without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names downstream uses of the result (sampler source, wavetable, vocoder modulator, audio clip), which implies context but is about the output artifact rather than when to pick this tool over alternatives. There is no explicit when-to-use or when-not-to-use guidance, and no sibling is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sound_speakSound SpeakB
Text-to-speech into the sound bank with the OS's own engine: Windows SAPI (voices like David, Zira; the
default is David), macOS say (Alex, Samantha ...), Linux espeak-ng (en-us, en-gb ...). A voice the engine
doesn't have falls back to its default. rate -10..10. Use as a vocoder modulator (vocoder fx,
modulator='sound:' or a muted track holding it as audio clips), a sampler source, or an audio clip.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| rate | No | ||
| text | Yes | ||
| voice | No | ||
| project | Yes | ||
| normalize | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does add real behavioral detail: platform-specific engines, voice examples, default fallback when a voice is missing, and the rate range. It omits what happens on name collisions with existing sounds, permissions, and whether the operation is reversible, so gaps remain for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but well-packed: engine detail, fallback behavior, rate range, and downstream uses are all present in a single tight block with no filler. It leans slightly toward over-packing, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and engine behavior is covered. For a mutation that creates named sounds, though, the description says nothing about overwrite/collision behavior or the normalize parameter, leaving meaningful gaps given the absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies voice (examples, default fallback) and rate (-10..10), but leaves normalize, name, and project unexplained, so it only partially closes the coverage gap rather than fully compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Text-to-speech into the sound bank') and the mechanism (OS engine with named voices per platform), which clearly separates it from import/synthesis siblings. It does not explicitly name an alternative tool, but the mechanism description is distinctive enough to route correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use as a vocoder modulator..., a sampler source, or an audio clip' sentence tells the agent how the generated sound is consumed downstream, which is useful context. However, it never advises when to choose this tool over alternatives (e.g., sound_make, sound_import) or any prerequisites, leaving tool selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spectrogramSpectrogramB
Write a mel spectrogram PNG with bar lines (the one non-text view). Returns the PNG path.
| Name | Required | Description | Default |
|---|---|---|---|
| out | No | ||
| bars | No | ||
| source | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It does disclose the side effect (writes a PNG file) and the return value (the PNG path), which is useful. However, it says nothing about overwrite behavior, required permissions, or what happens to the out path default.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action front-loaded and no filler. Appropriate length, though very terse given the tool accepts multiple options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return format needn't be explained, but with no annotations and 0% parameter coverage, a four-parameter file-writing tool needs more than two sentences. An agent cannot infer what project, source, or bars control.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters (out, bars, source, project), so the description must compensate. It only loosely implies the "bars" and "out" parameters via "bar lines" and "the PNG path"; project, source, and the actual meanings/format of out and bars are left undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ("Write") and resource ("mel spectrogram PNG with bar lines"), and the parenthetical "the one non-text view" meaningfully separates it from the large family of analyze_*/notes_* text-oriented siblings. Clear enough to identify the operation, though it doesn't describe scope details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The aside "(the one non-text view)" hints at when an agent would choose this over the many text-analysis siblings, but there is no explicit when-to-use, no exclusions, and no named alternative. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stem_map_setStem Map SetB
Declare which reference stem each of your tracks belongs to, e.g. {"kick": "drums", "riff": "other"}. cmp_run(stems='tracks') builds your stems from these groups (no separation artefacts on your side).
| Name | Required | Description | Default |
|---|---|---|---|
| mapping | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully clarifies that this is a declarative grouping rather than an audio operation ('no separation artefacts on your side'), but it omits whether the mapping overwrites prior state, what the project must be, or side effects. Partial disclosure only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with the core purpose front-loaded and the downstream payoff ('builds your stems ... no separation artefacts') stated second. No filler, though the inline JSON example adds a little density without much loss of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained. For a mutation tool with no annotations and 0% parameter coverage, the description covers purpose and downstream use but leaves the project parameter and the overwrite/merge behavior unexplained, so it is adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. The mapping example {'kick': 'drums', 'riff': 'other'} conveys the key/value semantics (track name to stem name), but the required 'project' parameter is entirely unaddressed, leaving half the surface undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Declare which reference stem each of your tracks belongs to', reinforced with a concrete mapping example. It distinguishes the tool's role relative to cmp_run, though the stem-map concept is domain-specific and no other sibling does this exact task, so no explicit sibling contrast is needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence implies usage by tying it to cmp_run(stems='tracks'), which tells the agent this map feeds later stem building. However, there is no explicit when-to-use or when-not-to-use guidance, no prerequisites, and no alternate path described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_addTrack AddB
Add a track. instrument: a dict (see instrument_help) or 'preset:' (see presets_list). None = audio-only track.
| Name | Required | Description | Default |
|---|---|---|---|
| pan | No | ||
| name | Yes | ||
| output | No | master | |
| project | Yes | ||
| volume_db | No | ||
| instrument | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether the operation is destructive, what happens to existing tracks, whether it requires specific permissions, or what the return value contains (even though an output schema exists). The only behavioral hint is 'None = audio-only track', which is helpful but insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: three short sentences, front-loaded with the core action and then the most ambiguous parameter's semantics. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, 2 required, no annotations, and an output schema, the description is minimally adequate. It covers the trickiest parameter (instrument) but omits guidance on required parameters ('project', 'name') and the role of 'pan', 'volume_db', and 'output'. It should do more to aid correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies the 'instrument' parameter somewhat (dict via instrument_help, or 'preset:<name>' via presets_list, None for audio-only), but says nothing about 'project', 'name', 'pan', 'volume_db', or 'output'. Half the parameters remain undocumented, so it adds partial value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add a track'), which is clear and distinguishes it from siblings like track_set, track_remove, and bus_add. It does not explicitly name alternatives, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use track_add versus alternatives such as project_new, track_model, or bus_add. The description does not mention prerequisites (e.g., needing an existing project) or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_fitTrack FitA
Tune a track IN CONTEXT: render the track's whole stem group (stem_map) over bars [a, b] and score it against the same window of the reference stem with the perceptual (CLAP) metric plus band levels. params: {path: [lo, hi]} with 'inst.' (inst.filter.cutoff, inst.oscs.0.detune ...), 'fx..', 'volume_db' or 'pan'. 8-16 bars and 20-40 iterations is a good budget (each iteration renders the window). apply=True writes the best values into the track.
| Name | Required | Description | Default |
|---|---|---|---|
| bars | Yes | ||
| seed | No | ||
| apply | No | ||
| iters | No | ||
| track | Yes | ||
| params | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full behavioral burden and does well: it explains the render/score loop, the per-iteration rendering cost, and that apply=True writes the best values into the track. It still omits what happens when apply=False returns and any precondition on stem_map/reference setup, but the core mutation and computational profile are clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loads the purpose and then adds operational detail, with no obvious filler. The embedded param examples make it slightly harder to scan than a bulleted list, but it remains appropriately sized for a complex tuning tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, an output schema, and 7 parameters at 0% schema coverage, the description is substantially complete: it covers the tuning workflow, parameter syntax, budget, and mutation behavior. It stops short of naming alternatives or explaining seed, but the remaining gaps are modest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the params object syntax ('inst.<param path>', 'fx.<i>.<param>', 'volume_db', 'pan'), the bars range, the iters budget, and apply behavior. Seed and project/track are not addressed, but the complex parameters are well documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Tune a track IN CONTEXT' by rendering its stem group and scoring against a reference stem. This scope clearly separates it from sibling tools like instrument_fit and eq_match, which do not describe whole-stem, in-context rendering against a reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for tuning track parameters against a reference, and gives a workable bars/iterations budget. However, it never names alternatives or states when to prefer track_fit over instrument_fit, eq_match, or levels_from_ref, so an agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_modelTrack ModelA
Record what a track's sound is modeled on, shown by project_info and render. on: the example it was measured from ('ref', 'ref:', 'sound:', a path, or a note like 'kit comp_2 of the ref drums'), 'designed' for a sound made on purpose (most electronic music), or '' to clear. by: how (an op, a song script, 'ear exam'). Fits record it themselves (instrument_fit apply_to_track, track_fit apply=True); mimic profiles, measured library voices and imported samples need nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | ||
| on | Yes | ||
| track | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose that '' clears the value and that the result appears in project_info and render, which is useful. However it says nothing about permissions, side effects on other fields, or whether the recorded model affects rendering behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact but written as a dense run-on with unusual phrasing ('Fits record it themselves') that requires re-reading. It front-loads the core purpose reasonably, but the parameter and guidance clauses are tangled together rather than structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description notes where the model is shown. It covers the two non-obvious parameters and the clearing behavior, leaving only permissions and side effects unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does well for the two non-obvious fields: 'on' enumerates concrete value forms ('ref', 'ref:<stem>', 'sound:<name>', a path, 'designed', ''), and 'by' is explained as the method. 'track' and 'project' are left implicit but are self-evident from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Record what a track's sound is modeled on', and ties the result to where it surfaces ('shown by project_info and render'). It is genre-specific and jargon-heavy, but a reader can distinguish it from siblings like track_set or instrument_fit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing sentence hints at when this is unnecessary ('mimic profiles, measured library voices and imported samples need nothing') and names related tools (instrument_fit apply_to_track, track_fit apply=True), but the phrasing is cryptic and gives no explicit 'use X instead when Y' instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_removeTrack RemoveC
Delete a track (undo restores it).
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose one important trait — that the deletion is undoable — which is useful context beyond the schema. But it omits permissions, what happens to associated clips/automation, and whether the project must be in a specific state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the core action and appends the undo fact. It is efficient and wastes no words, though it is arguably too sparse for a tool with two undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but the description is incomplete for a destructive mutation with no annotations: it omits permissions, cascading effects, and parameter formats. Two required, wholly undocumented parameters compound the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage across two required parameters, the description provides no meaning for 'project' or 'track' — it doesn't explain expected formats, IDs vs names, or path syntax. The schema alone leaves both parameters completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Delete) and resource (track), which is clear and distinguishes it from track_add and track_set among siblings. It does not, however, clarify scope (e.g., whether it removes all clips or just the track lane).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use track_remove versus alternatives like fx_remove or project_new, nor any prerequisites (e.g., project state, permissions). The undo note is a behavioral fact, not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_setTrack SetC
Mixer settings for a track. sends = {bus: level_db} (replaces all sends; {} removes). offset_ms moves every sound of the track (notes and audio clips) off its beat, negative = earlier, e.g. -35 for a part whose attacks come late; 0 removes it. Notes keep their beats (notes_read shows them on the grid); automation stays on the song's time.
| Name | Required | Description | Default |
|---|---|---|---|
| pan | No | ||
| mute | No | ||
| solo | No | ||
| sends | No | ||
| track | Yes | ||
| output | No | ||
| rename | No | ||
| project | Yes | ||
| offset_ms | No | ||
| volume_db | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does disclose one important trait: sends are replaced wholesale ('replaces all sends; {} removes'), plus the non-obvious offset_ms side effects on notes and automation. However it is silent on pan, mute, solo, output, rename, and volume_db behavior, and on permissions or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is dense but largely earns its place for the two parameters it covers, with no filler. The structure is the weakness: it opens with an ambiguous fragment and then dives straight into sends and offset_ms without a framing sentence about the tool's overall role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. But for a 10-parameter mutation tool with zero schema description coverage and no annotations, explaining only 2 parameters leaves an agent unable to call most of the surface correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there are 10 parameters, so the description must compensate and mostly does not. It richly documents only two of ten (sends and offset_ms) and says nothing about pan, mute, solo, output, rename, or volume_db, leaving the majority undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Mixer settings for a track' is a noun fragment rather than a verb+resource statement, so it never explicitly says 'sets/updates'. The body makes the intent inferable, but nothing distinguishes it from siblings like project_set, instrument_set, or fx_set, which likely touch the same kind of object.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite, and no mention of alternatives. With siblings such as track_add, track_remove, and instrument_set in scope, the agent gets no help deciding when track_set is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undoUndoA
Restore the project to its state steps mutations ago (every mutating op snapshots first).
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | ||
| project | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the burden. It usefully discloses that every mutating op snapshots first, which explains why undo works at all, and that this rewinds state rather than toggling. However, it omits whether undo itself is reversible, how far back snapshots are retained, and what happens if `steps` exceeds available history.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the core operation first and the mechanism in a brief parenthetical. Every clause earns its place with no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the core rewind semantics are covered for a 2-param tool. The remaining gap is edge behavior around out-of-range `steps` and snapshot retention depth, which an agent would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It meaningfully defines `steps` as the number of mutations to rewind, but says nothing about the default of 1 or bounds/limit semantics, and `project` is left entirely to inference (plausibly obvious as a project identifier). Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: 'Restore the project to its state `steps` mutations ago'. The parenthetical clarifies the mechanism (snapshot-per-mutation), so an agent knows exactly what operation this is. No sibling overlaps with undo semantics, so no differentiation is needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'every mutating op snapshots first' tells the agent undo is available after any mutation, but there is no explicit when-to-use, when-not-to-use, or note about alternatives (e.g. whether a redo exists). Adequate but leaves selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
voice_helpVoice HelpB
Everything about one voice module: where it comes from, what velocity does, its functions and parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | grand_piano | |
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the topical coverage (origin, velocity, functions, parameters), but says nothing about whether it is read-only or what form the help takes. With an output schema present, return-shape disclosure is not required, keeping this at an adequate-but-thin 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource front-loaded and no filler. Efficient, though the brevity contributes to the missing usage and parameter guidance noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return values, so that dimension is satisfied. However, with zero annotations and 0% parameter description coverage, the description leaves the project parameter and the help/info vs. sibling-help distinction unresolved, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Two parameters with 0% schema description coverage and no enum or format hints. The phrase 'one voice module' weakly implies the name parameter, but the project parameter is entirely unexplained in both schema and description, so the description does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (one voice module) and enumerates the topical scope (origin, velocity, functions, parameters), making it clear this is a documentation/help tool for voice modules. However, it never differentiates itself from closely-named siblings like instrument_help, fx_help, or voices_list, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance and names no alternatives, despite the presence of instrument_help, fx_help, and voices_list as obvious competing choices. An agent cannot tell from the text when to reach for this tool versus those siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
voices_listVoices ListA
List voice modules (code instruments kept as Python files) and mimic profiles (instruments measured from recordings): the song's own (/voices/), those on $ISMAIL_VOICES, and the built-ins. Use one as {"type": "code", "voice": ""} or its preset; voice_help(name) shows its velocity mapping, functions and parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose meaningful behavior: the three sources searched (project/voices, the $ISMAIL_VOICES environment variable, and built-ins) and the implicit read-only nature of a list operation. It does not spell out auth requirements, ordering, or rate limits, but the source-scope disclosure is substantial context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with what is listed and where, followed by the actionable usage note. Two sentences plus a usage clause carry real information with little waste; the inline JSON example is justified because it shows the exact consume format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with one optional parameter and an existing output schema (so return values need no explanation), the description covers what is listed, from which sources, and how to use the result. The main remaining gap is the undocumented 'project' parameter, but otherwise an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'project' parameter is never explicitly explained. The '<project>/voices/' path notation hints that the parameter selects which project's voices are scanned, but the description does not define its meaning, default behavior (null), or what omitting it does, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and precisely defines the two resource types (voice modules = Python files, mimic profiles = measured from recordings) plus their search locations. It also distinguishes itself from the companion voice_help by explaining that voice_help shows the detail view, though it does not contrast against presets_list or sound_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the follow-up path clearly: use a discovered voice as {"type": "code", "voice": "<name>"} or its preset, and route to voice_help(name) for details. It gives clear context for when this tool is the entry point, but offers no explicit exclusions versus sibling listers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
97 tool updates
v0.3.0- First observed
align - First observed
analyze_bars - First observed
analyze_chords - First observed
analyze_drums - First observed
analyze_envelope - First observed
analyze_formants - First observed
analyze_grid - First observed
analyze_key - First observed
analyze_kit - First observed
analyze_melody - First observed
analyze_notes - First observed
analyze_overview - First observed
analyze_pitches - First observed
analyze_roll - First observed
analyze_sections - First observed
analyze_spectrum - First observed
analyze_structure - First observed
analyze_swing - First observed
analyze_timbre - First observed
audio_place - First observed
automation_clear - First observed
automation_read - First observed
automation_set - First observed
batch - First observed
bus_add - First observed
cmp_arrangement - First observed
cmp_bars - First observed
cmp_list - First observed
cmp_run - First observed
cmp_sections - First observed
cmp_summary - First observed
cmp_worst - First observed
cmp_zoom - First observed
compare - First observed
eq_match - First observed
fx_add - First observed
fx_help - First observed
fx_remove - First observed
fx_set - First observed
guide - First observed
instrument_fit - First observed
instrument_help - First observed
instrument_set - First observed
instrument_show - First observed
levels_from_ref - First observed
lexicon_find - First observed
lexicon_note - First observed
lexicon_view - First observed
live_bus - First observed
live_cancel - First observed
live_deck - First observed
live_device - First observed
live_fx - First observed
live_listen - First observed
live_load - First observed
live_parity - First observed
live_queue - First observed
live_record - First observed
live_start - First observed
live_status - First observed
live_stop - First observed
live_track - First observed
live_transition - First observed
live_view - First observed
machine_status - First observed
mimic_measure - First observed
notes_clear - First observed
notes_copy - First observed
notes_from_audio - First observed
notes_from_audio_loop - First observed
notes_read - First observed
notes_transform - First observed
notes_write - First observed
pattern_write - First observed
presets_list - First observed
project_info - First observed
project_new - First observed
project_set - First observed
ref_retune - First observed
render - First observed
separate - First observed
sound_compare - First observed
sound_extract - First observed
sound_import - First observed
sound_list - First observed
sound_make - First observed
sound_speak - First observed
spectrogram - First observed
stem_map_set - First observed
track_add - First observed
track_fit - First observed
track_model - First observed
track_remove - First observed
track_set - First observed
undo - First observed
voice_help - First observed
voices_list
TDQS
Scored across 97 tools
Many tools share prefixes and overlapping purposes across analysis, comparison, live, and sound families (e.g., compare vs cmp_run, analyze_notes vs notes_from_audio, track_fit vs eq_match vs instrument_fit). Despite detailed descriptions, the sheer number of similar tools makes misselection likely.
All tool names use consistent snake_case with domain-prefix patterns (analyze_*, cmp_*, live_*, notes_*, track_*, sound_*). The convention is predictable and readable throughout, even if not strictly verb_noun.
With 97 tools, the surface far exceeds the typical 3-15 range and even the 25+ threshold for 'too many'. While the domain is complex, this count is extreme and likely overwhelming for an agent.
The surface covers project lifecycle, tracks, notes, instruments, effects, automation, deep analysis, comparison, live performance, sound design, machine status, undo, batch, and lexicon. No obvious gaps or dead ends for a DAW agent.
Maintenance
Related MCP Connectors
Autonomous music production for AI agents with MIDI generation, QC and provenance.
AI music and podcast platform for autonomous agents. SoundCloud for AI bots.
Deterministic music theory for agents: analyze, voice, reharmonize, conduct — computed, not guessed
Edit DAW sessions; convert Logic/Ableton/FL/PT/REAPER/Cubase/Dorico; stems, transcribe, generate
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control Ableton Live with full access to Live's object model, including clip creation, device control, automation, and audio signal capture for mixing and mastering tasks.1MIT
- AlicenseBqualityAmaintenanceEnables AI agents to control a browser-based digital audio workstation (openDAW) for music production, including track creation, effects, MIDI, automation, and rendering.100Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to create and edit Strudel music code, render offline WAV audio, and obtain structured hearing reports with waveform, spectrogram, BPM, and onset analysis.AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to generate, inspect, and micro-tune OpenUtau .ustx project files and DiffSinger neural expression curves.3MIT