review-skill-format
О программе
Этот навык проверяет файлы SKILL.md на соответствие стандарту agentskills.io, контролируя YAML frontmatter, обязательные разделы и соответствие формату. Используйте его для проверки новых или изменённых навыков перед слиянием или для массового аудита существующих навыков. Он гарантирует, что навыки соответствуют требованиям к форматированию, процедурам и синхронизации с реестром.
Быстрая установка
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 для установки этого навыка
Документация
評技能格式
對 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 評與格式驗證
GitHub репозиторий
Похожие навыки
content-collections
МетаЭтот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.
polymarket
МетаЭтот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.
creating-opencode-plugins
МетаЭтот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.
sglang
МетаSGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.
