# Claude SEO: Multi-Platform Agent Instructions
> For **Cursor**, **Cursor Cloud Agents**, **Google Antigravity**, **Gemini CLI**,
> **Grok Build**,
> **OpenAI Codex CLI**, **Cline**, **Aider**, and any other agent harness that
> reads project-root agent instructions.
>
> Claude Code users: see `CLAUDE.md` instead.
## Cross-platform portability (v2.0.0)
Every skill in `skills/*/SKILL.md` is authored to a portable subset of the
Claude Code skill spec. Validate compatibility with your harness via:
```bash
./bin/claude-seo run portability_check.py
```
The check confirms each `SKILL.md` has the minimum frontmatter every harness
expects (`name`, `description`, optional `model`, optional `tools`) and warns
on Claude-Code-specific features (`maxTurns`, multi-line tool list with
descriptive comments) that other harnesses may ignore but do not reject.
### Per-harness notes
| Harness | How to load claude-seo |
|---|---|
| **Cursor** | Symlink or copy `skills/` and `agents/` into `.cursor/rules/`. Commands are invoked as text prompts; the harness reads `SKILL.md` body as system context. |
| **Cursor Cloud Agents** | Push the repo; Cloud Agents read `AGENTS.md` automatically at session start. |
| **Google Antigravity** | Point the workspace at this repo root; Antigravity reads `AGENTS.md` first, falls back to `skills/`. |
| **Gemini CLI** | `gemini init` in this repo loads `AGENTS.md`. Skills are activated via `activate_skill <name>` in conversation. |
| **Grok Build** | Open this repository in Grok Build. It reads `AGENTS.md` and Claude Code compatible plugins and skills without a separate layout. Use `grok inspect` to verify discovery. See the [official compatibility guide](https://docs.x.ai/build/features/skills-plugins-marketplaces). |
| **OpenAI Codex CLI** | Reads `AGENTS.md` from project root. Bash tools work as documented; some Claude-specific tool names (Read/Write/Edit) are aliased to Codex equivalents transparently. |
| **Cline** | Loads `AGENTS.md` from project root. Skills appear as system messages; subagent delegation falls back to in-context expansion. |
| **Aider** | Reads `AGENTS.md` if present; otherwise falls back to README. Aider does not support sub-agent dispatch; the seo-* skills run inline. |
### Tool-name compatibility
Where claude-seo skills mention Claude Code tools (`Read`, `Write`, `Edit`,
`Bash`, `Glob`, `Grep`, `WebFetch`), each harness typically has an equivalent:
| Claude Code | Codex | Cline | Aider | Cursor / Antigravity |
|---|---|---|---|---|
| Read | read_file | read_file | (inline) | read |
| Write | write_file | write_file | /add then edit | write |
| Edit | apply_diff | replace_in_file | /edit | edit |
| Bash | bash | execute_command | /run | shell |
| Glob | glob | search_files | (inline) | find |
| Grep | grep | search_files | /grep | grep |
| WebFetch | fetch / browse | (browser tool) | (n/a) | fetch |
These mappings are automatic in most harnesses; we list them for transparency
in case a recipe needs a specific call.
## Overview
Claude SEO is a Tier 4 SEO analysis skill with 25 sub-skills (21 core + 1 orchestrator +
1 framework integration + 2 extension mirrors), 18 sub-agents (15 core + 1 framework
integration + 2 extension mirrors), and 53 Python execution scripts.
## Quick Reference
| Command | What it does |
|---------|-------------|
| `/seo audit <url>` | Full website audit with parallel subagent delegation |
| `/seo page <url>` | Deep single-page analysis |
| `/seo technical <url>` | Technical SEO audit (9 categories) |
| `/seo content <url>` | E-E-A-T and content quality analysis |
| `/seo content-brief <topic>` | Generate a content brief for a topic |
| `/seo schema <url>` | Schema.org detection, validation, generation |
| `/seo sitemap <url>` | XML sitemap analysis or generation |
| `/seo images <url>` | Image SEO: on-page audit, SERP analysis, file optimization |
| `/seo geo <url>` | AI Overviews / Generative Engine Optimization |
| `/seo plan <type>` | Strategic SEO planning |
| `/seo cluster <keyword>` | SERP-based semantic clustering and content architecture |
| `/seo sxo <url>` | Search Experience Optimization: page-type analysis, personas |
| `/seo drift baseline <url>` | Capture SEO baseline for change monitoring |
| `/seo drift compare <url>` | Compare current state to stored baseline |
| `/seo drift history <url>` | Show drift history over time |
| `/seo ecommerce <url>` | E-commerce SEO: product schema, marketplace intelligence |
| `/seo programmatic [url]` | Programmatic SEO at scale |
| `/seo competitor-pages [url]` | Competitor comparison pages |
| `/seo flow [stage]` | FLOW framework prompts (Find, Leverage, Optimize, Win, Local; prompts/sync utilities.) |
| `/seo local <url>` | Local SEO analysis (GBP, citations, reviews) |
| `/seo maps [cmd] [args]` | Maps intelligence (geo-grid, GBP audit, competitors) |
| `/seo hreflang <url>` | Hreflang/i18n SEO audit, cultural profiles, content parity |
| `/seo google [cmd] [url]` | Google SEO APIs (GSC, PageSpeed, CrUX, Indexing, GA4) |
| `/seo backlinks <url>` | Backlink profile analysis |
| `/seo backlinks setup` | Setup free backlink APIs |
| `/seo backlinks verify <url>` | Verify known backlinks still exist |
| `/seo dataforseo [cmd]` | Live SEO data via DataForSEO (extension) |
| `/seo image-gen [use-case]` | AI image generation for SEO assets (extension) |
| `/seo firecrawl [cmd] <url>` | Full-site crawling and site mapping (extension) |
| `/seo ahrefs [cmd] <target>` | Ahrefs backlink and keyword data (extension) |
| `/seo bing [cmd] <url>` | Bing Webmaster data and IndexNow (extension) |
| `/seo profound [cmd]` | LLM brand-citation tracking (extension) |
| `/seo seranking [cmd]` | AI share-of-voice tracking (extension) |
| `/seo unlighthouse <url>` | Multi-page Lighthouse audits (extension) |
## Using with Cursor / Cursor Cloud
Cursor reads this file automatically. All SKILL.md files contain the full
analysis logic as natural language instructions. Python scripts in `scripts/`
provide execution capabilities.
**Running scripts directly** (Cursor doesn't have MCP):
```bash
# Page fetching with SSRF protection
./bin/claude-seo run fetch_page.py https://example.com
# HTML parsing for SEO elements
./bin/claude-seo run parse_html.py https://example.com
# PageSpeed Insights
./bin/claude-seo run pagespeed_check.py https://example.com --json
# Drift baseline
./bin/claude-seo run drift_baseline.py https://example.com
# DataForSEO (requires credentials)
DATAFORSEO_USERNAME=user DATAFORSEO_PASSWORD=pass ./bin/claude-seo run dataforseo_merchant.py search "keyword"
```
**Cursor Cloud gotchas:**
- SSL certificates may not resolve for some domains. Investigate the certificate issue rather than disabling verification.
- Run bundled tools through `claude-seo`; never call the venv interpreter directly.
- Screenshots save to `/tmp/` not CWD. Check absolute paths.
## Using with Google Antigravity
Antigravity discovers this project via `.claude-plugin/plugin.json`.
Place the repo in `~/.gemini/antigravity/plugins/claude-seo/` or install via:
```bash
bash install.sh
```
## Architecture
```
skills/ # 25 sub-skills (auto-discovered)
seo/SKILL.md # Main orchestrator + routing
seo-cluster/ # Semantic clustering (v1.9.0)
seo-sxo/ # Search Experience Optimization (v1.9.0)
seo-drift/ # SEO drift monitoring (v1.9.0)
seo-ecommerce/ # E-commerce SEO (v1.9.0)
seo-audit/ # Full site audit
seo-page/ # Single-page analysis
seo-technical/ # Technical SEO
seo-content/ # E-E-A-T quality
seo-content-brief/ # Content brief generation
seo-schema/ # Schema.org markup
seo-sitemap/ # XML sitemaps
seo-images/ # Image optimization
seo-geo/ # AI search / GEO
seo-local/ # Local SEO
seo-maps/ # Maps intelligence
seo-plan/ # Strategic planning
seo-hreflang/ # International SEO
seo-google/ # Google APIs
seo-backlinks/ # Backlink analysis
seo-programmatic/ # Programmatic SEO
seo-competitor-pages/ # Competitor pages
seo-flow/ # FLOW framework integration
seo-dataforseo/ # DataForSEO (extension)
seo-image-gen/ # AI images (extension)
agents/ # 18 subagents
scripts/ # 53 Python scripts, including the managed runtime
schema/ # JSON-LD templates
extensions/ # 8 MCP extensions: DataForSEO, Firecrawl, Banana, Ahrefs, SE Ranking, Profound, Bing Webmaster, Unlighthouse
```
## Key Principles
1. **Progressive Disclosure**: Read SKILL.md for routing, load references on demand
2. **Industry Detection**: Auto-detect SaaS, e-commerce, local, publisher, agency
3. **Security**: All scripts call `validate_url()` for SSRF protection
4. **Config location**: `~/.config/claude-seo/` for API credentials
## Credits
Created by [@AgriciDaniel](https://github.com/AgriciDaniel).
v1.9.0 community contributions by Lutfiya Miller, Chris Muller, Florian Schmitz,
Dan Colta, and Matej Marjanovic. See [CONTRIBUTORS.md](CONTRIBUTORS.md).
# Claude SEO: Universal SEO Analysis Skill
## Project Overview
This repository contains **Claude SEO**, a Tier 4 Claude Code skill for comprehensive
SEO analysis across all industries. It follows the Agent Skills open standard and the
3-layer architecture (directive, orchestration, execution). 25 sub-skills (21 core +
1 orchestrator + 1 framework integration + 2 extension mirrors), 18 sub-agents (15 core +
1 framework integration + 2 extension mirrors), and an extensible reference
system cover technical SEO, content quality,
schema markup, image optimization, sitemap architecture, AI search optimization,
local SEO (GBP, citations, reviews, map pack), maps intelligence, semantic topic
clustering, search experience optimization (SXO), SEO drift monitoring, e-commerce
SEO, and international SEO with cultural adaptation profiles.
## Architecture
```
claude-seo/
CLAUDE.md # Project instructions (this file)
CONTRIBUTORS.md # Community credits (Pro Hub Challenge)
AGENTS.md # Multi-platform agent instructions (Cursor, Antigravity)
.claude-plugin/
plugin.json # Plugin manifest (v2.2.4)
marketplace.json # Marketplace catalog for distribution
skills/ # 25 sub-skills (auto-discovered)
seo/ # Main orchestrator skill
SKILL.md # Entry point, routing table, core rules
references/ # On-demand knowledge files (13 files)
seo-audit/SKILL.md # Full site audit with parallel agents
seo-page/SKILL.md # Deep single-page analysis
seo-technical/SKILL.md # Technical SEO (9 categories)
seo-content/SKILL.md # E-E-A-T and content quality
seo-content-brief/SKILL.md # Content brief generation
seo-schema/SKILL.md # Schema.org markup detection/generation
seo-sitemap/SKILL.md # XML sitemap analysis/generation
seo-images/SKILL.md # Image optimization analysis
seo-geo/SKILL.md # AI search / GEO optimization
seo-local/SKILL.md # Local SEO (GBP, citations, reviews, map pack)
seo-maps/SKILL.md # Maps intelligence (geo-grid, GBP audit, reviews, competitors)
seo-plan/SKILL.md # Strategic SEO planning
seo-flow/SKILL.md # FLOW framework integration
seo-programmatic/SKILL.md # Programmatic SEO at scale
seo-competitor-pages/SKILL.md # Competitor comparison pages
seo-hreflang/SKILL.md # International SEO / hreflang
seo-google/ # Google SEO APIs
SKILL.md
references/ # API reference files (11 files)
seo-backlinks/SKILL.md # Backlink profile analysis
seo-cluster/ # Semantic topic clustering (v1.9.0, by Lutfiya Miller)
SKILL.md
references/ # Clustering methodology, architecture, workflow
templates/ # cluster-map.html interactive visualization
seo-sxo/ # Search Experience Optimization (v1.9.0, by Florian Schmitz)
SKILL.md
references/ # Page-type taxonomy, user stories, personas, wireframes
seo-drift/ # SEO drift monitoring (v1.9.0, by Dan Colta)
SKILL.md
references/ # Comparison rules (17 rules, 3 severity levels)
seo-ecommerce/ # E-commerce SEO (v1.9.0, by Matej Marjanovic)
SKILL.md
references/ # Marketplace API endpoints
seo-dataforseo/SKILL.md # Live SEO data via DataForSEO MCP (extension mirror)
seo-image-gen/ # AI image generation for SEO assets (extension mirror)
SKILL.md
references/ # Image gen reference files (7 files)
agents/ # 18 subagents (auto-discovered)
seo-technical.md # Crawlability, indexability, security
seo-content.md # E-E-A-T, readability, thin content
seo-schema.md # Structured data validation
seo-sitemap.md # Sitemap quality gates
seo-performance.md # Core Web Vitals, page speed
seo-visual.md # Screenshots, mobile rendering
seo-geo.md # AI crawler access, GEO, citability
seo-local.md # GBP, NAP, citations, reviews, local schema
seo-maps.md # Geo-grid, GBP audit, reviews, competitor radius
seo-google.md # Google API analyst (CrUX, GSC, GA4)
seo-backlinks.md # Backlink profile analyst (Moz, Bing, CC, verify)
seo-dataforseo.md # DataForSEO data analyst
seo-image-gen.md # SEO image audit analyst
seo-cluster.md # Semantic clustering analysis
seo-sxo.md # Search experience optimization
seo-drift.md # SEO drift monitoring
seo-ecommerce.md # E-commerce SEO analysis
seo-flow.md # FLOW framework integration
hooks/ # Quality gate hooks
hooks.json # PostToolUse schema validation
scripts/ # 53 Python execution scripts
google_auth.py # Credential management (OAuth, SA, API key, 4-tier detection)
backlinks_auth.py # Backlink API credential management (Moz, Bing)
moz_api.py # Moz Link Explorer API (DA/PA, spam, domains, anchors)
bing_webmaster.py # Bing Webmaster Tools API (registered-site links/comparison)
commoncrawl_graph.py # Common Crawl web graph parser (PageRank, in-degree)
verify_backlinks.py # Backlink existence verification crawler
pagespeed_check.py # PSI v5 + CrUX API
crux_history.py # CrUX History API (25-week trends)
gsc_query.py # Search Console (queries, pages, sitemaps, sites)
gsc_inspect.py # URL Inspection (single + batch)
indexing_notify.py # Indexing API v3 (URL_UPDATED/URL_DELETED)
ga4_report.py # GA4 organic traffic reports
google_report.py # PDF/HTML report generator (WeasyPrint + matplotlib)
youtube_search.py # YouTube Data API v3
nlp_analyze.py # Cloud Natural Language API
keyword_planner.py # Google Ads Keyword Planner
fetch_page.py # Page fetcher with UA rotation
parse_html.py # HTML parser for SEO elements
capture_screenshot.py # Playwright screenshots
analyze_visual.py # Visual analysis helper
drift_baseline.py # SEO drift baseline capture (SQLite)
drift_compare.py # SEO drift comparison engine (17 rules)
drift_report.py # SEO drift HTML report generator
drift_history.py # SEO drift history query
dataforseo_costs.py # DataForSEO cost estimation and budget tracking
dataforseo_merchant.py # Google Shopping / Amazon data fetching
dataforseo_normalize.py # DataForSEO response normalization utility
sync_flow.py # FLOW prompt library sync (GitHub API, CC BY 4.0 headers, --dry-run, --ref)
url_safety.py # Canonical URL/SSRF safety module (validate, DNS-pin, safe fetch)
render_page.py # Shared headless renderer (SPA-aware, Playwright)
lcp_subparts.py # LCP subparts breakdown via CrUX API
preload_check.py # Speculation Rules / bfcache / prerender / preload detector
agent_ux_check.py # Agent-friendly page auditor
content_quality.py # QRG-aligned content quality detector
content_humanize.py # AI-pattern remover (rewrites AI-typical phrasing)
content_verify.py # Claim extractor + citation-gap detector
schema_generate.py # JSON-LD generators for high-leverage v2 schema types
schema_ecommerce_validate.py # Product schema validator (merchant-listing requirements)
iptc_ai_label.py # IPTC DigitalSourceType audit/injection for AI imagery
parasite_risk.py # Parasite-SEO risk scanner
gbp_deprecation_lint.py # GBP feature-deprecation linter
domain_history.py # Expired-domain heritage check
seo_updates.py # Primary-source Google updates query tool
indexnow_submit.py # IndexNow submitter
ucp_check.py # UCP (Universal Commerce Protocol) profile auditor
unlighthouse_run.py # Unlighthouse CLI wrapper (site-wide Lighthouse)
validate_backlink_report.py # Backlink report validation
portability_check.py # Cross-platform portability lint for SKILL.md files
consistency_check.py # Reference-graph gate: dead refs, routing, lock, orphans
release_sign.py # SHA-256 manifest generator for release signing
verify_release.py # Verify checkout integrity against a release manifest
mobile_analysis.py # Mobile rendering analysis (gitignored, dev-only)
schema/ # Schema.org JSON-LD templates
extensions/ # Optional add-on install helpers
dataforseo/ # DataForSEO MCP install scripts
firecrawl/ # Firecrawl MCP install scripts
banana/ # Banana MCP install scripts
ahrefs/ # Ahrefs MCP install scripts
bing-webmaster/ # Bing Webmaster and IndexNow install scripts
profound/ # Profound MCP install scripts
seranking/ # SE Ranking MCP install scripts
unlighthouse/ # Unlighthouse install scripts
docs/ # Extended documentation
```
## Commands
| Command | Use Case |
|---------|----------|
| `/seo audit <url>` | Full website audit with parallel subagents |
| `/seo page <url>` | Single page analysis |
| `/seo technical <url>` | Technical SEO across 9 categories |
| `/seo content <url>` | E-E-A-T and content quality |
| `/seo content-brief <topic>` | Detailed content brief: keywords, outline, internal links |
| `/seo schema <url>` | Schema markup detection, validation, generation |
| `/seo sitemap <url>` | Sitemap validation |
| `/seo sitemap generate` | Create new sitemap with industry templates |
| `/seo images <url>` | Image optimization |
| `/seo geo <url>` | AI search optimization (GEO) |
| `/seo local <url>` | Local SEO (GBP, citations, reviews) |
| `/seo maps [command]` | Maps intelligence (geo-grid, GBP audit, competitors) |
| `/seo backlinks <url>` | Backlink profile analysis |
| `/seo cluster <seed>` | SERP-based semantic clustering |
| `/seo sxo <url>` | Search Experience Optimization |
| `/seo drift baseline\|compare\|history <url>` | SEO drift monitoring |
| `/seo ecommerce <url>` | E-commerce SEO |
| `/seo hreflang [url]` | Hreflang and international SEO |
| `/seo plan <type>` | Strategic planning by industry |
| `/seo programmatic [url\|plan]` | Programmatic SEO analysis |
| `/seo competitor-pages [url\|generate]` | Competitor comparison pages |
| `/seo flow [stage] [url\|topic]` | FLOW framework prompts |
| `/seo google [command] [url]` | Google SEO APIs (GSC, PSI, CrUX, GA4) |
| `/seo dataforseo [command]` | Live SEO data (extension) |
| `/seo image-gen [use-case] <desc>` | AI image generation (extension) |
| `/seo firecrawl [command] <url>` | Full-site crawling (extension) |
| `/seo ahrefs [command] <url>` | Backlinks, organic keywords, and content data via the official Ahrefs MCP (extension) |
| `/seo seranking [command]` | AI Share-of-Voice across ChatGPT, Gemini, Perplexity, AI Overviews, AI Mode (extension) |
| `/seo profound [command]` | LLM citation tracking with time-series data (extension) |
| `/seo bing [command] <url>` | Bing Webmaster Tools + IndexNow URL submission (extension) |
| `/seo unlighthouse <url>` | Multi-page Lighthouse runner, runs locally (extension) |
## Development Rules
- Keep SKILL.md files under 500 lines / 5000 tokens
- Reference files should be focused and under 200 lines
- Scripts must have docstrings, CLI interface, and JSON output
- Follow kebab-case naming for all skill directories
- Agents invoked via Agent tool, never via Bash
- Bundled tools run through `claude-seo run`; plugin state uses `CLAUDE_PLUGIN_DATA`
- Manual Python dependencies install into `~/.claude/skills/seo/.venv/`
- Test with `python3 -m pytest tests/` after changes (if applicable)
## Security Rules
- **Never commit credentials**: `.env`, `client_secret*.json`, `oauth-token.json`, `service_account*.json` are all in `.gitignore`
- **URL validation**: All scripts that connect to user-supplied URLs must use `scripts/url_safety.py` (`validate_url_strict()` plus the pinned safe request helpers). This blocks private IPs, loopback, metadata endpoints, redirect rebinding, and DNS rebinding.
- **OAuth tokens**: Never store `client_secret` in the token file. Read it from the client_secret.json file at runtime.
- **No hardcoded paths**: Use `os.path.dirname(os.path.abspath(__file__))` for relative paths, never a user-specific absolute path
- **Config location**: `~/.config/claude-seo/google-api.json` and `~/.config/claude-seo/backlinks-api.json` (user-space, not in repo)
## Report Generation Rules
- **All SEO reports must use `scripts/google_report.py`** as the canonical report generator
- **Dependencies**: `matplotlib>=3.8.0` (charts) + `weasyprint>=61.0` (HTML-to-PDF), both in `requirements.txt`
- **Format**: A4 PDF via WeasyPrint + matplotlib charts at 200 DPI
- **Style**: Clean white title page with navy (#1e3a5f) accent, Times New Roman body font
- **Color palette**: Navy #1e3a5f (headers), dark gold #b8860b (accents), forest green #2d6a4f (pass), warm amber #d4740e (warnings), deep red #c53030 (fail), warm cream #faf9f7 (backgrounds)
- **Structure**: Title page → TOC with scores → Executive Summary → Data sections → Recommendations → Methodology
- **Charts**: 85% width, max-height 120mm, figure captions on every chart, saved to `charts/` at 200 DPI
- **No `page-break-inside: avoid`** on any element (causes white gaps in WeasyPrint)
- **Post-generation review**: `_review_pdf()` runs automatically, checking for empty images, thin sections, duplicates
- **Before presenting any PDF to the user**: verify the review passes (`"status": "PASS"`)
- **Cross-skill enforcement**: After completing ANY analysis command (audit, page, technical, content, schema, geo, local, maps), offer: "Generate a PDF report? Use `/seo google report`"
- **Google logo** appears on title page when using Google API data ("Powered by Google APIs")
## Ecosystem
Part of the Claude Code skill family:
- [Claude Banana](https://github.com/AgriciDaniel/banana-claude) -- standalone image gen (bundled as extension here)
- [Claude Blog](https://github.com/AgriciDaniel/claude-blog) -- companion blog engine, consumes SEO findings
- [AI Marketing Claude](https://github.com/zubair-trabzada/ai-marketing-claude) -- community marketing suite (copy, emails, ads, funnels, CRO)
## Key Principles
1. **Progressive Disclosure**: Metadata always loaded, instructions on activation, resources on demand
2. **Industry Detection**: Auto-detect SaaS, e-commerce, local, publisher, agency
3. **Parallel Execution**: Full audits spawn up to 15 subagents simultaneously
4. **Extension System**: DataForSEO, Firecrawl, Banana, Ahrefs, SE Ranking, Profound, Bing Webmaster, and Unlighthouse extensions
## Repository Topology (public + private)
This project is mirrored across two GitHub remotes that share git history.
Both originate from the same local checkout; neither is a GitHub fork of
the other (different orgs, no parent/child relationship in the GitHub UI).
| Remote | URL | Visibility | Role |
|---|---|---|---|
| `origin` | `https://github.com/AgriciDaniel/claude-seo` | **Public** | Published distribution. Users discover, clone, and install from here. `main` only reflects released history. |
| `aimh` | `https://github.com/AI-Marketing-Hub/claude-seo` | **Private** | Working repo inside the AI Marketing Hub org. Daily development. v2 branch + post-release work lives here before promotion to public. |
### Workflow
Daily development:
- Work on `v2` (or feature branches off `v2`) locally.
- `git push aimh <branch>` to publish work-in-progress to the private repo
(Dependabot, Actions, and CI run there).
Promoting to public on release:
1. Merge `v2` into local `main` when ready to release (fast-forward).
2. Tag the release locally (`git tag -a vX.Y.Z`).
3. Push the tag and main to **both** remotes in this order:
- First: `git push aimh main && git push aimh vX.Y.Z`
- Then: `git push origin vX.Y.Z && git push origin main`
- The "tag before merge" sequence (see `feedback_push_caution` memory)
applies on `origin` to avoid the `curl|bash` outage window where
users pull a tag that doesn't yet point at code on `main`.
4. `gh release create vX.Y.Z --repo AgriciDaniel/claude-seo` (public-only).
5. `/release-blog` to publish the release post.
### Safety rules
- **Never push to `origin/main` autonomously.** The public is release-only;
pushes are user-authorized per-release.
- **`aimh` accepts day-to-day pushes.** No release-gate ceremony required
for the private remote.
- **Tags push to private first.** Historical pre-release illustration: v2.0.0
once lived on `aimh` before `origin`. Current released tags through v2.2.4
are on both remotes.
- **History stays shared.** Never rewrite history on either remote with
force-push unless explicitly authorized for that specific operation.
### Verifying the topology
```bash
# Both remotes configured
git remote -v # expects: origin (public) + aimh (private)
# Both share main HEAD
git ls-remote --heads aimh main
git ls-remote --heads origin main # origin = aimh/main + 1 public-branding commit (intentional; see docs/WORKFLOW-public-private.md)
```
Full workflow reference: `docs/WORKFLOW-public-private.md`.
## Release Blog Post
After cutting a new release (git tag + `gh release create`), run:
```
/release-blog
```
This generates a blog post on https://claude-seo.md/blog/, handles cover image generation, SEO metadata, FAQ schema, internal linking, sitemap/llms.txt updates, Vercel deployment, and Google indexing.