From aaron-seo-geo
Manages a three-tier HOT/WARM/COLD memory system for SEO/GEO projects. Automatically loads hot cache (80 lines) each session, promotes/demotes entries, archives stale data, and supports cross-session memory queries.
How this skill is triggered — by the user, by Claude, or both
Slash command
/aaron-seo-geo:memory-management [review|archive|cleanup]When to use
Use when reviewing, archiving, or cleaning up campaign memory. Also when the user asks to check saved findings, manage hot cache, or archive old data.
[review|archive|cleanup]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
Manages a three-tier memory lifecycle (HOT/WARM/COLD) with automatic promotion, demotion, and archival. Also maintains open-loop tracking and cross-skill aggregation.
Start with one of these prompts. Finish with a hot-cache update plan and a handoff summary using the repository format in Skill Contract.
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/. Auditor handoff archiving (v7.1.0+): when triggered by a direct user request or an auditor's explicit "Save these results?" yes-response, append a structured block to memory/audits/YYYY-MM.md. The Stop hook never initiates memory writes. See Examples for the exact archive block format and rules.memory/hot-cache.md is within the 80-line / 25KB limit, and the affected memory paths are reported back to the user.Next Best Skill below when the project memory baseline is ready for active work.Emit the standard shape from skill-contract.md §Handoff Summary Format.
See Promotion & Demotion Rules 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; provides light-user guidance based on Quick Status when next_action items are availablememory/hot-cache.md exceeds the 80-line / 25KB limit; enforces the auditor artifact-gate on memory/audits/ writes; offers an optional quality check after user-facing content edits{"ok": true}, honors stop_hook_active, never asks the user to save optional findings, and never initiates memory writesWith tools: auto-populate from ~~SEO tool, ~~analytics, ~~search console. Without tools: ask user for keywords, competitors, metrics, campaigns, and terminology. See CONNECTORS.md.
Stop and ask the user when:
memory/decisions.md entry needed to answer a query has approved_by: skill_inferred or a missing field — surface it as ADVISORY and confirm before treating it as authoritative.Continue silently (never stop for):
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).
Templates: Hot Cache Template · Glossary Template
When a user references something unclear, follow this lookup sequence:
Step 1: Check memory/hot-cache.md (hot cache)
Step 2: Check memory/glossary.md
Step 3: Check Cold Storage
memory/archive/ first for dated YYYY-MM-DD- archived files.memory/research/, memory/audits/, or memory/monitoring/.Step 4: 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 → extract the keyword list → run the ranking check → update memory/hot-cache.md and memory/monitoring/rank-history/YYYY-MM-DD-ranks.csv.
Reference: See Promotion & Demotion Rules for detailed promotion/demotion triggers (keywords, competitors, metrics, campaigns) and the action procedures for each.
Reference: See Update Triggers & Integration 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.Ask "Save these results for future sessions?" — if yes, write YYYY-MM-DD-<topic>.md to memory/. Add veto issues to memory/hot-cache.md only from auditor handoff or explicit user approval.
Reference: See Examples 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), and practical limitations (concurrent access, cold storage retrieval, data freshness).
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/hot-cache.md, WARM notes, COLD/archive files, memory/entities/<slug>.md, memory/entities/candidates.md, audit aggregates, open loopsgrep -F "<entity-name>" memory/archive/*.md to catch the entity name regardless of frontmatter integrity (legacy or manually-moved files may lack clean frontmatter). If a malformed archive is touched by the purge, log it explicitly to memory/audits/gdpr-purges.md so a compliance audit can verify scope.memory/privacy/tombstones.md with redacted label, salted non-reversible fingerprint, date, scope, and reingest_blocked: true; never store the raw subjectmemory/audits/gdpr-purges.md per the canonical schema in GDPR Purge Log Template (v9.9.9+) — required fields: purge_id, date, redacted_label, fingerprint, scope.{canonical,archive}, action, action_detail, legal_basis, proof.{grep_count_before,grep_count_after}, reingest_blocked: true, audit_signature. Auditor-verifiable structure: never raw subject; mechanical grep-count proof; cross-referenced to tombstone fingerprint.Before 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.
Primary: keyword-research — seed or refresh campaign strategy with current demand signals.
npx claudepluginhub aaron-he-zhu/seo-geo-claude-skills --plugin aaron-seo-geoBatch syncs session learnings, campaign history, and insights to persistent memory. Use before ending productive sessions to preserve knowledge across chats.
Cross-host durable memory for AI agents using the ling-mem CLI. Maintains a three-tier model of who the user is across sessions and hosts (Claude Code, Codex, OpenClaw).
Manages total-recall memory system: search, store, forget memories, inspect tiers, run eval, and configure. Automatically activates on memory-related queries.