Skip to content
Unverified: This page has not yet been anchored to automated code tests.

Skill Ecosystem Audit — All 50 Skill Files, Read in Full (2026-08-01)

Skill Ecosystem Audit — All 50 Skill Files, Read in Full (2026-08-01)

Section titled “Skill Ecosystem Audit — All 50 Skill Files, Read in Full (2026-08-01)”

Provenance. Four parallel research agents read the full content of every skill file in the repo, the 18 prior skill-ecosystem docs, and the relevant selection/GUI/graphify code. This doc consolidates their findings. No file was summarized from its filename alone.

Companion design spec: ../../superpowers/specs/2026-08-01-skill-ecosystem-improvements-design.md. Prior art this audit builds on and does not repeat: skill-discovery-and-induction-research-2026-07-30.md, skill-marketplace-security-and-provenance-research-2026-07-30.md, skill-registry-trust-and-curation-research-2026-07-30.md, skill-code-marketplace-research-and-audit-2026-06-18.md, skill-ecosystem-interop-research-2026-06-12.md.

50 skill files, 49 distinct (one is a byte-identical duplicate — see §2.4):

LocationCountFormat
assets/skills/**/SKILL.md27agentskills.io YAML, vendored
crates/vox-skills/skills/**/*.skill.md14mixed (see below)
crates/vox-plugin-skill-*/*.skill.md8legacy [metadata]-nested TOML
crates/vox-plugin-populi-mesh/populi.skill.md1legacy [metadata]-nested TOML

AGENTS.md §“Agent Skills (Required, SSOT)” already settles two open questions this audit would otherwise have to adjudicate:

  1. One canonical format. “New skills MUST use spec-compliant YAML frontmatter (name matching the directory name, description 1–1024 chars); Vox extensions ride in metadata vox-* keys.” The parser SSOT is vox-plugin-host::skill_parser (YAML + legacy TOML — TOML is explicitly the back-compat path, not a co-equal option).
  2. Search goes through vox-search. “Richer skill retrieval… MUST be built on the existing vox-search hybrid stack (tantivy lexical + semantic indexer + RRF fusion)… not a bespoke skill index.”

Both are violated today by code already in the tree (§2.4, §3.1). These aren’t judgment calls for the roadmap to make — they’re policy the roadmap has to bring the codebase into compliance with.


1. Claude-format skills (assets/skills/, 27 files)

Section titled “1. Claude-format skills (assets/skills/, 27 files)”

Vendored, not hand-authored, from two pinned upstream repos declared in assets/skills/SOURCES.toml: anthropics/skills (12 skills, Apache-2.0) and obra/superpowers (14 skills, MIT). vox-graph is the one hand-authored exception — no SOURCES.toml entry, Vox-specific. Sync is manual (scripts/vendor-skills.vox), not auto-updating.

SkillLinesPurposePortability to Vox Axis / MENSFlags
brainstorming164Pre-implementation design dialogueNeeds Skill-tool + TodoWrite equivalentsShips spec-document-reviewer-prompt.md; nothing references it
writing-plans152Spec → bite-sized task planSameShips plan-document-reviewer-prompt.md; nothing references it
executing-plans70Execute a plan in a fresh sessionTodoWriteThin; mostly a router
subagent-driven-development277Per-task subagent + two-stage reviewTask tool, TodoWriteOverlaps with dispatching-parallel-agents by design (documented alternates)
dispatching-parallel-agents182Fan out independent workTask tool—
systematic-debugging296Root-cause-first debugging— (pure discipline, portable)Ships CREATION-LOG.md — an authoring log, not a runtime reference; shouldn’t ship
test-driven-development371Red-green-refactor— (portable)—
requesting-code-review105Dispatch superpowers:code-reviewer subagentNamed agent type doesn’t exist outside CCReview logic lives in an external agent definition, not this file
receiving-code-review213Evaluate/act on review feedback— (portable)—
using-git-worktrees218Isolated worktree setupPOSIX bash embedded in bodyConflicts with this repo’s own no-new-.sh/VoxScript-only policy
finishing-a-development-branch200Merge/PR/keep/discard menugh CLI—
verification-before-completion139Evidence before completion claims— (portable)—
skill-creator485Build/eval/iterate on skillsHeavy CC/claude.ai coupling (present_files, TodoWrite, Python eval scripts)Least portable file in the set
writing-skills655TDD-for-skills methodology@-link syntax is CC-specificLongest file; all its cross-refs resolve (not broken)
vox-graph42Graph-first search over Rust query engineAlready Vox-native — MCP tool names onlyCalls vox_search_query/vox_discover/vox_search_path/vox_search_status; cross-check against §3.2 — these may be stale post-rename
frontend-design55Aesthetic direction prose— (portable)—
canvas-design129Poster/art via philosophy-doc templateclaude.ai-artifact-flavoredNear-duplicate template structure to algorithmic-art
algorithmic-art404p5.js generative artReferences present, resolve fineNear-duplicate template structure to canvas-design
theme-factory59Apply one of 10 artifact themesclaude.ai-artifact-oriented—
brand-guidelines73Anthropic-branded deck stylingpython-pptx specificLow relevance to this repo; candidate for drop
web-artifacts-builder73React/Tailwind bundling via shell scriptsNode/Vite toolchain baked inNot portable
webapp-testing95Playwright via Python helpersPython-specific—
mcp-builder236Build MCP servers (TS/Python)WebFetch-heavy, mostly doc pointersPortable
slack-gif-creator254Animated GIFs for SlackPython/PILLow relevance to this repo
internal-comms32Status-report/newsletter templates—Thin, generic, low relevance
claude-api356 (+~65 ref files)Claude/Anthropic SDK referenceDeeply Claude-specific by designStale: pricing/model table cached 2026-06-04, ~2 months old; model IDs drift fastest of anything in the set
using-superpowers117Meta-skill: mandates skill invocationExplicitly CC-tool-named (Skill, TodoWrite, Task)Ships references/{codex,copilot,gemini}-tools.md — no vox-axis-tools.md, the direct blocker to running this skill set under MENS

No standalone “code review” skill and no “review a plan/spec” skill exist in this set. requesting-code-review/receiving-code-review are a self-review-before-commit pair, not peer or plan review.

2. Vox-native skills (crates/vox-skills/skills/, 14 files)

Section titled “2. Vox-native skills (crates/vox-skills/skills/, 14 files)”
SkillLinesPurposeFrontmatter dialect
populi.skill.md34Mens worker labels ↔ orchestrator routing hintsFlat TOML (id, name, tools[], permissions[] top-level)
superpowers/antigravity-pipeline63Claude→Gemini delegation loop (author→execute→review→merge-gate)Plain YAML (name+description only)
superpowers/brainstorming40Design-decision gatePlain YAML
superpowers/deep-research41Adversarially-verified research reportPlain YAML
superpowers/delegate-gemini53Single-task Gemini/agy delegationPlain YAML
superpowers/dispatching-parallel-agents39Decompose+dispatch concurrent workPlain YAML
superpowers/executing-plans71Execute a plan with checkpointsPlain YAML
superpowers/requesting-code-review28Self-review checklist pre-commitPlain YAML
superpowers/research33Lightweight web researchPlain YAML
superpowers/subagent-driven-development278Fresh-subagent-per-task + two-stage reviewPlain YAML; embeds Graphviz dot diagrams
superpowers/test-driven-development372Strict TDDPlain YAML
superpowers/using-git-worktrees44Isolate work in worktreesPlain YAML
superpowers/verification-before-completion33Evidence-before-assertionPlain YAML
superpowers/writing-plans152Bite-sized, no-placeholder plansPlain YAML

Three dialects coexist in the Vox-native set alone: (a) flat TOML (populi.skill.md), (b) plain YAML matching the Claude Code convention almost verbatim (all 13 superpowers/* ports), (c) [metadata]-nested TOML with vox-*-prefixed keys (all 9 plugin skills, §3). Per AGENTS.md §0, only YAML-with-metadata.vox-*-keys is canonical; TOML (both flat and nested) is legacy.

Vox-native manifests declare a machine-readable tools array (MCP tool IDs, vox_snake_case convention) and a permissions array — fields the Claude-format SKILL.md frontmatter has no first-class equivalent for. This is a real capability gap in the vendored format, not a defect; worth preserving when consolidating onto the canonical dialect.

2.3 Graphify — read/query side is Rust and wired; construction side is not

Section titled “2.3 Graphify — read/query side is Rust and wired; construction side is not”
  • Rust crate: vox-graph-reader (GraphifyReaderError) — BFS/shortest-path, Leiden clustering (leiden-rs), tree-sitter AST parsing (Rust/TS/Python). Mid-rename from vox-graphify-reader per docs/superpowers/plans/2026-06-27-vox-graph-rename-and-manifest-plan-vg1.md.
  • MCP surface: crates/vox-orchestrator-mcp/src/graph_tools.rs exposes vox_graphify_status, vox_graphify_search, vox_graphify_query, vox_graphify_callers/callees/path/compare/rebuild, etc. — still named vox_graphify_*.
  • CLI surface: vox graphify {status,query,ingest,rebuild,coverage,index,refresh,gc,crate-map,...} (crates/vox-cli/src/commands/graphify/mod.rs, 1506 lines).
  • Correction (this line originally reported this as a live bug; the adversarial review pass that verified docs/superpowers/specs/2026-08-01-skill-ecosystem-improvements-design.md and docs/superpowers/plans/2026-08-01-skill-ecosystem-phase1-consolidation.md found the opposite — recorded here rather than silently rewritten). The vox_search_* rename is already complete at the dispatch layer: crates/vox-orchestrator-mcp/src/dispatch.rs and input_schemas.rs register and dispatch on vox_search_status, vox_search_structural, vox_search_neighbors, vox_search_path, vox_search_callers, vox_search_callees, vox_search_compare, vox_search_rebuild — confirmed by two passing guard tests (vox_search_dispatch.rs, vox_search_rename.rs). vox_graphify_* survives only as stale doc-comments on internal Rust function names inside graph_tools.rs (e.g. /// \vox_graphify_status`: …abovepub async fn graphify_status(…)) — those comments describe what the functions used to be called, not what's actually dispatched; this audit's first pass mistook the doc-comments for the registered tool names. The Claude-format vox-graph/SKILL.md(§1) was therefore *mostly correct* already (it mixes already-correct names likevox_search_status/ vox_search_pathwith a couple of names —vox_search_query, vox_discover — that were never registered under either the old or new scheme; those two needed fixing, the rest didn't). Canonical CLI form is **vox graph ** (#[command(name = “graph”, alias = “graphify”, alias = “search”)]invox-cli/src/lib.rs) — graphifyandsearchare backward-compatible aliases, not competing subgroups. The corrected tool/CLI names now live inassets/skills/vox-graph/SKILL.md` per Phase 1 Task 17 of the plan above.
  • Construction (parsing→extraction→Leiden clustering as a pipeline, as opposed to the Rust reader library) is still Python: scripts/graphify-refresh.vox → rebuild_full_graph.py → python -m graphify, using PyPI graphifyy + networkx + graspologic, with multimodal extractors calling out via OpenRouter (~/.graphify/providers.json). A Rust-native construction roadmap exists in docs/src/architecture/graphify-python-free-findings-2026.md but is status: research, not executed.
  • Not wired as a Vox-native skill at all. Grepping crates/vox-skills and crates/vox-plugin-skill-* for “graphify” returns nothing — MENS/Vox Axis can reach graphify only via raw MCP tool calls or the CLI, with no SKILL.md-level description/trigger telling a chat-routed model it exists or when to prefer it over grep. This is the direct gap behind the “make sure graphify exists as a skill in both harnesses” ask.

populi.skill.md exists twice, byte-different only in frontmatter shape, identical body: crates/vox-skills/skills/populi.skill.md (flat TOML) and crates/vox-plugin-populi-mesh/populi.skill.md ([metadata]-nested TOML). Only the second is load-bearing — Plugin.toml’s skill-md = "populi.skill.md" and catalog.toml’s populi-mesh entry both point at it; the vox-skills copy is unreferenced by any sync script, test, or catalog entry. Two SSOTs for one skill — keep the plugin-crate copy, delete the stray.

No “review a plan/spec” skill and no general code-review skill exist here either. superpowers/requesting-code-review.skill.md is, like its Claude-format counterpart, a self-review checklist — not peer or plan review.

3. Vox-native plugin skills (crates/vox-plugin-skill-*/, 8 files + populi-mesh, 9 total)

