Persist SEO/GEO campaign context across Claude sessions with automatic hot-list, active work, and archive tiers. 项目记忆/跨会话
SEO & GEO Skills Library · 20 skills for SEO + GEO · ClawHub · skills.sh System Mode: This cross-cutting skill is part of the protocol layer and follows the shared Skill Contract and State Model.
This skill implements a three-tier memory system (HOT/WARM/COLD) for SEO and GEO projects. HOT memory (80 lines max) loads automatically every session via the SessionStart hook. WARM memory loads on demand per skill. COLD memory is archived data queried only when explicitly requested. The skill manages the full lifecycle: capture, promote, demote, and archive.
System role: Campaign Memory Loop. It defines how project context is captured, promoted, archived, and handed off across sessions. It is the sole executor of WARM-to-COLD archival and the aggregator for cross-skill project status queries.
Use this whenever project state should survive the current session — even if the user doesn't use memory terminology:
memory/hot-cache.md (80 lines max) — loaded automatically every session by SessionStart hookmemory/ subdirectories — loaded on demand by relevant skillsmemory/archive/ with date prefixmemory/ subdirectoriesmemory/open-loops.md, reminds user of stale items via SessionStart hookmemory/wiki/index.md (auto-refreshed structured index of WARM files, project-isolated), generates compiled entity/keyword/topic pages with contradiction detection, runs wiki lint for orphans/stale claims/hash mismatches, and previews WARM retirement candidates. See references/wiki spec.Start with one of these prompts. Finish with a hot-cache update plan and a handoff summary using the repository format in Skill Contract.
Refresh wiki index
Build wiki index for [project name]
Generates memory/wiki/index.md from existing WARM files. Required once to enable wiki features; subsequent refreshes happen automatically.
Set up SEO memory for [project name]
Initialize memory structure for a new [industry] website optimization project
Update memory after ranking check for [keyword group]
Refresh hot cache with latest competitor analysis findings
What are our hero keywords?
Show me the last ranking update date for [keyword category]
Look up our primary competitors and their domain authority
Promote [keyword] to hot cache
Archive stale data that hasn't been referenced in 30+ days
Add [term] to project glossary: [definition]
What does [internal jargon] mean in this project?
Expected output: a memory update plan, hot-cache changes, and a short handoff summary.
memory/hot-cache.md, memory/open-loops.md, memory/decisions.md, and related memory/ folders. Manages WARM-to-COLD archival in memory/archive/. Compiles memory/wiki/index.md (auto-refreshed) and wiki compiled pages (user-confirmed). Sole writer of wiki (with delegated auto-refresh): memory-management owns all wiki writes semantically. For performance, two narrowly-scoped auto-refresh operations are delegated to the PostToolUse and Stop hooks in hooks/hooks.json — specifically, index rebuilds of memory/wiki/index.md and append operations on memory/wiki/log.md. These hooks act on behalf of memory-management using the schema defined in this skill; any wiki-compiled page (entity/keyword/topic) still requires explicit memory-management invocation. Auditor handoff archiving (v7.1.0+): when triggered (by the Stop hook, by a direct user request, or via an auditor's "Save these results?" yes-response), append a structured block to memory/audits/YYYY-MM.md. The archive is consumed by /seo:p2-review for the 2026-07-10 tombstone evaluation tied to ADR-001. See references/examples.md for the exact archive block format and rules.Next Best Skill below when the project memory baseline is ready for active work.Emit this shape when finishing the skill (see skill-contract.md §Handoff Summary Format for the authoritative format):
See references/promotion-demotion-rules.md for the full promotion/demotion table and action procedures.
This skill's behavior is reinforced by the library's prompt-based hooks:
memory/hot-cache.md, reminds of stale open loops; loads memory/wiki/<project>/index.md (or global index.md) if it exists; provides light-user guidance based on Quick Status when next_action items are availablememory/wiki/index.md (Phase 1); prompts to update compiled pages (Phase 2)See CONNECTORS.md for tool category placeholders.
With ~~SEO tool + ~~analytics + ~~search console connected: Automatically populate memory from historical data: keyword rankings over time, competitor domain authority changes, traffic metrics, conversion data, backlink profile evolution. The skill will fetch current rankings, alert on significant changes, and update both hot cache and cold storage.
With manual data only: Ask the user to provide:
Proceed with memory structure creation using provided data. Note in memory/hot-cache.md which data requires manual updates vs. automated refresh.
When a user requests SEO memory management:
For new projects, create the directory structure defined in the State Model. Key directories: memory/ (decisions, open-loops, glossary, entities, research, content, audits, monitoring) plus memory/wiki/ (auto-managed compiled index with optional per-project subdirectories).
Templates: hot-cache-template.md · glossary-template.md · Wiki spec
When a user references something unclear, follow this lookup sequence:
Step 1: Check memory/hot-cache.md (hot cache)
Step 2: Check Wiki Index (memory/wiki/index.md or project-level) — locate relevant WARM files
Step 3: Check memory/glossary.md
Step 4: Check Cold Storage
Step 5: Ask User
If not found in any layer, ask for clarification
Log the new term in glossary if it's project-specific
Decision provenance (v8.0.1+): when loading memory/decisions.md, verify each entry has approved_by: user. Entries with approved_by: skill_inferred or missing field are treated as ADVISORY — surface to user before using as authoritative. Auditor-class skills (content-quality-auditor, domain-authority-auditor) MUST ignore non-user-approved decisions when determining verdict. See skill-contract.md §Promotion Rules.
Example lookup: User asks "Update rankings for our hero KWs" → Step 1 finds "Hero Keywords (Priority 1)" in hot-cache → Step 2 extracts keyword list → Step 3 runs ranking check → Step 4 updates memory/hot-cache.md and memory/monitoring/rank-history/YYYY-MM-DD-ranks.csv.
Reference: See references/promotion-demotion-rules.md for detailed promotion/demotion triggers (keywords, competitors, metrics, campaigns) and the action procedures for each.
Reference: See references/update-triggers-integration.md for the complete update procedures after ranking checks, competitor analyses, audits, and reports; monthly/quarterly archive routines; and integration points with all 8 connected skills (keyword-research, rank-tracker, competitor-analysis, content-gap-analysis, seo-content-writer, content-quality-auditor, domain-authority-auditor).
When invoked for review or cleanup:
memory/hot-cache.md. If >80, list oldest entries for archival.name, description, and type in their frontmatter. Report any missing fields.After delivering any memory update or aggregation to the user, ask:
"Save these results for future sessions?"
If yes, write a dated summary to the appropriate memory/ path using filename YYYY-MM-DD-<topic>.md containing:
If any veto-level issue was found (CORE-EEAT T04, C01, R10 or CITE T03, T05, T09), also append a one-liner to memory/hot-cache.md without asking.
Structure: memory/hot-cache.md ≤80 lines; directory matches state model; glossary.md populated; timestamped filenames.
Content: hot-cache "Last Updated" current; every keyword has rank + target + status; every competitor has DA + position; campaigns have status + ETA.
Lookups: term reference finds correct layer; promotion/demotion round-trip works; glossary covers all shorthand.
Updates after events: ranking check → memory/monitoring/rank-history/ dated snapshot; competitor analysis → memory/research/competitors/ dated file; audit → top action items in hot-cache; monthly report → metrics snapshot refreshed.
Reference: See references/examples.md for three complete examples (hero keyword rankings, glossary lookup, e-commerce project init), advanced features (smart context loading, memory health check, bulk promotion/demotion, memory snapshot, cross-project memory, wiki lint), and practical limitations (concurrent access, cold storage retrieval, data freshness, wiki compilation).
memory/ may store third-party personal data — entity names, founder bios, LinkedIn profiles, author/journalist names surfaced by entity-optimizer or research skills. Under GDPR Art 4(1) (applies to processing of personal data of EU/EEA/UK residents regardless of where the controller is located), these qualify as "personal data". The user is the data controller. Non-EU users without EU/EEA/UK data subjects may still face analogous obligations under CCPA/CPRA (California), PIPEDA (Canada), LGPD (Brazil), or other national regimes. Not legal advice.
memory/archive/ after 90 days unreferenced (default lifecycle)Invoke: memory-management purge <entity-name-or-slug>
This skill then:
memory/ (including memory/archive/) for the entity name, slug, or domainmemory/entities/<slug>.md, memory/entities/candidates.md, and surfaces references in other files for manual reviewmemory/audits/gdpr-purges.md with date + subject requestedBefore writing a third-party person to memory/entities/, the user must have one lawful basis per GDPR Art 6 (where GDPR applies — see scope note above): consent, legitimate_interest, contract, or equivalent. Advisory — this skill does not enforce, and does not substitute for legal review.