agentleFS
bitwize-music-studiobitwize-music-studio/claude-ai-music-skills/skills/test/SKILL.md

test

Skill589 starsChanged 9 months agoCC0-1.0View on GitHub

Runs automated tests to validate plugin integrity across 14 categories. Use before creating PRs, after making changes to skills or templates, or to verify plugin health.

We split this skill into the rules it gives an agent

15 rules. 0 are common, 11 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 139 edited versions we read keep these.

  • 11

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run automated tests to validate plugin integrity.

    line 18
  2. Distinctive:

    Default: Run all tests if no argument provided.

    line 20
  3. Distinctive:

    All test definitions are in test-definitions.md.

    line 87
  4. Distinctive:

    Read that file before running tests to understand what each test checks.

    line 91
  5. Very specific:

    Test modules in tests/plugin/:

    line 136
  6. Distinctive:

    When bugs are found:

    line 150
  7. Distinctive:

    Add a test that would have caught the bug

    line 152
  8. Very specific:

    Run /test [category] to verify test fails

    line 153
  9. Very specific:

    Run /test [category] to verify test passes

    line 155
  10. Distinctive:

    Commit both the fix and the new test

    line 156
  11. Distinctive:

    Rule: Every bug fix should add a regression test.

    line 158
  12. Very specific:

    Use Grep with output_mode: content and -n for line numbers

    line 164
  13. Distinctive:

    Use Glob to find files by pattern

    line 165
  14. Distinctive:

    Use Read to check file contents

    line 166
  15. Distinctive:

    Use Bash sparingly (YAML/JSON validation)

    line 167

“Common” is measured: kept by at least 6 in 10 of the 139 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Your Task

Input: $ARGUMENTS

Run automated tests to validate plugin integrity. Execute each test methodically and report results clearly.

Default: Run all tests if no argument provided.


Plugin Test Suite

You are the plugin's automated test runner. Execute each test, track pass/fail, and report actionable results.

Quick Automated Tests (/test quick)

For fast automated validation, run the pytest suite. Call get_python_command() first to get $PYTHON (the venv interpreter path — correct on every OS, including native Windows):

$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -v

This covers:

  • plugin tests (tests/plugin/) - Frontmatter, templates, references, links, terminology, consistency, config, state, genres, integration
  • unit tests (tests/unit/) - State parsers/indexer, shared utilities, mastering functions

Run specific categories:

$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/plugin/test_skills.py -v       # Skills only
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/plugin/ -v                      # All plugin tests
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/unit/ -v                        # All unit tests
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -m "not slow" -v               # Skip slow tests

Pytest catches common issues fast. For deep behavioral tests, use the full test suite below.

Output Format

════════════════════════════════════════
CATEGORY: Test Category Name
════════════════════════════════════════

[PASS] Test name
[FAIL] Test name
       → Problem: what's wrong
       → File: path/to/file:line
       → Fix: specific fix instruction

────────────────────────────────────────
Category: X passed, Y failed
────────────────────────────────────────

At the end:

════════════════════════════════════════
FINAL RESULTS
════════════════════════════════════════
config:       X passed, Y failed
skills:       X passed, Y failed
templates:    X passed, Y failed
...
────────────────────────────────────────
TOTAL:        X passed, Y failed, Z skipped
════════════════════════════════════════

TEST CATEGORIES

All test definitions are in test-definitions.md.

14 categories: config, skills, templates, workflow, suno, research, mastering, sheet-music, release, consistency, terminology, behavior, quality, e2e.

Read that file before running tests to understand what each test checks.


RUNNING TESTS

Commands

CommandDescription
/test or /test allRun all tests
/test quickRun Python test runner (fast automated checks)
/test configConfiguration system tests
/test skillsSkill definitions and docs
/test templatesTemplate file tests
/test workflowAlbum workflow documentation
/test sunoSuno integration tests
/test researchResearch workflow tests
/test masteringMastering workflow tests
/test sheet-musicSheet music generation tests
/test releaseRelease workflow tests
/test consistencyCross-reference checks
/test terminologyConsistent language tests
/test behaviorScenario-based tests
/test qualityCode quality checks
/test e2eEnd-to-end integration test

Quick Tests via Pytest

For rapid validation during development, use pytest directly. Call get_python_command() first to get $PYTHON (the venv interpreter path — correct on every OS):

# Run all tests
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -v

# Run specific test modules
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/plugin/test_skills.py ${CLAUDE_PLUGIN_ROOT}/tests/plugin/test_templates.py -v

# Verbose with short tracebacks
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -v --tb=short

# Quiet mode (for CI/logs)
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -q --tb=line

Test modules in tests/plugin/:

  • test_skills.py - Frontmatter, required fields, model validation
  • test_templates.py - Template existence and structure
  • test_references.py - Reference doc existence
  • test_links.py - Internal markdown links
  • test_terminology.py - Deprecated terms check
  • test_consistency.py - Version sync, skill counts
  • test_config.py - Config file validation
  • test_state.py - State cache tool validation
  • test_genres.py - Genre directory cross-reference
  • test_integration.py - Cross-skill prerequisite chains

Adding New Tests

When bugs are found:

  1. Identify which category the test belongs to
  2. Add a test that would have caught the bug
  3. Run /test [category] to verify test fails
  4. Fix the bug
  5. Run /test [category] to verify test passes
  6. Commit both the fix and the new test

Rule: Every bug fix should add a regression test.


EXECUTION TIPS

  • Use Grep with output_mode: content and -n for line numbers
  • Use Glob to find files by pattern
  • Use Read to check file contents
  • Use Bash sparingly (YAML/JSON validation)
  • Report exact file:line for failures
  • Provide specific, actionable fix instructions
  • Group related tests for readability
  • Skip tests gracefully if prerequisites missing

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.