name: sync-context description: 同步CLAUDE.md到GEMINI.md并检查上下文漂移 argument-hint: [–status] [–init] [–force] allowed-tools: Read, Write, Glob, Bash
同步上下文命令
检查并同步CLAUDE.md(真相源)和GEMINI.md之间的上下文。
用法
/google-ecosystem:sync-context [选项]
参数
--status- 显示同步状态,不进行更改--init- 使用@import模式初始化GEMINI.md--force- 强制从模板重新生成GEMINI.md
示例
/google-ecosystem:sync-context- 检查同步状态/google-ecosystem:sync-context --status- 显示详细同步报告/google-ecosystem:sync-context --init- 如果缺失则创建GEMINI.md/google-ecosystem:sync-context --force- 重新生成GEMINI.md
同步策略
该命令实现**@import模式**:
# GEMINI.md
@CLAUDE.md
## Gemini特定覆盖
{覆盖内容}
通过此模式,GEMINI.md自动保持同步,因为它通过Gemini的memport系统直接导入CLAUDE.md。
执行
步骤1:解析参数
mode="status" # 默认
case "$1" in
--status) mode="status" ;;
--init) mode="init" ;;
--force) mode="force" ;;
esac
步骤2:检查先决条件
# 检查CLAUDE.md是否存在
if [ ! -f "CLAUDE.md" ]; then
echo "错误:CLAUDE.md未找到"
echo "首先创建CLAUDE.md - 它是真相源"
exit 1
fi
步骤3:确定同步状态
# 创建同步状态目录
mkdir -p .claude/temp
# 获取当前CLAUDE.md哈希
claude_hash=$(md5sum CLAUDE.md | cut -d' ' -f1)
# 读取存储的状态
if [ -f ".claude/temp/sync-state.json" ]; then
stored_hash=$(cat .claude/temp/sync-state.json | jq -r '.claude_hash // ""')
last_sync=$(cat .claude/temp/sync-state.json | jq -r '.last_sync // "never"')
else
stored_hash=""
last_sync="never"
fi
# 检查GEMINI.md是否存在
gemini_exists="no"
gemini_uses_import="no"
if [ -f "GEMINI.md" ]; then
gemini_exists="yes"
if head -5 GEMINI.md | grep -q "^@CLAUDE.md"; then
gemini_uses_import="yes"
fi
fi
步骤4:基于模式执行
状态模式
if [ "$mode" = "status" ]; then
echo "## 上下文同步状态"
echo ""
echo "| 文件 | 状态 |"
echo "|------|--------|"
echo "| CLAUDE.md | 存在 |"
echo "| GEMINI.md | $gemini_exists |"
echo "| 使用@import | $gemini_uses_import |"
echo ""
echo "**CLAUDE.md哈希:** $claude_hash"
echo "**存储哈希:** ${stored_hash:-无}"
echo "**最后同步:** $last_sync"
echo ""
if [ "$claude_hash" = "$stored_hash" ]; then
echo "**状态:** 同步中"
else
echo "**状态:** CLAUDE.md自上次同步后已更改"
fi
if [ "$gemini_uses_import" = "yes" ]; then
echo ""
echo "**注意:** GEMINI.md使用@import模式 - 自动同步"
fi
fi
初始化模式
if [ "$mode" = "init" ]; then
if [ "$gemini_exists" = "yes" ]; then
echo "GEMINI.md已存在。使用--force重新生成。"
exit 1
fi
cat > GEMINI.md << 'GEMINI_EOF'
# GEMINI.md
@CLAUDE.md
## Gemini特定覆盖
您是Gemini CLI。您的独特能力包括:
- **大上下文窗口**(Flash)/ 非常大(Pro)
- **交互式PTY shell** - vim, git rebase -i, htop, psql
- **检查点** - 基于Git的快照,即时回滚
- **策略引擎** - 基于TOML的工具执行控制
- **原生Google Cloud认证**
### 何时利用您的优势
使用您的大上下文进行:
- 完整代码库探索和架构分析
- 批量文件处理和模式检测
- 大日志文件分析
使用您的交互式shell进行:
- vim, nano, emacs编辑会话
- git rebase -i, git add -p
- 数据库CLI(psql, mysql, redis-cli)
- 系统监视器(htop, top)
使用检查点进行:
- 风险重构操作
- 实验性更改
- 数据库迁移
### 模型选择
- **Flash**(gemini-2.5-flash):批量分析,简单任务,成本效益高
- **Pro**(gemini-2.5-pro):复杂推理,质量关键,非常大上下文
GEMINI_EOF
# 更新同步状态
echo "{\"claude_hash\": \"$claude_hash\", \"last_sync\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}" > .claude/temp/sync-state.json
echo "GEMINI.md已创建,使用@import到CLAUDE.md"
echo "同步状态已初始化"
fi
强制模式
if [ "$mode" = "force" ]; then
# 备份现有
if [ -f "GEMINI.md" ]; then
cp GEMINI.md "GEMINI.md.backup.$(date +%Y%m%d%H%M%S)"
echo "已备份现有GEMINI.md"
fi
# 与初始化相同
cat > GEMINI.md << 'GEMINI_EOF'
# GEMINI.md
@CLAUDE.md
## Gemini特定覆盖
您是Gemini CLI。您的独特能力包括:
- **大上下文窗口**(Flash)/ 非常大(Pro)
- **交互式PTY shell** - vim, git rebase -i, htop, psql
- **检查点** - 基于Git的快照,即时回滚
- **策略引擎** - 基于TOML的工具执行控制
- **原生Google Cloud认证**
### 何时利用您的优势
使用您的大上下文进行:
- 完整代码库探索和架构分析
- 批量文件处理和模式检测
- 大日志文件分析
使用您的交互式shell进行:
- vim, nano, emacs编辑会话
- git rebase -i, git add -p
- 数据库CLI(psql, mysql, redis-cli)
- 系统监视器(htop, top)
使用检查点进行:
- 风险重构操作
- 实验性更改
- 数据库迁移
### 模型选择
- **Flash**(gemini-2.5-flash):批量分析,简单任务,成本效益高
- **Pro**(gemini-2.5-pro):复杂推理,质量关键,非常大上下文
GEMINI_EOF
# 更新同步状态
echo "{\"claude_hash\": \"$claude_hash\", \"last_sync\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}" > .claude/temp/sync-state.json
echo "GEMINI.md已重新生成,使用@import到CLAUDE.md"
echo "同步状态已更新"
fi
输出示例
状态检查
## 上下文同步状态
| 文件 | 状态 |
| --- | --- |
| CLAUDE.md | 存在 |
| GEMINI.md | 是 |
| 使用@import | 是 |
**CLAUDE.md哈希:** a1b2c3d4e5f6
**存储哈希:** a1b2c3d4e5f6
**最后同步:** 2025-11-30T12:00:00Z
**状态:** 同步中
**注意:** GEMINI.md使用@import模式 - 自动同步
初始化成功
GEMINI.md已创建,使用@import到CLAUDE.md
同步状态已初始化
注意
- CLAUDE.md始终是真相源
- GEMINI.md应使用@import模式以实现自动同步
- 同步状态存储在
.claude/temp/sync-state.json - 使用–force时自动创建备份
- @import模式意味着GEMINI.md始终与CLAUDE.md同步