Fixes broken path references in plugin skill and agent files to ensure portability across installed environments. Use when you see "plugins/" paths in SKILL.md or agent files, need to standardize path references after installing a skill, want to audit and fix cross-plugin path dependencies, run a portability audit on a repository, neutralize hardcoded machine paths like /Users/, find Python scripts using PROJECT_ROOT or Path() to reach into plugins/<name>/ at runtime, or are preparing plugin files for distribution via uvx or bootstrap.py. Also handles evolving a skill in-session while tracking quality scores with the eval runner to continuously improve skill routing accuracy.
From agent-plugin-analyzernpx claudepluginhub richfrem/agent-plugins-skills --plugin agent-plugin-analyzerThis skill is limited to using the following tools:
evals/evals.jsonevals/results.tsvevals/traces/iter_001_KEEP_score0.82.jsonevals/traces/iter_002_KEEP_score0.82.jsonevals/traces/iter_003_KEEP_score0.82.jsonevals/traces/iter_004_KEEP_score0.82.jsonevals/traces/iter_005_KEEP_score0.82.jsonreferences/fix-plugin-paths.prompt.mdreferences/program.mdscripts/audit_plugin_paths.pyscripts/plugin_paths_whitelist.jsonscripts/portability-audit-report.mdCreates consistent pitch decks, one-pagers, investor memos, financial models, accelerator apps, and fundraising materials from a single source of truth.
Provides expertise on electricity/gas procurement, tariff optimization, demand charge management, renewable PPA evaluation, hedging, load profiling, and multi-facility energy strategies.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
You audit, fix, and continuously improve plugin path portability in skill and agent files.
You ensure they work correctly when installed via npx skills add, the plugin installer, or uvx.
The core rule: When a skill is installed, only its own directory exists:
.agents/skills/<skill-name>/
SKILL.md
scripts/
./assets/
references/
No plugins/ folder. No CLAUDE_PLUGIN_ROOT. No source repo structure.
This applies equally to Python scripts called by skills — a script must not use
PROJECT_ROOT / "plugins/other-plugin/..." at runtime. Cross-plugin script references
must use .agents/skills/<skill>/scripts/<script> or a self-contained copy.
The full ruleset is in references/fix-plugin-paths.prompt.md.
If the user specifies a file or directory, confirm and proceed. Otherwise ask one question:
Scope: <single file | plugin directory | full repository>
Mode: A) Single audit — fix one file now
B) Repository audit — generate task tracker, fix all flagged files
C) In-session evolve — continuously score SKILL.md after each edit
Auto-detect the scope if inferable from context. If mode is clear from the request, skip the question.
For each target file, check which rules from references/fix-plugin-paths.prompt.md apply using the auditor script:
python3 ./scripts/audit_plugin_paths.py <directory-or-file>
The auditor runs two passes:
plugins/<name> and /Users/ references in .md and .py files. False positives can be suppressed via scripts/plugin_paths_whitelist.json.Path() constructions in .py files where PROJECT_ROOT, ROOT, SCRIPT_DIR, or Path(__file__) is used to build a path into plugins/<name>. These cannot be whitelisted and must always be fixed.For CRITICAL violations the correct fix is always one of:
scripts/<script>.py path (self-contained, portable).agents/skills/<skill-name>/scripts/<script>.py (cross-skill installed reference)uvx / subprocess calling the GitHub-native installer (for installer bootstrapping)If the standard pass flags an issue that is functionally required (like a structural diagram or explicit documentation reference), DO NOT MUTATE THE FILE. Instead, update scripts/plugin_paths_whitelist.json using the Edit tool to include a targeted pattern that squashes the false positive, then re-run the auditor to confirm it cleanly skips that item.
Apply each rule from references/fix-plugin-paths.prompt.md manually using the Edit tool.
Verify with diff after each change.
⚠️ Always verify the diff before applying. Apply only after confirming the diff is correct.
After fixing, confirm no broken references remain by rerunning the auditor:
python3 ./scripts/audit_plugin_paths.py <directory-or-file>
Zero results = clean.
For repository-wide remediation, always follow this three-step cycle.
Initialize the scripts/portability-audit-report.md artifact to act as the source of truth by running the auditor script:
python3 ./scripts/audit_plugin_paths.py .
This script will automatically generate the scripts/portability-audit-report.md formatted with a checkbox per file, itemizing exactly what line contains the issue.
scripts/portability-audit-report.md file to identify the next unchecked rule violation.scripts/plugin_paths_whitelist.json and add a targeted global regex or file-specific string pattern to exempt it.python3 ./scripts/audit_plugin_paths.py . to update the report. Prove your fix worked by confirming that the issue dropped off the active report.The loop finishes strictly only when running the auditor returns a completely clean scan:
python3 ./scripts/audit_plugin_paths.py .
Goal: Zero results found.
Use when evolving this skill's own SKILL.md as a background thread during an active session.
No worktree. No external repo. The agent itself is the proposer.
ls evals/evals.json 2>/dev/null || echo "MISSING"
If missing: draft 8 should_trigger: true + 4 should_trigger: false cases from the description
and <example> blocks. Write to evals/evals.json, evals/results.tsv (header), and
references/program.md.
python3 <APS_ROOT>/plugins/agent-agentic-os/skills/os-eval-runner/scripts/evaluate.py \
--skill . \
--baseline --desc "initial baseline"
git add evals/ && git commit -m "baseline: fix-plugin-paths eval start"
Report the baseline score before continuing main work.
After each modification to SKILL.md:
python3 <APS_ROOT>/plugins/agent-agentic-os/skills/os-eval-runner/scripts/evaluate.py \
--skill . \
--desc "<what changed>"
git add SKILL.md && git commit -m "keep: score=<X> <desc>"📊 score: <prev> → <new> (<delta>) KEEP|DISCARDWhen done or when the user says "stop":
evals/results.tsvAfter completing a full repository audit or a significant in-session evolution batch, record:
fix-plugin-paths.prompt.md would improve the next run?Write to: temp/retrospectives/audit_<YYYYMMDD>_fix-plugin-paths.md
grep confirms zero violations.