aax
無料Optional AAX support for Pulp, including developer-supplied Avid SDK setup, CMake enablement, DigiShell/AAX Validator workflows, and local AAX builds on macOS or Windows.
日本語の概要は準備中です。原文の説明を表示しています。
Decide whether a Pulp test earns its place — before writing it, when reviewing one, or when sweeping a subsystem for low-value, duplicated, or mis-routed tests. Applies a four-question authoring gate, a junk-pattern list, a retention bar, and an evidence template for any deletion, and routes kept tests to the right lane (required gate, pr-fast, slow, nightly). Handles "should I add a test for this", "is this test useful", "audit these tests", "reduce test time", "which tests can go", and "move toward functional tests".
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
The goal is confidence per minute of gate time, not a deletion count and not a coverage number. Most of Pulp's suite is real tests; its waste is mostly duplication across layers, oversized grids, and tests running on a lane that does not need them. Audit with that prior.
Adapted from OpenClaw's test-audit skill
(https://github.com/openclaw/openclaw/blob/main/.agents/skills/test-audit/SKILL.md),
with Pulp's lanes, harnesses, and retention rules.
This complements, and does not relax, CLAUDE.md's "Tests ship with fixes": a fix still lands with its test. This skill decides which test — one, at the boundary that owns the behavior, functional by default.
| Mode | When | Output |
|---|---|---|
| Authoring | before adding or changing any test | pass the gate below, or don't add it |
| Audit | reviewing a PR's tests, or a focused sweep | a short list of high-confidence candidates with evidence |
| Campaign | pruning one subsystem's suite | one owner-boundary PR per subsystem, evidence per deletion |
Audit and campaign start read-only: record evidence before editing anything.
Then prove it can fail: break the fix and watch the test go red with
tools/scripts/confirm_failure.sh (see CLAUDE.md, "Confirm the failure").
Before acting on a NOT CONFIRMED or INCONCLUSIVE verdict, read the phase log it
prints (test output (broken|baseline|restored): <path> and its tail): it shows
whether the test actually ran the case you meant, so a bad verdict is checked
against evidence before a good test gets rewritten. --break runs with the file
path appended, and a --test that starts with sh needs --subject <binary>.
A match fails the gate unless the test names an independent contract the retention bar keeps.
REQUIRE inside a sample loop — compare whole buffers once.code-comments skill).A test that breaks under a behavior-preserving refactor is implementation- coupled. In authoring, rewrite it at the owning boundary. In an audit it is suspect, not automatically deletable.
A retained test that fails on the base branch is a possible product bug: fix it at the owner, don't delete it.
Drive the public path, observe the outcome a user or host would observe, and assert a stated law with a derived tolerance and a built-in control.
| Area | Shape | Existing example |
|---|---|---|
| Format adapters | render directly and through the adapter over a sample-rate × block-size sweep; require equality | test/test_vst3_audio_parity.cpp |
| Widgets | simulate_click / simulate_drag → state change + callback | test/test_widgets.cpp |
| Design import | live source vs baked native layout snapshot | test/test_design_import_native_materializer.cpp |
| DSP | render through process_block or RenderScenario; measure with the shared analyzers; include a no-effect control | FDN reverb, drum-voice, and kick suites |
| CLI | shell out to the built binary; assert exit code + output | test/test_control_sample_region_e2e.cpp |
Load the audio-harness skill before choosing DSP acceptance gates.
Most DSP runtime sits in a few cases with oversized grids. Before accepting a slow test, ask whether a smaller grid catches the same regression:
[slow] so it leaves the
required gate.Labels decide lanes; docs/guides/test-lanes.md is the source of truth.
macos gate (merge queue runs the full suite).pr-fast — deterministic static contracts that also run on the PR head.slow / performance / bench / quality-lab / validation — off the
required gate. Before moving a test there, name what still enforces it: the
nightly is informational, not a gate, so a test that must block needs an
affected-path selector (see "Affected slow proofs" in test-lanes.md).RUN_SERIAL and PROCESSORS 8 tests run alone and set the floor on the test
step's wall-clock. Don't add either without a stated reason, and don't strip an
existing one without reading why it was set.
Measure against real gate timing, not a local Debug run. The macos job log
prints every test's time (Test #N: <name> ... Passed <s> sec); local Debug
costs can be an order of magnitude higher and misrank tests.
Record for each candidate; a missing field blocks the deletion.
file:line.git log -L or the originating commit.ctest --test-dir build -R <pattern>; pair any "0 tests" result with a
positive control — ctest -R exits 0 on no match).tools/scripts/gates.sh origin/main.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Optional AAX support for Pulp, including developer-supplied Avid SDK setup, CMake enablement, DigiShell/AAX Validator workflows, and local AAX builds on macOS or Windows.
日本語の概要は準備中です。原文の説明を表示しています。
Configure, implement, and test Pulp's optional desktop Ableton Link tempo-sync adapter while preserving the developer-supplied SDK, licensing, realtime, latency-compensation, and no-install boundaries.
日本語の概要は準備中です。原文の説明を表示しています。
Maintain Pulp's installed design-time agent capability manifest and public-surface ledger. Use when adding, removing, renaming, or materially changing public audio, MIDI, signal, timebase, or sequence APIs; registering a new algorithm for generators; changing capability support or deprecation state; or repairing agent-capabilities freshness, schema, fingerprint, tombstone, or installed-SDK tests.
日本語の概要は準備中です。原文の説明を表示しています。
Android platform development for Pulp — NDK cross-compilation, Oboe audio, Dawn/Skia GPU rendering, JNI bridge, touch interaction, emulator workflows, and end-to-end smoke validation. Covers build, deploy, debug, and the gotchas discovered during bringup.
日本語の概要は準備中です。原文の説明を表示しています。
Optional ARA support for Pulp, including developer-supplied ARA SDK setup, CMake enablement, adapter companion APIs, validation, and ARA-aware plugin implementation guidance.
日本語の概要は準備中です。原文の説明を表示しています。
The measurement surface for ALL Pulp DSP and audio-pipeline work — read it BEFORE writing or gating DSP, not only when something already sounds wrong. Covers the C++ harness (signal generators, metrics, assertions, RenderScenario, contracts), the offline Audio Doctor (magnitude/frequency response, THD/THD+N, phase/group delay), and their Python sibling the Audio Quality Lab (tools/audio/quality-lab — null residual + alignment, LTAS log-spectral distance, spectral flux/centroid, HNR, Theil-Sen drift slope, Kaiser-sinc resampling, license-guarded corpus, regression-net ratchet). TRIGGER on AUTHORING work — "build/design an oscillator/filter/synth/effect", "add a DSP module", "what should the acceptance gate be", "how do I measure aliasing / anti-aliasing / alias floor", "null against a reference", "is this DSP correct", "choose a tolerance", "golden/regression corpus for audio", "measure drift or jitter", "A/B two renders" — AND on DEBUGGING work — "is there sound / no audio / I hear nothing", "does this filter/compressor/synth/delay produce the right signal", "prove the DSP / prove the contract", "measure the frequency response", "what's the THD / is it distorting", "what's the group delay / phase response / measured latency", "magnitude response curve", "render a test tone and assert", "audio regression", "64-frame works but 128 is silent", "sample-rate change pitch-shifted it", "describe what's in this buffer", "audio doctor", "compare before/after a DSP refactor". Reach for this BEFORE hand-rolling any FFT, null test, alias measurement, pitch tracker, or golden-render script — most of it already exists in one of the two lanes. Test/tool layer over HeadlessHost — deterministic, no audio device, no speakers. Off the realtime thread entirely.
日本語の概要は準備中です。原文の説明を表示しています。