Playbook · doorwerken zonder Claude

AI-Failover Playbook (provider/model)

Versie 1 · 2026-06-15. Aanvulling op FAILOVER-PLAYBOOK.md (die dekt machine-failover). Dit document dekt het scenario dat Claude/Anthropic zelf onbereikbaar is (geo-blokkade buiten de VS, outage, account/billing), terwijl je Mac en data prima werken.

Eis

Lokaal op de Mac doorwerken met Codex (primair) of Gemini (secundair) als Claude wegvalt, met zoveel mogelijk gelijkwaardigheid: dezelfde kennis, dezelfde tools/MCP, dezelfde claude-mem-historie, dezelfde creds en bestanden. Een minder slim model is acceptabel; functionele gaten niet. Realistisch plafond ~95% (zie Grenzen).

Principe: 3 lagen gelijktrekken (niet het model, maar de lagen eronder)

  1. Harness — Codex CLI + Gemini CLI lokaal geïnstalleerd. ✓
  2. Toegang — dezelfde MCP-servers + Vaultwarden + filesystem + bash. MCP is de draagbare laag.
  3. Context — de canonieke kennis uit ~/.claude/CLAUDE.md + project-MEMORY.md + claude-mem.

Bron van waarheid: ~/.claude/CLAUDE.md (kennis) en ~/.claude.json (MCP-servers). Codex/Gemini wijzen daarnaar; de Claude-setup wordt nooit gewijzigd, alleen gelezen.

Wat er is ingericht (2026-06-15)

Activatie bij uitval

cd <projectmap>
codex          # of: gemini

Eerste prompt-advies: "Lees eerst de MEMORY.md + CLAUDE.md van dit project en bevraag claude-mem voor context."

Sync & drift-controle

bash ~/Documents/michelmedia/infra/failover-sync.sh (alleen rapporteren) of --apply (symlink/import herstellen). Draai dit na elke wijziging aan Claude's MCP-set en als onderdeel van de maandelijkse parity-check. Het script vergelijkt .claude.json met Codex/Gemini en valideert beide configs.

Eenmalig nog te doen (interactief)

Drill (per kwartaal, of nu als test)

Open codex in bv. ~/Documents/michelmedia en stel een paar controlevragen: 1. Kennis (test laag 3): "Wat is mijn KOR-cutoverdatum en wat is de Te Kloeze-deal?" → moet uit CLAUDE.md/memory komen. 2. Memory/MCP (test laag 2): een claude-mem zoekvraag over eerder werk. 3. Tool (test laag 2): een og-ops health-call of een Vaultwarden-lookup. Alles correct = failover gelijkwaardig.

Grenzen (eerlijk, de ~5%)

Onderhoud

Bij elke nieuwe MCP-server of grote CLAUDE.md-wijziging: niets extra's nodig voor kennis (symlink/import volgt vanzelf), wél failover-sync.sh draaien om MCP-parity te herstellen.


Testen (toegevoegd 30-07-2026)

Het plan is nu controleerbaar in plaats van een aanname. Draai op elke machine:

bash ~/.claude/failover/failover-test.sh          # alles
bash ~/.claude/failover/failover-test.sh --snel   # zonder trage netwerkchecks
bash ~/.claude/failover/failover-test.sh --json   # machineleesbaar

Alles read-only: er wordt niets gewijzigd, verzonden of verwijderd. De Telegram-check gebruikt getMe en stuurt dus géén bericht.

Per regel komt er WERKT, FAALT, HANDMATIG of OVERGESLAGEN uit, met bij een probleem het commando om het te herstellen. Exit 0 betekent: alles wat automatisch te testen valt werkt.

Het script staat bewust in ~/.claude/failover/, want die map gaat via Syncthing naar alle drie de Macs. Zo is het noodplan er nog als juist de M5 wegvalt. Bron blijft ~/Documents/michelmedia/infra/, en de site is infra.vakwark.ai.

Uitslag eerste meting, 30-07-2026

Machine WERKT Openstaand
M5 22 niets
M4 20 Vaultwarden-unlock
Mac mini 21 Vaultwarden-unlock (en daardoor ook de mail)

Wat er onderweg is gerepareerd: mb/mb-stand naar M4 en mini, bw-unlock en mail-lees.py naar de mini, en het noodplan zelf naar alle drie de machines.

Eén handmatige stap per machine

De Vaultwarden-ontgrendeling leunt op een wachtwoord in de macOS-Keychain. Dat kan niet via ssh gezet worden: macOS weigert dat met "User interaction is not allowed". Dit moet dus één keer op de machine zelf, ingelogd:

security add-generic-password -U -s bw-vault -a bw-vault -w
# vraagt om het Vaultwarden-master-wachtwoord

Daarna werkt ~/.local/bin/bw-unlock --raw zonder prompt, en daarmee ook alles wat op Vaultwarden leunt (mail, API-sleutels, Moneybird). Op de mini viel de mail hierdoor om: mail-lees.py kreeg een lege respons van bw en struikelde over de JSON.

Zolang deze stap niet gedaan is, kan een vervangende AI op M4 en de mini niet bij de credentials. Dat is het enige echte gat dat nog open staat.