Section titled “3. Vox-native plugin skills (crates/vox-plugin-skill-*/, 8 files + populi-mesh, 9 total)”
SkillLinesPurpose
compiler.skill.md29Compile/build-check the workspace (vox_validate_file, vox_check_workspace)
git.skill.md32Git workflow + custom file-ownership/claim locking
memory.skill.md33Persistent agent memory: facts, logs, knowledge graph, sessions
orchestrator.skill.md40Multi-agent task orchestration (submit/status/rebalance/budget)
rag.skill.md31Visual/multimodal RAG proxy to external VLM backend
testing.skill.md29Run tests/coverage for Vox crates
testing.validate.skill.md515-stage AI delivery gate with self-healing loop (max 5 iterations)
v0.skill.md39UI components via v0.dev API (or local stub)
populi-mesh/populi.skill.md36Duplicate of §2’s populi.skill.md (see §2.4)

3.1 Selection mechanism — policy violation already in the tree

Section titled “3.1 Selection mechanism — policy violation already in the tree”

crates/vox-orchestrator-mcp/src/chat_tools/skill_catalog.rs implements a genuine three-tier progressive-disclosure system, functionally equivalent to Claude Code’s deferred-tool/ToolSearch pattern:

  • Tier 1: render_skill_catalog(&skill_entries, 64) — name+description only, capped at 64, sorted by reliability_scores descending with alphabetical fallback (deterministic for prompt-cache stability). Called at chat_tools/mod.rs:168.
  • Tier 2: vox_skill_use MCP tool (skills_tools.rs) — loads the full body on demand.
  • Pinned: render_pinned_skill — full body injected directly (32KB cap) when a skill is explicitly selected, so prompt-only models like MENS get it without a tool round-trip.

