name: gemini-exploration-patterns description: 使用Gemini大型上下文窗口进行代码库探索的战略模式。涵盖令牌阈值、模型路由和探索策略。在决定使用Claude还是Gemini进行探索、分析大型代码库或根据上下文大小选择Flash和Pro模型时使用。 allowed-tools: Read, Glob, Grep, Skill
Gemini探索模式
🚨 强制性:首先调用gemini-cli-docs
停止 - 在提供任何关于Gemini探索的响应之前:
- 调用
gemini-cli-docs技能- 查询 特定的探索/上下文主题
- 基于 加载的官方文档进行所有响应
概述
此技能提供利用Gemini CLI大型上下文窗口进行代码库探索的战略指导。涵盖何时委托探索给Gemini、使用哪个模型以及如何构建输出以供Claude使用。
何时使用此技能
关键词: 探索代码库、分析架构、大型上下文、令牌限制、gemini探索、代码库分析、何时使用gemini、模型选择
使用此技能时:
- 决定使用Claude还是Gemini进行探索
- 规划大型代码库分析
- 在Flash和Pro模型之间选择
- 构建跨CLI消费的探索输出
- 优化探索的成本与质量
令牌阈值决策矩阵
| 代码库大小 | 令牌数 | 推荐代理 | 理由 |
|---|---|---|---|
| 小 | <50K | Claude原生 | Claude的工具更快 |
| 中 | 50K-500K | Gemini Flash | 速度/成本的良好平衡 |
| 大 | 500K-1M | Gemini Flash + 分块 | 保持在Flash限制内 |
| 非常大 | 1M-2M | Gemini Pro | 需要扩展上下文 |
| 巨大 | >2M | Gemini Pro + 渐进式 | 多遍探索 |
令牌估算
# 快速估算:1令牌约4字符
chars=$(find . -name "*.ts" -o -name "*.py" | xargs wc -c | tail -1 | awk '{print $1}')
tokens=$((chars / 4))
echo "估算令牌数:$tokens"
决策规则
如果估算令牌数 < 50,000:
使用Claude的原生探索代理
否则如果估算令牌数 < 1,000,000:
通过/gemini-explore使用Gemini Flash
否则如果估算令牌数 < 2,000,000:
通过/gemini-explore --pro使用Gemini Pro
否则:
使用渐进式探索(按模块分块)
模型选择指南
Gemini Flash (gemini-2.5-flash)
上下文: 大(具体限制由Google设置,检查当前API文档) 成本: 较低 速度: 更快
最适合:
- 批量文件分析
- 跨代码库的模式检测
- 依赖映射
- 初始探索遍
- 日志文件分析
- 文档生成
Gemini Pro (gemini-2.5-pro)
上下文: 非常大(具体限制由Google设置,检查当前API文档) 成本: 较高 速度: 较慢
最适合:
- 复杂架构推理
- 安全关键分析
- 细微代码质量评估
- 非常大代码库(>1M令牌)
- 需要深入理解的任务
探索策略
策略1:全代码库扫描
最适合:理解整体架构
# 收集所有源文件
find . -type f \( -name "*.ts" -o -name "*.tsx" \) \
-not -path "*/node_modules/*" \
-not -path "*/.git/*" \
| xargs cat | gemini "分析架构" --output-format json
策略2:按模块
最适合:非常大代码库(>2M令牌)
# 分别探索每个顶级模块
for dir in src/*/; do
echo "=== 探索 $dir ==="
find "$dir" -name "*.ts" | xargs cat | gemini "分析此模块" --output-format json
done
策略3:入口点聚焦
最适合:理解执行流
# 聚焦入口点及其依赖
cat package.json src/index.ts src/main.ts | gemini "分析入口点和启动流" --output-format json
策略4:依赖优先
最适合:理解关系
# 包清单 + 导入语句
find . -name "package.json" -o -name "requirements.txt" -o -name "go.mod" | xargs cat
grep -r "^import\|^from" src/ | head -1000
策略5:渐进深度
最适合:迭代理解
- 遍1: 仅文件树 + README文件
- 遍2: 包清单 + 配置文件
- 遍3: 入口点 + 主模块
- 遍4: 特定领域深度分析
输出格式标准
所有Gemini探索输出应遵循此格式以供Claude使用:
YAML前导(必需)
---
generated-by: gemini-cli
model: gemini-2.5-flash
timestamp: 2025-11-30T12:00:00Z
tokens: 150000
scope: architecture|dependencies|patterns|all
---
机器可读摘要(必需)
{
"type": "exploration",
"scope": "architecture",
"tokens_used": 150000,
"model": "gemini-2.5-flash",
"key_findings": [
"使用Clean Architecture模式",
"React前端与Express后端",
"PostgreSQL数据库与Prisma ORM"
],
"files_analyzed": 245,
"entry_points": ["src/index.ts", "src/server.ts"]
}
人类可读内容(必需)
结构化Markdown,包含清晰部分:
- 概述: 2-3句摘要
- 架构: 目录结构、模式
- 关键组件: 核心模块和职责
- 依赖: 外部和内部
- 模式: 约定和风格
- 推荐: 首先阅读的内容、关注领域
给Claude的推荐(必需)
具体、可操作的指导:
## 给Claude的推荐
### 首先阅读的文件
1. `src/index.ts` - 主入口点
2. `src/config/index.ts` - 配置模式
3. `CLAUDE.md` - 项目约定
### 遵循的模式
- 对服务使用依赖注入
- 遵循`src/errors/`中的现有错误处理模式
### 关注领域
- `src/store/`中的复杂状态管理 - 仔细阅读
- `prisma/migrations/`中的数据库迁移 - 在更改架构前检查
文件过滤模式
包含模式
# 源代码
-name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx"
-name "*.py" -o -name "*.go" -o -name "*.rs" -o -name "*.java"
# 配置
-name "*.json" -o -name "*.yaml" -o -name "*.yml" -o -name "*.toml"
# 文档
-name "*.md" -o -name "README*"
排除模式
-not -path "*/node_modules/*"
-not -path "*/.git/*"
-not -path "*/dist/*"
-not -path "*/build/*"
-not -path "*/__pycache__/*"
-not -path "*/.next/*"
-not -path "*/coverage/*"
-not -path "*/.cache/*"
成本优化
减少令牌使用
- 积极过滤: 仅包含相关文件类型
- 限制文件数量: 使用
head -500处理文件列表 - 截断大文件: 限制单个文件的合理大小
- 排除生成代码: dist/, build/, vendor/
高效批处理
# 不好:许多小调用
for file in *.ts; do gemini "分析 $file"; done
# 好:一个大调用
cat *.ts | gemini "分析所有文件"
相关技能
gemini-delegation-patterns- 何时委托任何任务给Geminigemini-token-optimization- 成本优化策略gemini-cli-execution- CLI调用模式gemini-workspace-bridge- 工件存储和交换
相关命令
/gemini-explore- 以标准输出执行探索/gemini-plan- 生成实施计划
关键词注册表
| 主题 | 关键词 |
|---|---|
| 令牌限制 | context window, token limit, large context |
| 模型选择 | flash vs pro, which model, model routing |
| 探索 | explore codebase, analyze architecture, understand code |
| 成本 | reduce tokens, optimize cost, batch calls |
| 输出 | exploration format, cross-cli artifact, claude readable |
测试场景
场景1:令牌阈值决策
查询: “我应该使用Claude还是Gemini来探索这个代码库?” 预期行为:
- 在“explore codebase”或“large context”上激活技能
- 提供令牌阈值决策矩阵 成功标准: 用户基于代码库大小获得清晰指导
场景2:模型选择
查询: “我应该使用Flash还是Pro进行代码库分析?” 预期行为:
- 在“flash vs pro”或“which model”上激活技能
- 提供模型比较和用例 成功标准: 用户获得带理由的模型推荐
场景3:探索策略
查询: “如何使用Gemini分析一个非常大的代码库?” 预期行为:
- 在“very large”或“analyze architecture”上激活技能
- 提供渐进式探索策略 成功标准: 用户获得按模块或分块方法
版本历史
- v1.1.0 (2025-12-01): 添加了强制性部分、测试场景、版本历史
- v1.0.0 (2025-11-25): 初始发布