brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
review-skill-formatReview SKILL.md → compliance w/ agentskills.io std. Checks YAML frontmatter fields, required sections, line count limits, proc step format, registry sync. Use → new skill needs format validation before merge, existing skill modified + needs re-validation, batch audit of all skills in domain, review contributor PR submission.
Independent GitHub snapshot · Automated classification · Original documentation governs
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.
create-skill meta-skillskills/setup-vault/SKILL.md)lenient or strict, default strict)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.
Parse YAML frontmatter (between --- delimiters) + verify all required + recommended fields present.
Required:
name — matches dir name (kebab-case)description — < 1024 chars, starts w/ verblicense — typically MITallowed-tools — comma or space-separated tool listRecommended metadata:
metadata.author — author namemetadata.version — semantic ver stringmetadata.domain — one of domains in skills/_registry.ymlmetadata.complexity — basic, intermediate, advancedmetadata.language — primary lang or multimetadata.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.
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 (typically en)source_commit — commit hash of English source usedtranslator — who/what producedtranslation_date — ISO 8601 dateProse 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.
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.
Verify each proc step follows pattern: numbered title, ctx, code block(s), Expected/On failure blocks.
For each ### Step N: sub-section, check:
**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.
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.
Verify skill listed in skills/_registry.yml under correct domain w/ matching metadata.
Check:
id exists under correct domain sectionpath matches <skill-name>/SKILL.mdcomplexity matches frontmatterdescription present (may be abbreviated)total_skills count 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
name, description, license, allowed-tools)author, version, domain, complexity, language, tags)name field matches dir namedescription < 1024 chars_registry.yml w/ correct domain, path, metadatatotal_skills count in registry accuratelocale, source_locale, source_commit, translator, translation_date)description: > multiline diff from description: "inline". Check both patterns when searching.## Validation Checklist not ## Validation. Both acceptable; check for either.total_skills must increment. Common miss in PRs.name field = kebab-case matching dir. # Title heading = human-readable + can differ (e.g. name: review-skill-format, title: # Review Skill Format).locale field 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