review-skill-format
について
このスキルは、SKILL.mdファイルがagentskills.io標準に準拠しているか検証します。YAMLフロントマター、必須セクション、行数制限、手順ステップの書式、レジストリ同期をチェックします。新規スキルのレビュー、変更済みスキルの再検証、ドメイン監査、コントリビューターPRの確認にご利用ください。
クイックインストール
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 vs agentskills.io open std. Checks YAML frontmatter completeness, required section presence, proc step format (Expected/On failure blocks), line count limits, registry sync. Use before merging any new or modified skill.
Use When
- New skill authored + needs format validation before merge
- Existing skill modified + needs re-validation
- Batch audit of all skills in domain
- Verify skill created by
create-skillmeta-skill - Review contributor skill submission in PR
In
- Required: Path to SKILL.md (e.g.
skills/setup-vault/SKILL.md) - Optional: Strictness level (
lenientorstrict, defaultstrict) - Optional: Check registry sync (default yes)
Do
Step 1: Verify File + Read
Confirm SKILL.md exists at expected path + read 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
→ File exists + content readable. Line count displayed.
If err: file doesn't exist → check path typos. Verify dir exists ls skills/<skill-name>/. Dir missing → skill not created → use create-skill first.
Step 2: Check Frontmatter Fields
Parse YAML frontmatter (between --- delimiters) + verify all required + recommended fields present.
Required:
name— matches dir name (kebab-case)description— < 1024 chars, starts w/ verblicense— typicallyMITallowed-tools— comma or space-separated tool list
Recommended metadata:
metadata.author— author namemetadata.version— semantic ver stringmetadata.domain— one of domains inskills/_registry.ymlmetadata.complexity—basic,intermediate,advancedmetadata.language— primary lang ormultimetadata.tags— comma-separated, 3-6 tags, includes domain
# 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"
→ All 4 required fields present. All 6 metadata present. name matches dir. description < 1024 chars.
If err: report each missing as BLOCKING. name doesn't match dir → BLOCKING w/ expected value. description > 1024 chars → SUGGEST w/ current length.
Step 3: Locale-Specific Validation (Translations Only)
Frontmatter has locale field → file is translated SKILL.md. Perform additional checks. No locale → skip.
-
Translation frontmatter fields — Verify these 5 present:
locale— target locale code (e.g.de,ja,zh-CN,es)source_locale— origin (typicallyen)source_commit— commit hash of English source usedtranslator— who/what producedtranslation_date— ISO 8601 date
-
Prose lang 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 w/ no std translation.
-
Code block identity check — Compare code blocks in translated vs English source at
skills/<skill-name>/SKILL.md. Code blocks must be identical (code never translated). Flag any code block content differing from English.
# 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
→ All 5 translation fields present. Body paragraphs in target locale. Code blocks match English source exactly.
If err: report missing translation fields as BLOCKING. Body paragraphs in English despite non-English locale → BLOCKING — file has untranslated prose. Code blocks differ from English source → BLOCKING — code must not be translated/modified.
Step 4: Check Required Sections
Verify all 6 required sections in skill body (after frontmatter).
Required:
## When to Use## Inputs## Procedure(w/### Step N:sub-sections)## Validation(may also## 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"
→ All 6 sections present. Procedure section has ≥1 ### Step sub-heading.
If err: report each missing as BLOCKING. Skill w/o all 6 = non-compliant w/ agentskills.io. Provide section template from create-skill.
Step 5: Check Procedure Step Format
Verify each proc step follows pattern: numbered title, ctx, code block(s), Expected/On failure blocks.
For each ### Step N: sub-section, check:
- Step has descriptive title (not just "Step N")
- ≥1 code block or concrete instr exists
**Expected:**block present**On failure:**block present
→ Every proc step has both Expected + On failure. Steps have concrete code or instr, not vague descriptions.
If err: report each step missing Expected/On failure as BLOCKING. Steps w/ only vague instrs ("configure system appropriately") → SUGGEST w/ note to add concrete cmds.
Step 6: Verify Line Count
Check SKILL.md ≤ 500-line limit.
lines=$(wc -l < skills/<skill-name>/SKILL.md)
[ "$lines" -le 500 ] && echo "OK ($lines lines)" || echo "OVER LIMIT ($lines lines > 500)"
→ Line count ≤ 500.
If err: > 500 → BLOCKING. Recommend refactor-skill-structure to extract code blocks > 15 lines → references/EXAMPLES.md. Typical reduction: 20-40% by extracting extended examples.
Step 7: Check Registry Sync
Verify skill listed in skills/_registry.yml under correct domain w/ matching metadata.
Check:
- Skill
idexists under correct domain section pathmatches<skill-name>/SKILL.mdcomplexitymatches frontmatterdescriptionpresent (may be abbreviated)total_skillscount at top 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"
→ Skill listed under correct domain w/ matching path + metadata. Total count accurate.
If err: not found in registry → BLOCKING. Provide entry template:
- id: skill-name
path: skill-name/SKILL.md
complexity: intermediate
language: multi
description: One-line description
Check
- SKILL.md file exists at expected path
- YAML frontmatter parses w/o errors
- All 4 required frontmatter present (
name,description,license,allowed-tools) - All 6 metadata present (
author,version,domain,complexity,language,tags) -
namefield matches dir name -
description< 1024 chars - All 6 required sections (When to Use, Inputs, Procedure, Validation, Common Pitfalls, Related Skills)
- Every proc step has Expected: + On failure:
- Line count ≤ 500
- Skill listed in
_registry.ymlw/ correct domain, path, metadata -
total_skillscount in registry accurate - (Translations only) All 5 translation 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
Traps
- Check frontmatter w/ regex only: YAML parsing subtle.
description: >multiline diff fromdescription: "inline". Check both patterns when searching. - Miss Validation section variant: Some skills use
## Validation Checklistnot## Validation. Both acceptable; check for either. - Forget registry total count: After adding skill to registry,
total_skillsmust increment. Common miss in PRs. - Name vs title confusion:
namefield = kebab-case matching dir.# Titleheading = human-readable + can differ (e.g. name:review-skill-format, title:# Review Skill Format). - Lenient mode skip blockers: Even lenient, missing required sections + frontmatter still flagged. Lenient only relaxes style + metadata.
- Translated skills w/ English prose: File w/ non-English frontmatter, headings, English body passes all structural checks. Always verify body lang for translated —
localefield signals prose must be in target lang not English.
→
create-skill— canonical format spec; authoritative ref for valid SKILL.mdupdate-skill-content— after format validation passes, improve content qualityrefactor-skill-structure— skill fails line count → extract + reorganizereview-pull-request— reviewing PR adding/modifying skills → combine w/ 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を選択してください。