This is the right shape. The problem: selection within the cap is alphabetical/reliability-sort truncation, not relevance ranking — confirmed independently by the 2026-07-30 research (“right cap, wrong mechanism”) and by direct code reading this session.

The nearest built relevance mechanism is skill_search_index.rs, an in-memory BM25 index (SkillSearchIndex) backing vox_skill_search. This is a bespoke skill index, which AGENTS.md §0 explicitly prohibits (“richer skill retrieval… MUST be built on the existing vox-search hybrid stack… not a bespoke skill index”). Two independent findings converge on the same fix: retire the bespoke BM25 index and route both vox_skill_search and (new) relevance-ranked tier-1 selection through vox-search’s tantivy+semantic+RRF stack.

No other MAX_SKILLS-style constant exists anywhere in vox-skills, vox-skill-discovery, or vox-skill-runtime. skill_list (full SkillInfo, no cap) and the SEP-2640-style skill://index.json resource (skills_resources.rs) are both uncapped — only the injected chat-prompt catalog is capped.

vox-skill-review (per docs/superpowers/plans/2026-06-18-skill-review-gate.md) — a pre-publish gate checking frontmatter completeness, stub detection, MCP-SSOT drift, and dedup against installed skills, with a Pass/NeedsHuman verdict — was built once (commits like 6e2a055621 exist in git history) and is now orphaned: dangling, unreachable from any branch, not merged to origin/main, and crates/vox-skill-review does not exist in the current tree. This is a redo, not a from-scratch build — the prior commits are a reference implementation to recover logic from, not a clean base to rebase onto.

