Agent skill

Patchies Audio

by heypoom in heypoom/patchies

A skill your agent uses when adding, migrating, or changing Patchies Audio V2 nodes, native DSP worklet nodes, audio object docs, audio packs, or AudioService integration.

AGPL-3.0Auto-check passedFrontend & Design

Install Patchies Audio

skills CLI
$ npx skills add heypoom/patchies --skill patchies-audio -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install heypoom/patchies patchies-audio --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/heypoom/patchies.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/patchies-audio .claude/skills/patchies-audio && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
patchies-audio
GitHub stars
209
Token cost
~1.6k tokens
SKILL.md length
634 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
AGPL-3.0

At a glance

A skill your agent uses when adding, migrating, or changing Patchies Audio V2 nodes, native DSP worklet nodes, audio object docs, audio packs, or AudioService integration.

  • Changing Patchies Audio V2 nodes
  • SKILL.md covers Ownership, Audio V2, New Audio Node Checklist and Native DSP Worklets
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Native DSP worklet nodes

What it does

Patchies Audio is an agent skill from heypoom/patchies. Use when adding, migrating, or changing Patchies Audio V2 nodes, native DSP worklet nodes, audio object docs, audio packs, or AudioService integration.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design. It works with Svelte. The repository describes itself as: Write small programs with tools & libraries you know and patch 'em together. Make interactive widgets, visuals, sounds, and play with computation on the web. The licence is AGPL-3.0.

When your agent uses it

  • Changing Patchies Audio V2 nodes
  • Native DSP worklet nodes
  • Audio object docs
  • AudioService integration

Example prompts

  • “/patchies-audio”

What it can do on your machine

Read from SKILL.md and the folder at commit dd38c74. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Patchies Audio loads about 1.6k tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 634 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~42
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from heypoom/patchies at commit dd38c74, republished under its AGPL-3.0 licence (© heypoom). 634 words, ~1,608 tokens.

