github / github/copilot-cli

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

オープン
#4,838 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

triage
主要言語
Shell
スター
11.2k
フォーク
1.9k
平均マージ
14時間 16分
マージ済み PR(30日)
6

説明

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.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、文書化された copilot -p コマンドと --log-dir /tmp/debug を使い、~/.copilot/skills//SKILL.md で再現します。<available_skills> の system-prompt ブロックと /tmp/debug/process-*.log 内のツール呼び出し結果を比較します。繰り返しの headless 呼び出しで、サポート対象かつ policy による制限のない Skills が一貫して解決されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
shell
領域
cli
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。