第 3 卷
💡 参数解析规则:参数通过空格分隔,支持单引号和双引号来处理含有空格的参数。例如 /greet "Hello World" 会将 "Hello World" 作为单个参数传递。
执行Shell命令
在命令的任何一行前面加上 ! 前缀,命令用反引号包围,该行就会被当作 Shell命令执行,其输出
( stdout ) 会被捕获并注入到上下文中,供 AI 后续分析。
- 重要提示:使用 Shell命令执行时,必须在 allowed-tools frontmatter中包含 Bash 工
具,否则命令无法执行。
示例: status.md
markdown
--- description: "显示当前的 git 仓库状态并进行分析。"
allowed-tools: Bash(git status:*), Bash(git diff:*) ---
当前 git 状态:
!`git status`
当前分支的变更:
!`git diff HEAD`
请基于上面的输出,为我总结当前分支的状况。
更多示例: commit.md
markdown
--- description: "创建一个 git 提交。"
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git diff:*), Bash(git argument-hint: "[message]"
---
## 当前状态
- Git 状态: !`git status`
- 分段变更: !`git diff --cached`
- 最近提交: !`git log --oneline -5`
## 任务
基于上面的信息,使用提供的提交消息创建一个 git 提交:$1
如果没有提供消息,使用默认的描述性消息。
文件引用
在命令中使用 @ 前缀来包含文件内容。系统会自动读取文件并将其内容注入到 AI 上下文中。
示例
markdown
--- description: "代码审查"
---
请审查以下文件:
@src/utils/helpers.js @src/utils/validators.js
找出潜在的性能问题和代码风格问题。
最佳实践
1.描述要清晰明确
编写清晰的 description 和 argument-hint,帮助用户和 AI 理解命令的用途:
markdown
--- description: "执行安全审计,扫描代码中的潜在漏洞和安全问题"
argument-hint: "[files...] [--severity high|medium|low]"
---
2.使用细粒度的工具权限
通过 allowed-tools 限制命令可以使用的工具和操作:
markdown
--- allowed-tools: Bash(npm test:*), Bash(git diff:*), Read description: "运行测试并与主分支比较"
---
这比允许所有工具更安全和高效。
3.组织命令到子目录
.codebuddy/commands/ ├── frontend/ │├── build.md │├── test.md │└── lint.md ├── backend/ │├── migrate.md │├── deploy.md │└── logs.md └── git/ ├── commit.md ├── review.md └── release.md
调用方式:
/frontend:build
/backend:deploy
/git:commit "message"
4.提供有用的上下文
在 Shell命令执行前插入有用的信息:
markdown
--- description: "分析代码覆盖率"
allowed-tools: Bash(npm run:*) ---
## 当前状态
项目根目录: !`pwd` 当前分支: !`git rev-parse --abbrev-ref HEAD`
## 任务
请运行测试并生成覆盖率报告:
!`npm run coverage`
基于上述结果,为我总结代码覆盖率情况。
5.处理可选参数
使用条件逻辑处理可选参数: