analyze-plugin — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited analyze-plugin (Agent Skill) and scored it 87/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 3 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 3 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill requires Python 3.8+ and standard library only. No external packages needed.
To install this skill's dependencies:
pip-compile ./requirements.in
pip install -r ./requirements.txtSee ../../requirements.txt for the dependency lockfile (currently empty — standard library only).
Perform deep structural and content analysis on agent plugins and skills. Extract reusable patterns that feed the virtuous cycle of continuous improvement.
Deep-dive into one plugin. Use when you want to fully understand a plugin's architecture.
Analyze multiple plugins side-by-side. Use when looking for common patterns across a collection.
Execute these phases sequentially. Do not skip phases.
Before deep analysis, run a rapid compliance scan to surface blockers:
Manifest check:
# plugin.json must be in .claude-plugin/ (not root)
ls .claude-plugin/plugin.json && jq . .claude-plugin/plugin.jsonname present and kebab-case (no spaces, no uppercase)?version follows semver (X.Y.Z) if present?Structure check:
commands/, agents/, skills/, hooks/) at plugin ROOT (not inside .claude-plugin/)?SKILL.md (not README.md) inside each skill directory?Security scan:
# Hardcoded credentials
grep -rn "password\|api_key\|secret" --include="*.md" --include="*.json" --include="*.sh" .
# Hardcoded paths (should use ${CLAUDE_PLUGIN_ROOT})
grep -rn "/Users/\|/home/" --include="*.json" --include="*.sh" .Report Phase 0 findings before proceeding. If CRITICAL issues found (invalid JSON, hardcoded credentials, missing required fields), flag them prominently in the final report.
Run the deterministic inventory script first:
python "scripts/inventory_plugin.py" --path <plugin-dir> --format jsonIf the script is unavailable, manually enumerate:
SKILL.md → Skill definitioncommands/*.md → Command definitionreferences/*.md → Reference material (progressive disclosure)scripts/*.py → Executable scriptsREADME.md → Plugin documentationplugin.json → Plugin manifest*.json → Configuration (MCP, hooks, etc.)*.yaml / *.yml → Pipeline/config data*.html → Artifact templates*.mmd → Architecture diagramsEvaluate the plugin's architectural decisions:
| Dimension | What to Look For |
|---|---|
| Layout | How are skills/commands/references organized? Flat vs nested? |
| Progressive Disclosure | Is SKILL.md lean (<500 lines) with depth in references/? |
| Component Ratios | Skills vs commands vs scripts — what's the balance? |
| Naming Patterns | Are names descriptive? Follow kebab-case? Use gerund form? |
| README Quality | Does it have a file tree? Usage examples? Architecture diagram? |
| Standalone vs Supercharged | Can it work without MCP tools? What's enhanced with them? |
For each file, load the appropriate question set from references/analysis-questions-by-type.md and work through every checkbox. See the process diagram in analyze-plugin-flow.mmd for the full pipeline visualization.
For each SKILL.md, evaluate:
Frontmatter Quality:
description written in third person?Body Structure:
references/ for deep content?Interaction Design:
For Commands, evaluate:
For Reference Files, evaluate:
For Scripts, evaluate:
--help documentation?python3 ... || python ... (not bare python) for macOS/Linux + Windows compatibility?main() include an early-exit project-type guard so it skips silently in projects that haven't initialized the plugin (e.g. if not required_dir.exists(): return)?Identify instances of known patterns from references/pattern-catalog.md. Also watch for novel patterns not yet cataloged.
For each pattern found, document:
Pattern: [name]
Plugin: [where found]
File: [specific file]
Description: [how it's used here]
Quality: [exemplary / good / basic]
Reusability: [high / medium / low]
Confidence: [high (≥3 plugins) / medium (2) / low (1)]
Lifecycle: [proposed / validated / canonical / deprecated]Before adding a new pattern, check the catalog's deduplication rules. If an existing pattern covers ≥80% of the behavior, update its frequency instead.
Key pattern categories to search for:
Load the full check tables from references/security-checks.md.
Execution order:
If inventory_plugin.py was run with --security, use its deterministic findings as ground truth.
Load the maturity model and scoring rubric from references/maturity-model.md.
Steps:
Generate a structured markdown report. For single plugins, output inline. For collections, create an artifact file with the full analysis.
Iteration Directory Isolation: All analysis reports must be saved into explicitly versioned and isolated outputs (e.g. analysis-reports/target-run-1/) to prevent destructive overrides on re-runs. Asynchronous Benchmark Metric Capture: Once the audit run completes, immediately log the resulting total_tokens and duration_ms to a timing.json file to calculate the cost of the deep-dive analysis.
Always end with Virtuous Cycle Recommendations: specific, actionable improvements for agent-scaffolders (this plugin), agent-scaffolders, and agent-scaffolders based on patterns discovered.
references/*.md. Always consult them (especially ADR 001-006) to evaluate if the analyzed plugin follows our standards for shared scripts, cross-plugin dependencies, symlinking patterns, and loose coupling. Use these as the source of truth for "Quality" and "Structural Analysis" assessments to avoid repeating yourself or missing standard patterns.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.