Skip to content
cccskills
FreePublished on GitHub

content

Validate, install, update, list, rescan, remove, and reveal data-only Pulp content packs for installed plugins. Use for presets, themes, samples, sample banks, wavetables, and other end-user data that must be reviewed before install or update.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md6.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Pulp Content

Use this skill when a user has a .pulpcontent archive or local content-pack directory for an installed plugin.

Content packs are valuable because:

  • plugin authors ship presets, themes, samples, sample banks, and wavetables without custom installers;
  • users get validation, a visible target plugin/content path, and reversible removal;
  • runtime plugins consume installed data through ContentRegistry or PresetManager content capabilities.

Trust Boundary

pulp add <name> is for curated developer dependency packages.

pulp kit ... is for developer artifacts that may transform a project.

pulp content ... is for end-user data installed into a plugin-specific content directory.

Trust rules:

  • content commands copy data only; they never run package CMake, JavaScript, scripts, dynamic libraries, or network fetches;
  • .pulpcontent archives must include files.sha256.json, and every payload file must be listed and hash-matched before preview/install/update;
  • update uses an explicit local path, not registry resolution, and rolls back a replaced version on failure;
  • install/update/remove/reveal require safe single-component plugin/package/version ids;
  • rescan is metadata-only and records plugin_id plus manifest_sha256;
  • removal deletes only the installed pack root; user edits stay in the plugin's normal user preset path. The OK line names the deleted pack path — Removed content pack <id> for <plugin> (removed <path>) — for parity with tool uninstall.

Built plugins should embed pulp.plugin-runtime.json via pulp_add_plugin(... CONTENT_CAPABILITIES ... CONTENT_KINDS ...). Agents and in-app installers should preview with that manifest before approval, then install with approved=true. Validate built bundles with ValidationHarness::validate_plugin_runtime_manifest(...).

For generic bundled-audio banks, use capability content.sample-banks.v1, kind sample-banks, and exports.sampleBanks. Bank manifests use pulp.sample-bank.v1; their audio paths are relative to the content-pack root and their lowercase SHA-256 hashes are verified before decode. Preserve future edit, analysis, and playback metadata under namespaced extensions keys.

Sampler Heritage profile JSON is not a content pack: validate, canonicalize, inspect, and render it with pulp audio heritage .... Use pulp content only when a profile and its assets are deliberately packaged as data for an installed plugin; the Heritage CLI itself neither installs files nor targets a plugin content root.

Commands

./build/pulp content validate <path> --json
./build/pulp content preview <path> --plugin-runtime <manifest> --json
./build/pulp content install <path> --plugin <plugin-id> --yes
./build/pulp content update <path> --plugin <plugin-id> --yes
./build/pulp content list --plugin <plugin-id> --json
./build/pulp content rescan --json
./build/pulp content reveal <package-id> --plugin <plugin-id> --version <version>
./build/pulp content remove <package-id> --plugin <plugin-id> --version <version> --yes

Use --root <dir> only for tests, CI, or explicit sandboxing. Normal installs use the platform user-data root.

Agent Workflow

  1. Validate the pack.
  2. Preview against the trusted plugin runtime manifest when available, and explain content id, version, capabilities, target plugin, supported kinds, and reload/restart policy.
  3. Preview the install root using reveal or the install plan text.
  4. Install or update only after explicit approval with --yes.
  5. Use rescan when the index is missing/stale or after manual repair.
  6. Remove only after explicit approval with --yes.
  7. Never delete user-created presets or files outside the installed pack root.

Use MCP tools when available:

  • pulp_content_validate
  • pulp_content_preview
  • pulp_content_install
  • pulp_content_update
  • pulp_content_list
  • pulp_content_rescan
  • pulp_content_remove
  • pulp_content_reveal

Related extend surfaces

packages, kits, content, and installable-tools are Pulp's four ways to extend a project or machine, and they share one lifecycle contract: add is validated, remove is confirmed + confined to the surface's own area + names what it deleted, and both add and remove ship tests. Pick the right surface and read the shared contract in extending-pulp.md.

  • packages — third-party audio DSP libraries → a project
  • kits — reusable Pulp code/UI/templates → a project
  • content — data-only packs (presets/samples) → an installed plugin
  • installable-tools — machine-level dev/agent tooling under ~/.pulp/tools/, plus the shared validate-and-uninstall-from-outside-a-checkout bar

Archive entry names are screened portably

Content-pack archive entries pass through pulp::runtime::is_safe_relative_path before extraction and path_within after the join. The helper refuses rooted forms (/x, \x, C:x, \\server\share), ./../empty components, and any \ or : inside a component on every OS, so a pack whose names would escape on Windows is refused on macOS and Linux as well. A pack authored with backslash separators or colons in file names therefore fails validation everywhere.

Design-import UI source snapshots stay out of content-pack extraction

The design-import pulp ui build/check surface emits and verifies an owned UI source snapshot with a deterministic manifest. Keep its source/build contract and clean-output validation in the UI/importer lane; do not route generated UI source through content-pack extraction.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

aax

Free

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.

The English summary is being prepared. Showing the original description.

Generous-Corp/pulp22Updated Oct 19, 2026

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.

The English summary is being prepared. Showing the original description.

Generous-Corp/pulp22Updated Oct 19, 2026

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.

The English summary is being prepared. Showing the original description.

Generous-Corp/pulp22Updated Oct 19, 2026

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.

The English summary is being prepared. Showing the original description.

Generous-Corp/pulp22Updated Oct 19, 2026

ara

Free

Optional ARA support for Pulp, including developer-supplied ARA SDK setup, CMake enablement, adapter companion APIs, validation, and ARA-aware plugin implementation guidance.

The English summary is being prepared. Showing the original description.

Generous-Corp/pulp22Updated Oct 19, 2026

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.

The English summary is being prepared. Showing the original description.

Generous-Corp/pulp22Updated Oct 19, 2026

See all skills by Generous-Corp

Report a problem with this skill