geo-update について
geo-updateは、上流リポジトリからローカルのGEO-SEOツールキットを更新するスキルです。更新適用前にファイルを比較して変更点を報告し、上流からなくなったローカルファイルは保持します。
主な機能
- 01ローカルのGEO-SEO導入状況を確認
- 02最新の上流ファイルを取得
- 03追加・変更ファイルを要約
- 04上流から消えたローカルファイルを保持
- 05必要に応じてPython依存関係を更新
- 06更新結果を報告
活用シーン
- 01導入済みGEO-SEOツールキットの更新
- 02更新ファイルのコピー前の変更確認
- 03上流にないローカルファイルの特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zubair-trabzada/ geo-seo-claude --skill geo-updateインストール後、Claude Code で/geo-updateを入力して読み込まれたか確認します。
詳細
GEO-SEO 更新スキル
目的
ローカルにインストールされている GEO-SEO のスキル、エージェント、スクリプト、スキーマテンプレートを、上流リポジトリの最新バージョンに更新します。更新前後の変更点の概要を表示します。
更新ワークフロー
ステップ 1:インストール先を確認する
GEO-SEO ツールキットは、~/.claude/ 以下の次の場所にインストールされます。
| コンポーネント | インストール先 |
|---|---|
| メインスキル | ~/.claude/skills/geo/ |
| サブスキル | ~/.claude/skills/geo-*/ |
| エージェント | ~/.claude/agents/geo-*.md |
| スクリプト | ~/.claude/skills/geo/scripts/ |
| スキーマテンプレート | ~/.claude/skills/geo/schema/ |
| フック | ~/.claude/skills/geo/hooks/ |
~/.claude/skills/geo/SKILL.md があるか確認して、インストールされていることを確かめます。存在しない場合は、GEO-SEO がインストールされていないことをユーザーに伝え、代わりにインストーラーを実行するよう案内します。
ステップ 2:上流から最新バージョンをクローンする
TEMP_DIR=$(mktemp -d)
git clone --depth 1 https://github.com/zubair-trabzada/geo-seo-claude.git "$TEMP_DIR/repo"
クローンに失敗した場合は、エラーを報告して停止します。インストール済みのファイルは変更しないでください。
ステップ 3:インストール済みのファイルと最新バージョンを比較する
ファイルをコピーする前に、ユーザーが変更内容を把握できるよう、差分の概要を生成します。
- 各コンポーネントディレクトリについて、
diff --recursive --briefを使い、インストール済みのファイルとクローンしたファイルを比較します。 - 変更を次のように分類します。
- 新規ファイル — 上流には存在するが、ローカルには存在しないファイル
- 変更されたファイル — 両方に存在するが、内容が異なるファイル
- 削除されたファイル — ローカルには存在するが、上流には存在しないファイル(これらは自動的には削除されません)
- 概要をユーザーに提示します。
ステップ 4:更新を適用する
クローンしたリポジトリのファイルを、インストール先にコピーします。
CLAUDE_DIR="${HOME}/.claude"
SOURCE_DIR="$TEMP_DIR/repo"
# Main skill
cp -r "$SOURCE_DIR/geo/"* "$CLAUDE_DIR/skills/geo/"
# Sub-skills
for skill_dir in "$SOURCE_DIR/skills"/*/; do
skill_name=$(basename "$skill_dir")
mkdir -p "$CLAUDE_DIR/skills/${skill_name}"
cp -r "$skill_dir"* "$CLAUDE_DIR/skills/${skill_name}/"
done
# Agents
for agent_file in "$SOURCE_DIR/agents/"*.md; do
cp "$agent_file" "$CLAUDE_DIR/agents/"
done
# Scripts
if [ -d "$SOURCE_DIR/scripts" ]; then
cp -r "$SOURCE_DIR/scripts/"* "$CLAUDE_DIR/skills/geo/scripts/"
chmod +x "$CLAUDE_DIR/skills/geo/scripts/"*.py 2>/dev/null || true
fi
# Schema templates
if [ -d "$SOURCE_DIR/schema" ]; then
cp -r "$SOURCE_DIR/schema/"* "$CLAUDE_DIR/skills/geo/schema/"
fi
# Hooks
if [ -d "$SOURCE_DIR/hooks" ] && [ "$(ls -A "$SOURCE_DIR/hooks" 2>/dev/null)" ]; then
mkdir -p "$CLAUDE_DIR/skills/geo/hooks"
cp -r "$SOURCE_DIR/hooks/"* "$CLAUDE_DIR/skills/geo/hooks/"
chmod +x "$CLAUDE_DIR/skills/geo/hooks/"* 2>/dev/null || true
fi
ステップ 5:Python の依存関係を更新する
上流リポジトリに requirements.txt が存在し、インストール済みのバージョンと異なる場合は、次のようにします。
python3 -m pip install -r "$SOURCE_DIR/requirements.txt" --quiet
失敗があれば報告しますが、致命的なエラーとして扱わないでください。
ステップ 6:クリーンアップする
rm -rf "$TEMP_DIR"
ステップ 7:結果を報告する
概要を提示します。
GEO-SEO Update Complete
=======================
New files: [count]
Modified files: [count]
Unchanged: [count]
Removed upstream (kept locally): [count]
Dependencies: [updated / unchanged / failed]
上流で削除されたファイルがある場合は、その一覧を示し、手動で削除するかどうか確認するようユーザーに提案します。
重要な注意事項
- 上流に存在しなくなったローカルのインストール済みファイルは削除しないでください。 ユーザーがカスタマイズしている可能性があります。ファイルの一覧を示し、判断はユーザーに委ねてください。
~/.claude/settings.jsonや~/.claude/settings.local.jsonは変更しないでください。 これらはユーザー設定ファイルであり、GEO-SEO ツールキットの一部ではありません。- すでに最新の場合(差分がない場合) は、その旨を報告し、コピーの手順を省略します。
- 再起動に関する通知: スキルの変更は、新しい Claude Code セッションで反映されることをユーザーに伝えてください。更新されたスキルを使うには、セッションを再起動する必要があります。
コメント
Markdown 対応