agentic/code/addons/aiwg-utils/skills/validate-metadata/SKILL.md
Validate AIWG extension definitions against the metadata schema and report errors with field names, line numbers, and remediation hints
npx skillsauth add jmagly/aiwg validate-metadataInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You validate all AIWG extension definitions (agents, skills, commands, behaviors) against the metadata schema. You report errors with field names, line numbers, and remediation hints — and return a clean pass/fail summary.
Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):
| Pattern | Example | Action |
|---------|---------|--------|
| Validate request | "validate metadata" | Run aiwg validate-metadata |
| Check request | "check metadata" | Run aiwg validate-metadata |
| Validate extensions | "validate extensions" | Run aiwg validate-metadata |
| Quality check | "metadata quality" | Run aiwg validate-metadata |
| Single file | "validate this agent file" | Run aiwg validate-metadata <path> |
| Directory-scoped | "validate just security skills" | Run aiwg validate-metadata --recursive agentic/code/frameworks/security-engineering/skills |
| CI mode | "validate metadata for CI" | Run aiwg validate-metadata --ci --format json --strict |
When triggered:
Extract intent:
Run the appropriate command:
# Default: validate all extensions
aiwg validate-metadata
# Recursive validation of a directory
aiwg validate-metadata --recursive agentic/code/frameworks/security-engineering/skills
# Strict CI output
aiwg validate-metadata --ci --format json --strict
# Validate a single file
aiwg validate-metadata agentic/code/addons/aiwg-utils/skills/my-skill/SKILL.md
Report the result — list all errors with field, location, and fix hint; summarize pass/fail count.
| Check | Description |
|-------|-------------|
| Required fields | id, name, description, platforms present |
| ID format | Lowercase, hyphen-separated, no spaces |
| Version format | CalVer (YYYY.M.PATCH) for versioned extensions |
| Trigger phrases | At least one trigger phrase defined per skill |
| Tool declarations | Tools listed in allowedTools are valid AIWG tools |
| Platform list | All platforms are valid (claude-code, hermes, openclaw, etc.) |
| Handler path | handler field points to an existing file (for commands) |
| Duplicate IDs | No two extensions share the same ID |
Errors are reported in this format:
ERROR skills/my-skill/SKILL.md:12 missing required field: `id`
Fix: Add `id: my-skill` to the YAML frontmatter
WARN agents/my-agent/AGENT.md:3 version format invalid: `1.0.0`
Fix: Use CalVer format: `2026.4.0`
PASS commands/my-command/COMMAND.md
User: "Run metadata validation before I tag the release"
Extraction: Full validation, no scope restriction
Action:
aiwg validate-metadata
Response: "Validated 47 extension definitions. 45 passed. 2 errors found:
skills/soul-blend/SKILL.md line 4: platforms list is empty — add at least one platformagents/test-engineer/AGENT.md line 9: duplicate ID 'test-engineer' conflicts with agents/testing/test-engineer/AGENT.md"User: "Check only the security-engineering skills metadata"
Extraction: Directory-scoped to security-engineering skills
Action:
aiwg validate-metadata --recursive agentic/code/frameworks/security-engineering/skills
Response: "Validated 38 skill definitions. All passed."
User: "Is this agent definition valid?" (with path provided)
Extraction: Single file path
Action:
aiwg validate-metadata agentic/code/addons/aiwg-utils/skills/new-skill/SKILL.md
Response: "1 error: missing required field id in frontmatter (line 3). Add id: new-skill to fix."
Action:
aiwg validate-metadata --ci --format json --strict
Output:
{
"total": 47,
"passed": 45,
"failed": 2,
"errors": [
{ "file": "skills/soul-blend/SKILL.md", "line": 4, "field": "platforms", "message": "platforms list is empty" }
]
}
data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.