路径专用指令
用 applyTo 为特定文件设置规则,区分路径匹配与 code review、cloud agent 的入口排除。
路径专用指令适合让 Ruby 模型、TypeScript 前端或测试文件各自遵循对应规则。它们放在 NAME.instructions.md 中,通过 YAML frontmatter 的 applyTo 指定匹配范围。
创建规则
在仓库中创建 .github/instructions/typescript.instructions.md:
---
applyTo: "**/*.ts,**/*.tsx"
---
Follow the existing TypeScript conventions in the package being edited.
Keep public types and their callers consistent when changing an interface.目录下可以再建子目录整理规则;文件名必须以 .instructions.md 结尾。多个 glob 用逗号分隔,只有匹配 Copilot 正在处理的文件时,指令才加入上下文。
常用匹配范围
| applyTo | 匹配范围 |
|---|---|
* | 当前目录文件 |
** 或 **/* | 所有目录中的文件 |
*.py | 当前目录的 Python 文件 |
**/*.py | 递归匹配 Python 文件 |
src/*.py | src 直接包含的 Python 文件,不包括更深子目录 |
src/**/*.py | src 下任意深度的 Python 文件 |
**/subdir/**/*.py | 路径上包含 subdir 目录的 Python 文件 |
例如 src/*.py 匹配 src/main.py,不会匹配 src/service/main.py。需要后者时使用递归形式,不能靠描述文字代替 glob 范围。
排除一个 GitHub 入口
同一指令文件供 Copilot code review 和 cloud agent 使用时,可以通过 excludeAgent 排除其中一个:
---
applyTo: "**"
excludeAgent: "code-review"
---
Run the project validation steps after implementing changes.这个示例排除 code review,保留 cloud agent。另一个官方取值是 "cloud-agent";省略时两者都可使用。该字段描述这两个入口的适用性,不是 CLI 的工具禁止规则。
排查未加载的规则
核对后缀、frontmatter 与 glob,使用 /instructions 查看发现和禁用状态。不要在这类文件里依赖 @ 导入,因为 CLI 不展开 *.instructions.md 内的文件引用。修改后新建会话或退出再恢复,方法见指令文件与加载。