| name | install-claris-docs |
| description | Download and install Claris FileMaker Pro online help (help.claris.com) as a local mirror in `docs/claris-help/`. Supports 11 languages with English as the always-included reference language. Also copies the REST-API reference index DB (`fm_reference.duckdb`) into the docs directory for fast slug lookups. Maintains a manifest and per-language version markers and prompts before replacing existing language sets. |
Claris Online-Help Installations-Skill
Wann diesen Skill verwenden
Verwende diesen Skill, wenn:
- Die Claris-Online-Hilfe lokal als Referenz benötigt wird (fĂŒr
filemaker-function-reference, fm-summarize, fm-analyze, REST-API-Reference-Endpunkte etc.)
- Eine neue Sprache zur bestehenden Installation hinzugefĂŒgt werden soll
- Auf eine neuere Version der Claris-Hilfe aktualisiert werden soll
- Nach Korruption oder versehentlichem Löschen die Doku neu installiert werden muss
- Die Reference-Index-DB (
fm_reference.duckdb) aktualisiert werden soll, damit Slug-Lookups (Funktion/ScriptStep â HTML-Datei) lokal per DuckDB-Query möglich sind
Der Skill automatisiert:
- Crawling der Claris-Online-Hilfe (
https://help.claris.com/<lang>/pro-help/content/index.html)
- Mehrsprachiger Download (10 verfĂŒgbare Sprachen plus Englisch als Referenz)
- Mirroring inkl. CSS, JS, Bilder fĂŒr offline-fĂ€hige Darstellung
- Versions-Tracking via HTTP
Last-Modified (pro Sprache)
- Manifest-Pflege in
docs/claris-help/manifest.json
- User-BestÀtigung beim Ersetzen vorhandener Sprach-Sets
- Kopieren der Reference-Index-DB aus
rest-api/db/fm_reference.duckdb nach docs/claris-help/fm_reference.duckdb (Standard-Schritt, deaktivierbar via --skip-reference-db)
Wichtig: Sprachauswahl
Englisch (en) wird IMMER heruntergeladen â unabhĂ€ngig von der Benutzervorgabe. Das stellt sicher, dass eine konsistente Referenzsprache verfĂŒgbar ist (Slugs, kanonische Namen, Fallback bei fehlenden Ăbersetzungen).
Drei Auswahl-Modi:
- a) Nur Englisch â minimaler Set fĂŒr CI / nicht-deutschsprachige Entwicklung
- b) Englisch + eine Sprache â Standard fĂŒr lokalisierte Entwicklung
- c) Alle Sprachen â vollstĂ€ndiger Mirror (~10Ă Datenvolumen)
VerfĂŒgbare Sprachen
| Code | Sprache | VerfĂŒgbar | Hinweis |
|---|
en | Englisch | immer | Referenz, immer enthalten |
de | Deutsch | â | |
es | Spanisch | â | |
fr | Französisch | â | |
it | Italienisch | â | |
nl | NiederlĂ€ndisch | â | |
pt | Portugiesisch | â | |
sv | Schwedisch | â | |
ja | Japanisch | â | |
ko | Koreanisch | â | |
zh | Chinesisch (vereinf.) | â | URL-Segment ist zh (nicht zh-Hans) |
Workflow
Wenn der Skill aufgerufen wird:
-
SprachprĂ€ferenz ermitteln â Frage den Benutzer (per AskUserQuestion) nach der gewĂŒnschten Sprache, falls nicht explizit angegeben. VerfĂŒgbare Optionen:
- âNur Englisch (en)"
- âEnglisch + meine Hauptsprache" â konkrete Sprache nachfragen (de empfohlen)
- âAlle Sprachen"
-
Existing Docs prĂŒfen â Lies docs/claris-help/manifest.json (falls vorhanden) zur Bestimmung des aktuellen Stands.
-
Versions-Check â Vergleiche pro Sprache das gespeicherte Datum mit dem Last-Modified der content/index.html. Bei Update: User fragen (auĂer --force).
-
Crawl & Download â Starte den Crawler pro Sprache, lade rekursiv alle .html-Dateien plus referenzierte Assets (CSS, JS, Bilder).
-
Manifest aktualisieren â Pro Sprache: Anzahl heruntergeladener Dateien, Zeitstempel, Quell-URL.
-
Reporting â Zusammenfassung mit Anzahl Sprachen, Gesamtdateien, GröĂe.
Skill-Aufruf vom Assistenten
Der Skill verwendet AskUserQuestion zur interaktiven Sprachauswahl. Wenn der Benutzer die Sprache explizit nennt (z.B. âinstall claris docs in German"), kann die Frage ĂŒbersprungen werden.
Schritt 1: SprachprÀferenz klÀren
Verwende AskUserQuestion mit folgender Struktur (sofern nicht explizit angegeben):
Question: "Welche Sprachen der Claris-Online-Hilfe sollen installiert werden? (Englisch ist immer enthalten)"
Header: "Sprachauswahl"
Options:
- "Englisch + Deutsch" (Recommended)
- "Nur Englisch"
- "Alle Sprachen (10 + EN)"
Schritt 2: Skript ausfĂŒhren
bash .claude/skills/install-claris-docs/scripts/install_claris_docs.sh
bash .claude/skills/install-claris-docs/scripts/install_claris_docs.sh --lang=de
bash .claude/skills/install-claris-docs/scripts/install_claris_docs.sh --all
bash .claude/skills/install-claris-docs/scripts/install_claris_docs.sh --lang=de --force
bash .claude/skills/install-claris-docs/scripts/install_claris_docs.sh --list-languages
Schritt 3: Ergebnis kommunizieren
Das Skript gibt strukturiertes Logging aus. Berichte:
- Welche Sprachen wurden installiert / aktualisiert / ĂŒbersprungen
- Anzahl der heruntergeladenen Seiten und GröĂe
- Speicherort:
docs/claris-help/<lang>/
Script-Parameter
| Flag | Wirkung |
|---|
--lang=<code> | Eine zusÀtzliche Sprache zu Englisch (z.B. --lang=de) |
--lang=all | Alle 10 verfĂŒgbaren Sprachen plus Englisch (Synonym fĂŒr --all) |
--all | Alle 10 verfĂŒgbaren Sprachen plus Englisch |
--force | Versions-Check und Nachfrage ĂŒberspringen â bestehende Sprach-Sets ersetzen |
--list-languages | Liste der verfĂŒgbaren Sprachen ausgeben (mit VerfĂŒgbarkeits-Check via HTTP) |
--max-workers=<n> | Anzahl paralleler Downloads pro Sprache (Default: 8) |
--dry-run | Nur Crawling/Discovery durchfĂŒhren, keine Dateien schreiben |
--skip-reference-db | Reference-DB-Kopie ĂŒberspringen (Standard: immer kopieren) |
--restart-server | API-Server zwingend stoppen/neustarten beim Ref-DB-Kopieren (fĂŒr Edge-Cases) |
Ohne Parameter wird nur Englisch installiert (plus immer die Reference-DB, sofern vorhanden).
Verzeichnisstruktur
Nach Installation:
docs/claris-help/
âââ manifest.json # Globales Manifest
âââ fm_reference.duckdb # Reference-Index-DB (Kopie aus rest-api/db/)
âââ en/ # Englisch (Referenz, immer enthalten)
â âââ .version # JSON: Last-Modified + Datei-Counts
â âââ content/ # Alle HTML-Seiten
â â âââ index.html
â â âââ functions-reference.html
â â âââ set-variable.html
â â âââ ... (~1000 Dateien)
â âââ Resources/ # Scripts, Templates aus ../Resources/
â âââ Skins/ # CSS, Themes aus ../Skins/
â âââ assets/ # Globale Assets aus /assets/
âââ de/ # Deutsch (analog)
âââ es/
âââ ...
Reference-Index-DB
ZusĂ€tzlich zum HTML-Mirror kopiert der Skill standardmĂ€Ăig die Reference-Index-Datenbank aus dem REST-API in das Docs-Verzeichnis:
rest-api/db/fm_reference.duckdb â docs/claris-help/fm_reference.duckdb
Zweck: Schnelle Identifikation relevanter HTML-Dokumente per DuckDB-Query â z.B. âWelche HTML-Datei dokumentiert die Funktion MusterAnzahl?" Statt Volltext-Suche im Mirror reicht ein Slug-Lookup gegen die Index-DB. Wird von filemaker-function-reference, fm-summarize, fm-analyze und anderen Skills genutzt, sobald sie eine Funktion oder einen ScriptStep zu einer HTML-Datei auflösen mĂŒssen.
Kopier-Strategie
Der REST-API-Server attached die Reference-DB im READ_ONLY-Modus (rest-api/src/config/database.js), wodurch DuckDB keine WAL-Datei erzeugt und keinen Write-Lock hĂ€lt. Eine direkte cp-Operation wĂ€hrend des laufenden Servers ist daher unkritisch â der Server liest weiter aus der bisherigen Datei, das Zielverzeichnis (docs/claris-help/) ist unabhĂ€ngig.
Ablauf des Skripts:
- PrĂŒfung: Existiert
rest-api/db/fm_reference.duckdb?
- Nein â Schritt wird mit Warnung ĂŒbersprungen (kein Fehler).
- Direktkopie (Standard): atomar via
*.tmp + mv, ohne den Server zu berĂŒhren.
- Fallback bei Fehler: SchlÀgt die Direktkopie fehl und ein Server lÀuft auf Port 3003, werden automatisch
tools/stop-servers.sh â Kopie â tools/start-servers.sh ausgefĂŒhrt.
--restart-server Flag: Erzwingt den Stop/Start-Zyklus auch dann, wenn die Direktkopie funktionieren wĂŒrde (fĂŒr Edge-Cases oder wenn der Server-Reload explizit gewĂŒnscht ist).
--skip-reference-db Flag: Schritt komplett ĂŒberspringen (z.B. wenn nur die HTML-Doku gespiegelt werden soll).
Quelle der Reference-DB
Die Reference-DB wird nicht von diesem Skill erzeugt â sie ist Teil des rest-api/-Setups und wird ĂŒblicherweise gemeinsam mit dem REST-API-Server verteilt. Ist rest-api/db/fm_reference.duckdb nicht vorhanden, ist das kein Fehlerfall: das Skript fĂ€hrt mit den HTML-Downloads fort und meldet im Summary Ref-DB: source not found â skipped.
manifest.json Schema
{
"$schema_version": 1,
"source": "Claris FileMaker Pro Online Help",
"source_url": "https://help.claris.com",
"fetched_at": "2026-05-12T10:15:30Z",
"fallback_language": "en",
"languages": [
{
"code": "en",
"url_lang_segment": "en",
"url_root": "https://help.claris.com/en/pro-help/",
"html_pages": 1019,
"asset_files": 84,
"total_size_bytes": 41527890,
"last_modified": "Mon, 13 Jan 2026 10:15:30 GMT",
"fetched_at": "2026-05-12T10:15:30Z",
"incomplete": false
},
{
"code": "de",
...
}
]
}
Voraussetzungen
- Python 3 (fĂŒr den Crawler, ĂŒblicherweise vorinstalliert auf macOS)
- curl (fĂŒr Version-Checks, vorinstalliert)
- Internet-Verbindung zu
help.claris.com
- Schreibrechte auf
docs/claris-help/
Disk Space & Dauer
| Set | Dateien | GröĂe (geschĂ€tzt) | Download-Dauer |
|---|
| Nur Englisch | ~1100 | ~50 MB | 2-3 Minuten |
| Englisch + 1 Sprache | ~2200 | ~100 MB | 4-6 Minuten |
| Alle 11 Sprachen | ~12000 | ~550 MB | 20-30 Minuten |
Bei vorhandenem Cache (gleiche Version) wird das Re-Downloading ĂŒbersprungen.
Error Handling
Netzwerk-Fehler
- Curl/Python urllib gibt detaillierte Fehler bei Unerreichbarkeit von
help.claris.com
- Pro Datei wird bis zu 3Ă retry (mit Backoff) versucht
- Bei dauerhaftem Fehler einer Datei: Skript lÀuft weiter, markiert Sprache als
incomplete: true im Manifest
Disk Space
- Vor dem Download wird
df geprĂŒft, ob mindestens das doppelte des zu erwartenden Volumens frei ist
- Bei Speichermangel: Abbruch mit klarer Fehlermeldung
HTTP-Fehler (404, 5xx)
- 404: einzelne fehlende Slugs werden geloggt aber nicht abgebrochen
- 5xx: Retry; nach 3 Fehlversuchen wird die Sprache mit
incomplete: true markiert
Korrupte/unvollstÀndige Downloads
- Dateien werden zunÀchst nach
*.tmp heruntergeladen, dann atomar umbenannt
- Bei Abbruch verbleiben nur vollstÀndige Dateien
Output-Format
Erfolgreiche Installation:
Installing Claris Online Help...
Languages: en (always), de
Target: docs/claris-help/
[en] Discovering pages from index.html...
[en] Found 1078 HTML pages, 84 assets
[en] Downloading (8 workers)... ââââââââââââââââââââ 100% (1162/1162)
[en] Done: 47.3 MB, 12.4 s
[de] Discovering pages from index.html...
[de] Found 1071 HTML pages, 84 assets
[de] Downloading (8 workers)... ââââââââââââââââââââ 100% (1155/1155)
[de] Done: 49.1 MB, 13.1 s
SUCCESS: Claris documentation installed
Languages: en, de
Total: 2317 files, 96.4 MB
Location: docs/claris-help/
Manifest: docs/claris-help/manifest.json
Bereits aktuell:
Checking for updates...
[en] Up to date (last-modified: Mon, 13 Jan 2026 10:15:30 GMT)
[de] Up to date (last-modified: Mon, 13 Jan 2026 10:15:30 GMT)
No action needed.
Mit Update-Prompt:
Checking for updates...
[en] Newer version available.
Current: Sun, 12 Jan 2026 16:47:42 GMT
Remote: Mon, 20 Jan 2026 10:15:30 GMT
Replace existing 'en' docs? (y/n): y
[en] Downloading...
Fehler:
ERROR: [konkrete Fehlermeldung]
[Hinweis zur Behebung]
Notes
- Die heruntergeladenen Dateien stammen von einer öffentlich zugĂ€nglichen Quelle (Claris-Online-Hilfe). Lokale Nutzung ist ĂŒblicherweise von Claris-Doku-Lizenz gedeckt; öffentliches Re-Publishing ist NICHT zulĂ€ssig.
- Diese Dokumentation wird vom geplanten
fm_reference.duckdb-Setup und den /api/reference/...-Endpunkten als HTML-Quelle fĂŒr Volltext-Extraktion genutzt (siehe project/plan_reference_data_architecture.md im fm-lab-vscode-Repo).
- Das Skript ist idempotent â mehrfaches AusfĂŒhren ist sicher.
- Wenn nur einzelne Slugs fehlen oder veraltet sind, lohnt sich kein Komplett-Reinstall â der Crawler nutzt Last-Modified-Header pro Datei (HEAD-Request), um nur GeĂ€nderte zu aktualisieren.