review-skill-format
À propos
Cette compétence valide les fichiers SKILL.md par rapport au standard agentskills.io, en vérifiant le frontmatter YAML, les sections obligatoires et la conformité du format. Utilisez-la pour examiner de nouvelles compétences ou des compétences modifiées avant leur fusion, ou pour auditer en masse des compétences existantes. Elle garantit que les compétences répondent aux exigences de formatage, de procédure et de synchronisation du registre.
Installation rapide
Claude Code
Recommandé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-formatCopiez et collez cette commande dans Claude Code pour installer cette compétence
Documentation
評技能格式
對 SKILL.md 文件依 agentskills.io 開放標準作驗證。本技能檢 YAML frontmatter 完整性、必需段之存在、程序步格式(Expected/On failure 塊)、行數限與登記簿同步。任何新或已修之技能合併前用之。
適用時機
- 新技能已撰且需於合併前作格式驗證
- 既有技能已修需重驗
- 對某領域所有技能作批次稽核
- 驗
create-skill元技能所建之技能 - 評貢獻者於拉取請求中所交之技能
輸入
- 必要:SKILL.md 文件之路徑(如
skills/setup-vault/SKILL.md) - 選擇性:嚴格度(
lenient或strict,預設strict) - 選擇性:是否檢登記簿同步(預設是)
步驟
步驟一:驗文件存且讀內容
確 SKILL.md 文件存於預期路徑並讀其完整內容。
# Verify file exists
test -f skills/<skill-name>/SKILL.md && echo "EXISTS" || echo "MISSING"
# Count lines
wc -l < skills/<skill-name>/SKILL.md
預期: 文件存在且內容可讀。行數已顯。
失敗時: 若文件不存,檢路徑之錯字。以 ls skills/<skill-name>/ 驗技能目錄存在。若目錄缺,技能尚未建——先用 create-skill。
步驟二:檢 YAML frontmatter 欄位
解析 YAML frontmatter 塊(--- 分隔符之間)並驗所有必需與建議欄位皆存。
必需欄位:
name— 與目錄名相符(kebab-case)description— 1024 字元下,以動詞起license— 通常MITallowed-tools— 逗號或空格分隔之工具清單
建議元資料欄位:
metadata.author— 作者名metadata.version— 語意化版本字串metadata.domain—skills/_registry.yml所列領域之一metadata.complexity—basic、intermediate、advanced之一metadata.language— 主要語言或multimetadata.tags— 逗號分隔,3-6 標籤,含領域名
# 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"
預期: 四必需欄位皆存。六元資料欄位皆存。name 與目錄名相符。description 於 1024 字元下。
失敗時: 將每缺欄位報為 BLOCKING。若 name 與目錄名不符,報為 BLOCKING 附預期值。若 description 逾 1024 字元,報為 SUGGEST 附當前長度。
步驟三:locale 特定驗證(僅譯本)
若 frontmatter 含 locale 欄位,文件為譯之 SKILL.md。作此額外檢。若無 locale,略此步。
-
譯之 frontmatter 欄位 —— 驗五欄位皆存:
locale— 目標 locale 碼(如de、ja、zh-CN、es)source_locale— 原 locale(通常en)source_commit— 譯所用之英源 commit hashtranslator— 譯者translation_date— 譯之 ISO 8601 日期
-
散文語言掃描 —— 採樣 3-5 段本文(代碼塊、frontmatter、標題之外)。驗散文以目標 locale 撰,非英。略:代碼塊、行內代碼、工具名、欄位名、文件路徑、目標語無標準翻譯之英術語。
-
代碼塊一致性檢 —— 與
skills/<skill-name>/SKILL.md之英源比對譯本之代碼塊。代碼塊須相同(代碼永不譯)。標其內容與英源異之代碼塊。
# 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
預期: 五譯欄位皆存。本文段於目標 locale。代碼塊與英源精合。
失敗時: 缺譯欄位報為 BLOCKING。若雖 locale 為非英但本文段為英,報為 BLOCKING ——文件含未譯之散文。若代碼塊異於英源,報為 BLOCKING ——代碼不可譯或修。
步驟四:檢必需段
驗六必需段於技能本體(frontmatter 之後)皆存。
必需段:
## When to Use## Inputs## Procedure(含### Step N:子段)## Validation(亦可現為## 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"
預期: 六段皆存。Procedure 段含至少一 ### Step 子標題。
失敗時: 將每缺段報為 BLOCKING。無六段之技能不合 agentskills.io 標準。提供 create-skill 元技能之段模板。
步驟五:檢程序步格式
驗每程序步循必需模式:編號之步題、上下文、代碼塊、Expected:/On failure: 塊。
對每 ### Step N: 子段,檢:
- 步有描述性標題(非僅「Step N」)
- 至少一代碼塊或具體指令存
**Expected:**塊存**On failure:**塊存
預期: 每程序步皆有 Expected: 與 On failure: 塊。步含具體代碼或指令,非模糊描述。
失敗時: 將每缺 Expected/On failure 之步報為 BLOCKING。若步含模糊指令(「適當配置系統」),報為 SUGGEST 附加具體命令之注。
步驟六:驗行數
檢 SKILL.md 於 500 行限內。
lines=$(wc -l < skills/<skill-name>/SKILL.md)
[ "$lines" -le 500 ] && echo "OK ($lines lines)" || echo "OVER LIMIT ($lines lines > 500)"
預期: 行數 500 或更少。
失敗時: 若逾 500 行,報為 BLOCKING。建議用 refactor-skill-structure 技能將逾 15 行之代碼塊抽至 references/EXAMPLES.md。典型減幅:藉抽延伸例 20-40%。
步驟七:檢登記簿同步
驗技能列於 skills/_registry.yml 之正確領域下且元資料相符。
檢:
- 技能
id存於正確領域段下 path合<skill-name>/SKILL.mdcomplexity合 frontmatterdescription存(可縮寫)- 登記簿頂之
total_skills數合實際技能數
# 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"
預期: 技能列於登記簿正確領域下,附符合之路徑與元資料。總計準確。
失敗時: 若登記簿中未見,報為 BLOCKING。提供登記簿條目模板:
- id: skill-name
path: skill-name/SKILL.md
complexity: intermediate
language: multi
description: One-line description
驗證
- SKILL.md 文件存於預期路徑
- YAML frontmatter 解析無誤
- 四必需 frontmatter 欄位皆存(
name、description、license、allowed-tools) - 六元資料欄位皆存(
author、version、domain、complexity、language、tags) -
name欄位合目錄名 -
description於 1024 字元下 - 六必需段皆存(When to Use、Inputs、Procedure、Validation、Common Pitfalls、Related Skills)
- 每程序步有 Expected: 與 On failure: 塊
- 行數 500 或更少
- 技能列於
_registry.yml,附正確領域、路徑與元資料 - 登記簿之
total_skills數準確 - (僅譯本)五譯 frontmatter 欄位皆存(
locale、source_locale、source_commit、translator、translation_date) - (僅譯本)本文段於目標 locale,非英
- (僅譯本)代碼塊與英源相同
常見陷阱
- 僅以正則檢 frontmatter:YAML 解析微妙。
description: >多行塊異於description: "inline"。尋欄位時兩模式皆檢 - 漏 Validation 段變體:某技能用
## Validation Checklist而非## Validation。皆可受;檢任一標題 - 忘登記簿總計:將技能加入登記簿後,頂之
total_skills數亦須遞增。此為 PR 之常漏 - name 與 title 之混:
name欄位須為 kebab-case 合目錄名。# Title標題為人類可讀且可異(如 name:review-skill-format,title:# Review Skill Format) - lenient 模式略 blocker:即便於 lenient 模式,缺必需段與 frontmatter 欄位仍宜標。lenient 模式僅鬆風格與元資料建議
- 譯技能含英散文:含非英 frontmatter、非英標題、英本文段之文件通過所有結構檢。譯技能務驗本文語——frontmatter 中之
locale欄位即標散文須於目標語而非英
相關技能
create-skill— 標準格式規範;用為對何為有效 SKILL.md 之權威參考update-skill-content— 格式驗證通過後,用此改善內容品質refactor-skill-structure— 技能未過行數檢時,用此抽出並重組review-pull-request— 評加或修技能之 PR 時,併 PR 評與格式驗證
Dépôt GitHub
Compétences associées
content-collections
MétaCette compétence propose une configuration éprouvée en production pour Content Collections, un outil axé sur TypeScript qui transforme des fichiers Markdown/MDX en collections de données typées de manière sûre avec une validation Zod. Utilisez-la lors de la création de blogs, de sites de documentation ou d'applications Vite + React riches en contenu pour garantir la sécurité de typage et la validation automatique du contenu. Elle couvre tout, de la configuration du plugin Vite et de la compilation MDX à l'optimisation des déploiements et la validation des schémas.
polymarket
MétaCette compétence permet aux développeurs de créer des applications avec la plateforme de marchés prédictifs Polymarket, incluant l'intégration d'API pour le trading et les données de marché. Elle fournit également une diffusion de données en temps réel via WebSocket pour surveiller les transactions en direct et l'activité du marché. Utilisez-la pour mettre en œuvre des stratégies de trading ou pour créer des outils traitant les mises à jour de marché en direct.
creating-opencode-plugins
MétaCette compétence aide les développeurs à créer des plugins OpenCode qui s'interconnectent avec plus de 25 types d'événements tels que les commandes, les fichiers et les opérations LSP. Elle fournit la structure du plugin, les spécifications de l'API événementielle et les modèles d'implémentation pour les modules JavaScript/TypeScript. Utilisez-la lorsque vous avez besoin d'intercepter, de surveiller ou d'étendre le cycle de vie de l'assistant IA OpenCode avec une logique personnalisée pilotée par les événements.
sglang
MétaSGLang est un framework de service LLM haute performance spécialisé dans la génération rapide et structurée pour les workflows JSON, regex et agentiques grâce à son cache de préfixe RadixAttention. Il offre une inférence nettement plus rapide, particulièrement pour les tâches avec des préfixes répétés, ce qui le rend idéal pour les sorties complexes et structurées ainsi que les conversations multi-tours. Choisissez SGLang plutôt que des alternatives comme vLLM lorsque vous avez besoin d'un décodage contraint ou que vous construisez des applications avec un partage étendu de préfixes.
