Skip to content
Back to skills

Orbit Multi Plugin

BSecurity

Batch-test multiple WordPress plugins in parallel with CPU throttling. Run the full gauntlet against 5+ plugins simultaneously, each on its own wp-env site. Use when the user maintains a portfolio (e.g. The Plus Addons + example-plugin + example-plugin) and says "test all my plugins", "batch QA", "audit my whole portfolio".

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
testingpythonbashdockertesting

Works with

  • cli

Security analysis

B88/100
  • criticalSends environment variables or credentials to an external URL

Pro shows the line behind each finding and how to fix it

Scanned September 9, 2026

npx -y skills add adityaarsharma/orbit --skill orbit-multi-plugin --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Orbit Multi Plugin?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Orbit Multi Plugin
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/adityaarsharma-orbit-multi-plugin/badge)](https://www.skillsdirectory.com/skills/adityaarsharma-orbit-multi-plugin)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: orbit-multi-plugin
description: Batch-test multiple WordPress plugins in parallel with CPU throttling. Run the full gauntlet against 5+ plugins simultaneously, each on its own wp-env site. Use when the user maintains a portfolio (e.g. The Plus Addons + example-plugin + example-plugin) and says "test all my plugins", "batch QA", "audit my whole portfolio".
---

# 🪐 orbit-multi-plugin — Parallel batch testing

For agencies / vendors with multiple plugins. Run the full audit against 5 plugins at once instead of 5 hours of sequential runs.

---

## Quick start

```bash
# Test every plugin in ~/plugins/
bash ~/Claude/orbit/scripts/batch-test.sh --plugins-dir ~/plugins/

# Specific list
bash scripts/batch-test.sh \
  --plugins ~/plugins/the-plus-addons,~/plugins/example-plugin,~/plugins/example-plugin \
  --parallel 3
```

Output: `reports-batch/<plugin>/` — one full report set per plugin.

---

## How it works

For each plugin in the list:
1. Pick an unused port (8881, 8882, 8883...)
2. Spin up its own wp-env site
3. Run `/orbit-gauntlet --mode <mode>` against it
4. Capture reports to `reports-batch/<slug>/`
5. Tear down on completion

Parallelism throttled by `--parallel N` (default 3). Higher = faster but pegs CPU.

---

## CPU throttling

Each parallel gauntlet uses ~1.5 CPU cores during AI audits, ~3 cores during Playwright. Set `--parallel` based on your machine:

| CPU cores | Recommended `--parallel` |
|---|---|
| 4 cores (M1 Air) | 1-2 |
| 8 cores (M2 Pro) | 3 |
| 12+ cores (M3 Max) | 4-5 |
| 16+ cores (workstation) | 6+ |

Above the recommendation = OOMs and zombie wp-env containers.

---

## Output structure

```
reports-batch/
├── the-plus-addons/
│   ├── qa-report-<timestamp>.md
│   ├── playwright-html/
│   ├── skill-audits/
│   └── ... (full report set)
├── example-plugin/
│   └── ...
├── example-plugin/
│   └── ...
└── batch-summary.html       ← top-level dashboard
```

`batch-summary.html` shows:
- Pass/fail per plugin
- Severity bar (cumulative)
- Click any plugin → drill into its individual reports

---

## Use cases

### Pre-release sanity for a portfolio
Before tagging weekly releases for 5 plugins, run batch-test. Catches regressions across the whole stack.

### After upgrading a shared dependency
You bumped Composer / npm packages used by all 5 plugins. Run batch-test to verify nothing broke.

### Customer support: "is the issue across plugins or specific?"
Run batch-test against staging plugin builds reproducing the customer's setup. The pattern (1 plugin fails, 4 pass) tells you it's plugin-specific. (5 fail, all pass) tells you it's environmental.

### CI matrix on big workstation
Run nightly cron, batch-test the whole portfolio, send Slack ping with summary URL.

---

## Configure per-plugin

Each plugin still has its own `qa.config.json` — batch-test reads them:

```bash
~/plugins/the-plus-addons/qa.config.json
~/plugins/example-plugin/qa.config.json
~/plugins/example-plugin/qa.config.json
```

If a plugin lacks `qa.config.json`, batch-test skips it with a warning. Run `/orbit-setup` for that plugin first.

---

## Resource hygiene

After a batch run:

```bash
# Stop all wp-env sites
docker ps --filter "name=wp-env" --format "{{.ID}}" | xargs docker stop

# Or per-plugin
( cd ~/plugins/the-plus-addons && wp-env stop )

# If anything's stuck
docker rm -f $(docker ps -aq --filter "name=wp-env")
```

`batch-test.sh` calls these on exit, but if you Ctrl+C mid-run, manual cleanup may be needed.

---

## Common failures

### "No port available"
All ports 8881-8899 are taken. Stop existing wp-env sites:
```bash
docker ps --filter "name=wp-env" -q | xargs docker stop
```

### "Out of memory" — Docker dies
Lower `--parallel`, or increase Docker Desktop memory limit (Preferences → Resources).

### "Reports overlap" — wrong plugin's data in another's report
Race condition in WP_TEST_URL. Make sure each gauntlet has its own port via `--port=$port` and `WP_TEST_URL=http://localhost:$port`.

### "Took 3 hours" — should have been faster
Check that `--parallel` actually parallelises. Look at `htop` mid-run — if only 1 CPU is hot, parallelism isn't working. Check that `&` is in the bash script and `wait` is at the end.

---

## CLI flags

```bash
bash scripts/batch-test.sh \
  --plugins-dir ~/plugins/ \           # Or --plugins p1,p2,p3
  --mode quick \                       # default: quick. Use full for releases.
  --parallel 3 \                       # default: 3
  --output reports-batch/ \             # default: reports-batch/
  --skip-on-no-config \                 # default: warn but continue
  --slack-webhook https://hooks.slack.com/...   # optional notification
```

---

## Slack / Discord notification

Add `--slack-webhook` and a summary lands in the channel:

```
🪐 Orbit batch test — 5 plugins, 4 passed, 1 failed (example-plugin: 2 critical)

Reports: https://reports.example.com/batch-2026-04-29/
```

---

## Pair with `/orbit-reports`

After batch-test, generate the per-plugin master index:

```bash
for plugin in reports-batch/*; do
  python3 ~/Claude/orbit/scripts/generate-reports-index.py \
    --reports-dir "$plugin" \
    --output "$plugin/index.html" \
    --title "$(basename "$plugin")"
done
```

Then `reports-batch/index.html` (the top-level summary) links to each.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.