Skill
sync-context
Synchronize CLAUDE.md to GEMINI.md and check for context drift
From google-ecosystemInstall
1
Run in your terminal$
npx claudepluginhub melodic-software/claude-code-plugins --plugin google-ecosystemTool Access
This skill is limited to using the following tools:
ReadWriteGlobBash
Skill Content
Sync Context Command
Check and synchronize context between CLAUDE.md (source of truth) and GEMINI.md.
Usage
/google-ecosystem:sync-context [options]
Arguments
--status- Show sync status without making changes--init- Initialize GEMINI.md with @import pattern--force- Force regenerate GEMINI.md from template
Examples
/google-ecosystem:sync-context- Check sync status/google-ecosystem:sync-context --status- Show detailed sync report/google-ecosystem:sync-context --init- Create GEMINI.md if missing/google-ecosystem:sync-context --force- Regenerate GEMINI.md
Sync Strategy
This command implements the @import pattern:
# GEMINI.md
@CLAUDE.md
## Gemini-Specific Overrides
{overrides}
With this pattern, GEMINI.md automatically stays in sync because it imports CLAUDE.md directly via Gemini's memport system.
Execution
Step 1: Parse Arguments
mode="status" # default
case "$1" in
--status) mode="status" ;;
--init) mode="init" ;;
--force) mode="force" ;;
esac
Step 2: Check Prerequisites
# Check CLAUDE.md exists
if [ ! -f "CLAUDE.md" ]; then
echo "ERROR: CLAUDE.md not found"
echo "Create CLAUDE.md first - it's the source of truth"
exit 1
fi
Step 3: Determine Sync State
# Create sync state directory
mkdir -p .claude/temp
# Get current CLAUDE.md hash
claude_hash=$(md5sum CLAUDE.md | cut -d' ' -f1)
# Read stored state
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
# Check if GEMINI.md exists
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
Step 4: Execute Based on Mode
Status Mode
if [ "$mode" = "status" ]; then
echo "## Context Sync Status"
echo ""
echo "| File | Status |"
echo "|------|--------|"
echo "| CLAUDE.md | EXISTS |"
echo "| GEMINI.md | $gemini_exists |"
echo "| Uses @import | $gemini_uses_import |"
echo ""
echo "**CLAUDE.md Hash:** $claude_hash"
echo "**Stored Hash:** ${stored_hash:-none}"
echo "**Last Sync:** $last_sync"
echo ""
if [ "$claude_hash" = "$stored_hash" ]; then
echo "**Status:** IN SYNC"
else
echo "**Status:** CLAUDE.md has changed since last sync"
fi
if [ "$gemini_uses_import" = "yes" ]; then
echo ""
echo "**Note:** GEMINI.md uses @import pattern - automatically in sync"
fi
fi
Init Mode
if [ "$mode" = "init" ]; then
if [ "$gemini_exists" = "yes" ]; then
echo "GEMINI.md already exists. Use --force to regenerate."
exit 1
fi
cat > GEMINI.md << 'GEMINI_EOF'
# GEMINI.md
@CLAUDE.md
## Gemini-Specific Overrides
You are Gemini CLI. Your unique capabilities include:
- **Large context window** (Flash) / Very large (Pro)
- **Interactive PTY shell** - vim, git rebase -i, htop, psql
- **Checkpointing** - Git-based snapshots with instant rollback
- **Policy engine** - TOML-based tool execution control
- **Native Google Cloud authentication**
### When to Leverage Your Strengths
Use your large context for:
- Full codebase exploration and architecture analysis
- Bulk file processing and pattern detection
- Large log file analysis
Use your interactive shell for:
- vim, nano, emacs editing sessions
- git rebase -i, git add -p
- Database CLIs (psql, mysql, redis-cli)
- System monitors (htop, top)
Use checkpointing for:
- Risky refactoring operations
- Experimental changes
- Database migrations
### Model Selection
- **Flash** (gemini-2.5-flash): Bulk analysis, simple tasks, cost-effective
- **Pro** (gemini-2.5-pro): Complex reasoning, quality-critical, very large contexts
GEMINI_EOF
# Update sync state
echo "{\"claude_hash\": \"$claude_hash\", \"last_sync\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}" > .claude/temp/sync-state.json
echo "GEMINI.md created with @import to CLAUDE.md"
echo "Sync state initialized"
fi
Force Mode
if [ "$mode" = "force" ]; then
# Backup existing
if [ -f "GEMINI.md" ]; then
cp GEMINI.md "GEMINI.md.backup.$(date +%Y%m%d%H%M%S)"
echo "Backed up existing GEMINI.md"
fi
# Same as init
cat > GEMINI.md << 'GEMINI_EOF'
# GEMINI.md
@CLAUDE.md
## Gemini-Specific Overrides
You are Gemini CLI. Your unique capabilities include:
- **Large context window** (Flash) / Very large (Pro)
- **Interactive PTY shell** - vim, git rebase -i, htop, psql
- **Checkpointing** - Git-based snapshots with instant rollback
- **Policy engine** - TOML-based tool execution control
- **Native Google Cloud authentication**
### When to Leverage Your Strengths
Use your large context for:
- Full codebase exploration and architecture analysis
- Bulk file processing and pattern detection
- Large log file analysis
Use your interactive shell for:
- vim, nano, emacs editing sessions
- git rebase -i, git add -p
- Database CLIs (psql, mysql, redis-cli)
- System monitors (htop, top)
Use checkpointing for:
- Risky refactoring operations
- Experimental changes
- Database migrations
### Model Selection
- **Flash** (gemini-2.5-flash): Bulk analysis, simple tasks, cost-effective
- **Pro** (gemini-2.5-pro): Complex reasoning, quality-critical, very large contexts
GEMINI_EOF
# Update sync state
echo "{\"claude_hash\": \"$claude_hash\", \"last_sync\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}" > .claude/temp/sync-state.json
echo "GEMINI.md regenerated with @import to CLAUDE.md"
echo "Sync state updated"
fi
Output Examples
Status Check
## Context Sync Status
| File | Status |
| --- | --- |
| CLAUDE.md | EXISTS |
| GEMINI.md | yes |
| Uses @import | yes |
**CLAUDE.md Hash:** a1b2c3d4e5f6
**Stored Hash:** a1b2c3d4e5f6
**Last Sync:** 2025-11-30T12:00:00Z
**Status:** IN SYNC
**Note:** GEMINI.md uses @import pattern - automatically in sync
Init Success
GEMINI.md created with @import to CLAUDE.md
Sync state initialized
Notes
- CLAUDE.md is always the source of truth
- GEMINI.md should use @import pattern for automatic sync
- Sync state stored in
.claude/temp/sync-state.json - Backups created automatically with --force
- The @import pattern means GEMINI.md is always in sync with CLAUDE.md
Similar Skills
Stats
Parent Repo Stars40
Parent Repo Forks6
Last CommitMar 17, 2026