plugin-factory — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited plugin-factory (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
Bundled commands use $PLUGIN_ROOT ($env:PLUGIN_ROOT in PowerShell; same path suffix) for the plugin root. Set it once: use the host's plugin-root variable when defined (Claude Code: PLUGIN_ROOT="$CLAUDE_PLUGIN_ROOT"), otherwise the absolute path of this skill folder's ../...
Build marketplace-ready plugin source first. Install or cache-refresh only when the user asked for an installed/global plugin or the validated contract has install_required=true.
For a new requested plugin, choose the source destination deliberately:
For the user's local marketplace source, scaffold with:
python3 "$PLUGIN_ROOT/scripts/plugin/create_basic_plugin.py" <plugin-name> --with-skills --with-scripts --with-assets --with-marketplaceDefaults:
$HOME/plugins/<plugin-name>$HOME/.agents/plugins/marketplace.json./plugins/<plugin-name>installation=AVAILABLE, authentication=ON_INSTALLThis creates a marketplace-ready source path. It is installed globally as <plugin-name>@local and cache-backed only after the install/visibility helper runs. For repo-local plugin source work, create or update the plugin under that repository and skip marketplace/cache mutation unless install_required=true.
For new marketplace-facing plugins, generate the icon through the system $imagegen skill, not through hand-authored SVG templates. Use $PLUGIN_ROOT/references/plugin-icon-system.md:
--with-assets.$PLUGIN_ROOT/scripts/plugin/prepare_plugin_icon_prompt.py to produce theprompt contract.
assets/icon.png.$PLUGIN_ROOT/scripts/plugin/wire_plugin_icon.py to setinterface.composerIcon, interface.logo, and interface.brandColor.
When the host has no imagegen skill (for example Claude Code), use a user-supplied asset or host-native image generation when available; otherwise skip generation, record the gap in the report, and keep delivering the plugin. Never block plugin delivery on icon generation.
For MCP-backed capability requests, prefer packaging the MCP server inside the selected plugin source. Write global agent MCP configuration only for explicit installed/global activation work.
Keep .codex-plugin/plugin.json validation-ready:
name equals the outer folder name.version, description, author, skills when skills exist, and interface metadata.assets/ and wire interface.composerIcon, interface.logo, and interface.brandColor when the target agent supports them. Use the system $imagegen skill plus $PLUGIN_ROOT/references/plugin-icon-system.md; avoid text-heavy, tiny, screenshot-based, photographic, API-key-only, or private/project-specific icons.
Use $PLUGIN_ROOT/references/marketplace-validation.md for the expected manifest and marketplace entry shapes.
Use multiple plugin skills only when it improves trigger precision or context loading. Prefer:
Design plugin skill descriptions for autonomous routing from task context, artifacts, source evidence, and agent decision points. Avoid preserving upstream micro-skill variants or request-phrase descriptions when one synthesized skill covers the workflow better.
For every marketplace-backed plugin:
python3 "$PLUGIN_ROOT/scripts/plugin/validate_plugin.py" <plugin-dir>For Codex plugins, add a structured quality-review pass:
python3 "$PLUGIN_ROOT/scripts/context/context_density_audit.py" <plugin-dir> --json --top 20When install_required=true:
python3 "$PLUGIN_ROOT/scripts/plugin/ensure_local_plugin_installed.py" <plugin-dir>
python3 "$PLUGIN_ROOT/scripts/plugin/ensure_local_plugin_installed.py" <plugin-dir> --check-onlyFor installed updates to an existing marketplace-backed plugin:
python3 "$PLUGIN_ROOT/scripts/plugin/update_plugin_cachebuster.py" <plugin-dir>
python3 "$PLUGIN_ROOT/scripts/plugin/ensure_local_plugin_installed.py" <plugin-dir>
python3 "$PLUGIN_ROOT/scripts/plugin/ensure_local_plugin_installed.py" <plugin-dir> --check-onlyInstalled work is incomplete if the plugin is only present in marketplace.json; it must be enabled and cache-backed. Source-only repository work is complete when the plugin validates and the install-scope contract records install_required=false. If this plugin was produced by the synthesizer, also run the final install-scope gate:
python3 "$PLUGIN_ROOT/scripts/synthesis/install_scope_gate.py" <output-dir>/install-scope.json --finalWhen a marketplace entry was created, updated, or installed, finish with:
<name>@local, or not installed for source-only work;~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.