mcpField
U
umbraco-skill-validator

umbraco-skill-validator

github.com/umbracoTesting & quality27378 installsUpdated 6w ago
Repository

About umbraco-skill-validator

A skill for checking repository SKILL.md files for broken links, missing skill references, invalid paths, and imports. It combines deterministic validation with an AI fixer workflow that proposes changes for approval before applying them.

Key features

  1. 01Check external URLs and internal links
  2. 02Verify skill references and file paths
  3. 03Validate Umbraco and import paths
  4. 04Produce structured JSON reports
  5. 05Propose fixes for approval

Use cases

  1. 01Check skill files before a release
  2. 02Run link validation in CI/CD
  3. 03Review suggested corrections before editing

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/umbraco/umbraco-cms-backoffice-skills --skill umbraco-skill-validator

After installing, type/umbraco-skill-validatorin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

scripts/
.gitignore
package-lock.json
package.json
validate-links.ts

Details

From the project README

Skill Content Validator

Validates all SKILL.md files in the repository for broken links, missing references, and invalid paths.

What This Skill Does

  1. Runs deterministic validation script - Fast, consistent checking of all links
  2. Generates structured report - JSON output with all issues found
  3. Spawns fixer subagent - AI-powered fix suggestions for issues
  4. Presents fix plan - Diff-style changes for approval
  5. Executes approved fixes - Only applies changes user approves

Validation Checks

Check TypeDescription
External URLsHTTP HEAD request to verify accessibility
Skill referencesVerify referenced skills exist (e.g., umbraco-dashboard)
Internal linksCheck relative paths resolve (e.g., patterns/foo.md)
File pathsVerify Umbraco-CMS paths via GitHub API if not local
Import pathsCheck @umbraco-cms/backoffice/* imports are valid

Running the Validator

Via Slash Command
/validate-skills
Via Script Directly (CI/CD)
cd .claude/skills/umbraco-skill-validator/scripts
npm install
npm run validate

Report Format

The script outputs JSON that gets formatted as:

# Skill Validation Report

## Summary
- Skills scanned: 25
- Issues found: 3
- Auto-fixable: 2

## Issues by Skill

### `umbraco-dashboard`
| Line | Type | Issue | Status |
|------|------|-------|--------|
| 45 | Broken URL | [example-broken-url] returns 404 | :x: |

### `umbraco-tree`
| Line | Type | Issue | Status |
|------|------|-------|--------|
| 72 | Missing skill | [example-missing-skill] not found | :x: |

Fix Plan Format

When issues are found, the fixer subagent generates:

# Fix Plan

## Fix 1: Update broken URL
**File:** plugins/.../umbraco-dashboard/SKILL.md
**Line:** 45
**Action:** Replace with current documentation URL

- [Dashboard docs][old-url]
+ [Dashboard docs][new-url]

## Approval
- [ ] Fix 1: Update broken URL
- [ ] Fix 2: ...

Link Patterns Detected

External URLs
https://docs.umbraco.com/...
https://github.com/umbraco/...
Skill References
`umbraco-dashboard`
`umbraco-workspace`
Internal Pattern Links
[Pattern Name](patterns/pattern-name.md)
[Example](examples/example-name/)
File Paths
/Umbraco-CMS/src/Umbraco.Web.UI.Client/...
src/packages/core/...
Import Paths (in code blocks)
import { ... } from '@umbraco-cms/backoffice/notification';

Workflow Instructions

When this skill is invoked:

  1. Run the validation script

    cd .claude/skills/umbraco-skill-validator/scripts
    npx tsx validate-links.ts
    
  2. Read the JSON output from stdout or validation-report.json

  3. Format as markdown report using the template above

  4. If issues found, spawn the skill-content-fixer agent:

    • Pass the JSON report as context
    • Request fix suggestions with diffs
  5. Present fix plan to user with AskUserQuestion

  6. Execute only approved fixes using Edit tool

Edge Cases

  • Rate limiting: Script batches URL checks with 100ms delays
  • Redirects: Reported as warnings with new URL suggestion
  • Missing Umbraco-CMS: Falls back to GitHub API
  • Timeouts: 5 second timeout per URL request
  • Large repos: Processes files in batches of 10

Comments

Markdown supported