Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/generous-corp/pulp/audio-headless-debugnpx skills add Generous-Corp/pulp --skill audio-headless-debuggit clone --depth 1 https://github.com/Generous-Corp/pulpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/generous-corp/pulp/audio-headless-debug)<a href="https://agentmods.dev/skills/generous-corp/pulp/audio-headless-debug"><img src="https://agentmods.dev/badge/skills/generous-corp/pulp/audio-headless-debug.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00074 | $0.04689 |
| Opus 5 | $0.00037 | $0.02344 |
| Sonnet 5 | $0.00015 | $0.00938 |
| Haiku 4.5 | $0.00007 | $0.00469 |
Grade C, and why
audio-headless-debug scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
rm -rf ~/Library/Caches/AudioUnitCache; killall -9 AudioComponentRegistrar How it starts
The opening of the file, as written. The whole thing — 330 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Debugging "only in the DAW" audio bugs headlessly
When a plugin bug reproduces in a host (Logic, Live, REAPER) but every unit test is green, you are almost always testing the wrong layer. This skill is the playbook that took a multi-day "audio cuts out when I touch a parameter" ghost down to a deterministic, no-DAW reproduction in one session.
The core insight: pick the layer the bug actually lives in
Pulp has two offline harnesses, and they exercise different code paths:
| Harness | What it drives | Misses |
|---|---|---|
HeadlessHost (pulp/format/headless.hpp) |
the Processor directly (DSP) |
the entire format adapter, the host↔store sync, the render thread, Globals() parameter store |
Standalone AU host probe (AudioComponentInstanceNew + AudioUnitRender) |
the real .component through CoreAudio |
nothing — it is the real adapter + render path |
A bug that only shows up in a DAW is, by definition, in something HeadlessHost
skips — the adapter, the parameter-sync, threading, or a dynamic DSP path the
static scene tests never hit. Reproduce at the adapter layer first, then
bisect downward into the Processor once you can trigger it.
STOP — use the tools that already exist. Do not hand-roll.
These were built deliberately for exactly this. Reaching for a hand-written
rms_db/peak loop instead is how a −39 dB ghost ships past a lenient threshold.
Before writing any audio reproduction or assertion, use one of these:
| Need | Use (already built) | Where |
|---|---|---|
| Metrics from a rendered buffer (peak/RMS/dBFS, clip, silence, NaN/Inf) | pulp::audio::analysis::analyze() → BufferMetrics |
pulp/audio/analysis/audio_metrics.hpp (link pulp::audio-analysis) |
| Pass/fail gates in a test | assert_not_silent, assert_no_nan_inf, assert_rms_between, assert_peak_between, assert_frequency_near, assert_null_near, assert_channels_independent |
pulp/audio/analysis/audio_assertions.hpp |
| Fundamental-frequency check | estimate_frequency() / assert_frequency_near() |
audio_metrics.hpp / audio_assertions.hpp |
| Human-readable buffer report | summarize(metrics) |
audio_metrics.hpp |
| Glitch/artifact + "audio doctor" detection | audio_artifacts.hpp, audio_doctor_artifacts.hpp |
tools/audio/analysis/ |
| Magnitude response / THD / phase + group delay from rendered buffers | response_relative_to_input(), measure_thd(), measure_group_delay() (gate on defined_at(hz) for delay, and the stricter phase_defined_at(hz) for phase — a stopband reports undefined, and the accessors return NaN) |
pulp/audio/analysis/audio_spectrum.hpp |
| Command-line: render/inspect/compare a WAV without writing C++ | pulp audio validate <summarize|doctor|compare|assert> (assert checks: no_nan_inf, not_silent, silent, peak_below, frequency_near) |
tools/cli/cmd_audio_validate.cpp |
| Live per-callback metering / MIDI log / buffer-underrun capture | pulp::inspect::AudioInspector |
inspect/include/pulp/inspect/audio_inspector.hpp |
| Interactive inspection from an agent session | the canonical broker/control audio capability | Control platform |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 330 lines · 74 tokens per session scan C ab66bd6aecc0
audio-headless-debug is a skill published in the GitHub repository Generous-Corp/pulp (16 stars, last pushed today), licensed MIT. It adds 74 tokens to every session and 4,689 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
chronicle
Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…
imagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…