Problem
.claude/skills/pr-ready/SKILL.md has a frontmatter argument-hint that is not valid YAML:
argument-hint: [<pr-number>[,<pr-number>...]]
An unquoted value starting with [ is parsed as a YAML flow sequence, and the nested [ inside it is a syntax error:
while parsing a flow sequence
in "<unicode string>", line 4, column 16:
argument-hint: [<pr-number>[,<pr-number>...]]
^
expected ',' or ']', but got '['
Reproduce:
python3 -c "
import yaml,sys
yaml.safe_load(open('.claude/skills/pr-ready/SKILL.md').read().split('---')[1])
"
Why it matters
Claude Code currently tolerates this and loads the skill, so there is no visible breakage today. Stricter YAML consumers do not — a harness parsing frontmatter with Go's yaml.v3 (or any strict parser) silently drops the skill entirely, with no error surfaced. The failure mode is invisible: the skill simply stops existing, and /pr-ready becomes an unknown command.
That makes this a latent portability bug rather than a cosmetic one. It also means the file cannot be validated by any tooling that parses frontmatter strictly, so the same class of error can accumulate unnoticed in other skills.
Fix
Quote the value:
argument-hint: "[<pr-number>[,<pr-number>...]]"
Suggested follow-up
Add a frontmatter-parse check over .claude/skills/*/SKILL.md so this class of breakage is caught mechanically rather than by chance:
python3 - <<'PY'
import glob, sys, yaml
bad = []
for f in sorted(glob.glob('.claude/skills/*/SKILL.md')):
try:
yaml.safe_load(open(f).read().split('---')[1])
except Exception as e:
bad.append((f, str(e).splitlines()[0]))
for f, e in bad:
print(f'{f}: {e}')
sys.exit(1 if bad else 0)
PY
At the time of filing, pr-ready is the only skill that fails; collapse-pr, open-pr, revise-pr, and pr-review all parse cleanly.
Discovery
Found incidentally while validating the skills touched by #849. Deliberately not fixed there — it is pre-existing (it fails at HEAD independently of that change) and unrelated to that PR's scope.
Problem
.claude/skills/pr-ready/SKILL.mdhas a frontmatterargument-hintthat is not valid YAML:An unquoted value starting with
[is parsed as a YAML flow sequence, and the nested[inside it is a syntax error:Reproduce:
Why it matters
Claude Code currently tolerates this and loads the skill, so there is no visible breakage today. Stricter YAML consumers do not — a harness parsing frontmatter with Go's
yaml.v3(or any strict parser) silently drops the skill entirely, with no error surfaced. The failure mode is invisible: the skill simply stops existing, and/pr-readybecomes an unknown command.That makes this a latent portability bug rather than a cosmetic one. It also means the file cannot be validated by any tooling that parses frontmatter strictly, so the same class of error can accumulate unnoticed in other skills.
Fix
Quote the value:
Suggested follow-up
Add a frontmatter-parse check over
.claude/skills/*/SKILL.mdso this class of breakage is caught mechanically rather than by chance:At the time of filing,
pr-readyis the only skill that fails;collapse-pr,open-pr,revise-pr, andpr-reviewall parse cleanly.Discovery
Found incidentally while validating the skills touched by #849. Deliberately not fixed there — it is pre-existing (it fails at
HEADindependently of that change) and unrelated to that PR's scope.