TOML命令构建器Skill toml-command-builder

这个技能提供创建Gemini CLI TOML自定义命令的全面指南,涵盖语法、模板、参数处理、shell注入和文件注入,适用于自动化工具构建和命令行扩展。关键词:TOML命令、自定义命令、Gemini CLI、参数处理、shell注入、文件注入、自动化开发。

DevOps 0 次安装 0 次浏览 更新于 3/11/2026

name: toml-command-builder description: 构建Gemini CLI TOML自定义命令的指南。涵盖语法、模板、参数处理、shell注入和文件注入。在创建Gemini TOML命令时使用,包括添加{{args}}参数处理、使用!{}注入shell输出或排查命令问题。 argument-hint: [命令名称] [–scope 用户|项目] [–template git|test|docs|review] allowed-tools: 读取、全局搜索、搜索、Bash、技能

TOML命令构建器

文档委托

文档来源: 关于权威的TOML命令语法和当前功能,请查询gemini-cli-docs技能。 本技能提供导航和示例;gemini-cli-docs提供官方Gemini CLI文档。

概述

本技能提供创建Gemini CLI自定义命令使用TOML格式的全面指导。自定义命令是斜杠命令,通过项目特定或用户特定功能扩展Gemini的能力。

何时使用此技能

关键词: toml命令、自定义命令、斜杠命令gemini、gemini命令、创建命令、{{args}}、@{}, !{}

在以下情况使用此技能:

  • 创建新的Gemini CLI自定义命令
  • 理解TOML命令语法
  • 向命令添加参数处理
  • 注入shell输出或文件内容
  • 排查命令问题

命令位置

用户命令(全局)

~/.gemini/commands/
├── commit.toml           # /commit
├── review.toml           # /review
└── git/
    └── log.toml          # /git:log(命名空间)

项目命令(本地)

.gemini/commands/
├── build.toml            # /build
├── test.toml             # /test
└── deploy/
    └── staging.toml      # /deploy:staging

基本语法

最小命令

# ~/.gemini/commands/hello.toml
description = "一个简单的问候命令"
prompt = "向用户问好"

多行提示

description = "生成提交消息"
prompt = """
分析暂存更改并生成提交消息。

遵循常规提交格式:
- feat: 新功能
- fix: 错误修复
- docs: 文档
- refactor: 代码重构
"""

参数处理

