name: Gemini 内存同步 description: 用于同步 CLAUDE.md 和 GEMINI.md 内存文件的模式。涵盖导入语法、漂移检测和单向同步。在设置 GEMINI.md、检测内存文件间的上下文漂移、理解 @import 语法或解决同步问题时使用。 allowed-tools: Read, Glob, Grep, Bash
Gemini 内存同步
文档委托
文档来源: 有关权威的内存/导入语法和当前功能,请查询
gemini-cli-docs技能。 此技能提供同步模式;gemini-cli-docs提供官方 Gemini CLI 文档。
概述
此技能提供了保持 Claude Code (CLAUDE.md) 和 Gemini CLI (GEMINI.md) 内存文件同步的模式。核心原则是 CLAUDE.md 作为真相源,GEMINI.md 导入并添加覆盖。
何时使用此技能
关键词: 同步内存、同步上下文、claude.md gemini.md、内存导入、上下文漂移、@import、memport
在以下情况下使用此技能:
- 为新项目设置 GEMINI.md
- 检测内存文件间的漂移
- 理解导入语法
- 解决同步问题
核心原则:单一真相源
CLAUDE.md (真相源)
│
│ @import
▼
GEMINI.md (导入 + 覆盖)
为什么 CLAUDE.md 是源:
- Claude Code 是主要的开发环境
- CLAUDE.md 已在大多数项目中建立
- 单点更新减少维护负担
- Git 历史在一个地方显示上下文演进
GEMINI.md 结构
推荐模板
# GEMINI.md
@CLAUDE.md
## Gemini 特定覆盖
您是 Gemini CLI。您的独特能力:
- 大上下文窗口 (Flash) / 非常大 (Pro)
- 交互式 PTY shell (vim, git rebase -i, htop)
- 具有即时回滚的检查点
- 用于工具控制的策略引擎
- 原生 Google Cloud 认证
### 何时使用您的优势
- **批量分析:** 使用大上下文进行代码库范围探索
- **交互式工具:** 处理 vim、git 交互命令
- **风险操作:** 使用沙箱和检查点
- **第二意见:** 提供独立验证
### 模型选择
- 使用 **Flash** 进行批量分析和简单任务
- 使用 **Pro** 进行复杂推理和非常大上下文
导入语法
Gemini CLI 使用 @ 前缀进行导入 (memport):
# 导入整个文件
@CLAUDE.md
# 导入相对路径
@./docs/conventions.md
# 从父级导入
@../shared/COMMON.md
注意: 与 CLAUDE.md 的灵活导入不同,GEMINI.md 的 memport 具有:
- 最大导入深度:5 层
- 循环导入检测
- 文件访问验证
漂移检测
手动检测
# 快速差异 (忽略 Gemini 特定部分)
diff <(grep -v "^## Gemini-Specific" CLAUDE.md) <(grep -v "^## Gemini-Specific\|^@" GEMINI.md)
基于哈希的检测
# 存储 CLAUDE.md 的哈希
claude_hash=$(md5sum CLAUDE.md | cut -d' ' -f1)
# 存储在同步状态中
echo "{\"claude_hash\": \"$claude_hash\", \"last_sync\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}" > .claude/temp/sync-state.json
检查漂移
# 比较当前哈希与存储的哈希
current_hash=$(md5sum CLAUDE.md | cut -d' ' -f1)
stored_hash=$(cat .claude/temp/sync-state.json 2>/dev/null | jq -r '.claude_hash // ""')
if [ "$current_hash" != "$stored_hash" ]; then
echo "CLAUDE.md 自上次同步后已更改"
fi
同步模式
模式 1:基于导入 (推荐)
GEMINI.md 只需导入 CLAUDE.md – 无需同步:
# GEMINI.md
@CLAUDE.md
## Gemini 特定
{覆盖在此}
优点:
- 无需同步维护
- 始终保持最新
- 强制执行单一真相源
缺点:
- GEMINI.md 必须以 @import 开头
- 无法选择性导入部分
模式 2:基于部分的同步
从 CLAUDE.md 复制特定部分:
# 提取特定部分
conventions=$(sed -n '/^## Conventions/,/^## /p' CLAUDE.md | head -n -1)
build_commands=$(sed -n '/^## Build/,/^## /p' CLAUDE.md | head -n -1)
# 重建 GEMINI.md
cat > GEMINI.md << EOF
# GEMINI.md
## 约定 (从 CLAUDE.md 同步)
$conventions
## 构建命令 (从 CLAUDE.md 同步)
$build_commands
## Gemini 特定覆盖
{您的覆盖}
EOF
优点:
- 选择性控制
- 可以转换内容
缺点:
- 需要手动同步
- 容易漂移
模式 3:模板生成
# 将 CLAUDE.md 转换为 GEMINI.md
cat CLAUDE.md | \
sed 's/Claude Code/Gemini CLI/g' | \
sed 's/claude/gemini/g' > GEMINI.md
# 追加 Gemini 特定部分
cat >> GEMINI.md << 'EOF'
## Gemini 特定覆盖
{覆盖}
EOF
常见问题
问题:导入不工作
症状: Gemini 看不到 CLAUDE.md 内容
修复: 确保正确的路径语法
# 正确
@CLAUDE.md
@./CLAUDE.md
# 不正确
@/CLAUDE.md (绝对路径可能失败)
问题:循环导入
症状: 关于循环引用的错误
修复: 不要让 CLAUDE.md 导入 GEMINI.md
问题:导入深度超出
症状: 嵌套导入未加载
修复: Memport 最大深度为 5。扁平化导入链。
问题:上下文漂移
症状: Gemini 行为与 Claude 不同
修复:
- 使用
/sync-context命令 - 或使用 @import 模式重建 GEMINI.md
最佳实践
1. 使用 @Import 模式
始终优先导入而非复制:
# GEMINI.md - 好
@CLAUDE.md
## Gemini 特定
...
2. 保持覆盖最小化
仅覆盖真正 Gemini 特定的内容:
- 模型选择指导
- 交互式 shell 指令
- 沙箱使用模式
3. 记录同步内容
如果使用基于部分的同步,注明来源:
## 约定 (于 2025-11-30 从 CLAUDE.md 同步)
4. 同步后验证
测试 Gemini 是否理解上下文:
gemini "项目约定是什么?" --output-format json
5. 定期漂移检查
在 CI 或预提交中包含:
# 在 CI 中
./scripts/check-memory-drift.sh
同步工作流
初始设置
# 1. 确保 CLAUDE.md 存在
if [ ! -f "CLAUDE.md" ]; then
echo "CLAUDE.md 未找到。请先创建。"
exit 1
fi
# 2. 使用导入创建 GEMINI.md
cat > GEMINI.md << 'EOF'
# GEMINI.md
@CLAUDE.md
## Gemini 特定覆盖
您是 Gemini CLI,具有独特能力:
- 大上下文窗口 (超出典型 LLM 限制)
- 交互式 PTY shell
- 具有回滚的检查点
- 策略引擎
优先处理利用这些优势的任务。
EOF
# 3. 初始化同步状态
mkdir -p .claude/temp
echo "{\"claude_hash\": \"$(md5sum CLAUDE.md | cut -d' ' -f1)\", \"last_sync\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}" > .claude/temp/sync-state.json
echo "GEMINI.md 已创建,使用 @import 到 CLAUDE.md"
手动同步
# 检查是否需要同步
if [ "$(md5sum CLAUDE.md | cut -d' ' -f1)" != "$(cat .claude/temp/sync-state.json | jq -r '.claude_hash')" ]; then
echo "CLAUDE.md 已更改。如果使用 @import,则无需操作。"
echo "如果使用基于部分的同步,请重建 GEMINI.md 部分。"
# 更新同步状态
echo "{\"claude_hash\": \"$(md5sum CLAUDE.md | cut -d' ' -f1)\", \"last_sync\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}" > .claude/temp/sync-state.json
fi
相关技能
gemini-workspace-bridge- 总体工作区架构gemini-context-bridge- 旧版上下文共享
相关命令
/sync-context- 触发手动同步检查
测试场景
场景 1:初始设置
查询: “如何设置 GEMINI.md 以使用 CLAUDE.md?” 预期行为:
场景 2:漂移检测
查询: “如何检查我的内存文件是否不同步?” 预期行为:
- 在 “上下文漂移” 或 “同步” 上激活技能
- 提供基于哈希的检测方法 成功标准: 用户接收漂移检测脚本
场景 3:导入问题
查询: “我的 GEMINI.md @import 不工作” 预期行为:
- 在 “导入” 故障排除上激活技能
- 提供常见问题和修复 成功标准: 用户接收路径语法的故障排除步骤
版本历史
- v1.1.0 (2025-12-01):添加了 MANDATORY 部分、测试场景、版本历史
- v1.0.0 (2025-11-25):初始发布