crates/vox-gui/ui/src/components/surfaces/SkillsPlugins/SkillsPluginsView.tsx (648 lines) — 3 tabs: Installed / Marketplace / Discovered, routed through invoke_mcp_tool (HITL-gated). Supporting: SkillDetailPanel.tsx, hooks/useInstalledSkills.ts, lib/installedSkills.ts, lib/federatedSearchIndex.ts, omnibar/palette wiring (paletteSources.ts, Sidebar). No admin/audit panel for per-skill permissions, trust level, or skill_reliability telemetry — none of the 18 prior docs describe one either; the closest planned artifact was a “Discovered” tab (built) and an unscoped telemetry-scoreboard idea (never became a GUI ticket).

4. Security/provenance research — status (context, not new research)

Section titled “4. Security/provenance research — status (context, not new research)”

Both dated 2026-07-30, both verified via adversarial deep-research, both research-only (no code):

  • Marketplace security/provenance: review-time checks alone don’t stop attacks that target the gap between what’s reviewed and what runs (Tool Poisoning, Rug Pull, ATPA all documented PoCs; even OpenAI’s real human+automated GPT Store review leaves 95%+ of listings exploitable). Recommended fix: Sigstore-style provenance binding + mandatory re-verification on any post-promotion body change, on top of the sandboxing Vox already has (vox-skill-runtime’s WASM/container tiers).
  • Registry trust/curation: the official MCP Registry solves namespace ownership only (reverse-DNS/GitHub/DNS verification) and deliberately never delists for a disclosed vulnerability. Recommendation: Vox should copy the namespace model but be stricter — since Vox controls the whole stack (unlike the decentralized MCP registry), a skill_reliability failure signal should force deprecated status automatically, not just advise.

