Skip to content

Customizing Skills

The Producer Pal Skills are the instructions the AI receives when it connects — how to write notes, edit clips, build instruments, search your library, and work with Ableton Live. They're sent to external MCP clients (like Claude Desktop) in the ppal-connect result and used by the built-in Chat UI on every conversation.

Not the same as the Agent Skill

Two different things are called "skills" here. Producer Pal Skills — this page — are instructions sent to the model after it connects. The Agent Skill is an integration package that teaches a coding agent how to connect in the first place. Customizing the skills below changes what every client is taught, including agents using the Agent Skill.

You can override any part of them, and — since every part of the skills costs tokens on every conversation — trim the parts you never use. Trimming is one of several levers; Optimizing covers them all and says which pays off most.

How skills are assembled

The skills are composed from named fragments. The Full skills (standard) document is nothing but a list of @include directives, one per section, in reading order:

@include "./transforms-core.md"

@include "./library.md"

@include "./devices.md"

Each fragment can be overridden independently, or switched off entirely. When you override one, your version replaces the built-in; every fragment you don't override keeps tracking Producer Pal's built-ins as they improve from release to release.

Fragments are cut along the lines of what you're actually doing, so you can drop a whole area you never use:

FragmentWhat it teaches
standardThe standard skills document — the list of @include lines below
basicThe much shorter document used in small model mode
time-and-valuesBeats, note values, bar|beat positions, clip lengths, and pitch names (C3=60)
transforms-coreSelecting notes and setting values on them
transforms-editingEditing a clip that already has notes: how notes merges, preTransforms, quantizeGrid (update-clip only)
transforms-expressionsTransform variables, math functions, swing and quantize
transforms-generativeratchet/repeat/split/merge, and the waveforms that modulate a value across a clip
transforms-basicMerging into a clip and clearing notes with preTransforms — the whole transforms guide in small model mode
librarySearching Live's browser library and your sample folder
devicesDevice paths and VST/AU limits
devices-writeBuilding Simpler and Drum Rack instruments — loading samples
specialized-devicesThe extra controls specific native devices expose (Drift, Wavetable, EQ Eight…)
arrangementWhat an Arrangement position means — song meter vs. clip meter
arrangement-writeMoving and splitting clips on the Arrangement timeline, and take lanes
working-with-liveSession vs. Arrangement habits, playback, and general music-making advice
context-standard / context-basicContext & Memory — the project, global, and memory layers
getting-helpWhat to tell you when a request is outside Producer Pal's reach
getting-help-basicThe audio limits worth saying out loud, in small model mode
barbeat-standard / barbeat-basicThe bar|beat note notation guide (default notation)
barbeat-standard-write / barbeat-basic-writeThe bar|beat syntax used only to write notes — repeats, brackets, bar copying, examples
stark-standard / stark-basicThe stark note notation guide
stark-standard-write / stark-basic-writeStark chord symbols (Am, G7, Ebm7) — input only, since read-back returns literal notes
midi-jsonThe midi-json note notation guide

Fragment names changed in 2.1.0

The core-* fragments (core-transforms, core-devices, core-context-standard, …) were re-cut into the list above, and midi-json-standard / midi-json-basic were folded into a single midi-json. If you customized any of them, its file in ~/.producer-pal/skills/ is no longer used — Producer Pal warns about it in the Skills Preview view and the Max window. Copy your changes into whichever new fragment now covers that material and delete the old file.

The notation guides also split in two: the -write fragments above were carved out of barbeat-standard, barbeat-basic, stark-standard, and stark-basic. An override of one of those still loads, but it carries a copy of the writing material that now ships separately — so the model reads it twice. Producer Pal flags that on the fragment itself in the Skills editor, as well as in the Preview view. Delete the duplicated sections from your override, or override its -write fragment too.

Editing fragments

In the Chat UI: open the context editor (the Context button in the header) and switch to the Skills tab. Pick a fragment from the dropdown — they're listed by filename (devices.md), the name their @include line uses, with the fragment's title and explainer beside it. It opens showing Producer Pal's default, and typing into it forks that default into your own override, which auto-saves as you go. The trash button resets a fragment, deleting your override. The Include checkbox beside the dropdown switches a fragment out of the skills entirely. In the dropdown, ✕ marks a fragment that's switched off, ✎ one that's customized, and ⚠ one whose built-in has changed since you forked it. Preview shows the fully assembled skills exactly as the AI will receive them. See Context & Memory for screenshots.

On disk: overrides are plain Markdown files in ~/.producer-pal/skills/, named after the fragment (devices.md, standard.md, …). A file's presence is the override; delete the file to reset. A fragment is switched off by an enabled: false line in that file's frontmatter, so a switched-off fragment with no override is a file holding just:

---
enabled: false
---

Edit them with any editor — the Chat UI and external MCP clients pick up changes on the next conversation.

