docs(templates): add canonical security matrix template #673
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Validates all plugins under plugins/ using Claude Code CLI. | |
| # | |
| # Pre-release manual testing (interactive session required): | |
| # 1. claude --plugin-dir ./plugins/sdlc-workflow | |
| # 2. /sdlc-workflow:plan-feature — verify skill loads and responds | |
| # 3. /sdlc-workflow:implement-task — verify skill loads and responds | |
| # 4. /agents — verify no plugin agents are missing | |
| # 5. Edit a SKILL.md, then /reload-plugins — verify changes are picked up | |
| # | |
| # Smoke testing with --plugin-dir --debug requires authentication | |
| # and should be done manually or in a CI environment with ANTHROPIC_API_KEY. | |
| name: Validate Plugins | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| validate: | |
| name: Plugin Validation | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Install Claude Code | |
| run: curl -fsSL https://claude.ai/install.sh | bash | |
| - name: Validate plugins | |
| run: | | |
| exit_code=0 | |
| for plugin_dir in plugins/*/; do | |
| plugin_name=$(basename "$plugin_dir") | |
| echo "::group::Validating $plugin_name" | |
| if ! claude plugin validate "./$plugin_dir"; then | |
| echo "::error::Validation failed for $plugin_name" | |
| exit_code=1 | |
| fi | |
| echo "::endgroup::" | |
| done | |
| exit $exit_code |