97 lines
7.6 KiB
JSON
97 lines
7.6 KiB
JSON
{
|
|
"doc": "docs/anleitung-entwicklung.md",
|
|
"range": "1-540",
|
|
"claims_checked": 120,
|
|
"ok_count": 106,
|
|
"wrong": [
|
|
{
|
|
"line": 245,
|
|
"claim": "Innerhalb von (portal) liegen ... vier fest verdrahtete Modulverzeichnisse (cert-manager, dkv-fleet, domaincheck, tender-radar) mit eigenen layout.tsx",
|
|
"actual": "Es gibt zehn Modulverzeichnisse mit eigenem layout.tsx (cert-manager, dkv-fleet, domaincheck, domains, handelsware-datev, kantine-datev, nextcloud-files, nextcloud-status, proxmox, tender-radar), dazu 'custom' ohne Layout. Auch MODULE_REGISTRY hat zehn Eintraege.",
|
|
"evidence": "apps/web/src/app/(portal)/modules/*/layout.tsx (10 Treffer); apps/web/src/lib/module-loader.ts:31-90",
|
|
"fix": "Von 'vier' auf 'zehn fest verdrahtete Modulverzeichnisse' aendern und alle zehn nennen (oder allgemein formulieren). Gleiches gilt fuer Zeile 403-405 und 416-419 ('jedem der vier')."
|
|
},
|
|
{
|
|
"line": 403,
|
|
"claim": "Vier fest verdrahtete Modulverzeichnisse: cert-manager, dkv-fleet, domaincheck, tender-radar",
|
|
"actual": "Zehn Verzeichnisse; zusaetzlich domains, handelsware-datev, kantine-datev, nextcloud-files, nextcloud-status, proxmox (und 'custom' fuer eigene Module ohne Gate-Layout).",
|
|
"evidence": "apps/web/src/app/(portal)/modules/",
|
|
"fix": "Liste auf alle zehn erweitern bzw. 'vier' streichen. Der Code-Kommentar in [category]/[moduleSlug]/page.tsx nennt selbst noch 'four' (veraltet)."
|
|
},
|
|
{
|
|
"line": 248,
|
|
"claim": "Backend-Domaenenmodule: auth, user, tenant, groups, module-registry, domaincheck, dkv, cert-manager, tenders, calendar, dashboard, favorites, settings, ldap, mail, crypto, health, prisma",
|
|
"actual": "Die Liste ist unvollstaendig; es fehlen accounting, bug-reports, common, custom-modules, desktop, domains, handelsware-datev, inbox, kantine-datev, module-categories, nextcloud-files, nextcloud-status, proxmox, reminders.",
|
|
"evidence": "ls apps/api/src",
|
|
"fix": "Liste um die fehlenden Verzeichnisse ergaenzen (common ist ein Hilfsordner, kein Fachmodul)."
|
|
},
|
|
{
|
|
"line": 373,
|
|
"claim": "ModuleGrant traegt bewusst kein Rechtestufen-Feld, nur An/Aus (D-04)",
|
|
"actual": "ModuleGrant hat seit 261002-icv das Feld level (enum ModuleGrantLevel USE|MANAGE, Default USE). Nur 'Gruppe XOR Benutzer' (D-04) stimmt weiterhin. ModuleAccessService arbeitet mit getModuleAccessLevels, getAccessibleModuleIds ist nur die Schluesselmenge davon.",
|
|
"evidence": "apps/api/prisma/schema.prisma:160-164, 211-214; apps/api/src/module-registry/module-access.service.ts:118-131",
|
|
"fix": "Satz ersetzen: 'ModuleGrant traegt eine Freigabestufe (USE = Benutzen, MANAGE = Benutzen und Modul-Einstellungen aendern); Freigaben erteilen bleibt Administratoren vorbehalten. Gruppe oder Benutzer, nie beides.' Zeile 375-382: getAccessibleModuleIds als Schluesselmenge von getModuleAccessLevels beschreiben."
|
|
},
|
|
{
|
|
"line": 296,
|
|
"claim": "Ein Modul erscheint im Marktplatz (GET /modules, GET /modules/catalog) ... ; seedModule laeuft aus Seed-Dateien",
|
|
"actual": "Teilweise ok: GET /modules und /catalog existieren. Aber der Code-Kommentar zu seedModule spricht von 'vier Seed-Dateien'; es sind zehn. (Kommentar, nicht Doku; Doku Z. 279 'Jedes Modul seedet sich' ist korrekt.)",
|
|
"evidence": "apps/api/src/module-registry/module-registry.service.ts:190-196",
|
|
"fix": "Kein Doku-Fehler; optional Code-Kommentar korrigieren."
|
|
},
|
|
{
|
|
"line": 530,
|
|
"claim": "proxmox-widget-model.ts / components/proxmox/ ... 'Einstellungsformular ... components/settings/proxmox-widget-config-form.tsx'",
|
|
"actual": "Pfade stimmen. Kein Fehler (siehe ok_count).",
|
|
"evidence": "apps/web/src/components/settings/proxmox-widget-config-form.tsx",
|
|
"fix": "keine"
|
|
}
|
|
],
|
|
"outdated": [
|
|
{
|
|
"line": 33,
|
|
"claim": "apps/desktop ... Tauri-Desktop-Client, fertiges Produkt; CLAUDE.md-Tabelle sagt 'scaffolding only as of docs/anleitung-entwicklung.md'",
|
|
"actual": "Doku stimmt zum Code (lib.rs mit check_server/save_server_url, setup.html vorhanden). Veraltet ist die Aussage in CLAUDE.md (Desktop Wrapper: 'scaffolding only'), die auf diese Anleitung verweist.",
|
|
"evidence": "apps/desktop/src-tauri/src/lib.rs:858,888; CLAUDE.md Abschnitt Desktop Wrapper",
|
|
"fix": "CLAUDE.md anpassen; Anleitung unveraendert lassen."
|
|
},
|
|
{
|
|
"line": 227,
|
|
"claim": "Stempel aus Version und letztem Commit an apps/desktop/, desktop-version.sh, desktop-collect.sh, desktop-stamp.sh und ci.yml",
|
|
"actual": "DESKTOP_PATHS enthaelt zusaetzlich .gitea/scripts/appimage-strip-wayland.sh.",
|
|
"evidence": ".gitea/scripts/desktop-stamp.sh:56",
|
|
"fix": "'appimage-strip-wayland.sh' in die Aufzaehlung aufnehmen."
|
|
},
|
|
{
|
|
"line": 418,
|
|
"claim": "Der Fix (Commit 74a30fb/5504931) gibt jedem der vier Modulverzeichnisse ein eigenes layout.tsx",
|
|
"actual": "Commits existieren; heute tragen zehn Verzeichnisse das Layout (siehe wrong Z. 245).",
|
|
"evidence": "git cat-file -t 74a30fb / 5504931 = commit; modules/*/layout.tsx",
|
|
"fix": "'vier' durch 'alle fest verdrahteten' ersetzen; Test module-layouts.test.tsx als Wächter erwähnen."
|
|
},
|
|
{
|
|
"line": 449,
|
|
"claim": "Domaincheck ist das kleinste vorhandene Modul",
|
|
"actual": "Nicht eindeutig pruefbar; es gibt jetzt weitere kleine Module (kantine-datev ohne components, nextcloud-status). Die aufgefuehrten Domaincheck-Dateien existieren alle.",
|
|
"evidence": "apps/web/src/app/(portal)/modules/kantine-datev/",
|
|
"fix": "Formulierung zu 'ein kleines Modul' abschwaechen."
|
|
},
|
|
{
|
|
"line": 493,
|
|
"claim": "Kachel: drei Stellen; Bsp. nur Proxmox ('Erstes echtes Beispiel')",
|
|
"actual": "Zweite Modul-Kachel nextcloud-status existiert ebenfalls (WIDGET_MODULE_SLUGS), ebenso weitere Typen picture-frame, xframe, reminder.",
|
|
"evidence": "packages/shared/src/index.ts:102-137; apps/web/src/app/(portal)/page.tsx:38-49",
|
|
"fix": "nextcloud-status als zweites Modul-Kachel-Beispiel erwaehnen."
|
|
}
|
|
],
|
|
"missing": [
|
|
"Modulsystem-Kapitel nennt nur Domaincheck, DKV, Cert-Manager, Tender-Radar und Proxmox; undokumentiert sind die Module domains, handelsware-datev, kantine-datev, nextcloud-files, nextcloud-status (alle mit Seed, Changelog, MODULE_REGISTRY-Eintrag und Layout) sowie accounting (gemeinsam genutzt von Handelsware/Kantine).",
|
|
"Eigene Module (custom-modules, Frontend modules/custom/[id], admin/custom-modules, settings/custom-modules, components/modules/custom-module-*) fehlen im Modulsystem-Kapitel; Zeile 310-311 erwaehnt sie nur beilaeufig.",
|
|
"Frontend-Routen: (portal)/changelog fehlt in der Routenliste Z. 239 (admin, marketplace, modules, settings, change-password); Admin-Unterbereiche (custom-modules, groups, ldap, modules, smtp, tenants, users, welcome-mail) nicht beschrieben.",
|
|
"Backend-Bereiche ohne Erwaehnung: bug-reports, inbox, reminders, module-categories (Kategorien-Verwaltung, messages/module-categories.spec.ts), desktop-Controller (GET /desktop/latest, /update, /download/:platform) als API-Seite.",
|
|
"Dashboard-Kachel-Typen: picture-frame, xframe, reminder, nextcloud-status werden nicht genannt; WIDGET_TYPES hat zwoelf Eintraege.",
|
|
"Wächter-Tests im Frontend: modules/module-layouts.test.tsx (prueft Gate-Layouts) und messages/umlaut-guard.spec.ts / tenderRadar-parity.spec.ts nicht erwaehnt.",
|
|
"Root-Skripte: apps/api hat zusaetzlich test:watch und start:dev (nur Compose-Befehl 'nest start --watch' ist beschrieben, ueber pnpm --filter @tessera/api start:dev); docker-compose.prod.yml und docker-compose.ci.yml existieren, werden im Kapitel nicht erwaehnt."
|
|
]
|
|
}
|