The @include directive

In the Full skills document, a line like:

@include "./devices.md"

is replaced by that fragment (your override if present, else the built-in). A few rules:

  • {notation} in a name is replaced by the active notation, e.g. @include "./{notation}-standard.md" resolves to barbeat-standard.md by default.
  • Includes don't nest. Only the Full skills document may include fragments; an @include inside a fragment is skipped with a warning. That's what keeps "delete this line, save these tokens" honest — one line is always exactly one fragment.
  • An include naming a fragment that doesn't exist resolves to nothing, with a warning so a typo (or a fragment renamed by an update) doesn't silently shorten your skills.
  • You can include your own files: drop my-style.md in ~/.producer-pal/skills/ and add @include "./my-style.md" to the Full skills document.
  • Subfolders work: a file at ~/.producer-pal/skills/drums/backbeat.md is included as @include "./drums/backbeat.md".
  • Names are confined to the skills folder — a reference can't climb out of it with .., ~, or a leading /.

Trimming skills you don't need

Disabling a tool already trims its skills

Fragments are cut along tool lines, so turning a tool off drops the fragment that teaches it — automatically, wherever you turned it off: the Tools tab in the Chat UI (per preset, and per subagent), or the tool list an external MCP client is configured with. Switch off library search and the library guide is gone from that conversation's skills. Direction counts too: a conversation that can read clips but not create or update them keeps the bar|beat note format and drops the syntax used only to write notes. Reach for the manual trimming below for areas you want dropped while keeping the tool.

If you never use a whole area of Producer Pal, remove its guidance: pick that fragment in the Skills tab and uncheck Include. Everything you keep continues to track the built-ins, and switching a fragment off keeps any override you wrote for it — check the box again and it comes back.

If you never…Switch off
Use ratchets, echoes, or waveform modulationtransforms-generative
Edit, delete, or clear notes already in a cliptransforms-editing
Use swing, quantize, or math on note valuestransforms-expressions and transforms-generative
Use transforms to edit notes/audio paramstransforms-core and the other transforms- fragments — the area goes together
Search Live's library or your sample folder with the AIlibrary
Edit Drift, Wavetable, EQ Eight… with the AIspecialized-devices
Build Simpler or Drum Rack instruments with the AIdevices-write
Touch devices with the AI at alldevices, devices-write and specialized-devices
Let the AI move clips or record takes in the Arrangementarrangement-write
Work in the Arrangement view with the AIarrangement and arrangement-write
Use project/global context or memorycontext-standard
Ask for new MIDI notes, but still want them read backthe write half for your notation and mode (e.g. barbeat-standard-write, stark-basic-write) — midi-json has none, since it's the same format in both directions
Write or edit MIDI notes at allthe notation guide for your notation, write half included (e.g. barbeat-standard and barbeat-standard-write)

The same trims by hand: override the Full skills (standard) fragment and delete a fragment's @include line. That's the route when you also want to reorder sections or add your own, and it's the only way to cut down the Full skills documents themselves — they have no Include checkbox, since switching one off would leave the AI with no skills at all.

Some fragments need another one

A few fragments teach a vocabulary whose syntax lives elsewhere. The other transforms guides all build on transforms-core — keeping transforms-generative without it leaves the AI knowing ratchet() and the waveforms but not the shape of a transform, which is worse than dropping them all. devices-write and specialized-devices both sit inside devices the same way, and so does arrangement-write inside arrangement. Each notation's write half sits inside its own guide too — barbeat-standard-write inside barbeat-standard, stark-basic-write inside stark-basic, and so on. That's why the rows above are ordered most-specific-first and say which fragments travel together.

time-and-values is the widest of these: it defines the units everything else counts in, plus the octave convention (C3 = MIDI 60). The bar|beat guide, transforms-core, devices, and working-with-live all lean on it, so it's best left on.

If you do drop a fragment something else needs, Producer Pal says so — the Skills Preview view shows a warning, and so does the Max window.

Check the result

After editing, use the Skills tab's Preview view to see the assembled document, and start a new conversation for the change to take effect. The preview defaults to Enabled tools only, the gated view a chat gets; uncheck it to see the full document an external MCP client receives.

What overriding the Full skills document freezes

Overriding standard freezes the list itself at your copy: if a future release adds a new fragment, your document won't include it until you reset or re-fork. The fragments you still @include are unaffected — they keep resolving to the latest built-ins. To change what a section says, override that fragment instead of the Full skills document.

Small model mode

Small model mode uses the basic document, which is already heavily trimmed: it includes the notation guide and its write half, transforms-basic, the context fragment and getting-help-basic, and writes a short list of general rules inline. To customize it, override basic (or the *-basic fragments — notation, transforms, context, and getting-help) the same way.

Released under the GPL-3.0 License.