5. Summary of findings feeding the roadmap

Section titled “5. Summary of findings feeding the roadmap”

Counted, not padded — this is what 50 files and the surrounding code actually contain:

  • 1 duplicated skill file (2 locations, 2 dialects, identical body) → consolidate
  • 3 competing frontmatter dialects in the Vox-native set vs. 1 canonical dialect per AGENTS.md → migrate 22 files (14 in §2 minus the already-canonical superpowers ports’ near-miss, 9 in §3)
  • 4 orphaned/dead files shipping with no referrer (spec-document-reviewer-prompt.md, plan-document-reviewer-prompt.md, CREATION-LOG.md, and the dangling vox-skill-review crate history)
  • 1 confirmed-stale reference doc (claude-api pricing/model table)
  • 1 missing portability file (vox-axis-tools.md) blocking 13+14 superpowers skills from running under MENS
  • 2 stale tool names in vox-graph/SKILL.md (not the broader mismatch first reported — see §2.3’s correction; the vox_search_* rename is already complete in code, only vox_search_query/vox_discover were ever wrong)
  • 1 graphify skill-wiring gap (construction/read engine exists, no Vox-native skill exposes it)
  • 2 missing skills across both formats (plan/spec review, general code review)
  • 1 policy-violating bespoke index (skill_search_index.rs’s BM25 engine) to retire in favor of vox-search
  • 1 naive-selection mechanism (alphabetical/reliability truncation at cap-64) to replace with relevance ranking
  • 1 orphaned review-gate crate to rebuild
  • 2 unactioned research docs (security/provenance, registry trust) to turn into an executable gate
  • 1 missing GUI surface (permissions/trust-level/reliability admin panel)

Individually itemized, per-file remediation steps (frontmatter migration line-items, dead-file deletions, specific cross-reference fixes) are enumerated in the companion design spec’s phase task lists, where they’re actionable rather than merely catalogued.