github / github/copilot-cli

`skill` tool intermittently fails in headless `-p` mode: "No model-invocable skills available"

Open
#4,838 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

triage
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Description

Describe the bug

In headless ( copilot -p ... ) mode, the skill tool intermittently fails to resolve a skill that is simultaneously listed — with full name and description — in that same request's  <available_skills>  system-prompt block. The error is not "skill X not found among Y available skills" but the more absolute:

Skill "" not found. No model-invocable skills available.

This indicates the tool-call-time invocable-skill registry is empty even though prompt-construction-time skill discovery succeeded moments earlier in the same process. Failures are intermittent — the same skill succeeds on some invocations and fails on others — and once a failure occurs, subsequent headless invocations (different skills, 6–90s spacing, with/without  --available-tools=skill ) keep failing for an extended window (minutes to, in one earlier observation, ~2 days) before recovering. Interactive-mode invocations of the same skills, same environment, succeeded reliably throughout.

Not explained by skill symlink type (tested both relative and absolute symlink targets under  ~/.copilot/skills  — both fail identically once in a bad window), and the skill has no  disable-model-invocation / allow_implicit_invocation: false  policy set.

Prior art checked, not duplicates: #4438 and #4451 (skills excluded via  disable-model-invocation  policy — not applicable here), #4401 ( ~/.agents/skills  unsupported discovery path — our skills are under the supported  ~/.copilot/skills ).

Affected version

1.0.83

Steps to reproduce the behavior
  1. Install a user-level skill at  ~/.copilot/skills//SKILL.md  (supported path, no  disable-model-invocation  policy).
  2. Run:
    copilot -p "Use the skill tool to load the skill named and report the first 6 words of its description." --no-ask-user --log-level debug --log-dir /tmp/debug
  3. Repeat several times in quick succession (some spaced 6–90s apart).
  4. Inspect  /tmp/debug/process-*.log : the system prompt sent to the model correctly contains the skill under  <available_skills> , but the tool-call response for that same skill name is:
    Skill "" not found. No model-invocable skills available.
Expected behavior

The invocable-skill registry checked at tool-call time should stay consistent with the skill listing rendered into the system prompt for the same request — a correctly installed, policy-unrestricted, supported-path skill should not intermittently disappear from resolution.

Additional context

• OS: macOS (darwin-arm64)
• Only reproduces in headless  -p  mode; interactive mode is unaffected
• Impact: automation/headless workflows depending on the  skill  tool cannot assume it will resolve, even for a correctly installed skill

Reproduced in a fully isolated  COPILOT_HOME  profile (no custom hooks, no pre-existing skills/config/logs) with a single freshly created test skill — ruling out any local configuration, hook, or skill-content cause.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing with ~/.copilot/skills//SKILL.md using the documented copilot -p command and --log-dir /tmp/debug. Compare the <available_skills> system-prompt block with the tool-call results in /tmp/debug/process-*.log; done means supported, policy-unrestricted skills resolve consistently across repeated headless invocations.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.