umbraco-skill-validator について
リポジトリ内の SKILL.md を検査し、リンク切れ、参照漏れ、不正なパスやインポートを確認するスキルです。決定論的な検証に加え、AI による修正案を提示し、承認後に適用する流れを備えています。
主な機能
- 01外部 URL と内部リンクの確認
- 02スキル参照とファイルパスの検証
- 03Umbraco とインポートパスの確認
- 04構造化された JSON レポート
- 05承認用の修正案を提示
活用シーン
- 01リリース前にスキルファイルを点検
- 02CI/CD でリンク検証を実行
- 03編集前に修正案を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ umbraco/ umbraco-cms-backoffice-skills --skill umbraco-skill-validatorインストール後、Claude Code で/umbraco-skill-validatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/.gitignorepackage-lock.jsonpackage.jsonvalidate-links.ts詳細
スキルコンテンツバリデーター
リポジトリ内のすべての SKILL.md ファイルを検証し、壊れたリンク、存在しない参照、無効なパスを検出します。
このスキルの機能
- 決定論的バリデーションスクリプトを実行 - すべてのリンクを高速かつ一貫してチェック
- 構造化レポートを生成 - 検出されたすべての問題を含む JSON 出力
- 修正用サブエージェントを起動 - 問題に対する AI による修正提案
- 修正計画を提示 - 承認用の diff 形式の変更
- 承認された修正を実行 - ユーザーが承認した変更のみを適用
検証チェック
| チェック種別 | 説明 |
|---|---|
| 外部 URL | HTTP HEAD リクエストでアクセス可能性を確認 |
| スキル参照 | 参照されたスキルが存在するか確認(例: umbraco-dashboard) |
| 内部リンク | 相対パスが解決できるか確認(例: patterns/foo.md) |
| ファイルパス | ローカルにない場合、GitHub API 経由で Umbraco-CMS のパスを確認 |
| インポートパス | @umbraco-cms/backoffice/* インポートが有効か確認 |
バリデーターの実行
スラッシュコマンド経由
/validate-skills
スクリプトを直接実行(CI/CD)
cd .claude/skills/umbraco-skill-validator/scripts
npm install
npm run validate
レポート形式
スクリプトは JSON を出力し、次のようにフォーマットされます:
# 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
## 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: ...
検出されるリンクパターン
外部 URL
https://docs.umbraco.com/...
https://github.com/umbraco/...
スキル参照
`umbraco-dashboard`
`umbraco-workspace`
内部パターンリンク
[Pattern Name](patterns/pattern-name.md)
[Example](examples/example-name/)
ファイルパス
/Umbraco-CMS/src/Umbraco.Web.UI.Client/...
src/packages/core/...
インポートパス(コードブロック内)
import { ... } from '@umbraco-cms/backoffice/notification';
ワークフローの手順
このスキルが呼び出された場合:
-
バリデーションスクリプトを実行
cd .claude/skills/umbraco-skill-validator/scripts npx tsx validate-links.ts -
JSON 出力を読み取る - stdout または
validation-report.jsonから -
上記のテンプレートを使って markdown レポートとしてフォーマット
-
問題が見つかった場合、
skill-content-fixerエージェントを起動:- JSON レポートをコンテキストとして渡す
- diff を含む修正提案をリクエストする
-
修正計画を提示 - AskUserQuestion でユーザーに提示
-
承認された修正のみを実行 - Edit ツールを使用
エッジケース
- レート制限: スクリプトは 100ms の遅延を挟んで URL チェックをバッチ処理します
- リダイレクト: 新しい URL の提案とともに警告として報告されます
- Umbraco-CMS が存在しない: GitHub API にフォールバックします
- タイムアウト: URL リクエストごとに 5 秒のタイムアウト
- 大規模リポジトリ: ファイルを 10 件ずつのバッチで処理します
コメント
Markdown 対応