github / github/copilot-cli

Dynamic context injection in Skills (`!command` placeholder)

未关闭
#4,088 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
area:context-memory
主要语言
Shell
星标
11.2k
派生
1.9k
平均合并
14 小时 16 分钟
30 天内合并 PR
6

描述

### Feature request for product/service

GitHub Copilot CLI

### Describe the request

Add **dynamic context injection** to Agent Skills (`SKILL.md`) in GitHub Copilot CLI.

I’m proposing the !`<command>` command placeholder inside the skill body. When the skill is invoked, Copilot CLI would run the shell command locally **before** sending the skill content to the model, then replace the placeholder with the command’s stdout.

That would let skills combine live data + instructions in a single turn, instead of asking the agent to make a separate shell call at runtime.

### Example

```md
---
name: summarize-changes
description: Summarize uncommitted changes and flag risks
---

## Current changes

!`git diff HEAD`

## Instructions

Summarize the changes above in 2–3 bullets and list risks.
If the diff is empty, say there are no uncommitted changes.
```

### Why this matters

Today, skills that depend on live state usually have to tell the agent to run shell commands itself during the interaction. That is slower, uses extra tokens, and is less reliable — the agent may skip the command, choose the wrong one, or reason from stale file context instead of actual output.

With injection, repeatable workflows like PR review, commit summaries, and pre-merge checks become self-bootstrapping: the skill gathers facts first, then the model reasons over them.

### Use cases

- Branch / PR review: `!`git diff master...HEAD``, `!`gh pr diff``
- Commit helper: `!`git diff --staged``
- Pre-ship checks: test output, lint output, or other command results

### Suggested safeguards

- Respect existing shell-execution policies / hooks
- Make command injection opt-in per skill and/or configurable globally
- Cap or truncate large stdout
- Surface command failures clearly when the injected command fails

### Prior art

Claude Code already ships this pattern as part of the Agent Skills standard extension: https://code.claude.com/docs/en/skills#inject-dynamic-context

贡献指南

打开贡献指南

调研方向

首先跟踪 GitHub Copilot CLI 中 Agent Skills (SKILL.md) 的调用,以及现有的 shell 执行策略或钩子。查看链接的 Claude Code 动态上下文文档,了解提议的占位符行为,并确定安全防护、输出限制和命令失败应如何工作。完成的标准是:skill 能够在其内容发送给模型之前,从本地 stdout 展开 !`command`,并具备所述的策略保护。

由索引模型根据 Issue 内容生成。

评估

技术栈
shell
领域
cli
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
冷清
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。