Home
cd ../playbooks
Developer ToolsBeginner

GEO Toolkit Updater

Pull the latest geo-seo-claude skills, agents, scripts, and schema templates from upstream, with a diff summary before anything is overwritten

5 minutes
By Zubair TrabzadaSource
#geo#maintenance#tooling#updates#skills

AI search rules move faster than your installed tooling. Crawler lists grow, schema types get deprecated, scoring weights shift. Running an audit on last quarter's skill files gives you last quarter's answers.

Who it's for: GEO consultants running the geo-seo-claude suite, agency owners maintaining audit tooling, marketers who installed the toolkit months ago, technical SEOs

Example

"Update my GEO skills" → A diff summary of new, modified, and removed files across skills, agents, scripts, and schema templates, then an in-place update that leaves your local customizations intact

CLAUDE.md Template

New here? 3-minute setup guide → | Already set up? Copy the template below.

# GEO-SEO Update

Update the locally installed GEO-SEO skills, agents, scripts, and schema templates to the latest version from the upstream repository. Show a summary of what changed before and after the update.

---

## Update Workflow

### Step 1: Determine Installed Location

The GEO-SEO toolkit installs to these locations under `~/.claude/`:

| Component | Install Path |
|-----------|-------------|
| Main skill | `~/.claude/skills/geo/` |
| Sub-skills | `~/.claude/skills/geo-*/` |
| Agents | `~/.claude/agents/geo-*.md` |
| Scripts | `~/.claude/skills/geo/scripts/` |
| Schema templates | `~/.claude/skills/geo/schema/` |
| Hooks | `~/.claude/skills/geo/hooks/` |

Verify the installation exists by checking for `~/.claude/skills/geo/SKILL.md`. If it does not exist, tell the user GEO-SEO is not installed and suggest running the installer instead.

### Step 2: Clone Latest from Upstream

```bash
TEMP_DIR=$(mktemp -d)
git clone --depth 1 https://github.com/zubair-trabzada/geo-seo-claude.git "$TEMP_DIR/repo"
```

If the clone fails, report the error and stop. Do not modify any installed files.

### Step 3: Compare Installed vs Latest

Before copying files, generate a diff summary so the user knows what will change:

1. For each component directory, compare the installed files against the cloned files using `diff --recursive --brief`.
2. Categorise changes as:
   - **New files** — exist in upstream but not locally
   - **Modified files** — exist in both but differ
   - **Removed files** — exist locally but not in upstream (these are NOT deleted automatically)
3. Present the summary to the user.

### Step 4: Apply Updates

Copy files from the cloned repo over the installed locations:

```bash
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
```

### Step 5: Update Python Dependencies

If `requirements.txt` exists in the upstream repo and differs from the installed version:

```bash
python3 -m pip install -r "$SOURCE_DIR/requirements.txt" --quiet
```

Report any failures but do not treat them as fatal.

### Step 6: Clean Up

```bash
rm -rf "$TEMP_DIR"
```

### Step 7: Report Results

Present a summary:

```
GEO-SEO Update Complete
=======================
New files:      [count]
Modified files: [count]
Unchanged:      [count]
Removed upstream (kept locally): [count]

Dependencies: [updated / unchanged / failed]
```

If there were removed files upstream, list them and suggest the user review whether to delete them manually.

---

## Important Notes

- **Never delete locally installed files** that no longer exist upstream. The user may have customised them. List them and let the user decide.
- **Never modify `~/.claude/settings.json` or `~/.claude/settings.local.json`** — these are user configuration files, not part of the GEO-SEO toolkit.
- **If already up to date** (no diff), report that and skip the copy step.
- **Restart notice:** Remind the user that skill changes take effect in new Claude Code sessions. They should restart their session to use the updated skills.
README.md

What This Does

Refreshes an installed geo-seo-claude toolkit against the upstream repository. Claude checks the install exists under ~/.claude/, shallow-clones the latest repo to a temp directory, runs a recursive diff so you see what will change before it changes, then copies the main skill, all geo-* sub-skills, the audit agents, the Python scripts, the JSON-LD schema templates, and any hooks into place. It updates Python dependencies from requirements.txt and cleans up the temp clone.

The GEO guidance inside those skills carries dated facts: which schema types Google deprecated and when, which AI crawlers to check in robots.txt, how the 0-100 scores are weighted. Updating the files is how that guidance stays current.

