Use when auditing Hermes SKILL.md files for YAML/frontmatter breakage and repairing invalid frontmatter safely at scale.
Scanned 9/9/2026
Install to Claude Code
npx -y skills add Undermybelt/hermes-skills --skill skill-yaml-audit-fix --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Skill Yaml Audit Fix?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/undermybelt-skill-yaml-audit-fix)More formats (shields.io, HTML) on the badges page.
---
name: skill-yaml-audit-fix
description: Use when auditing Hermes SKILL.md files for YAML/frontmatter breakage and repairing invalid frontmatter safely at scale.
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
hermes:
tags: [skills, yaml, frontmatter, audit, repair]
related_skills: [hermes-agent-skill-athrn, systmt-dbggng]
---
# Audit and Repair SKILL.md YAML Frontmatter
## Overview
Use this when a Hermes skill fails to load because its `SKILL.md` frontmatter is invalid YAML, malformed delimiters, or structurally inconsistent. The goal is to validate the whole skill tree, repair only the broken files, and keep the fixes narrow and reviewable.
## When to Use
- A skill loader reports `invalid YAML`.
- A specific `SKILL.md` fails to parse.
- The user wants a sweep across all local Hermes skills for frontmatter issues.
- A large skill pack was bulk-edited and frontmatter drift is likely.
## Validation Rules
A valid `SKILL.md` must satisfy:
- Starts at byte 0 with `---`
- Has a closing `---` delimiter before the body
- Frontmatter parses as a YAML mapping
- Includes at least `name` and `description`
- Keeps the body non-empty
Common failure modes:
- Unquoted single-line `description:` containing `:`
- Folded text pasted onto one line with YAML-significant punctuation
- Missing closing delimiter
- Leading blank line before frontmatter
- Tabs or malformed indentation in `metadata`
## Audit Workflow
1. Enumerate all `SKILL.md` files under the Hermes skill root.
2. Parse only frontmatter first; do not rewrite healthy files.
3. Record each failure as:
- path
- failure class
- parser error
4. Repair minimally:
- prefer quoting or folded block scalars for long descriptions
- preserve existing body content
- avoid broad reformatting of unrelated sections
5. Re-run the full-tree validation after edits.
6. If no failures remain, report count scanned and count fixed.
## Safe Bulk Check Script
```bash
python - <<'PY'
import yaml, pathlib
root = pathlib.Path('~/.hermes/skills').expanduser()
bad = []
for path in sorted(root.rglob('SKILL.md')):
text = path.read_text(encoding='utf-8')
if not text.startswith('---\n'):
bad.append((path, 'frontmatter_start', 'does not start with ---'))
continue
parts = text.split('\n---\n', 1)
if len(parts) < 2:
bad.append((path, 'frontmatter_close', 'missing closing --- delimiter'))
continue
fm = parts[0][4:]
try:
data = yaml.safe_load(fm)
if not isinstance(data, dict):
bad.append((path, 'frontmatter_type', type(data).__name__))
except Exception as e:
bad.append((path, 'yaml', str(e)))
for item in bad:
print('\t'.join(map(str, item)))
PY
```
## Repair Rules
- If a single-line `description:` contains an unescaped colon, convert it to either:
- a quoted scalar, or
- a folded block using `>-`
- Prefer `>-` for long prose descriptions.
- Keep line width reasonable and ASCII-first unless the file already uses non-ASCII.
- Do not rewrite the full skill body to fix a frontmatter-only issue.
## Example Fix
Bad:
```yaml
description: Long summary with a colon: and more prose that YAML misreads.
```
Good:
```yaml
description: >-
Long summary with a colon: and more prose that YAML now treats
as folded text.
```
## Verification Checklist
- [ ] Re-validated the edited file locally
- [ ] Re-ran whole-tree YAML/frontmatter audit
- [ ] Confirmed only broken skills changed
- [ ] Preserved body content unchanged unless body also needed repair
- [ ] Reported scanned count and fixed count
## Pitfalls
1. Do not assume the parser error line is the only bad line; read the whole frontmatter block.
2. Do not mass-rewrite all skills just to normalize style.
3. Do not use line-number-prefixed text dumps as rewrite input.
4. Do not stop after fixing one file if the user asked for a sweep.
5. Do not claim success without re-running validation across the full skill tree.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!