Skip to content

fix(skills): quote argument-hint so Copilot CLI 1.0.65 parses it as string#33

Open
thejesh23 wants to merge 1 commit into
govctl-org:mainfrom
thejesh23:fix/copilot-cli-1.0.65-argument-hint-string
Open

fix(skills): quote argument-hint so Copilot CLI 1.0.65 parses it as string#33
thejesh23 wants to merge 1 commit into
govctl-org:mainfrom
thejesh23:fix/copilot-cli-1.0.65-argument-hint-string

Conversation

@thejesh23

@thejesh23 thejesh23 commented Jul 3, 2026

Copy link
Copy Markdown

Summary

Eight .claude/skills/*/SKILL.md files declare argument-hint: with an unquoted bracketed value, e.g.:

argument-hint: [optional ADR topic]

YAML parses unquoted [...] as a flow sequence, so this field is loaded as an array (["optional ADR topic"]) rather than a string.

Why this matters now

  • Copilot CLI 1.0.65 tightened its skill/command schema to require argument-hint to be a string. It now rejects the array form outright, so any user running these skills through the Copilot CLI sees the skill fail to load.
  • Claude Code currently tolerates the array form, but the same root cause is tracked upstream in anthropics/claude-code#22161 and could be tightened at any time.

Fix

Quote each affected value so YAML parses it as a plain string. Rendered hint text is unchanged.

File Before After
adr-writer/SKILL.md [optional ADR topic] "[optional ADR topic]"
commit/SKILL.md [optional commit message hint] "[optional commit message hint]"
detach/SKILL.md [optional scope hint] "[optional scope hint]"
guard-writer/SKILL.md [optional guard topic] "[optional guard topic]"
init/SKILL.md [optional setup scope] "[optional setup scope]"
migrate/SKILL.md [optional scope hint, e.g. "focus on database decisions"] '[optional scope hint, e.g. "focus on database decisions"]'
rfc-writer/SKILL.md [optional RFC topic] "[optional RFC topic]"
wi-writer/SKILL.md [optional work-item topic] "[optional work-item topic]"

migrate/SKILL.md uses single-quoted YAML because the value contains inner double quotes; single quotes avoid the need for escapes and keep the rendered text byte-for-byte identical.

The four skills that use angle-bracket placeholders (discuss, gov, quick, spec, e.g. argument-hint: <what-to-do>) are already valid YAML plain scalars and are intentionally left alone. decision-analysis/SKILL.md has no argument-hint and is unaffected.

Test plan

  • Full-tree scan (grep -rHn '^argument-hint:' --include='*.md') enumerates all 12 SKILL.md files with the field.
  • Parse each SKILL.md's frontmatter with a YAML parser and assert type(argument-hint) is str — passes for all 12 after this change (was failing for the 8 files above).
  • Rendered hint text is unchanged; only the YAML type flips from sequence to string.
  • Load a fixed skill under Copilot CLI 1.0.65 and confirm it no longer errors on the argument-hint field.
  • Load a fixed skill under current Claude Code and confirm it still works (regression check).

References

  • Copilot CLI 1.0.65 schema tightening — string required for argument-hint
  • anthropics/claude-code#22161 — latent same-cause issue on Claude Code

Summary by CodeRabbit

  • Chores
    • Standardized several skill metadata hints to use quoted text, improving consistency and reliability when optional prompts are displayed or parsed.
    • Updated multiple workflow templates without changing their behavior or commands.

…tring

The `argument-hint:` frontmatter field on eight SKILL.md files was
written as an unquoted bracketed value (e.g. `[optional ADR topic]`).
YAML interprets unquoted `[...]` as a flow sequence, so the field
parsed as an array instead of a string.

Copilot CLI 1.0.65 tightened its schema to require `argument-hint` to
be a string, which now rejects these files at load time. Claude Code
currently tolerates the array form but the same root cause is tracked
upstream in anthropics/claude-code#22161.

Fix by quoting each affected value so YAML parses it as a plain
string. The migrate skill hint contains inner double quotes, so it
uses single-quoted YAML to avoid escape gymnastics.

No behavior change intended: the rendered hint text remains identical;
only the YAML type of the field changes from sequence to string.

Refs: Egonex-AI/Understand-Anything#540, anthropics/claude-code#22161
@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR updates the argument-hint YAML frontmatter field across eight SKILL.md files, changing values from unquoted bracketed tokens to quoted string literals. No other content, logic, or workflow text was modified.

Changes

Skill Metadata Quoting

Layer / File(s) Summary
Quote argument-hint frontmatter values
.claude/skills/adr-writer/SKILL.md, .claude/skills/commit/SKILL.md, .claude/skills/detach/SKILL.md, .claude/skills/guard-writer/SKILL.md, .claude/skills/init/SKILL.md, .claude/skills/migrate/SKILL.md, .claude/skills/rfc-writer/SKILL.md, .claude/skills/wi-writer/SKILL.md
The argument-hint field in each file's YAML frontmatter was changed from an unquoted bracketed token to a quoted string literal.

Estimated code review effort: 1 (Trivial) | ~3 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: quoting skill argument-hint values so Copilot CLI parses them as strings.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@thejesh23

Copy link
Copy Markdown
Author

Tracking issue: #34 — captures the bug diagnosis and reproducer separately for anyone searching the repo who lands there before this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant