Gemini代码分析工具Skill gemini-analyze

这个技能使用Gemini CLI对代码文件进行结构化分析,支持安全审计、性能审查、架构评估和错误检测,帮助开发者优化代码质量和效率。关键词:代码分析、AI代码审查、安全漏洞、性能优化、架构设计、错误查找、Gemini CLI、软件开发工具。

AI应用 0 次安装 0 次浏览 更新于 3/11/2026

名称: gemini-analyze 描述: 发送文件到Gemini CLI进行结构化代码分析。当你需要安全审计、性能审查、架构分析或错误检测时使用。 参数提示: <文件路径> [分析类型: security|performance|architecture|bugs] 允许工具: Read, Bash

Gemini Analyze Command

发送文件到Gemini CLI进行结构化分析。

前提条件

  • Gemini CLI 已安装并配置(npm install -g @google/gemini-clibrew 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模型以提高成本效率
  • 支持多种分析类型,具有专门的提示
  • 结构化发现,带有严重性/影响评级
  • 报告令牌使用以跟踪成本