github / github/copilot-cli

`skillDirectories` setting from `settings.json` is not honored in ACP mode (`copilot --acp`)

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

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

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

説明

Describe the bug

~/.copilot/settings.json supports a skillDirectories array for registering
additional custom skill source directories. These directories' skills are
correctly discovered and listed when running the interactive copilot CLI,
but do not show up when the same user/config runs in ACP mode
(copilot --acp, e.g. via the Zed editor's ACP integration).

Affected version

Copilot CLI 1.0.82

Environment
  • OS: Windows
  • ACP client: Zed editor (copilot --acp)
  • Windows Terminal: copilot.exe --acp
Steps to reproduce
  1. Add a skillDirectories entry to ~/.copilot/settings.json, e.g.:

    {
      "skillDirectories": [
        "C:\\Users\\<user>\\ai_space\\skill_groups\\workflow_skills",
        "C:\\Users\\<user>\\ai_space\\skill_groups\\shorthand_skills",
        "C:\\Users\\<user>\\ai_space\\skill_groups\\ddstack_skills"
      ]
    }
    
    

Each directory contains one or more <skill-name>/SKILL.md skills.

  1. Run interactive copilot, then copilot skill list (or /skills list).
    Result: skills from all skillDirectories entries appear under a
    "Custom skills:" heading, alongside project (.github/skills/) and
    personal (~/.copilot/skills/) skills. Confirmed working — e.g.
    workflow-design, shorthand-crew, principle-fix-root-causes, etc. all
    listed (43 custom skills total in our test).

  2. Independently, spawn copilot.exe --acp as a subprocess and drive it
    directly over stdio with raw JSON-RPC (bypassing any client like Zed
    entirely, to rule out client-side filtering):

    • initializesession/new (with the same cwd) → session/prompt
      asking the agent to "list every skill name available to you right now,
      grouped by category, without invoking any tool."

    Result: the agent's response only lists project (12 skills),
    user/personal (5 skills), and builtin (2 skills) categories. The
    custom category empty, none of the 43 skills sourced from skillDirectories, does
    not appear in its own self-reported system context.

Expected behavior

ACP mode should discover and expose the same skill set as interactive mode,
including all directories configured via skillDirectories in
settings.json, since both entry points read the same global config file.

Actual behavior

ACP mode does not surface any skillDirectories-sourced skills, with no
error, warning, or other indication that the setting was skipped.

Additional context
  • settings.json and config.json are unmodified between the two runs —
    same file, same user, same machine.
  • Personal (~/.copilot/skills/) and project (.github/skills/) skills
    do load correctly in ACP mode, so this isn't a total skill-loading
    failure — it's specific to the skillDirectories custom-path mechanism.
  • Reproduced twice: once via a live Zed → copilot --acp session, and once
    via a standalone hand-rolled ACP client script, ruling out a
    client-specific (Zed) cause.

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

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

はじめの一歩

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

調査の方向性

copilot --acp のエントリポイントから開始し、~/.copilot/settings.jsonskillDirectories 設定を入力として、スキルの検出を対話型の copilot と比較します。initializesession/newsession/prompt を使って再現します。ACP が設定されたカスタムスキルを、プロジェクト、個人、組み込みのスキルと併せて公開できれば完了です。

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

評価

技術スタック
shell
領域
cli
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
明確に書かれている
初心者へのやさしさ
72/100

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

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