Files
geograsim/v2-platform/tools/conformance-check
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00
..

Konformitäts-Check (V2)

PHP-basiertes Skript, das prüft, ob ein V2-Modul die Spec erfüllt (siehe v2-modules/_spec/delivery-format.md und module-manifest.md).

Aufruf

Aus dem Modul-Wurzelordner:

cd v2-modules/<dein-slug>
php ../../v2-platform/tools/conformance-check/check.php

Exit-Code:

  • 0 = LIEFERBEREIT (Phase-1-Checks bestanden, Browser-Checks Phase 2)
  • 1 = Fehler vorhanden — nicht lieferbar

Output:

  • Farbige Console-Ausgabe (✓ / ✗ / ⚠)
  • tests/conformance-report.json mit allen Details

Welche Checks (Phase 1, PHP-only)

Check Was wird geprüft
Manifest-Schema Pflichtfelder, Slug-Format, supportedLanguages (de-AT-easy Pflicht), Lehrplan-Anker mit Land-Prefix, glossarSchwerpunkte ≤ 10, dbTables-Prefix m_<slug>_, difficultyLevels, telemetryMilestones
Pflicht-Files README.md, db/migrations.sql, tests/mock-platform.html, entryHtml/cardImage/screenshots existieren physisch, verbotene Files (.env.local, node_modules), Großdateien-Warnung > 50 MB
i18n pro supportedLanguage eine JSON-Datei in public/i18n/, Easy-Variante deckt alle Keys der Standard-Variante ab
DB-Migrations CREATE TABLE mit IF NOT EXISTS, ADD COLUMN mit IF NOT EXISTS, keine DROP/TRUNCATE/RENAME, Tabellen mit Modul-Prefix
admin-fields.json Pflicht-Datei, moduleId matcht slug, groups[].fields[] mit key/label/labelEasy/type
CSS-Hex-Hardcodes scant public/**/*.css und .html nach Hex-Werten — verboten, müssen var(--ggs-*) oder var(--<slug>-*) sein

Phase 2 (später, mit Headless-Browser)

  • A11y-Audit via axe-core
  • Telemetry-Event-Test (mindestens 5 Heartbeats, alle deklarierten Milestones werden gefeuert, ein Result-POST)
  • Keyboard-Navigation-Test (Tab-Reihenfolge, Enter/Esc)
  • Focus-Indikator vorhanden
  • prefers-reduced-motion respektiert
  • High-Contrast-Render-Test
  • Alt-Texte auf allen <img>
  • Semantische Buttons statt <div onclick>

Diese Tests brauchen Playwright/Headless-Chrome — folgt in einer späteren Iteration. Vorläufig manuell mit tests/mock-platform.html prüfen.

Beispiel-Output

=== GeoGraSim V2-Konformitäts-Check ===
Modul: hallo-welt @ 1.0.0
Pfad:  c:\xampp\htdocs\geograsim\v2-modules\hallo-welt
Spec:  1.0

--- Manifest-Schema ---
✓ Alle Pflichtfelder vorhanden
✓ Slug-Format ok ('hallo-welt')
✓ Lehrplan-Anker: 1 Eintrag/Einträge, alle mit Land-Prefix
✓ glossarSchwerpunkte: 0 von max 10 Einträgen

--- Pflicht-Files ---
✓ Pflicht-File vorhanden: README.md
✓ Pflicht-File vorhanden: db/migrations.sql
✓ Pflicht-File vorhanden: tests/mock-platform.html
...

=== Zusammenfassung ===
✓ Passed:  18
✗ Failed:  0
⚠ Warning: 1

STATUS: LIEFERBEREIT (Phase-1-Checks). Browser-Checks Phase 2 noch manuell.

Bekannte Limitationen

  • Slug-Eindeutigkeit über alle Module wird nicht geprüft (das macht Atlas beim Integrieren — braucht Zugriff auf module_info_v2)
  • Lehrplan-Anker-Existenz in der DB nicht geprüft (selbe Grund)
  • Glossar-Slug-Existenz nicht geprüft (selber Grund)
  • Sed-Lauf erkennt nicht, ob <div onclick> in JS-Templates gebaut wird
  • Schwere Spec-Verstöße (z.B. fetch auf OpenAI im Browser) werden nur in Phase 2 erkannt