.claude/skills/max-rnbo-agent/SKILL.md
RNBO export-aware patch generation, target validation, and param mapping
npx skillsauth add taylorbrook/MAX-MSP_CC_Framework max-rnbo-agentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate RNBO patches for VST3/AU plugin, Web Audio, and C++ embedded export targets. Handles rnbo~ container creation, target-aware validation, param mapping, and self-contained patch generation.
add_rnbo or full wrapper patches via generate_rnbo_wrappervalidate_rnbo_patchRNBODatabasetrigger (t) for any control-rate outlet that fans out to 2+ destinations in the wrapper patch around rnbo~Shared Capabilities: See
.claude/skills/references/shared-capabilities.mdfor Control-Rate Fan-Out Rule, Assistance Comments, Aesthetic Capabilities, Layout Options, Editing Functions, and Edit Workflow reference.
When invoked:
CLAUDE.md RNBO section for export rules and constraintsRNBODatabase() from src.maxpat.rnbo for RNBO-specific object compatibility checks (wraps ObjectDatabase with RNBO filtering)ObjectDatabase from src.maxpat.db_lookup for general object lookups when checking companion MSP/Gen objectsconfig.json via load_project_config() from src.maxpat.project for allowed packages. Pass allowed_packages to Patcher(allowed_packages=allowed) so package objects outside the project's selection are blocked at creation time. Note: RNBO uses RNBODatabase which wraps ObjectDatabase -- ensure allowed_packages is passed through to the underlying Patcher constructor.from src.maxpat.rnbo import (
RNBODatabase,
add_rnbo,
generate_rnbo_wrapper,
parse_genexpr_params,
)
from src.maxpat.rnbo_validation import (
validate_rnbo_patch,
RNBO_TARGET_CONSTRAINTS,
)
from src.maxpat.critics import review_patch
from src.maxpat.hooks import save_patch_roundtrip
RNBODatabase(): RNBO-specific object database; .is_rnbo_compatible(name) and .lookup(name) methodsadd_rnbo(patcher, objects, params, target, audio_ins, audio_outs): Add rnbo~ container to an existing Patchergenerate_rnbo_wrapper(params, target, audio_ins, audio_outs): Build complete adc~ -> rnbo~ -> dac~ wrapper Patcherparse_genexpr_params(code): Extract Param declarations from GenExpr codevalidate_rnbo_patch(patch_dict, target): 3-layer validation on the inner RNBO patcher (not the full rnbo~ wrapper). Checks: rnbo-objects, rnbo-target, rnbo-containedRNBO_TARGET_CONSTRAINTS: Per-target constraint definitions (plugin, web, cpp)When generating patches with package objects (BEAP, Vizzie, etc.), read .claude/max-objects/PACKAGES.md for:
BEAP and Vizzie modules are NOT RNBO-compatible:
rnbo_compatible: true in the DB can be used in RNBO patchesDomain focus: Edit RNBO patcher contents, param objects, export-compatible structures.
add_rnbo (add to existing patch) or generate_rnbo_wrapper (standalone wrapper)validate_rnbo_patch with the export target to check object compatibility, target constraints, and self-containednessreview_patch for semantic critic review (param naming, I/O completeness, duplicates)save_patch_roundtrip(patch_dict, path) for the final outputread_patch() and patcher.analyze()finalize_patch(patcher, is_new=False) -- regenerates cable midpoints and populates assistance comments without repositioning existing objectsvalidate_patch(patcher)save_patch_roundtrip()| Target | Use Case | Constraints |
|--------|----------|-------------|
| plugin | VST3/AU | Self-contained, audio I/O required |
| web | Web Audio / WASM | Self-contained, .aif format warning for Chrome |
| cpp | C++ embedded | Max 128 params, no buffer~/data, self-contained |
data-ai
Design and position UI controls for MAX patches in presentation and patching mode
testing
Analyzes user task descriptions and dispatches to the correct specialist agent(s) for MAX/MSP generation
data-ai
Generate MAX patches with control flow, message routing, subpatcher organization, and MIDI handling
testing
Manages MAX project creation, status tracking, project switching, and test protocol execution