Review an MCP plugin against the homelab canonical plugin spec and identify any and all misalignments. Use when the user wants a plugin audited for spec drift, wants to compare a plugin to canonical manifests and runtime patterns, wants to know whether deviations are documented and justified, or wants a detailed plugin review report.
Scanned 5/27/2026
Install via CLI
openskills install jmagar/plugin-lab---
name: review-lab-plugin
description: Review an MCP plugin against the homelab canonical plugin spec and identify any and all misalignments. Use when the user wants a plugin audited for spec drift, wants to compare a plugin to canonical manifests and runtime patterns, wants to know whether deviations are documented and justified, or wants a detailed plugin review report.
---
# Review Lab Plugin
Review a plugin for alignment with the homelab canonical plugin spec.
## Review Goal
Find mismatches between the target plugin and the current canonical standard.
Treat the review as a spec audit, not a style pass.
Focus on:
- correctness
- structural drift
- runtime contract drift
- missing required files
- stale manifests
- undocumented or unjustified deviations
See `references/canonical-spec.md` for the authoritative correct values for every check category below.
## Read the Canonical Surfaces
Inspect the target plugin's tree first to know what exists and what is absent. Then read each canonical file when present:
- `README.md`
- project manifest (`pyproject.toml`, `Cargo.toml`, or `package.json`)
- `.claude-plugin/plugin.json`
- `.codex-plugin/plugin.json`
- `.mcp.json`
- `.app.json`
- `CLAUDE.md`
- `AGENTS.md`
- `CHANGELOG.md`
- `Dockerfile`
- `docker-compose.yaml`
- `Justfile`
- `.env.example`
- hook config
- CI workflow (`.github/workflows/ci.yaml`)
- live test script
Also inspect the repo tree so you can reason about missing or misplaced surfaces.
## Compare Against the Spec
Check for every category below. For the exact correct values in each category, consult `references/canonical-spec.md`.
- missing required files
- wrong file locations
- version drift across manifests
- incorrect userConfig shape
- transport mismatch
- missing auth on HTTP transport
- missing `/health` endpoint
- missing `*_help` tool or action/subaction pattern
- missing live test coverage
- stale README or CLAUDE guidance
- ignore file and Docker hygiene drift
## Classify Every Misalignment
For each finding, state:
- what is misaligned
- where it appears (file path and line if known)
- what the canonical expectation is
- whether the deviation is documented
- whether the deviation appears technically justified
Do not treat every difference as a bug. A deviation is acceptable if it is deliberate, documented, and technically justified.
## Open Questions
Some findings cannot be resolved by reading files alone. Flag these explicitly as **open questions** — issues that require user input or live service access to resolve before remediation can proceed.
Examples of open questions:
- "Is the second Unraid server still in use, or can its env vars be removed?"
- "What auth scheme does this service use — bearer token or API key header?"
- "The CHANGELOG shows v1.0.0 but plugin.json shows v1.1.0 — which is correct?"
Group open questions at the end of the report so the user can answer them before align-lab-plugin begins work.
## Produce a Written Report
Write the final review to:
```
docs/reports/plugin-reviews/<YYYYMMDD-HHMMSS>.md
```
Use the fill-in-the-blanks template in `references/review-report-template.md` for the report structure.
The report must include:
- target plugin path
- review date (YYYYMMDD-HHMMSS)
- files inspected
- findings ordered by severity (CRITICAL → HIGH → MEDIUM → LOW)
- documented deviations
- justified deviations
- open questions
- concrete remediation checklist ordered by priority
## Output Style
Findings first. Each finding uses this format:
```
**[HIGH] Missing /health endpoint**
File: src/server.py
Expected: GET /health returns HTTP 200 with {"status": "ok"}
Found: No /health route registered
Fix: Add health route before starting server
```
Severity levels:
- **CRITICAL** — plugin will not load or will break other plugins
- **HIGH** — runtime contract violated, integration will fail silently
- **MEDIUM** — spec drift that degrades usability or discoverability
- **LOW** — hygiene issue, documentation gap, or cosmetic drift
Keep the report detailed and complete enough that align-lab-plugin can implement all fixes without repeating the audit.
## Related Skills
- **align-lab-plugin** — consumes the review report and implements the remediation checklist
- **lab-research-specialist** — use to verify current canonical values when the spec may have changed
- **scaffold-lab-plugin** — reference for the canonical 15-surface list and correct plugin structure
No comments yet. Be the first to comment!