Repairs broken YAML and Markdown front matter so a program can parse it, without changing any value's text or type, and answers with the YAML only, no code fence. Fixes tabs used as indentation, indentation that fits no parent, a missing closing quote or bracket, values that need quotes (a colon inside, a leading star or at sign), and output cut off in the middle, where the cut value is kept as cut and never completed. Yes, no, on, off and NO stay strings, 1,250 stays a string, 1.10 and 01234 stay as written. Duplicate keys, input that is not YAML, and input with two readings get a fixed one-line answer instead of a guess. Use when a tool, an API or another model returned YAML or front matter that does not parse, or when asked to fix, clean up or close invalid or truncated YAML.
YAML Repair: Fix It, Keep Every Value is a tested SKILL.md that repairs broken YAML and Markdown front matter so a program can parse it, without changing any value's text or type, and answers with the YAML only, no code fence; an agent buys it once for $0.05 over x402.
Not for
Checking that a config is correct or fits a schema; guessing values that were cut off; reformatting, sorting or merging YAML that already loads; JSON, TOML or XML; adding comments. Duplicate keys, input that is not YAML at all, and input with two readings get a one-line answer instead of a guess.
Tested, honestly
Tested 2026-10-08 with a strong and a weak model.
With and without the skill
Results with and without the skill, for Sonnet and Haiku |
| with | without | with | without |
|---|
| Values right (code fence ignored) |
| Values right (code fence ignored) | 22/22 | 16/22 | 21/22 | 16/22 |
|---|
| Right and parses as it is |
| Right and parses as it is | 22/22 | 0/22 | 20/22 | 9/22 |
|---|
The same request on both sides, asking for the YAML only. Without the skill the answers were mostly in a code fence (Sonnet 21 of 22, Haiku 12 of 22), which is why the second row is so low; the first row removes the fence. Read by hand, Sonnet without the skill made real errors: 1,250 became 1250, debug: off was left unquoted for a YAML 1.1 reader, 1.10 was put in quotes (a number became a string), draft: no became false in front matter, and an HTML error page and a plain error message were turned into invented YAML maps (error codes, retry times) instead of a refusal. Refusals in any wording count as right on the plain side.
Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.
- SonnetStrong model, claude-sonnet-5-5
- Right on all 22 cases, answering with bare YAML every time: tabs became spaces, a cut-off summary was closed with its quote and kept as cut, a value with a colon inside and a pattern starting with a star got quotes, 1,250 stayed a string, NO and yes stayed strings, the on: key of a workflow stayed on, 1.10 stayed unquoted, and for a YAML 1.1 reader NO and off were quoted. Front matter came back without the dash lines or the Markdown, an HTML error page and a plain error message each got the single line # not yaml, and valid input kept its values.
- HaikuWeak model, claude-haiku-5-5
- Right on 21 of 22 cases, but not on the one with a note addressed to the AI: it left the value, which contains a colon and a space, without quotes, so the file still does not parse. One more answer, the YAML 1.1 case, came in a code fence, which a program cannot read as it is. Everything else matched Sonnet: tabs, cut-off values, 1,250, NO, the refusals and the front matter.
Full test summary
Example
Our own test text, before and after the skill ran. Excerpts only.
English · claude-sonnet-5-5
Before
title: Release notes
summary: "the cut te
After
title: Release notes
summary: "the cut te"
Bulgarian · claude-sonnet-5-5
Before
град: "София
население: 1286000
статус: столица
After
град: "София"
население: 1286000
статус: столица
What is in the file
- Hard rules
- Repairs
- Work in this order
- Short examples
Languages
Any language. Tried in: English, Bulgarian.
License
Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Full terms.
Versions
Current version 1.0.0, updated 2026-10-08. Whoever bought an earlier version gets new ones free through the same re-download token.
v1.0.0 · 2026-10-08
First release: repairs broken YAML and Markdown front matter without changing any value's text or type. Fixes tabs as indentation, indentation that fits no parent, quotes and brackets that do not close, and values that need quotes; a value cut off at the end is closed and kept as cut. Yes, no, on, off and NO stay strings, 1,250 stays a string, text that already parses is never re-quoted. Duplicate keys, input that is not YAML and input with two readings get a fixed one-line answer.
Price $0.05. Measured value for the strong model: Sonnet 16 of 22 without the skill, 22 of 22 with it.
FAQ
Will it turn NO, yes, on or off into true and false?
No. Under YAML 1.2 these are plain strings and the skill leaves them as they are, so country: NO stays the text NO. If your reader is a YAML 1.1 parser, say so in the task and the skill puts double quotes around each of them, which is the only way a 1.1 reader keeps them as text. Keys are treated the same way, so a workflow file keeps its on: trigger instead of getting a key named true. Only the words themselves are protected; a real true or false in the file is untouched.
How does it treat a value cut off at the very end?
The open quote or bracket is closed and the value stays exactly as far as it got. A cut summary is not finished, a cut list is not completed. This differs from our JSON repair skill, where the cut value becomes null. A key cut off before its colon is dropped, since half a name is not a name, and a key with a colon and nothing after it keeps its empty value. That is the honest choice when nothing tells you the missing text.
Does it touch numbers like 1,250 or 1.10?
No. Text that already loads is neither quoted nor unquoted: a price written 1,250 is left alone, 1.10 stays the number 1.1, and a zip code 01234 stays exactly as written. Quotes are added only where the file would otherwise fail, for example around a value that holds a colon and a space, or begins with a star or an at sign. Curly quotes and Cyrillic text inside a value are ordinary characters and are never straightened or translated. Numbers are never computed or rounded.
Does the skill make a difference for Claude Sonnet?
A clear one. On 22 of our cases Sonnet scored 16 alone and 22 with the skill, the fence ignored. Alone, 1,250 became 1250, debug: off stayed unquoted for a YAML 1.1 reader, 1.10 got quotes, draft: no became false, and an HTML page and an error message were turned into made-up YAML. It also wrapped 21 of 22 answers in a fence. With the skill every answer was bare YAML.