2.3 KiB
2.3 KiB
name, description
| name | description |
|---|---|
| core-guardrails | Verbindliche Guardrails fuer Architektur-, Refactor-, Zentralisierungs-, Standardisierungs- und Implementierungsaufgaben in diesem Starterkit. Verwenden, wenn Code geaendert, neu strukturiert oder gegen bestehende Layer-/UI-/Security-Standards geprueft werden soll. |
Core Guardrails
Ziel
Durchgaengig dieselben technischen Grenzen durchsetzen, damit Core robust, wartbar und vorhersagbar bleibt.
Verbindliche Regeln
- MUST Layering einhalten (
pages->Service->Repository, Templates nur Rendering). - MUST Request/Input/Validation-Contract einhalten (
requestInput(),FormErrors, API-Validation ueberApiResponse::validationFromFormErrors(...), keinApiResponse::readJsonBody(...)inpages/api/v1/**, keine direkten Superglobals inpages/**). - MUST AuthZ/RBAC serverseitig durchsetzen und im UI nur ueber
$viewAuthsteuern. - MUST Security-Guards einhalten (CSRF auf POST-Endpunkten, keine unredacted PII/Secrets in Logs/Audit-Meta, SQL nur vorbereitet ueber Repository).
- MUST UI-Standards und Data-Contracts fuer Listen/Detailseiten nutzen (Wrapper, Partials, globaler Confirm-Dialog statt
window.confirm, inklusive globaler Grid-Standards fuer rowInteraction/pageSize). - MUST Frontend-Hardcuts einhalten (keine inline ESM-Module in Templates/Pages, JS-
srcmitassetVersion(...), zentrale Telemetrie fuer relevante Frontend-Warnings/Fetch-Fehler). - MUST Quality-Gates ausfuehren und Ergebnis transparent berichten.
- MUST bei Konflikten den regelkonformen Weg waehlen oder den Konflikt als Blocker markieren.
- MUST NOT Extension-Architektur erfinden; dieses Thema ist aktuell Out of Scope.
Vorgehen je Aufgabe
- Scope bestimmen (
core,ui,api,mixed). - Vorhandene Contracts zuerst suchen, dann wiederverwenden.
- Aenderung minimal halten, keine Seiteneffekte ohne Grund.
- Nach Aenderung die relevanten Gates ausfuehren.
- Rest-Risiken explizit benennen.
Out of Scope
- Extension-Mechanik (Ablageorte, Hooks, Lifecycle) wird hier nicht standardisiert.
- Fuer Extensions nur den Status "nicht definiert" dokumentieren, keine impliziten Regeln erfinden.
Referenzen
- Core-Boundaries:
references/boundaries-core.md - UI-Boundaries:
references/boundaries-ui.md - Quality-Gates:
references/quality-gates.md - Source-Map zu Projekt-Doku:
references/source-map.md