You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Skills fail to load in GitHub Copilot CLI 1.0.65+ due to array-shaped argument-hint #514
One or more SKILL.md frontmatters in this repo declare argument-hint: with bare YAML brackets, e.g. argument-hint: [X]. YAML parses that as a one-element flow-sequence (a list), not a string. GitHub Copilot CLI 1.0.65 tightened its skill-loader to require argument-hint to be a string, so on 1.0.65+ these skills silently fail to load — no error is surfaced to the user, they just don't appear in copilot skill list or the slash-command menu.
Same class of latent bug on Claude Code — see anthropics/claude-code#22161 (accepts either shape today, but the documented contract is a string).
Why bare brackets are a bug
Per YAML 1.2, a value starting with an unquoted [ opens a flow-sequence node:
argument-hint: [X] # → list ['X'] ❌argument-hint: "[X]"# → string '[X]' ✅argument-hint: ["X"] # → list ['X'] (STILL a list — quoting inside the brackets doesn't help)
Verifiable with any YAML 1.2 parser:
python3 -c 'import sys, yaml; fm = yaml.safe_load(open(sys.argv[1]).read().split("---")[1]); print(type(fm["argument-hint"]).__name__)' path/to/SKILL.md
# → list
Reproducer
Install / upgrade to GitHub Copilot CLI 1.0.65 or later
Install this plugin / skill pack
Run copilot skill list — the affected skill(s) will be missing with no error
The two-character fix handles this instance, but a schema check in CI would keep the same bug from moving to the next field.
I’d parse every frontmatter block and validate the node type before any coercion: argument-hint, name, and description must be strings. Include fixtures for bare brackets, YAML booleans like on/off, dates, and numbers—YAML’s implicit typing creates surprisingly similar failures. A second smoke test against the Copilot skill-list command would pin the user-visible behavior so “parsed successfully but silently absent” cannot pass CI.
This is a good example of why agent tooling needs explicit preflight rather than permissive parsing followed by disappearance.
Activity
Keesan12 commentedon Jul 22, 2026
The two-character fix handles this instance, but a schema check in CI would keep the same bug from moving to the next field.
I’d parse every frontmatter block and validate the node type before any coercion:
argument-hint,name, anddescriptionmust be strings. Include fixtures for bare brackets, YAML booleans likeon/off, dates, and numbers—YAML’s implicit typing creates surprisingly similar failures. A second smoke test against the Copilot skill-list command would pin the user-visible behavior so “parsed successfully but silently absent” cannot pass CI.This is a good example of why agent tooling needs explicit preflight rather than permissive parsing followed by disappearance.