基本参数({{args}}

命令后传递的参数在{{args}}处注入:

# /greet Kyle -> "向Kyle问好"
description = "问候一个人"
prompt = "向{{args}}问好"

默认行为

如果没有{{args}}占位符,参数被追加:

description = "分析代码"
prompt = "分析此代码以发现问题"
# /analyze src/main.ts -> "分析此代码以发现问题 src/main.ts"

多个参数

参数以空格分隔,可一起访问:

description = "比较两个文件"
prompt = "比较这些文件:{{args}}"
# /compare file1.ts file2.ts -> "比较这些文件:file1.ts file2.ts"

Shell注入(!{...}

执行shell命令并注入输出:

基本Shell

description = "分析git diff"
prompt = """
审查以下git diff:

~~~diff
!{git diff --staged}
~~~

提出改进建议。
"""

带安全性的Shell

命令在执行前需确认。使用--yolo跳过。

复杂Shell

description = "分析项目结构"
prompt = """
项目结构:
!{find . -type f -name "*.ts" | head -50}

包依赖:
!{cat package.json | jq '.dependencies'}

分析并提出改进建议。
"""

带参数的Shell

结合shell注入与参数:

description = "Grep搜索模式"
prompt = """
搜索"{{args}}"的结果:

!{grep -r "{{args}}" src/ --include="*.ts" | head -20}

分析这些出现。
"""

注意: shell块中的参数会自动转义以确保安全。

文件注入(@{...}

注入文件或目录内容:

单个文件

description = "审查配置"
prompt = """
审查此配置:

@{tsconfig.json}

提出改进建议。
"""

多个文件

description = "审查设置"
prompt = """
包配置:
@{package.json}

TypeScript配置:
@{tsconfig.json}

分析一致性。
"""

目录内容

description = "审查工具"
prompt = """
工具函数:
@{src/utils/}

分析模式和改进建议。
"""

注意: 目录注入尊重.gitignore.geminiignore

带参数

description = "审查文件"
prompt = """
审查此文件:
@{{{args}}}

提供反馈。
"""
# /review src/main.ts -> 注入src/main.ts的内容

处理顺序

注入按以下顺序处理:

  1. @{...} - 文件内容注入
  2. !{...} - shell命令执行
  3. {{args}} - 参数替换

命名空间

使用目录组织命令:

~/.gemini/commands/
├── git/
│   ├── commit.toml     # /git:commit
│   ├── review.toml     # /git:review
│   └── log.toml        # /git:log
├── test/
│   ├── unit.toml       # /test:unit
│   └── e2e.toml        # /test:e2e
└── deploy/
    ├── staging.toml    # /deploy:staging
    └── prod.toml       # /deploy:prod

模板库

Git提交消息

# ~/.gemini/commands/git/commit.toml
description = "从暂存更改生成常规提交消息"
prompt = """
分析暂存更改并生成提交消息。

## 暂存更改
~~~diff
!{git diff --staged}
~~~

## 要求

- 使用常规提交格式(feat/fix/docs/refactor/test/chore)
- 保持主题行在72个字符以内
- 如果更改重要,添加正文
- 如果适用,引用问题编号

仅生成提交消息,不添加其他内容。
"""

代码审查

# ~/.gemini/commands/review.toml
description = "以特定焦点审查代码更改"
prompt = """
审查以下代码更改:

~~~diff
!{git diff}
~~~

焦点:{{args}}

提供:

1. 发现的问题(如果有)
2. 改进建议
3. 正面观察
"""

测试生成器

# ~/.gemini/commands/test/generate.toml
description = "为文件生成测试"
prompt = """
为此文件生成全面测试:

@{{{args}}}

要求:
- 使用现有测试框架(jest/vitest/pytest)
- 覆盖边缘情况
- 包括正负测试
- 遵循项目中的现有测试模式
"""

文档生成器

# ~/.gemini/commands/docs/generate.toml
description = "为代码生成文档"
prompt = """
为以下生成文档:

@{{{args}}}

包括:
- 目的和概述
- 函数/方法文档
- 使用示例
- 参数描述
"""

依赖分析器

# ~/.gemini/commands/deps/analyze.toml
description = "分析项目依赖"
prompt = """
分析这些依赖:

## package.json
@{package.json}

## 锁定文件(部分)
!{head -100 package-lock.json 2>/dev/null || head -100 yarn.lock 2>/dev/null || echo "无锁定文件"}

识别:
1. 过时包
2. 安全担忧
3. 未使用依赖
4. 重复功能
"""

迁移助手

# ~/.gemini/commands/migrate.toml
description = "帮助代码迁移"
prompt = """
帮助迁移此代码:{{args}}

当前代码:
@{{{args}}}

迁移要求:
- 保留功能
- 遵循现代模式
- 如果缺少,添加TypeScript类型
- 更新过时API
"""

验证模式

检查语法

# 验证TOML语法
python -c "import tomllib; tomllib.load(open('command.toml', 'rb'))"

必填字段

  • description(字符串):在命令列表中显示
  • prompt(字符串):提示模板

常见错误

错误 原因 修复
解析错误 无效TOML语法 检查引号、括号
命令未找到 错误位置 验证路径
参数未注入 缺少{{args}} 添加占位符
Shell失败 命令错误 手动测试命令

最佳实践

1. 清晰描述

# 好
description = "使用常规格式从暂存更改生成提交消息"

# 差
description = "提交东西"

2. 结构化提示

prompt = """
## 任务
{做什么}

## 上下文
{相关信息}

## 要求
- {要求1}
- {要求2}

## 输出格式
{预期格式}
"""

3. 安全Shell命令

# 好 - 只读,有限输出
!{git diff --staged | head -500}

# 风险 - 可能具有破坏性
!{rm -rf {{args}}}  # 危险!

4. 有帮助的错误消息

prompt = """
{{args}}

如果未指定文件,响应:"请在命令后指定文件路径"
"""

5. 一致命名

commands/
├── git/          # Git操作
│   ├── commit.toml
│   └── review.toml
├── test/         # 测试
│   ├── unit.toml
│   └── e2e.toml
└── docs/         # 文档
    └── generate.toml

相关技能

  • gemini-cli-docs - 官方命令文档
  • policy-engine-builder - 工具执行策略

相关命令

  • /google-ecosystem:toml-command-builder - 交互式命令构建向导

关键词注册表

主题 关键词
基本语法 toml命令自定义命令gemini命令
参数 {{args}}命令参数参数注入
Shell !{...}shell注入git diff命令
文件 @{...}文件注入目录内容
命名空间 命令命名空间git:commit组织命令

测试场景

场景1:创建基本命令

查询: “如何在Gemini CLI中创建自定义TOML命令?” 预期行为:

  • 技能在"toml命令"或"自定义命令"时激活
  • 提供带描述和提示的基本TOML语法 成功标准: 用户收到可工作的.toml文件模板

场景2:Shell注入

查询: “如何在Gemini命令中包含git diff?” 预期行为:

  • 技能在"shell注入"或"git diff"时激活
  • 提供!{git diff}语法 成功标准: 用户收到带安全注释的shell注入模式

场景3:文件注入

查询: “如何将文件内容注入到Gemini命令中?” 预期行为:

  • 技能在"文件注入"或"@{"时激活
  • 提供@{filename}语法 成功标准: 用户收到带目录支持的文件注入模式

用户界面

当用户直接调用时,本技能运行交互式向导以构建Gemini CLI TOML自定义命令。

执行工作流

  1. 解析参数 - 提取命令名称、--scope(用户/项目)和--template(git/test/docs/review/analyze)。如果未提供名称,提示输入。
  2. 范围选择 - 确定保存位置:用户范围(~/.gemini/commands/)或项目范围(.gemini/commands/)。
  3. 模板选择 - 如果指定--template,加载预建模板(git、test、docs、review、analyze)。否则从头开始。
  4. 提示构建 - 指导用户通过{{args}}参数、@{file}文件注入、!{command}shell注入构建命令提示。
  5. 预览与验证 - 显示生成的TOML,验证语法,检查命名规则。
  6. 保存命令 - 将TOML文件写入适当目录并显示使用说明。

版本历史

  • v1.1.0 (2025-12-01):添加必需部分、测试场景、版本历史
  • v1.0.0 (2025-11-25):初始发布