| name | plugin-testing |
| description | Run automated stability tests, pluginval validation, and DAW testing for audio plugins. Invoke when user mentions test, validate, validation, pluginval, stability, automated tests, run tests, check plugin, or quality assurance |
| allowed-tools | Read, Bash, Task |
| preconditions | Plugin must exist, Plugin status must NOT be 💡 (must have implementation) |
plugin-testing Skill
Purpose: Catch crashes, parameter issues, and state bugs in 2 minutes with automated tests.
Workflow Overview
This skill provides three test modes:
- Automated Testing (~2 min) - Quick C++ unit tests for stability
- Build + Pluginval (~5-10 min) - Industry-standard validation (50+ tests) ⭐ RECOMMENDED
- Manual DAW Testing (~30-60 min) - Real-world testing with guided checklist
Phase 1: Detect Plugin and Mode Selection
- Parse plugin name from user input (extract from
/test [Name]or natural language) - Read
PLUGINS.mdand verify plugin exists - Verify plugin status is NOT 💡 (implementation must exist)
- Check for Tests/ directory existence:
test -d "plugins/$PLUGIN_NAME/Tests/"
Once validation complete, you MUST present mode selection menu (see assets/decision-menu-templates.md#mode-selection)
You MUST NOT proceed to Phase 2 until user selects a mode (1-4)
Parse shorthand commands:
/test [PluginName] build→ Jump to Mode 2/test [PluginName] quick→ Jump to Mode 1/test [PluginName] manual→ Jump to Mode 3
Phase 2: Execute Test Mode
Mode 1: Automated Testing
You MUST read references/test-specifications.md for detailed test implementations before proceeding.
You MUST verify Tests/ directory exists:
test -d "plugins/$PLUGIN_NAME/Tests/"
If missing: You MUST inform user that automated tests require test infrastructure and suggest Mode 2 (pluginval) as recommended alternative. Present decision menu from assets/decision-menu-templates.md#missing-tests.
You MUST build and run tests (see references/test-specifications.md#execution).
You MUST parse test output and generate report using template from assets/report-templates.md#mode1-results.
You MUST present test results and post-test decision menu (see assets/decision-menu-templates.md#post-test-mode1). WAIT for user selection.
Mode 2: Build + Pluginval
You MUST read references/pluginval-guide.md#installation-check for implementation details.
Check for pluginval installation using script from reference file.
If pluginval not found: You MUST present installation decision menu (see assets/decision-menu-templates.md#pluginval-install) and WAIT for user response. BLOCK execution until resolved.
You MUST build in Release mode (see references/pluginval-guide.md#build-process):
Locate binaries:
VST3_PATH="build/plugins/$PLUGIN_NAME/${PLUGIN_NAME}_artefacts/Release/VST3/${PRODUCT_NAME}.vst3"
AU_PATH="build/plugins/$PLUGIN_NAME/${PLUGIN_NAME}_artefacts/Release/AU/${PRODUCT_NAME}.component"
You MUST validate both formats at strictness level 10 (see references/pluginval-guide.md#execution).
You MUST parse pluginval output (see references/pluginval-guide.md#parsing-output) and generate report using template from assets/report-templates.md#mode2-results.
You MUST present post-test decision menu (see assets/decision-menu-templates.md#post-test-mode2) and WAIT for user selection.
Mode 3: Manual DAW Testing
You MUST read references/manual-testing-guide.md for complete manual testing procedures.
You MUST generate customized checklist from parameter-spec.md tailored to plugin's specific parameters and features.
You MUST present checklist to user with instructions for manual testing in their DAW.
Inform user to report back with results (pass/fail per item).
WAIT for user to complete manual testing and provide results.
You MUST parse user's feedback and generate completion report.
You MUST present post-test decision menu (see assets/decision-menu-templates.md#post-test-mode3) and WAIT for user selection.
Phase 3: Failure Investigation (Option 1)
For non-trivial issues (not documented in troubleshooting.md):
You MUST delegate to `deep-research` skill via Task tool: Task: "Investigate [test_name] failure in [PluginName] Context: - Test failed: [specific failure message] - Plugin type: [from creative-brief.md] - Relevant code: [file paths from investigation] Goal: Find root cause and provide specific fix"WAIT for deep-research completion before presenting results to user.
NEVER attempt to fix complex issues without delegation to deep-research.
Phase 4: Log Test Results
You MUST save detailed test log to: logs/[PluginName]/test_[timestamp].log
Use format from assets/report-templates.md#test-log-format
You MUST update .continue-here.md:
- Set current_stage: "testing_complete"
- Set next_step based on test results (Stage 6 if passed, investigation if failed)
- Record test_date: [timestamp]
- Record test_mode: [1/2/3]
You MUST update PLUGINS.md for {PLUGIN_NAME}:
- Set test_status: "✅ passed" or "❌ failed"
- Record last_tested: [date]
- Record test_mode_used: [Mode 1/2/3]
You MUST complete ALL three requirements before proceeding to decision menu.
VERIFY both state files updated before presenting next steps.
Success Criteria
Testing is successful when:
- ✅ Tests run without crashes (even if some fail, process completes)
- ✅ All tests pass OR failures are documented with clear explanations
- ✅ User understands what failed and why (no mystery errors)
- ✅ Logs saved for future reference (
logs/[PluginName]/) - ✅ User knows next step (install, fix issues, continue workflow)
- ✅ Test results stored in PLUGINS.md (test date, pass/fail, mode used)
NOT required for success:
- 100% pass rate (failures are learning opportunities)
- Fixing all issues immediately (user can defer fixes)
- Running all 3 test modes (one mode is sufficient for validation)
Integration Points
Invoked by:
/test [PluginName]command/test [PluginName] build→ Direct to mode 2/test [PluginName] quick→ Direct to mode 1/test [PluginName] manual→ Direct to mode 3plugin-workflowskill → After Stages 4, 5, 6plugin-improveskill → After implementing changes- Natural language: "Test [PluginName]", "Run validation on [PluginName]"
Invokes (future):
deep-researchskill (Phase 7) → When user chooses "Investigate failures"
Creates:
- Test logs in
logs/[PluginName]/test_[timestamp].log - Build artifacts in
build/plugins/[PluginName]/
Updates:
.continue-here.md→ Testing checkpointPLUGINS.md→ Test status
Blocks:
- Installation (
/install-plugin) → Recommends testing first if not done recently
Reference Documentation
- Test specifications:
references/test-specifications.md- Detailed implementation of 5 automated tests - Pluginval guide:
references/pluginval-guide.md- Industry-standard validation details - Manual testing guide:
references/manual-testing-guide.md- DAW testing methodology - Troubleshooting:
references/troubleshooting.md- Common issues and fixes
Template Assets
- Manual testing checklist:
assets/manual-testing-checklist.md- DAW testing template