- Audit: plans/doku-audit.md (Befunde, Phasen P1-P9, Ausführungsprotokoll) + plans/audit/ (8 Detailreports) + plans/offene-issues.md - Werkzeuge: scripts/audit-docs.mjs (Links/Anker/Bilder/Tabellen), scripts/gen-schema-matrix.mjs (npm run gen:schemas) - Neue Seiten: projekt/feld-rechte, reference/rest-system, reference/schema-properties, projekt/tests, 5 Anwender-Seiten - Fehler behoben: EMBEDDING_BGE_M3_*-Env, allowSnapshots, MCP-Scopes (.read/.create/.update), meta.views, loadAll-Signatur, OpenAPI-Endpunkt, MongoDB 8, Befehlspalette - Screenshots: 9 Admin + 10 Anwender aus Mock-Projekt corporate (t1 entfernt), 49 Bilder gesamt - AGENTS.md: Sync-Behauptung richtiggestellt, Belegpflicht/UI-Namen/Screenshot-Regeln, Werkzeug-Abschnitt - Build: 71 Seiten grün, 0 tote Links, 0 kaputte Tabellen
27 KiB
Audit 03: tibi-types + tibi-svelte-starter vs. tibi-docs
Stand: 2026-10-16. Codebasen: tibi-types (schemas + index.d.ts), tibi-svelte-starter (README, AGENTS, package.json, frontend/api/Docker/Env). Doku: tibi-docs/src/content/docs (Seiten einstieg/*, projekt/*, reference/schemas.md, reference/hooks-*.md).
Regel: Jede Aussage mit datei:zeile belegt; ohne Beleg steht „nicht verifiziert".
1) Schema-Matrix tibi-types (16 Schemas in schemas/config/)
Quelle Top-Level-Properties: per Python aus den Schema-Dateien extrahiert. Dokustand: reference/schemas.md:10-32 listet alle 16 Schemas nur tabellarisch (Name → Datei → Pflichtfelder), beschreibt aber keine Properties im Detail; Details liegen ggf. auf Projektseiten.
Schema (schemas/config/*.json) |
Top-Level-Properties | in reference/schemas.md beschrieben? |
undokumentierte Properties (vs. schemas.md + Projektseite) |
|---|---|---|---|
project.schema.json |
namespace, meta, upload, collections, jobs, actions, assets, cors, admin, hook, audit, strictFields, snapshotPath, snapshots, legacy (project.schema.json:99-333 für Sub-Blöcke: agent :102, assets :174, cors :187, admin :227, hook :262, audit :303, strictFields :312, snapshotPath :315, snapshots :319, legacy :333) |
nur Zeile in Tabelle (schemas.md:18); hook/cache/ratelimit-Details nur in server/konfiguration.md, snapshots nur in projekt/audit-backup.md, admin nur Server-Seiten |
snapshotPath (String, Ablagepfad Snapshots), snapshots (Array, Zeitplan/Retention — nur Ablauf in audit-backup.md, kein Feld- mapping), legacy (nur in reference/fehlercodes.md erwähnt, sonst nicht verifiziert), strictFields auf Projektebene (nur fehlercodes.md, nicht verifiziert), cors auf Projektebene (nur Server-Seiten server/sicherheit.md, server/konfiguration.md), admin-Subkeys (nur Server-Seiten) |
collection.schema.json |
name, defaultLanguage, uploadPath, upload, permissions, projections, hooks, meta, imageFilter, fields, indexes, audit, bulk, cors, queryLimits, readonlyFields, hiddenFields, strictFields, search (collection.schema.json:17 uploadPath, :63 imageFilter, :103 audit, :126 bulk, :147 cors, :187 queryLimits, :201 readonlyFields, :207 hiddenFields, :213 strictFields, :216 search) |
nur Tabellenzeile (schemas.md:19); Teilabdeckung: indexes+search in projekt/sammlungen-anlegen.md:104-150, imageFilter in projekt/dateien-bilder.md, audit in projekt/audit-backup.md, cors in projekt/jobs-actions.md |
uploadPath (String, veralteter Upload-Pfad neben upload; nicht verifiziert in Doku), queryLimits (defaultLimit/maxLimit; kein Treffer in Doku — nicht verifiziert), readonlyFields/hiddenFields auf Collection-Ebene (kein Treffer in Doku — nicht verifiziert), strictFields (nur fehlercodes.md, kein Konzepttext), bulk (optimize.create/update/delete; in projekt/* nur bulk-Wort in mcp-nutzen.md/hooks-schreiben.md ohne Feld-Doku), upload.allowedMimeTypes/maxBodySize (nur Server-Seite, nicht pro Collection), Index-Subkeys dropDups/sparse/background/defaultLanguage/languageOverride (Schema-$defs indexConfig; Doku sammlungen-anlegen.md:106-135 zeigt nur Text/Unique-Beispiel) |
field.schema.json |
via $defs.field: name, type, index, subFields, validator, readonly, hidden, strictFields, meta (Typ-Enum string…any, index-Enum single/unique/text/sparse/background) |
nur Tabellenzeile (schemas.md:20) |
readonly/hidden als Bool-oder-eval (BoolOrEval, index.d.ts:13); Doku felder-widgets.md/sammlungen-anlegen.md enthalten kein readonly/hidden (grep ohne Treffer) — nicht verifiziert; strictFields auf Feldebene (nur fehlercodes.md); index-Enum-Details (sparse/background) ohne Doku |
field-list.schema.json |
Array-Items string | field.schema (Datei 1:20) |
nur Tabellenzeile (schemas.md:21) |
keine Properties (Wrapper); Verwendung (String-Kurzform vs. Objekt) in felder-widgets.md:12-32 teilweise gezeigt — abgedeckt |
field-meta.schema.json |
label, widget, i18n, helperText, hideLabel, hide, protected, position, section, containerProps, defaultValue, dependsOn, inputProps, choices, foreign, downscale, imageEditor, drillDown, pageSize, preview, addElementLabel, filter, pagebuilder, schemaRef, openapi (field-meta.schema.json:14 widget, :50 hideLabel, :66 containerProps, :131 dependsOn, :183 downscale, :198 imageEditor, :229 drillDown, :232 pageSize, :239 addElementLabel, :242 filter, :303 schemaRef) |
nur Tabellenzeile (schemas.md:22); Teilabdeckung in projekt/felder-widgets.md (Aufbau :12, Typen :33, Validatoren :60, Choices/FK :80, dependsOn :131, i18n :151) |
hideLabel (Bool; kein Treffer — nicht verifiziert), containerProps (Objekt; kein Treffer), position/section (Layout; section nur collection-meta, Feld-section nicht verifiziert), pageSize (Zahl; kein Treffer), addElementLabel (String; kein Treffer), imageEditor (Konfig; kein Treffer), schemaRef (String-Ref; kein Treffer), filter: true/false als Admin-Filter-Opt-in (field-meta.schema.json:242-246; Doku zeigt nur filter_public.js-Hook, nicht das Flag), inputProps/defaultValue-Details nur angerissen |
collection-meta.schema.json |
label, muiIcon, group, exports, designGuide, imageUrl, hide, singleton, subNavigation, preview, i18n, defaultSort, viewHint, sidebar, sections, openapi, query, agent (collection-meta.schema.json:69 singleton, :84 subNavigation, :211 defaultSort, :231 viewHint, :423 sidebar, :441 sections, :465 openapi, :468 query, :503 agent) |
nur Tabellenzeile (schemas.md:23); Teilabdeckung: sammlungen-anlegen.md:79-103 (Label/Gruppe/Icon/Vorschau), admin/ansichten-listen.md (subNavigation, defaultSort, viewHint) |
singleton (Bool, Ein-Dokument-Collection; kein Treffer in Doku — nicht verifiziert), sections (Array, Editor-Sektionen; kein Treffer), hide auf Collection-Ebene, exports/designGuide/imageUrl (nicht verifiziert), query-Block (Meta-Abfragen; nicht verifiziert), agent-Block (nicht verifiziert), openapi-Meta (nur Tabellenzeile) |
permissions.schema.json |
public, user + $defs.permissionSet: methods, filter, validProjections, readonlyFields, hiddenFields |
nur Tabellenzeile (schemas.md:24) |
validProjections (String-Array; kein Treffer — nicht verifiziert), filter (Mongo-Filter je Permission-Set; nur rechte-tokens.md grob, kein Feld-Mapping — teilweise), readonlyFields/hiddenFields je Permission-Set (kein Treffer) |
hooks.schema.json |
get, post, put, delete, audit + $defs: hook(type/file/timeout), getHooks(handle/read/return/file), postHooks(bind/validate/handle/create/return/bulkCreate/bulkReturn), putHooks(bind/validate/update/return/bulkUpdate/bulkReturn), deleteHooks(delete/return/bulkDelete/bulkReturn), auditHooks(return) |
nur Tabellenzeile (schemas.md:25); Hook-Protokoll in projekt/hooks-schreiben.md |
bulkCreate/bulkReturn, bulkUpdate/bulkReturn, bulkDelete/bulkReturn (Stufen im Schema, in hooks-schreiben.md nur bulk-Wort ohne Stufen-Mapping — teilweise), bind vs. validate vs. handle-Reihenfolge (Schema-$defs, Doku-Erwähnung prüfen — teilweise), audit.return-Hook (Schema vorhanden; Doku nur audit-backup.md, kein Hook-Stufen-Text) |
job.schema.json |
cron, type, file, timeout, meta |
nur Tabellenzeile (schemas.md:26); Ablauf in projekt/jobs-actions.md |
timeout (Sekunden; in jobs-actions.md erwähnt — abgedeckt/teilweise), meta (frei; nicht verifiziert) |
action.schema.json |
name, meta, permissions, hooks, audit, cors + $defs: actionField, actionMappedField(source/name/...), actionFieldSection, actionExecutionMeta(kind/cancellable), actionOutputProgressMapping(indexField/countField/statusField/messageField/fields), actionOutputMapping(summary/details/progress), actionOutputMeta(title/mapping), actionMethodMeta(query/data/execution/output), actionMeta(label/muiIcon/description/group/hide/methods) |
nur Tabellenzeile (schemas.md:27); Actions in projekt/jobs-actions.md, Admin-Ansicht in admin/aktionen.md |
actionOutputMapping/actionOutputProgressMapping-Felder (indexField/countField/statusField/messageField/fields; nur admin/aktionen.md-Treffer für „mapping", kein Feld-Mapping — teilweise/nicht verifiziert), actionExecutionMeta.kind/cancellable (nicht verifiziert), actionMappedField.source vs. name (Dot-Path vs. Legacy; nicht verifiziert), cors/audit je Action (nicht verifiziert) |
asset.schema.json |
name, path |
nur Tabellenzeile (schemas.md:28) |
keine weiteren Properties; Verwendung (config.yml-Assets) in server/schnittstellen.md/neues-projekt.md — abgedeckt |
image-filter.schema.json |
Array von Filter-Objekten (kein Top-Level-Props-Objekt) | nur Tabellenzeile (schemas.md:29); Anwendung in projekt/dateien-bilder.md |
Filter-Parameter (width/height/fit/fill/resampling/anchor/…/quality/outputType aus ImageFilterParams, index.d.ts:314-358) sind in dateien-bilder.md nur als filter-Query-Param gezeigt, kein Parameter-Mapping — teilweise |
projections.schema.json |
Pattern-Key {name: {select: {feld: 0|1}}} (Wrapper-Datei 1:30) |
nur Tabellenzeile (schemas.md:30); Nutzung in projekt/abfragen-lesen.md |
select: null-Variante (Schema erlaubt `object |
snapshot.schema.json |
name, description, collections, includeMedia, collectionDedup, mode, retention, schedule, permissions, enabled |
nur Tabellenzeile (schemas.md:31); Ablauf in projekt/audit-backup.md, Endpunkte in server/schnittstellen.md |
includeMedia (Bool), collectionDedup (Bool/Strategie), mode, retention, schedule, permissions, enabled — Feld-für-Feld-Mapping in audit-backup.md prüfen, per Stichprobe nur Ablauf erzählt — teilweise (genaue Abdeckung nicht verifiziert) |
openapi.schema.json |
disabled, get, getOne, post, put, delete + $defs: codeSample(lang/label/source), responseObject, operationObject(disabled/tags/summary/description/x-codeSamples/parameters/responses/security), fieldOpenapi(disabled/description/example/format/enum/deprecated) |
nur Tabellenzeile (schemas.md:32); generierte Referenz in reference/openapi.md |
x-codeSamples, getOne-Trennung (get vs. getOne), fieldOpenapi.example/format/enum/deprecated — Detail-Mapping nicht verifiziert (teilweise) |
defs.schema.json |
nur $ref-Bausteine, kein Ziel (schemas.md:33 sagt das explizit) |
abgedeckt (schemas.md:33) |
— |
Wichtigste undokumentierte Schema-Properties (Top-10, mit Typ/Wirkung aus Schema):
collection.queryLimits(collection.schema.json:187) — Objekt{defaultLimit, maxLimit}(Zahlen): GET-Limits je Collection. Kein Treffer in Doku — nicht verifiziert.collection.readonlyFields/hiddenFields(collection.schema.json:201-207) — String-Arrays: Collection-weite Schreib-/Sichtschutz-Felder. Kein Treffer in Doku — nicht verifiziert.collection.uploadPath(collection.schema.json:17) — String: Legacy-Upload-Pfad nebenupload:{maxBodySize, allowedMimeTypes}. Nicht verifiziert in Doku.collection.strictFields+ Feld-strictFields(collection.schema.json:213; Feld-$defs) — Bool: unbekannte Felder ablehnen. Nurfehlercodes.md-Treffer, kein Konzept — faktisch undokumentiert.collection-meta.singleton(collection-meta.schema.json:69) — Bool: Collection auf ein Dokument begrenzen. Kein Treffer — nicht verifiziert.collection-meta.sections(collection-meta.schema.json:441) — Array: Editor-Sektionen. Kein Treffer — nicht verifiziert.field-meta.hideLabel(field-meta.schema.json:50) — Bool: Label im Editor verstecken. Kein Treffer — nicht verifiziert.field-meta.imageEditor(field-meta.schema.json:198) — Objekt: Bildeditor-Konfig je Feld. Kein Treffer — nicht verifiziert.permissionSet.validProjections(Schema-$defs.permissionSet) — String-Array: erlaubte Projections je Rolle. Kein Treffer — nicht verifiziert.action.actionOutputMapping/actionOutputProgressMapping(action.schema.json-$defs) —{summary/details/progress{indexField/countField/statusField/messageField/fields}}: Fortschritts-/Ergebnis-Mapping von Actions. Nur „mapping"-Wort inadmin/aktionen.md, kein Feld-Mapping — faktisch undokumentiert.
2) Hook-Typen (tibi-types/index.d.ts, 1716 Zeilen)
Die reference/hooks-*.md dokumentieren Pakete/Funktionen (db.find …), nicht Typen. reference/schemas.md listet nur Schema-Dateien. reference/hook-kontexte.md:8-28 listet Pakete aus internal/hook (Server-Code), nicht index.d.ts-Typen. Ergebnis: fast alle globalen Typen sind als Typen undokumentiert (Verwendung teils in Beispielen, aber kein Typ-Mapping).
Typ (index.d.ts) |
Zeilen | in hooks-*/schemas.md dokumentiert? |
|---|---|---|
CollectionDocument |
index.d.ts:2-7 |
nicht verifiziert (nirgends als Typ; implizit in Beispielen) |
BoolOrEval |
index.d.ts:13 |
nein — readonly/hidden-Felder selbst fehlen (s. §1) |
FieldImageValidator (minWidth/maxWidth/minHeight/maxHeight/allowNonImages/allowUnknownDimensions) |
index.d.ts:16-29 + Schema field.schema.json:130-142 |
nein — felder-widgets.md:60-78 kennt nur maxFileSize/accept, keine Bildmaß-Validatoren |
FieldValidator (alle Schlüssel) |
index.d.ts:31-68 |
teilweise — felder-widgets.md:60-78 listet required/pattern/in/minLength/maxLength/min/max/minDate/maxDate/minItems/maxItems/format/maxFileSize/minFileSize/accept/eval/allowZero, aber nicht image: FieldImageValidator als Unterschlüssel |
SearchConfig + RrfConfig/SourceFusionConfig/VectorConfig/NgramConfig/NormalizeConfig/RegexConfig/ScoreConfig |
index.d.ts:70-184 |
teilweise — projekt/suche.md:33-38 zeigt autoRegenerate, :74 nennt score_rrf/score_sum/rank_score/hybrid, minmax/zscore, scoreWeight, sourceConfig als „existiert im Code", ohne Feld-Mapping |
SearchExplainSource/SearchExplanation/SearchMeta (qExplain) |
index.d.ts:120-147 |
nicht verifiziert (kein Treffer qExplain/SearchExplanation in Doku-Stichprobe) |
QueryLimitsConfig/BulkOptimizeConfig/BulkConfig |
index.d.ts:187-209 |
nein (s. §1 queryLimits/bulk) |
CollectionIndex (name/key/unique/dropDups/background/sparse/defaultLanguage/languageOverride) |
index.d.ts:211-228 |
teilweise — sammlungen-anlegen.md:106-135 zeigt Text-/Unique-Beispiel, keine Subkey-Tabelle |
AuditCollectionConfig |
index.d.ts:231-243 |
teilweise — audit-backup.md erzählt Ablauf, kein Feld-Mapping (enabled/actions-Liste) |
UploadConfig (maxBodySize/allowedMimeTypes) |
index.d.ts:245-248 |
teilweise — Server-Seite ja, Collection-Ebene nein |
LocalizedText/ChoiceValue/ChoiceStyle/ChoiceItem |
index.d.ts:250-272 |
teilweise — felder-widgets.md:82-110 zeigt Choices, aber kein badgeVariant/chipVariant/badgeStyle/chipStyle-Mapping |
PreviewTableColumn/PreviewSlots/PreviewConfig/EvalStringConfig/EvalHtmlConfig |
index.d.ts:274-311 |
teilweise — sammlungen-anlegen.md:79-103 + admin/ansichten-listen.md zeigen Vorschau, kein Slot-Mapping (label/secondary/tertiary/badge/image/table/select) |
ImageFilterParams |
index.d.ts:314-358 |
teilweise (s. §1 image-filter) |
CollectionInfo (inkl. imageFilter/indexes/audit/bulk/queryLimits/readonlyFields/hiddenFields/search/strictFields) |
index.d.ts:361-388 |
nein als Typ; Felder s. §1 |
ActionInfo/ActionMeta/ActionMethodMeta/ActionExecutionMeta/ActionMappedField/ActionOutputProgressMapping/ActionOutputMapping/ActionOutputMeta |
index.d.ts:391-465 |
nein als Typen; Ablauf in jobs-actions.md/admin/aktionen.md |
MethodPermission/SimpleMethodPermission/AllowedMethodPermission/CollectionYourPermissions/ActionYourPermissions/ProjectYourPermissions/PermissionSet/ProjectionConfig |
index.d.ts:467-521 |
teilweise — rechte-tokens.md + abfragen-lesen.md (Projections) behandeln Konzepte, kein Typ-Mapping (bulk-Flag, filter, validProjections fehlen) |
CollectionFieldInfo (readonly/hidden/strictFields) |
index.d.ts:523-536 |
teilweise (s. Feld-§1) |
ApiInfo/ProjectInfo |
index.d.ts:539-562 |
nicht verifiziert als Typen |
AuditLogEntry |
index.d.ts:565-611 |
teilweise — audit-backup.md (Eintrags-Felder userId/action/snapshot/changes erzählt, kein Typ-Mapping) |
DbReadOptions (filter/selector/projection/offset/limit/sort/pipelineMod) |
index.d.ts:613-627 |
teilweise — hooks-daten.md:8-113 dokumentiert find/count/…-Signaturen, pipelineMod als Option nicht verifiziert |
GetHookData/GetHookGetOnlyData/PostHookData/JobConfig/JobData |
index.d.ts:629-737 |
teilweise — hooks-schreiben.md (Stufen), jobs-actions.md (Jobs); bulkReturn-Felder (created/ids/modified/deleted) ohne Typ-Mapping |
ConfigPackage/DbPackage/SmtpPackage/FsPackage/TplPackage/HttpPackage |
index.d.ts:738-1062 |
ja (Funktionen) — hooks-daten.md, hooks-netze.md, hooks-medien.md, hooks-sicherheit.md |
DebugPackage/ResponsePackage/UserPackage/BcryptPackage/JwtPackage/CharsetPackage/ImagePackage/XmlPackage/CookiePackage/PdfPackage/CryptoPackage/JsonPackage/ExecPackage/Base64Package |
index.d.ts:1064-1474 |
ja (Funktionen) — hooks-meta.md, hooks-medien.md, hooks-sicherheit.md |
CachePackage/RatelimitPackage/ChannelSubscribeOptions/ChannelSubscription/ChannelPackage (+ Rest ab :1616) |
index.d.ts:1481-1640 |
ja (Funktionen) — hooks-daten.md:114-195 (cache), hooks-netze.md:69-176 (channel, ratelimit) |
Undokumentierte Typen (als Typ-Mapping): CollectionDocument, BoolOrEval, FieldImageValidator, SearchExplainSource/SearchExplanation/SearchMeta, QueryLimitsConfig, BulkOptimizeConfig/BulkConfig, ChoiceItem (Varianten/Styles), PreviewSlots/PreviewConfig, CollectionInfo, ActionInfo-Familie (8 Interfaces), *YourPermissions-Familie, ApiInfo/ProjectInfo, AuditLogEntry (als Typ), DbReadOptions.pipelineMod.
3) Felder-Widgets / Validator-Optionen vs. projekt/felder-widgets.md
Widget-Enum (field-meta.schema.json:14-25): text, textarea, number, checkbox, switch, select, selectArray, chipArray, date, datetime, file, image, json, richtext, html, foreignKey, foreignKeyChipArray, foreignFile, foreignMedia, pagebuilder, pageBuilder, templateProps, containerLessObject, containerLessObjectArray, color — alle in felder-widgets.md + admin/eintrags-editor.md per grep nachweisbar (Stichprobe §-Befund: alle 20+ Treffer). Lücken: pagebuilder vs. pageBuilder (beide im Enum, Doku unterscheidet nicht — nicht verifiziert), containerLessObject vs. containerLessObjectArray (beide erwähnt, Unterschied nicht verifiziert), image vs. file vs. foreignFile vs. foreignMedia (alle erwähnt, Abgrenzung nur in dateien-bilder.md angerissen — teilweise).
Validatoren (felder-widgets.md:60-78): required, pattern, in, minLength/maxLength, min/max, minDate/maxDate, minItems/maxItems, format(email/url/uuid/slug), maxFileSize/minFileSize, accept, eval, allowZero — alle dokumentiert. Fehlt: image-Unterschlüssel (minWidth/maxWidth/minHeight/maxHeight/allowNonImages/allowUnknownDimensions, field.schema.json:130-142, index.d.ts:16-29) — kein Treffer in Doku außer minWidth-Messung in dateien-bilder.md:93 (Medialib-Anzeige, kein Validator). Meta-Lücken (s. §1): hideLabel, containerProps, position, pageSize, addElementLabel, imageEditor, schemaRef, filter-Flag (field-meta.schema.json:242-246), drillDown (nur pagebuilder-dev.md-Treffer), downscale (nur dateien-bilder.md-Treffer).
4) Starter-Abgleich (tibi-svelte-starter → Doku)
| Thema | Beleg (Starter) | Dokuseite | Verdikt | fehlt |
|---|---|---|---|---|
Klonen + Platzhalter (__PROJECT_NAME__, __TIBI_NAMESPACE__, .env, api/config.yml, .htaccess) |
README.md:7-22, .env (PROJECT_NAME=__PROJECT_NAME__ etc.) |
einstieg/schnellstart.md:16-52, einstieg/neues-projekt.md:12-43 |
abgedeckt | nichts |
Token-Köpfe (Token vs. X-Admin-Token vs. X-Auth-Token, ADMIN_TOKEN in config.yml.env) |
AGENTS.md: Token header distinction, README-Checkliste |
einstieg/schnellstart.md:85-94, projekt/deploy.md:95-110, projekt/rechte-tokens.md |
abgedeckt | nichts |
make docker-up, Docker-Profile, Traefik-Routen |
Makefile, docker-compose-local.yml, AGENTS.md: Quick reference |
schnellstart.md:53-74, neues-projekt.md:44-54 |
teilweise | Traefik-/Router-Details, Profile (tibi vs. tibi-dev), docker-restart-frontend/docker-logs nur Starter-lokal |
yarn validate / yarn build / yarn build:server (app.server.js, buildInfo) |
package.json: scripts (validate, build, build:server, dev/start/start:mock/start:ssr), esbuild.config*.js, scripts/esbuild-wrapper.js |
schnellstart.md:75-84, ssr-website.md:105-121, deploy.md |
abgedeckt (Basis) | start:mock/MOCK=1-Modus, esbuild-wrapper-Flags, buildInfo.ts-Mechanik nur angerissen |
SSR-Hook (api/hooks/ssr/get_read.js, <html lang>, <!--HEAD-->, Cache-Collection ssr) |
README.md:24-40, api/hooks/ssr/, frontend/src/ssr.ts |
projekt/ssr-website.md (Routen :23, Lookups :36, Blöcke :70, Bundle :105, Cache :122, Abnahme :146) |
abgedeckt | SSR-Cache-Invalidierungsregeln (PUT/DELETE vs. POST, ?clear=1) stehen nur als Code-Kommentar in ssr-website.md:153-164 — ok, aber ssr.yml-Felder nicht gemappt |
Mock-Modus (MOCK=1, __MOCK__, frontend/mocking/*.json, lib/mock.ts) |
frontend/src/lib/mock.ts:4-8, frontend/src/lib/api.ts:88-89, package.json: start:mock |
einstieg/begriffe.md, einstieg/was-ist-tibi.md (nur Wort-Treffer) |
fehlt | Mock-Aktivierung, mocking/-Verzeichnis-Format, __MOCK__-Flag — kein eigenes Doku-Kapitel (nur Wort in begriffe.md) |
Playwright-Tests (tests/e2e, tests/api, test:e2e/test:api/test:visual/tour, global-setup.ts) |
package.json: scripts (test/test:e2e/test:api/test:visual/tour), tests/, playwright.config.ts |
keine (kein Treffer playwright in einstieg/*, ssr-website.md, deploy.md) |
fehlt | gesamtes Test-Setup (Spec-Ordner, global-setup, CI ohne Playwright It. AGENTS.md) in Projekt-Doku nicht verziehen |
Frontend-Struktur (App.svelte, routes/, blocks/, widgets/, lib/api.ts, store.ts, i18n, Tailwind, Sentry, svelte:head) |
frontend/src/ (App.svelte, blocks/*, widgets/, lib/*, config.ts, ssr.ts, sentry.ts) |
ssr-website.md (Routen/Blöcke/i18n/Tailwind angerissen) |
teilweise | widgets/-Katalog, lib/-Module (api.ts, store.ts, navigation.ts, versionCheck.ts), Sentry-Verdrahtung, svelte:head-Pflicht nur Checklisten-Zeile |
API-Verzeichnis (api/collections/*.yml, api/hooks/*, api/templates/, config.yml.env, ssr.yml, medialib.yml) |
api/ (collections/, hooks/, templates/, config.yml, config.yml.env) |
neues-projekt.md:55-104 (Dateien vs. registriert), sammlungen-anlegen.md, ssr-website.md |
teilweise | templates/-Verzeichnis, config.yml.env-Mechanik (ADMIN_ASSET_VERSION), medialib.yml-Felder nur Beispiel |
Env/Deploy (CODING_URL, LIVE_URL/STAGING_URL, ADMIN_ASSET_VERSION, .basic-auth-*, CI-Skripte scripts/ci-*.sh, validate-schemas.mjs in tibi-types) |
.env, scripts/ci-*.sh, AGENTS.md: Required secrets |
neues-projekt.md, deploy.md:12-110 (URL-Bild, Ablauf, Reload-Endpunkte, Token-Trennung) |
teilweise | .basic-auth-*-Dateien, ADMIN_ASSET_VERSION-Mechanik, CI-Skript-Details (ci-modify-config.sh, ci-upload-sourcemaps.sh), BrowserSync-Proxy — Starter-lokal, Doku schweigt |
.agents/-Wissen (BUILD_CHECKLIST, Skills, tibi-project-setup) |
.agents/BUILD_CHECKLIST.md, .agents/skills/, AGENTS.md |
keine Entsprechung | fehlt (bewusst?) | Build-Checklisten-Phasen und Skill-Pflege sind Starter-intern; Doku muss entscheiden, ob das Projekt-Delivery-Wissen je in neues-projekt.md gehört |
Top-5 Starter-Lücken (für Projekt-Doku schnellstart/neues-projekt/ssr-website/deploy):
- Playwright-Test-Setup (
tests/e2e|api|visual,test:e2e/test:api/tour-Skripte) — kein Doku-Kapitel. - Mock-Modus (
MOCK=1/start:mock,mocking/*.json,lib/mock.ts) — nur Wort-Treffer. api/templates/+ssr.yml-Felder + Cache-Invalidierung als Konzept (nur Code-Kommentar inssr-website.md:153-164).- CI/Env-Mechanik (
.basic-auth-*,ADMIN_ASSET_VERSION,scripts/ci-*.sh,esbuild-wrapper-Flags). - Frontend-
lib/-Module +widgets/-Katalog + Sentry-Verdrahtung (nur angerissen).
5) Löschkandidaten (Datei → Inhalt → Doku-Status)
tibi-types:
index.d.ts(1716 Zeilen: alle Hook-Typen) → in tibi-docs teilweise (Funktionen ja, Typen nein) → muss bleiben (einzige Typquelle; Starter referenziert viatypes/global.d.ts+tibi-types/-Submodul lt.AGENTS.md).schemas/config/*.json(16 Dateien) → in tibi-docs teilweise (schemas.md:10-33listet, Details fehlen) → muss bleiben (einzige Form-Quelle; Doku verlinkt per$schema-Zeile).scripts/validate-schemas.mjs→ Inhalt nicht verifiziert (nicht gelesen) → nicht verifiziert (vermutlich Build-Hilfe → muss bleiben).demo-api/(config.yml,collections/mycol.yml,collections/fields|global/,actions/,hooks/,testfiles/) → Doku-Beispiele nutzen Starter-api/, nichtdemo-api→ teilweise/nicht abgedeckt; vor Löschen prüfen, ob Tests/Validierung sie nutzen (nicht verifiziert) → nicht löschen ohne Prüfung.package.json/tsconfig.json/README(falls vorhanden) → Paket-Metadaten → muss bleiben.
tibi-svelte-starter:
README.md(Setup-Checkliste :7-22, Architektur/SSR :24-40) → in tibi-docs abgedeckt (schnellstart.md,neues-projekt.md,ssr-website.md) → muss bleiben (Einstiegspunkt im Repo; Doku dupliziert mit Absicht für Website-Kontext).AGENTS.md(Token-Köpfe, Medialib-URL-Pattern, Constraints, Secrets, Skills-Pflege) → in tibi-docs teilweise (Token-Köpfe abgedeckt, Medialib-Pattern indateien-bilder.md, Skill-/Constraint-Wissen nicht) → muss bleiben (Agenten-Arbeitsanweisung im Repo).api/(collections/*.yml,hooks/ssr/*,templates/,config.yml,config.yml.env) → in tibi-docs teilweise (Konzepte ja, Feld-Mapping nein) → muss bleiben (lauffähiges Beispiel).frontend/src/(App/blocks/widgets/lib/routes) → teilweise → muss bleiben..agents/(BUILD_CHECKLIST.md,STARTER_ALIGNMENT_*.md,skills/) → in tibi-docs nicht abgedeckt → muss bleiben (Starter-interne Liefer-/Pflege-Doku, kein Doku-Duplikat).docker-compose-*.yml,Dockerfile,Makefile,esbuild.config*.js,scripts/esbuild-wrapper.js,.env→ teilweise (Befehle ja, Details nein) → muss bleiben.tests/+playwright.config.ts+video-tours/→ in tibi-docs nicht abgedeckt → muss bleiben (kein Ersatz in Doku).tibi-types/-Submodul +types/global.d.ts→ Typ-Brückenkopf → muss bleiben.
Zählung: 0 Dateien mit Verdikt „löschen". 2× „muss bleiben" (Typ-/Schema-Quellen), Rest „teilweise/nicht abgedeckt, muss bleiben" (lauffähige Beispiele, Tests, Ops-Dateien). Einziger Klärungsfall: tibi-types/demo-api/ (Nutzung durch Tests/CI vor Lösch-Entscheidung prüfen — nicht verifiziert).