Skip to content

fix(skills): quote argument-hint YAML values so Copilot CLI 1.0.65 loads all skills (fixes #526)#540

Merged
Lum1104 merged 5 commits into
Egonex-AI:mainfrom
thejesh23:fix/argument-hint-yaml-string-copilot-1.0.65
Jul 3, 2026
Merged

fix(skills): quote argument-hint YAML values so Copilot CLI 1.0.65 loads all skills (fixes #526)#540
Lum1104 merged 5 commits into
Egonex-AI:mainfrom
thejesh23:fix/argument-hint-yaml-string-copilot-1.0.65

Conversation

@thejesh23

@thejesh23 thejesh23 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes #526 (dup of #506): after upgrading GitHub Copilot CLI to 1.0.65, /understand and its sibling commands vanish from the CLI. The new skill loader validates argument-hint as a string, and 6 of the plugin's SKILL.md files declared it with bare YAML brackets — which YAML parses as an array. The loader silently rejects them.

argument-hint: [query]        →   parses as `["query"]` (list)  ❌
argument-hint: "[query]"      →   parses as `"[query]"` (string) ✅

What changed

6 SKILL.md frontmatters + 5 manifest version bumps.

File Before After
skills/understand/SKILL.md ["[path] [--full|...]"] "[path] [--full|...]"
skills/understand-chat/SKILL.md [query] "[query]"
skills/understand-dashboard/SKILL.md [project-path] "[project-path]"
skills/understand-domain/SKILL.md [--full] "[--full]"
skills/understand-explain/SKILL.md [file-path] "[file-path]"
skills/understand-knowledge/SKILL.md [wiki-directory] "[wiki-directory]"

understand-diff and understand-onboard don't declare argument-hint and don't need touching — confirming the loader itself is fine, only the bracket syntax was wrong.

Also bumps 2.8.1 → 2.8.2 across the 5 manifests so users upgrading Copilot CLI can pin ≥2.8.2.

Why this shape

Both VS Code Agent Skills and GitHub Copilot CLI document argument-hint as a string — the loader change in Copilot CLI 1.0.65 just enforces the pre-existing contract. The double-quoted-string form is exactly what the reference docs show. See sources below.

Commits (split for reviewability)

  1. fix(skills): quote argument-hint in /understand — Copilot CLI 1.0.65 requires string — the primary command, most complex value
  2. fix(skills): quote argument-hint in query/file-path skillsunderstand-chat + understand-explain
  3. fix(skills): quote argument-hint in directory-path skillsunderstand-dashboard + understand-knowledge
  4. fix(skills): quote argument-hint in /understand-domain — flag-style hint — leading -- called out separately
  5. chore: bump 2.8.1 → 2.8.2 for Copilot CLI 1.0.65 skill-loader fix — version bump across 5 manifests

Verification

Independently reviewed by four review passes before opening this PR:

  1. YAML correctness — every value now parses as a string via PyYAML round-trip; | and <lang> are safe inside a double-quoted flow scalar (| only triggers block-scalar mode when it's the value indicator, e.g. key: |).
  2. Copilot CLI 1.0.65 contract — confirmed against release notes and the VS Code Agent Skills docs (argument-hint is documented as a string — string form is exactly what the docs show).
  3. Repo-wide regression sweep — no repo-internal parser reads argument-hint; parse-knowledge-base.py only parses user-supplied wiki files, not SKILL.md; version bump consistent across all 5 manifests, no stale 2.8.1 references.
  4. Cross-platform compatibility across every platform in the README — all 17 supported platforms accept the quoted-string form:
    • Claude Code / VS Code Copilot / Copilot CLI — document argument-hint as a string (rendered in UI)
    • Agent Skills spec platforms (Cursor, Codex, OpenCode, Kiro, Gemini CLI, Antigravity, Trae, Nanobot, Pi, Vibe, Cline, KIMI, Hermes, OpenClaw) — argument-hint is not in the Agent Skills base spec; spec-conformant loaders ignore unknown fields, so the type change is inert to them
    • No platform documented anywhere as requiring the array form.

Sources

Test plan

  • pnpm --filter @understand-anything/core build passes (verified locally — no core changes, tsc clean)
  • On Copilot CLI 1.0.65+, copilot skill list shows all 8 skills after install
  • /understand, /understand-chat, /understand-dashboard, /understand-domain, /understand-explain, /understand-knowledge appear in the command menu
  • Claude Code still shows the same 8 slash commands (no regression on the primary platform)
  • Cursor auto-discovery via .cursor-plugin/plugin.json still works

Closes #526.
Duplicates / supersedes #506 (same root cause, same fix scope).

thejesh23 added 5 commits July 3, 2026 00:08
…requires string

The `argument-hint` field was wrapped in bare YAML brackets:

    argument-hint: ["[path] [--full|--auto-update|...]"]

YAML parses that as a single-element flow-style array, not a string.
Copilot CLI 1.0.65's tightened skill-loader (see release notes) rejects
the skill with `argument-hint must be a string`, so `/understand` stops
appearing in the CLI's command list.

Drop the outer brackets so YAML treats the value as a plain string. VS
Code Agent Skills applies the same rule — `name` and `description` are
the two required fields; other fields must match their declared types.

Refs: github/copilot-cli release 1.0.65
Refs: https://code.visualstudio.com/docs/agent-customization/agent-skills
Same root cause as the /understand fix: bare bracket syntax parses as a
YAML array, and Copilot CLI 1.0.65 rejects non-string `argument-hint`
values. Applies to the two skills that take a single free-form user
input token:

  - understand-chat     `[query]`      → "[query]"
  - understand-explain  `[file-path]`  → "[file-path]"

Grouped together because both are simple identifier-style hints; the
next commit handles path-style hints.

Refs: github/copilot-cli release 1.0.65
Refs: https://code.visualstudio.com/docs/agent-customization/agent-skills
Same YAML bracket → array parsing bug. Applies to the two skills that
take a filesystem directory as their argument:

  - understand-dashboard  `[project-path]`   → "[project-path]"
  - understand-knowledge  `[wiki-directory]` → "[wiki-directory]"

Grouped separately from the query/file-path pair to keep the intent of
each hint (single-token vs. directory input) legible in git history.

Refs: github/copilot-cli release 1.0.65
Refs: https://code.visualstudio.com/docs/agent-customization/agent-skills
Called out separately because this value starts with a dash. Even though
YAML's `[--full]` still parses as a one-element array (same failure
mode), the leading `--` matters when reading the diff in isolation:
it's easy to misread as a bash short-option and skip past the fix.

    argument-hint: [--full]   →   argument-hint: "[--full]"

Refs: github/copilot-cli release 1.0.65
Refs: https://code.visualstudio.com/docs/agent-customization/agent-skills
Cuts a patch release for the argument-hint YAML string fix so that users
upgrading Copilot CLI to 1.0.65+ get a clear "install ≥2.8.2" signal
instead of a stale skill directory that silently fails to load.

Version updated in all five manifests to keep them in lockstep:

  - .claude-plugin/plugin.json
  - .copilot-plugin/plugin.json
  - .cursor-plugin/plugin.json
  - understand-anything-plugin/.claude-plugin/plugin.json
  - understand-anything-plugin/package.json

Refs: github/copilot-cli release 1.0.65
Refs: https://code.visualstudio.com/docs/agent-customization/agent-skills
@thejesh23

Copy link
Copy Markdown
Contributor Author

CI failure isn't related to this code change

@KumamuKuma

Copy link
Copy Markdown
Contributor

This CI failure is a known Windows test issue, and I fixed it in #538.

Once #538 is merged, rerunning CI or updating this branch should make it pass.

This was referenced Jul 3, 2026
@Lum1104 Lum1104 merged commit a178cb5 into Egonex-AI:main Jul 3, 2026
1 of 2 checks passed
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.

bug: Not support for Copilot-CLI 1.0.65

3 participants