`skill` tool intermittently fails in headless `-p` mode: "No model-invocable skills available"
まだ誰も着手していません。
- 主要言語
- 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
- Install a user-level skill at ~/.copilot/skills//SKILL.md (supported path, no disable-model-invocation policy).
- 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 - Repeat several times in quick succession (some spaced 6–90s apart).
- 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.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- 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