Download SKILL.mdSave it as .claude/skills/patchies-audio/SKILL.md (or your agent's skills folder).
name
patchies-audio
description
Use when adding, migrating, or changing Patchies Audio V2 nodes, native DSP worklet nodes, audio object docs, audio packs, or AudioService integration.

Patchies Audio

Ownership

Audio object code is object-owned by default. Put new audio node classes, native DSP node wrappers, processors, schemas, components, prompts, and tests under ui/src/objects/<object-or-family>/ unless the code is truly shared infrastructure.

Shared audio infrastructure belongs in ui/src/lib/audio/. The central ui/src/lib/audio/v2/nodes/index.ts should mostly stay a registry that imports object-owned node classes and adds them to AUDIO_NODES.

Audio V2

V2 audio nodes are self-contained classes implementing AudioNodeV2.

Rules:

  • The node name appears once in the static type property.
  • Prefer node methods and static metadata over AudioService branching: create(), send(), getAudioParam(), connect(), connectFrom(), destroy(), runtimeManaged, and getMessageSettingsUpdate.
  • Do not hardcode node types in AudioService; add behavior to the node class or interface.
  • Async create() is supported for nodes that load resources such as AudioWorklets.
  • Use isAudioParam: true on inlet metadata for modulatable Web Audio or worklet params. AudioService uses this metadata for param connections and scheduled messages.

Audio runtime descriptors still use the audio params[] contract. Object-box audio expressions such as osc~ 440 and dedicated runtime-managed audio UI nodes are reconciled into audio params from inlet metadata. Do not convert audio nodes to the visual object data descriptor unless a later audio-specific spec requires it.

Dedicated audio UI nodes that should be owned by AudioService must opt in with runtimeManaged. Nodes that still own their runtime from the Svelte component should not be synced by the editor reconciler.

If incoming message commands should update editor-visible node data, implement getMessageSettingsUpdate on the audio node. Keep that behavior object-owned; do not add object-name branches to AudioService, AudioRuntime, or EditorRuntimeReconciler.

New Audio Node Checklist

  • Create the node class under the owning ui/src/objects/<module>/.
  • Register it in ui/src/lib/audio/v2/nodes/index.ts; generated schemas use this registry.
  • Add docs in ui/static/content/objects/{name}.md.
  • Add it to ui/src/lib/extensions/object-packs.ts.
  • Add static aliases = [...] when aliases exist.
  • Add or update object-owned prompt/schema/component files when the object exposes them.
  • If adding object docs, also load docs-style.
Show full SKILL.md (324 more words)Show less

Native DSP Worklets

Native DSP nodes run on the audio thread via AudioWorkletProcessor. Use createWorkletDspNode on the main thread and defineDSP in the processor.

Prefer this object-local layout:

text
ui/src/objects/<name~>/
  native-dsp/
    nodes/<name>.node.ts
    processors/<name>.processor.ts
    schemas/<name>.schema.ts  # optional shared port schema

Processor pattern:

ts
import { defineDSP } from "../define-dsp";

defineDSP({
  name: "mynode~",
  audioInlets: 1,
  audioOutlets: 1,
  inletDefaults: { 1: 0 },
  state: () => ({}),
  recv(state, data, inlet, send) {},
  process(state, inputs, outputs, send, parameters) {},
});

Node definition pattern:

ts
import { createWorkletDspNode } from "../create-worklet-dsp-node";
import workletUrl from "../processors/mynode.processor?worker&url";

export const MyNode = createWorkletDspNode({
  type: "mynode~",
  group: "processors",
  description: "...",
  workletUrl,
  audioInlets: 1,
  audioOutlets: 1,
  inlets: [{ name: "signal", type: "signal", description: "..." }],
  outlets: [{ name: "out", type: "signal", description: "..." }],
  tags: ["audio"],
});

For nodes with AudioParams or larger port metadata, define a shared DspPortSchema and spread it into the node config. Pass the same schema to defineDSP() when the processor needs generated AudioParam descriptors:

ts
export const ClipPortSchema: DspPortSchema = {
  inlets: [
    { name: "signal", type: "signal", description: "Audio input" },
    {
      name: "min",
      type: "float",
      description: "Minimum value",
      defaultValue: -1,
      isAudioParam: true,
      messages: [{ schema: Type.Number(), description: "Minimum clamp value" }],
    },
  ],
  outlets: [{ name: "out", type: "signal", description: "Output" }],
};

Register native DSP nodes the same way as other V2 audio nodes.

Inlet types: signal, message, float, bang, string.

Useful inlet metadata:

  • acceptsFloat: true on a signal inlet lets creation args or float messages set the disconnected constant value.
  • controlsSignalInlet routes a hidden float/control inlet to a signal inlet's constant value.
  • hideInlet: true hides an inlet handle while keeping the parameter available.
  • hideTextParam: true hides a parameter from the object label.
  • schemaInlets lets docs/generated schemas show a different public inlet list than the runtime worklet config.
  • audioParamAutomationRate configures a-rate/k-rate params when isAudioParam is true.

For runtime-managed audio UI nodes, use schemaInlets when the public handles or docs should differ from the raw worklet parameter list. Keep processor param indices stable in inlets; expose the friendly surface through schemaInlets.

Reference nodes:

  • wrap~ for the simplest processor.
  • clip~ for float inlets.
  • snapshot~ for bang plus message output.
  • line~ for command messages.
  • +~, *~, and other audio math nodes for acceptsFloat.
  • samphold~ for multiple signals plus a message inlet.
  • tap~ for runtimeManaged, schemaInlets, and getMessageSettingsUpdate.

Gotchas:

  • Signal inlets cannot receive control messages. Add a separate message inlet when a node needs commands.
  • Do not document message schemas in markdown files. The node definition is the single source of truth.
  • If a visible signal inlet should accept float constants, prefer acceptsFloat. Use controlsSignalInlet plus hideInlet only when a separate hidden control inlet is actually needed.
  • Preserve existing handle IDs when migrating audio-backed visual nodes. For a single message inlet/outlet that used { handleType: 'message' }, do not add handleId: 0 unless intentionally migrating saved edge handle IDs.

© heypoom, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/patchies-audio of heypoom/patchies.

Open the folder on GitHubat commit dd38c74

Compare with similar skills

Patchies Audio next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Patchies Audio compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Patchies Audio this skillheypoom/patchies209—~1.6kAutomated safety check: PassAGPL-3.0
GSAP Core Animationgreensock/gsap-skills16k4 repos~3.7kAutomated safety check: PassMIT
GSAP in Vue, Nuxt and Sveltegreensock/gsap-skills16k4 repos~2.6kAutomated safety check: PassMIT
Svelte Core Best Practicesrilldata/rill2.9k4 repos~1.8kAutomated safety check: PassApache-2.0
Boneyard0xGF/boneyard7.5k—~2.2kAutomated safety check: NotesMIT
Kill AI Slopyetone/kill-ai-slop1.3k—~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • GSAP Core Animation

    greensock/gsap-skills

    Covers the GSAP core API for tweens, easing, staggers, defaults and matchMedia, and when to choose GSAP over CSS animations or other JavaScript animation libraries.

    16k GitHub starsUsed in 4 repos~3.7k tokens
    Frontend & DesignAuto-check passed
  • GSAP in Vue, Nuxt and Svelte

    greensock/gsap-skills

    Shows how to use GSAP in Vue, Nuxt, Svelte and other lifecycle-based frameworks: create after mount, scope selectors to the component, and revert on unmount.

    16k GitHub starsUsed in 4 repos~2.6k tokens
    Frontend & DesignAuto-check passed
  • Rules for writing idiomatic Svelte 5 code: when to reach for runes like state, derived and effect, and how to handle props, attachments and bindings.

    2.9k GitHub starsUsed in 4 repos~1.8k tokens
    Frontend & DesignAuto-check passed
  • Boneyard

    0xGF/boneyard

    Use boneyard-js to add, configure, debug, or rebuild skeleton screens.

    7.5k GitHub stars~2.2k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check: notes
  • Kill AI Slop

    yetone/kill-ai-slop

    Find and remove AI slop — the generic, machine-default visual and copy tics of vibe-coded products — from a web project.

    1.3k GitHub stars~1.4k tokensUpdated 22 days ago
    Frontend & DesignAuto-check passed
  • Uncodixfy

    pdsuwwz/chatgpt-vue3-light-mvp

    Prevents generic AI/Codex UI patterns when generating frontend code.

    578 GitHub starsUsed in 2 repos~3k tokens
    Frontend & DesignAuto-check passed

More from heypoom/patchies

All 8 skills in this repo
  • Patchies Frontend

    heypoom/patchies

    A skill your agent uses when editing Patchies Svelte components, UI state, styling, buttons, persistence, or frontend implementation patterns.

    209 GitHub stars~992 tokensUpdated today
    Auto-check passed
  • Patchies Objects

    heypoom/patchies

    A skill your agent uses when adding, editing, or migrating Patchies nodes, objects, handles, object modules, schemas, object docs, AI prompts, file drag/drop support, or node data settings.

    209 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Patchies Workflow

    heypoom/patchies

    A skill your agent uses when working in Patchies on tests, specs, reflections, verification scope, or commits, especially before changing product behavior or when the user explicitly asks to commit.

    209 GitHub stars~712 tokensUpdated today
    Auto-check passed
  • Patchies Assembly Module

    heypoom/patchies

    A skill your agent uses when changing Patchies assembly VM code, VASM Rust sources, wasm-pack output, machine WASM assets, asm object behavior, or modules/vasm build/link steps.

    209 GitHub stars~341 tokensUpdated today
    Auto-check passed
  • Docs Style

    heypoom/patchies

    Patchies documentation style guide. An agent skill from heypoom/patchies.

    209 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Patchies Rendering

    heypoom/patchies

    A skill your agent uses when changing Patchies rendering pipeline, render graph, image generation preview capture, GLSystem, render workers, FBO rendering, output sizing, render-node types, or video…

    209 GitHub stars~656 tokensUpdated today
    Auto-check passed

Works with

Questions about Patchies Audio

What does Patchies Audio do?

A skill your agent uses when adding, migrating, or changing Patchies Audio V2 nodes, native DSP worklet nodes, audio object docs, audio packs, or AudioService integration. Patchies Audio is an agent skill from heypoom/patchies. Use when adding, migrating, or changing Patchies Audio V2 nodes, native DSP worklet nodes, audio object docs, audio packs, or AudioService integration.

When should I use Patchies Audio?

Patchies Audio fits situations like: changing Patchies Audio V2 nodes; native DSP worklet nodes; audio object docs; audioService integration.

How do I install Patchies Audio in Claude Code?

Run `npx skills add heypoom/patchies --skill patchies-audio -a claude-code`. Or copy the skill folder (.agents/skills/patchies-audio in heypoom/patchies) into .claude/skills/patchies-audio in your project. Claude Code loads it when a task matches its description.

How do I install Patchies Audio in Codex?

Run `npx skills add heypoom/patchies --skill patchies-audio -a codex`. Or copy the skill folder (.agents/skills/patchies-audio in heypoom/patchies) into .agents/skills/patchies-audio in your project. Codex loads it when a task matches its description.

Can I use Patchies Audio in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add heypoom/patchies --skill patchies-audio -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/patchies-audio, .gemini/skills/patchies-audio, .github/skills/patchies-audio and .opencode/skills/patchies-audio in your project.

What does Patchies Audio need to run?

SKILL.md names no scripts, command-line tools or credentials: Patchies Audio is instructions for the agent only.

Does Patchies Audio access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Patchies Audio safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Patchies Audio use?

Patchies Audio is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Patchies Audio use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Patchies Audio?

Skills that share tags, products or a category with Patchies Audio: GSAP Core Animation (greensock/gsap-skills, 16k stars), GSAP in Vue, Nuxt and Svelte (greensock/gsap-skills, 16k stars), Svelte Core Best Practices (rilldata/rill, 2.9k stars) and Boneyard (0xGF/boneyard, 7.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Patchies Audio?

heypoom (a GitHub user) maintains it in heypoom/patchies, which has 209 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 7, 2026.

Source: heypoom/patchies on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.