Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Security
skill-validator-omni
Try itValidates skills against seven authoring standards across all agents. Use to audit/certify.
What it does
The compliance gate for agent skills: validates a skill, a plugin, or a whole repo against seven standards in one command. Flagship: **Agent Plugins 1.0.0** (agent-plugins.org) — the open, vendor-neutral spec for packaging Agent Skills and MCP servers into portable plugins, published by a TSC of Co…
The skill document
Skill Validator
The compliance gate for agent skills: validates a skill, a plugin, or a whole repo against seven standards in one command. Flagship: Agent Plugins 1.0.0 (agent-plugins.org) — the open, vendor-neutral spec for packaging Agent Skills and MCP servers into portable plugins, published by a TSC of Core Maintainers from Amazon, Cursor, Microsoft, OpenAI, and Vercel. Also enforces the agentskills.io spec, Anthropic best practices, Hermes in-repo standard, OpenAgent skills.sh discoverability, Claude Code marketplace installability, and the OpenAI Codex skill format. Ships as npx skill-validator-omni (Node, zero Python deps) and as scripts/validate.js for local use.
This is a validation/audit tool. Creation/scaffolding is a secondary workflow — the differentiator is certifying that a skill will install and work across agents, not generating SKILL.md files.
When to Use
- User asks to "validate", "audit", "check", "lint", or "certify" a skill
- User wants to know if a skill/repo is installable via
npx skills addor Claude Code - Before publishing a skill repo to skills.sh or a Claude marketplace
- As a CI gate on a skills repo (exit codes: 0 pass, 1 failed checks, 2 usage error)
- Creating a new skill that must be standards-compliant from day one (scaffold, then validate)
Don't Use For
- Subjective quality review / multi-agent QA — use skill-engineer (quality gates, Designer/Reviewer/Tester)
- Skill authoring inside the hermes-agent repo itself — use hermes-agent-skill-authoring (repo tests + docs regen)
- Pure creation with no standards concern —
skill-creator(anthropics/skills) does that
Prerequisites
- Node.js >= 18 (runs
scripts/validate.jsor the npm CLI) - Published CLI:
npx skill-validator-omni [--json](fetched from npm; needs only Node) - Local script:
node scripts/validate.js(needs theyamlpackage — the repo'snpm installcovers it)
What Gets Validated
| Standard | Checks |
|---|---|
| Agent Plugins 1.0.0 | plugin.json manifest: canonical $schema (agent-plugins.org/schemas/1.0.0/plugin.schema.json), name format (1-64, lowercase alnum/hyphen/dot, no --/..), closed field set (unknown fields flagged), keywords/author typing, skills/ layout (immediate children), optional mcp.json parses |
| agentskills.io spec | name == dir, name format ([a-z0-9]+(-[a-z0-9]+)*, <=64, no --), description 1-1024, compatibility <=500, allowed-tools typing, body non-empty |
| Anthropic best practices | third-person description, body < 500 lines, progressive disclosure (supporting dirs required above 200 lines) |
| Hermes in-repo | description <=60 + ends with ., version/author/license/platforms, metadata.hermes.{tags, related_skills}, required sections |
| OpenAgent skills.sh | discoverable layout (root SKILL.md, skills/ up to 3 levels, agent dirs), every dir name == frontmatter name, well-known index $schema |
| Claude Code | marketplace.json (JSON + name + plugins), plugin.json + /skills/ per plugin, .claude/skills/ project layout |
| OpenAI Codex | frontmatter limited to name/description/license/allowed-tools/metadata (mirrors openai/skills quick_validate.py), hyphen-case name == dir (<=64, no edge/consecutive hyphens), name/desc present, description no angle brackets <=1024 + trigger words (docs guidance), body < 500 lines, no ancillary docs (README/INSTALLATION_GUIDE/QUICK_REFERENCE/CHANGELOG), agents/openai.yaml keys (interface/policy/dependencies), repo .agents/skills/.codex/skills/plugin.json layout |
Every skill discovered in a repo (nested skills///) gets the full suite — a broken skill can't hide inside a big repo.
Installability (what "installable" means)
A skill project passes install checks when it satisfies at least one discoverable layout:
- Agent Plugins 1.0.0 — portable plugin package:
plugin.jsonat the plugin root with$schema: https://agent-plugins.org/schemas/1.0.0/plugin.schema.json; skills inskills//SKILL.md(immediate children, agentskills.io format); optionalmcp.jsonfor MCP servers. Loadable by compatible clients from Amazon, Cursor, Microsoft, OpenAI, and Vercel ecosystems. npx skills add(skills.sh CLI) discovers from:SKILL.mdat repo root (single-skill repo)skills//SKILL.md(container dirs walked up to 3 levels)- agent dirs:
.claude/skills/,.agents/skills/,.cursor/skills/,.codex/skills/,.gemini/skills/,.config/opencode/skills/ - HTTP publishers:
.well-known/agent-skills/index.jsonwith$schema: https://schemas.agentskills.io/discovery/0.2.0/schema.json(legacy:.well-known/skills/)
- Claude Code — plugin marketplace:
.claude-plugin/marketplace.json(name + plugins) at root, added with/plugin marketplace add /(CLIclaude plugin marketplace add github.com//), then/plugin install @; each plugin needs.claude-plugin/plugin.json(name) +/skills//SKILL.md. Repos with only.claude/skills//SKILL.mdauto-discover when Claude Code runs there. - OpenAI Codex — Codex CLI auto-scans
.agents/skillsfrom the working directory up to the repo root (legacy:.codex/skills); distro beyond a local repo goes through Agent Plugins (plugin.json, covered above) ornpx skills add / -a codex. Skill frontmatter must matchopenai/skillsquick_validate.py: onlyname/description/license/allowed-tools/metadataallowed.
Procedure
- Validate —
npx skill-validator-omni(ornode scripts/validate.js). Read the PASS/FAIL report. Add-sto run one standard (repeatable;--list-standardsshows names;--allis the default). - Fix failures — each check prints the offending detail; fix frontmatter/structure and re-run until exit 0.
- CI gate —
npx skill-validator-omni --json | jq -e '.ok'(JSON report, exit 1 on failure). - Verify installability for publish —
npx skills add / --list -ymust list your skills; for Claude, confirm the marketplace/plugin layouts above. - Scaffold (secondary) — copy
references/frontmatter-template.mdinto a newSKILL.md, fill fields, then validate from step 1.
Common Edge Cases
- Validating a repo vs a single skill — point at either; the tool discovers
skills/, agent dirs, and plugin dirs automatically - Skill with no
metadata.hermes— Hermes checks fail; that's correct if you publish outside Hermes, but the repo-level skill still gets spec + Anthropic + OpenAgent checks yamlpackage missing — install deps:npm installin the skill-validator-omni repo, or use the published CLI which bundles it- Windows — the npm CLI needs only Node (no python3 requirement)
Pitfalls
- Treating open-agent.io (the AFK-surf product site) as a standards source — it publishes NO skill spec. The real "open agent" standards are agent-plugins.org (Agent Plugins 1.0.0, vendor-neutral, Amazon/Cursor/Microsoft/OpenAI/Vercel) and skills.sh (schema at
schemas.agentskills.io), both enforced by this validator - Confusing the Agent Plugins manifest with a Claude plugin manifest — Agent Plugins uses root
plugin.json+$schema: agent-plugins.org/schemas/1.0.0/plugin.schema.json(closed field set); Claude uses.claude-plugin/marketplace.json+.claude-plugin/plugin.json. Both get checked - Claiming "installable" without the layout:
npx skills adddiscovers rootSKILL.md,skills/, or agent dirs — a skill buried inexamples/is NOT discoverable; a Claude marketplace needs.claude-plugin/marketplace.json, not just plugin code - Letting the repo copy of
scripts/validate.jsdrift fromgithub.com/adelpro/skill-validator-omni/src/validate.js— sync after changing either side - Adding the progressive-disclosure requirement to tiny skills — it only applies above 200 lines
- Expecting one SKILL.md to satisfy both Hermes and Codex frontmatter — Hermes requires
version/author/platforms; Codex's closed field set (name/description/license/allowed-tools/metadata) rejects them. The standards conflict by design; the per-standard report shows which side a skill meets, so don't "fix" a Codex flag by deleting Hermes fields (and vice-versa)
Verification
npx skill-validator-omniexits 0 with no failures on a compliant skill; report ends with per-standard scores ([PASS] Agent Plugins 1.0.0: 7/7etc.)- JSON mode carries a
standardsarray (one object per standard: passed/failed/total/ok) for per-standard CI gating:jq -e '.standards["Agent Plugins 1.0.0"].ok' node scripts/validate.json this skill directory passes all checks except the Codex frontmatter restriction — expected: this is a Hermes-flavoured skill, and Hermes requiresversion/author/platformsfields that Codex's closed field set rejects. The conflict is per-standard by design; run-s codexvs-s hermesto see each side- Repo test suite green:
node --testin~/projects/skill-validator-omni(25 tests: spec, OpenAgent, well-known, Claude, Agent Plugins, Codex, fallback parser) - Broken cases proven: name mismatch → exit 1, invalid marketplace.json → FAIL, missing well-known
$schema→ FAIL, Agent Plugins bad name/missing$schema/unknown field → FAIL, Codex unexpected frontmatter field/angle-bracket description/ancillary docs → FAIL scripts/validate.jsmatchesgithub.com/adelpro/skill-validator-omni/src/validate.js
Related skills
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Site audit, content writing, and competitor analysis for organic search rankings.
More from adelpro
Browse all skillsDiagnose and write content built to be noticed — not just well-written.
Detect behavioral patterns in agent sessions and turn them into confidence-scored instincts and optimizations.
Self-hosted private web search using SearXNG. Use when privacy is important, external search APIs are blocked or paid, or you need search without tracking.
Review and fix AI-generated or AI-translated Arabic so it reads as fluent, native Modern Standard Arabic (MSA) instead of translated/calqued output. Trigger on translating INTO Arabic, writing in Arabic (اكتب بالعربية / اكتبلي بالعربية), writing original Arabic, or reviewing/correcting/proofreading Arabic (‘راجع لي هذا’, 'صحح العربية', 'ترجم هذا للعربية', any Arabic quality check), and proactively before outputting Arabic prose longer than 2-3 sentences. Covers: Latin-script leakage, English sentence-structure calque, word choice/terminology, morphology/agreement, punctuation, hamza spelling, dialectal leakage into MSA. Ships a self-maintained register profile (voice-profile.md) for tone and MSA-vs-Darija choice, a runnable checklist, a terminology glossary, and an accumulating failure log. Register-focused; a separate style/voice skill may layer after it.
A multi-agent deliberation hub with 3 core agents and extensible extended agents. Activates on explicit request, can suggest calling user workspace skills with consent.
Daily AI agent optimization tips, tricks and self-improvement strategies. Learn cost-saving, speed, memory and automation best practices from the AI agent community. Use when: you want daily tips to optimize your AI agent, reduce costs, improve performance, or learn automation workflows. Don't use when: you need immediate config changes - use openclaw-agent-optimize for deep audits.