名称: gemini-analyze 描述: 发送文件到Gemini CLI进行结构化代码分析。当你需要安全审计、性能审查、架构分析或错误检测时使用。 参数提示: <文件路径> [分析类型: security|performance|architecture|bugs] 允许工具: Read, Bash
Gemini Analyze Command
发送文件到Gemini CLI进行结构化分析。
前提条件
- Gemini CLI 已安装并配置(
npm install -g @google/gemini-cli或brew install gemini-cli) - 有效的Google AI API密钥已在环境中配置
使用方式
/google-ecosystem:gemini-analyze <文件路径> [分析类型]
参数
$1(必需):要分析的文件路径$2(可选):分析类型 - 默认为"general"security- 安全漏洞和风险performance- 性能问题和优化architecture- 设计模式和结构bugs- 潜在错误和边界情况general- 整体代码审查
示例
/google-ecosystem:gemini-analyze src/auth.ts security/google-ecosystem:gemini-analyze lib/utils.py performance/google-ecosystem:gemini-analyze app/main.go architecture/google-ecosystem:gemini-analyze index.js bugs/google-ecosystem:gemini-analyze config.yaml(默认为general)
执行
步骤1: 验证文件
检查文件是否存在且可读:
if [ ! -f "$1" ]; then
echo "错误: 文件未找到: $1"
exit 1
fi
步骤2: 确定分析类型
analysis_type="${2:-general}"
步骤3: 构建提示
创建分析特定的提示:
case "$analysis_type" in
security)
prompt="安全审计此代码。识别:
1. 认证/授权漏洞
2. 输入验证问题
3. 注入漏洞(SQL、XSS、命令)
4. 敏感数据暴露
5. 加密弱点
对每个发现评级:CRITICAL、HIGH、MEDIUM、LOW"
;;
performance)
prompt="性能审查此代码。识别:
1. 算法低效
2. 内存泄漏或过度分配
3. 不必要操作
4. 缺少缓存机会
5. N+1查询模式
估计影响:HIGH、MEDIUM、LOW"
;;
architecture)
prompt="架构审查此代码。分析:
1. 使用的设计模式
2. SOLID原则遵循度
3. 关注点分离
4. 依赖管理
5. 可扩展性和可维护性
提供改进建议"
;;
bugs)
prompt="在此代码中查找错误。寻找:
1. 逻辑错误
2. 差一错误
3. 空/未定义处理
4. 竞争条件
5. 未处理的边界情况
6. 类型不匹配
评级可能性:LIKELY、POSSIBLE、UNLIKELY"
;;
*)
prompt="通用代码审查。评估:
1. 代码质量和可读性
2. 最佳实践遵循度
3. 潜在问题
4. 改进建议"
;;
esac
步骤4: 执行分析
result=$(cat "$1" | gemini "$prompt" -m gemini-2.5-flash)
步骤5: 解析结果
注意: Gemini CLI默认输出纯文本,而非JSON。下面的jq解析适用于JSON输出模式。对于标准用法,将整个输出视为响应。
response=$(echo "$result" | jq -r '.response // "分析失败"')
tokens=$(echo "$result" | jq '.stats.models | to_entries | map(.value.tokens.total) | add // 0')
model=$(echo "$result" | jq -r '.stats.models | keys[0] // "unknown"')
输出格式
以结构化格式呈现发现:
# Gemini Analysis: {filename}
**类型**: {analysis_type}
**模型**: {model}
**令牌**: {tokens}
---
{response}
---
*Analysis by Gemini CLI*
备注
- 默认使用Flash模型以提高成本效率
- 支持多种分析类型,具有专门的提示
- 结构化发现,带有严重性/影响评级
- 报告令牌使用以跟踪成本