review-skill-format
について
このスキルは、YAMLフロントマター、必須セクション、および書式をチェックすることで、SKILL.mdファイルがagentskills.io標準に準拠しているかを検証します。新規または変更されたスキルをマージ前にレビューしたり、スキルの一括監査を行ったり、プルリクエストの提出内容を検証する際にご利用ください。品質保証のための自動化された準拠チェックを実行します。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/review-skill-formatこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
Review Skill Format
Validate SKILL.md file against agentskills.io open standard. This skill checks YAML frontmatter completeness, required section presence, procedure step format (Expected/On failure blocks), line count limits, registry synchronization. Use this before merging any new or modified skill.
When Use
- New skill authored and needs format validation before merge
- Existing skill modified and needs re-validation
- Performing batch audit of all skills in a domain
- Verifying skill created by
create-skillmeta-skill - Reviewing contributor skill submission in a pull request
Inputs
- Required: Path to SKILL.md file (e.g.,
skills/setup-vault/SKILL.md) - Optional: Strictness level (
lenientorstrict, default:strict) - Optional: Whether to check registry sync (default: yes)
Steps
Step 1: Verify File Exists and Read Content
Confirm SKILL.md file exists at expected path. Read its full content.
# Verify file exists
test -f skills/<skill-name>/SKILL.md && echo "EXISTS" || echo "MISSING"
# Count lines
wc -l < skills/<skill-name>/SKILL.md
Got: File exists and content readable. Line count displayed.
If fail: File does not exist? Check path for typos. Verify skill directory exists with ls skills/<skill-name>/. Directory missing? Skill not created yet — use create-skill first.
Step 2: Check YAML Frontmatter Fields
Parse YAML frontmatter block (between --- delimiters). Verify all required and recommended fields present.
Required fields:
name— matches directory name (kebab-case)description— under 1024 characters, starts with verblicense— typicallyMITallowed-tools— comma-separated or space-separated tool list
Recommended metadata fields:
metadata.author— author namemetadata.version— semantic version stringmetadata.domain— one of domains listed inskills/_registry.ymlmetadata.complexity— one of:basic,intermediate,advancedmetadata.language— primary language ormultimetadata.tags— comma-separated, 3-6 tags, includes domain name
# Check required frontmatter fields exist
head -30 skills/<skill-name>/SKILL.md | grep -q '^name:' && echo "name: OK" || echo "name: MISSING"
head -30 skills/<skill-name>/SKILL.md | grep -q '^description:' && echo "description: OK" || echo "description: MISSING"
head -30 skills/<skill-name>/SKILL.md | grep -q '^license:' && echo "license: OK" || echo "license: MISSING"
head -30 skills/<skill-name>/SKILL.md | grep -q '^allowed-tools:' && echo "allowed-tools: OK" || echo "allowed-tools: MISSING"
Got: All four required fields present. All six metadata fields present. name matches directory name. description under 1024 characters.
If fail: Report each missing field as BLOCKING. name does not match directory name? Report as BLOCKING with expected value. description exceeds 1024 characters? Report as SUGGEST with current length.
Step 3: Locale-Specific Validation (Translations Only)
Frontmatter contains locale field? File is translated SKILL.md. Perform these additional checks. No locale field? Skip this step.
-
Translation frontmatter fields — Verify these five fields present:
locale— target locale code (e.g.,de,ja,zh-CN,es)source_locale— origin locale (typicallyen)source_commit— commit hash of English source used for translationtranslator— who or what produced translationtranslation_date— ISO 8601 date of translation
-
Prose language scan — Sample 3-5 body paragraphs (outside code blocks, frontmatter, headings). Verify prose written in target locale, not English. Ignore: code blocks, inline code, tool names, field names, file paths, English terms that have no standard translation in target language.
-
Code block identity check — Compare code blocks in translated file against English source at
skills/<skill-name>/SKILL.md. Code blocks must be identical (code is never translated). Flag any code block whose content differs from English source.
# Check translation frontmatter fields
for field in "locale:" "source_locale:" "source_commit:" "translator:" "translation_date:"; do
grep -q "^${field}\|^ ${field}" i18n/<locale>/skills/<skill-name>/SKILL.md \
&& echo "$field OK" || echo "$field MISSING"
done
Got: All five translation fields present. Body paragraphs in target locale. Code blocks match English source exactly.
If fail: Report missing translation fields as BLOCKING. Body paragraphs in English despite non-English locale? Report as BLOCKING — file has untranslated prose. Code blocks differ from English source? Report as BLOCKING — code must not be translated or modified.
Step 4: Check Required Sections
Verify all six required sections present in skill body (after frontmatter).
Required sections:
## When to Use## Inputs## Procedure(with### Step N:sub-sections)## Validation(may also appear as## Validation Checklist)## Common Pitfalls## Related Skills
# Check each required section
for section in "## When to Use" "## Inputs" "## Procedure" "## Common Pitfalls" "## Related Skills"; do
grep -q "$section" skills/<skill-name>/SKILL.md && echo "$section: OK" || echo "$section: MISSING"
done
# Validation section may use either heading
grep -qE "## Validation( Checklist)?" skills/<skill-name>/SKILL.md && echo "Validation: OK" || echo "Validation: MISSING"
Got: All six sections present. Procedure section contains at least one ### Step sub-heading.
If fail: Report each missing section as BLOCKING. Skill without all six sections is non-compliant with agentskills.io standard. Provide section template from create-skill meta-skill.
Step 5: Check Procedure Step Format
Verify each procedure step follows required pattern: numbered step title, context, code block(s), Expected:/On failure: blocks.
For each ### Step N: sub-section, check:
- Step has descriptive title (not just "Step N")
- At least one code block or concrete instruction exists
**Expected:**block present**On failure:**block present
Got: Every procedure step has both Expected: and On failure: blocks. Steps contain concrete code or instructions, not vague descriptions.
If fail: Report each step missing Expected/On failure as BLOCKING. Steps contain only vague instructions ("configure the system appropriately")? Report as SUGGEST with note to add concrete commands.
Step 6: Verify Line Count
Check that SKILL.md is within 500-line limit.
lines=$(wc -l < skills/<skill-name>/SKILL.md)
[ "$lines" -le 500 ] && echo "OK ($lines lines)" || echo "OVER LIMIT ($lines lines > 500)"
Got: Line count is 500 or fewer.
If fail: Over 500 lines? Report as BLOCKING. Recommend using refactor-skill-structure skill to extract code blocks >15 lines to references/EXAMPLES.md. Typical reduction: 20-40% by extracting extended examples.
Step 7: Check Registry Synchronization
Verify skill is listed in skills/_registry.yml under correct domain with matching metadata.
Check:
- Skill
idexists under correct domain section pathmatches<skill-name>/SKILL.mdcomplexitymatches frontmatterdescriptionpresent (may be abbreviated)total_skillscount at top of registry matches actual skill count
# Check if skill is in registry
grep -q "id: <skill-name>" skills/_registry.yml && echo "Registry: FOUND" || echo "Registry: NOT FOUND"
# Check path
grep -A1 "id: <skill-name>" skills/_registry.yml | grep -q "path: <skill-name>/SKILL.md" && echo "Path: OK" || echo "Path: MISMATCH"
Got: Skill listed in registry under correct domain with matching path and metadata. Total count accurate.
If fail: Not found in registry? Report as BLOCKING. Provide registry entry template:
- id: skill-name
path: skill-name/SKILL.md
complexity: intermediate
language: multi
description: One-line description
Checks
- SKILL.md file exists at expected path
- YAML frontmatter parses without errors
- All four required frontmatter fields present (
name,description,license,allowed-tools) - All six metadata fields present (
author,version,domain,complexity,language,tags) -
namefield matches directory name -
descriptionis under 1024 characters - All six required sections present (When to Use, Inputs, Procedure, Validation, Common Pitfalls, Related Skills)
- Every procedure step has Expected: and On failure: blocks
- Line count is 500 or fewer
- Skill listed in
_registry.ymlwith correct domain, path, metadata -
total_skillscount in registry is accurate - (Translations only) All five translation frontmatter fields present (
locale,source_locale,source_commit,translator,translation_date) - (Translations only) Body paragraphs in target locale, not English
- (Translations only) Code blocks identical to English source
Pitfalls
- Check frontmatter with regex only: YAML parsing can be subtle.
description: >multiline block looks different fromdescription: "inline". Check both patterns when searching for fields. - Miss the Validation section variant: Some skills use
## Validation Checklistinstead of## Validation. Both acceptable; check for either heading. - Forget registry total count: After add a skill to registry,
total_skillsnumber at top must also be incremented. Common miss in PRs. - Name vs title confusion:
namefield must be kebab-case matching directory name.# Titleheading is human-readable and can differ (e.g., name:review-skill-format, title:# Review Skill Format). - Lenient mode skip blockers: Even in lenient mode, missing required sections and frontmatter fields should still be flagged. Lenient mode only relaxes style and metadata recommendations.
- Translated skills with English prose: File with non-English frontmatter, non-English headings, English body paragraphs passes all structural checks. Always verify body text language for translated skills —
localefield in frontmatter signals that prose must be in target language, not English.
See Also
create-skill— Canonical format specification; use as authoritative reference for what valid SKILL.md looks likeupdate-skill-content— After format validation passes, use this to improve content qualityrefactor-skill-structure— When skill fails line count check, use this to extract and reorganizereview-pull-request— When reviewing PR that adds or modifies skills, combine PR review with format validation
GitHub リポジトリ
関連スキル
content-collections
メタこのスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。
polymarket
メタこのスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。
creating-opencode-plugins
メタこのスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。
sglang
メタSGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。
