recovery-crawl
Screaming Frog crawl with technical SEO issue classification including Shopware-specific patterns.
Audit all SEO changes made to a domain within a given period. Read-only audit_only mode.
> /plugin marketplace add maxschottke-spec/seo-survival-kit > /plugin install seo-rescue@seo-survival-kit
How it fires
How this command gets triggered: by you, by Claude, or both.
/recovery-auditContext preview
What this command does when you run it.
Audit all SEO changes made to a domain within a given period. Read-only audit_only mode.
description: "Audit all SEO changes made to a domain within a given period. Read-only audit_only mode." allowed-tools: Bash, Read, Write, Edit, Glob, Grep, mcp__*
Auditiert alle SEO-Aenderungen an einer Domain innerhalb eines Zeitraums: Change-Inventar, fehlgeschlagene Versuche, unverifizierte Aenderungen, Risiko- und Approval-Compliance, Rollback-Readiness, Settlement-Gate-Status und Hypothesen-Registry. Read-only gegenueber dem Live-Shop — das Audit stellt fest, was passiert ist, und bewertet es; es aendert nichts.
Mode: immer `audit_only`. Change Budget: 0. Keine Live-Shop-Writes. Schreibt nur Report-Artefakte nach `~/.cache/seo-rescue/{slug}/` (via `lib/safe.js`, siehe Schritt 9).
Dieses Command ist read-only gegenueber dem Live-Shop — ein aktiver Settlement Gate (`references/SEO_SETTLEMENT_GATE.md`) blockiert es NIE. Sonderrolle: **`recovery-audit` ist der Writer der Gate-Datei** `~/.cache/seo-rescue/{slug}/recovery-gate.json` — alle anderen Commands (diagnose, plan, monitor, full) lesen sie nur. Die Gate-Detection selbst ist Teil des Ablaufs (Schritt 7).
/seo-rescue:recovery-audit <domain> [--days 14]
| Feld | Quelle | Pflicht | |------|--------|---------| | `domain` | CLI-Argument | ja | | `--days` | CLI-Flag | nein — Default: `14` |
`--days` definiert das Audit-Fenster: `period_end` = jetzt, `period_start` = jetzt minus `--days` Tage. Wird das Command vom Orchestrator (`recovery-full`) ohne Flag aufgerufen, gilt der Default 14.
Normalisiere den Input via `normalizeDomain()` aus `lib/safe.js` — gibt `input_domain`, `domain`, `canonical_domain`, `slug` zurueck.
`ensureDomainDir(slug)` — Modus 0700, Abbruch bei Symlink.
Falls eine `run_id` vom Orchestrator (`recovery-full`) uebergeben wurde: diese unveraendert verwenden, KEIN eigenes Prefix erzeugen. Sonst generiere eine eindeutige Run-ID fuer diesen Lauf:
node -e "const { randomUUID } = require('crypto'); console.log('aud-' + randomUUID().slice(0,8) + '-' + Date.now())"Speichere die Run-ID als `run_id`. Sie wird im Output-Schema mitgefuehrt.
`period_start` / `period_end` aus `--days` berechnen (Default 14) und im Output festhalten. Alle folgenden Schritte betrachten nur Aenderungen innerhalb dieses Fensters.
Primaerquelle ist `~/.cache/seo-rescue/{slug}/change-history.ndjson`. Fehlt sie oder ist sie unvollstaendig, rekonstruiere aus diesen Quellen **in Prioritaetsreihenfolge**:
1. `~/.cache/seo-rescue/{slug}/change-history.ndjson` (primaer, audit-safe) 2. `~/.cache/seo-rescue/{slug}/snapshots/` (lokale CMS-Slot-Snapshots und andere Before/After-Artefakte; werden von externem Tooling erzeugt — read-if-present, fehlende Snapshots sind kein Fehler) 3. **Shopware-API-`updatedAt`-Felder** mit `--days`-Filter auf: `seo-url`, `category`, `product`, `cms-slot` (nicht zuverlaessig — siehe Audit-Gap-Marker), `system-config`, `dreisc-seo-redirect` 4. Shell-History / Claude-Conversation-Logs (falls zugreifbar) 5. Shopware-Ist-Zustand vs. bekannte Snapshots 6. Screaming-Frog-Crawl-Diffs (mehrere Crawls vergleichen, falls vorhanden) 7. Live-HTTP-Checks (aktueller Zustand) 8. DataForSEO- / Sistrix- / GSC-Snapshots 9. Manuelle Ableitung aus Operator-Gedaechtnis oder Notizen
**Rekonstruktions-Marker:** Jeder rekonstruierte Eintrag muss enthalten:
{
"reconstructed": true,
"reconstruction_sources": ["..."],
"reconstruction_confidence": "high|medium|low",
"audit_source": "shopware_updatedAt_reconstruction"
}Fehlt `change-history.ndjson` vollstaendig, setze im Audit-Output `"not_audit_safe_reconstruction": true`.
Das Audit muss fuer jede erkannte Aenderung erfassen:
Das Audit muss erkennen:
Erkennt das Audit einen Major Batch, der nicht mit `triggered_settlement_gate: true` geloggt wurde:
1. Berechne `started_at`, `minimum_until`, `recommended_until` 2. Schreibe `~/.cache/seo-rescue/{slug}/recovery-gate.json` mit `settlement_gate_active: true` und rueckdatierten Werten — via `atomicWriteJSON()` unter Lock (siehe Schritt 9) 3. Appende ein `gate_activated`-Event an die `gate_history` der Gate-Datei (append-only, niemals bestehende Eintraege ueberschreiben) 4. Emittiere ein Finding `gate_activated_retroactively` mit Severity `high`
Das Audit emittiert ein `hypothesis_registry`-Array. Fuer jede Ursachen-Attribution (bei erfolgreichen Aenderungen, fehlgeschlagenen Versuchen oder offenen Risiken) enthaelt die Registry einen Eintrag per `schemas/hypothesis-verification.schema.json`.
Das Audit
Recovery-first decision support for ecommerce/D2C SEO. Claude Code skills for Core Update recovery diagnosis, prioritized action plans, weekly monitoring, and a Change Governor / Settlement Gate that prevents over-optimizing during recovery windows.
Repo: maxschottke-spec/seo-survival-kit
Screaming Frog crawl with technical SEO issue classification including Shopware-specific patterns.
Automatic domain diagnosis: Core Update impact, VI drop, keyword losses, backlink profile.
Full recovery workflow: diagnose -> crawl -> audit -> plan -> monitor. Respects Change Governor mode.
Weekly recovery tracking with VI, keyword data, and Change History effect tracking.
Generate prioritized action plan from diagnosis and crawl issues with Change Governor risk points.