This is one skill from Zubair Trabzada's geo-seo-claude toolkit, packaged as a standalone CLAUDE.md.


Quick Start

Step 1: Create a Project Folder

mkdir -p ~/Projects/GeoUpdate

Step 2: Download the Template

Click Download above, then:

mv ~/Downloads/CLAUDE.md ~/Projects/GeoUpdate/

Step 3: Start Working

cd ~/Projects/GeoUpdate
claude

Say "update my GEO skills" and Claude runs the workflow.


Safety Rules Built In

  • Nothing gets deleted. Files that exist locally but no longer exist upstream stay put and get listed for you to review, since you may have customized them.
  • Settings are off-limits. Claude never touches ~/.claude/settings.json or settings.local.json.
  • Failed clone means no changes. If the git clone fails, Claude reports the error and stops before modifying anything.
  • No-op when current. If the diff is empty, Claude says so and skips the copy step.

What You Get Back

GEO-SEO Update Complete
=======================
New files:      [count]
Modified files: [count]
Unchanged:      [count]
Removed upstream (kept locally): [count]

Dependencies: [updated / unchanged / failed]

Notes

  • Restart Claude Code after updating. Skill changes take effect in new sessions only.
  • Requires git and python3 on PATH. A dependency install failure is reported but not treated as fatal.
  • If ~/.claude/skills/geo/SKILL.md is missing, Claude tells you the toolkit isn't installed and points you at the installer instead of trying to update nothing.

$Related Playbooks

Developer Tools

Full-Output Enforcement: No Placeholders, No Stubs

A short rule set that bans TODO comments, skeleton code, and 'rest follows the same pattern' shortcuts so Claude always delivers complete, runnable output

2 minutes
Beginner
Developer Tools

GPT Taste Skill: Strict Anti-Slop UI Rules

A stricter, more deterministic anti-slop frontend ruleset with GSAP motion patterns, despite the GPT-oriented name it works as a standard CLAUDE.md in Claude Code

5 minutes
Intermediate
Developer Tools

GitHub Contributor

A phase-based playbook for shipping pull requests maintainers actually merge — discovery, CONTRIBUTING compliance, PR-size checks, minimal diffs, and post-submission interaction.

20 minutes
Intermediate
Developer Tools

GitHub Operations

Comprehensive GitHub operations using the gh CLI and REST/GraphQL APIs — PRs, issues, repositories, workflows, and bulk operations across public and Enterprise GitHub.

10 minutes
Intermediate
Developer Tools

Frontend Enhancer

Enhance Next.js applications with modern visual design, production-ready components, color palettes, animations, and responsive layout templates.

10 minutes
Intermediate
Developer Tools

Hookify Guardrails

Create custom Claude Code guardrails with lightweight markdown rule files instead of hand-editing hooks.json — pattern matching, no restart required, rules live-load on the next tool call.

5 minutes
Beginner
Developer Tools

Improve: Audit Your Codebase and Write the Plans

Turns Claude into a read-only senior advisor that audits a repo, ranks findings by leverage, and writes self-contained implementation plans to disk for cheaper models to execute

10 minutes
Intermediate
Developer Tools

Image-to-Code: Design Reference to Implementation

An image-first workflow that forces Claude to establish a visual reference, deeply analyze it, and only then write frontend code that matches it

10 minutes
Intermediate
Developer Tools

Imagegen Frontend Mobile: App Screen & Flow Reference Generator

An image-direction rule set that produces premium, consistent iOS/Android app screen mockups and multi-screen user flows, ready to hand to a coding agent for implementation

10 minutes
Intermediate
Developer Tools

Imagegen Frontend Web: Website Design Reference Generator

An image-direction rule set that turns a one-line brief into a full set of Awwwards-level website design comps, one horizontal image per section, ready to hand to a coding agent

10 minutes
Intermediate
Developer Tools

i18n Expert

Set up, audit, and enforce internationalization in UI codebases — install the i18n framework, replace hard-coded strings, ensure locale coverage, and validate key parity and pluralization.

20 minutes
Intermediate
Developer Tools

iOS App Developer

Develop iOS/macOS apps with XcodeGen, SwiftUI, and SPM — including Apple Developer signing, notarization, and CI/CD pipelines — and fix the Xcode build failures that block shipping.

20 minutes
Advanced

Browse all Developer Tools playbooks →