Contributor Guide: Link-, Routing- und Quality-Konvention
Ziel
Diese Seite definiert verbindliche Arbeitsregeln für Content-PRs, damit Navigation, BPMN-Drilldowns, fachliche Nachvollziehbarkeit und CI-Checks dauerhaft stabil bleiben.
Verbindliche Sprachregel
- Es darf kein Eszett verwendet werden (immer
ss). - Gilt für Fliesstext, Tabellen, Callouts, UI-Labels mit redaktionellem Charakter und Review-Anmerkungen.
- Ausnahmen nur bei explizit gekennzeichneten Originalzitaten/Drittinhalten.
Terminologie-Governance (verbindlich)
- Das Glossar ist die einzige verbindliche Referenz für Begriffe in
concepts.md, der Traceability-Matrix und den Tool-Kapiteln. - Jeder Glossarbegriff besitzt einen klaren fachlichen Scope, einheitliche Schreibweise und bei Bedarf explizite Ausschlussbegriffe („nicht verwenden“).
- Jede BPMN-Entscheidung und jedes Tool-Artefakt (OpenMetadata, Prefect, MLflow) verwendet dieselben kanonischen Begriffe.
- Änderungen an Begriffen erfolgen versioniert im Glossar, bevor sie in Prozess- oder Tooldokumentation verwendet werden.
- Begriffe bei Erstnennung innerhalb einer Seite auf den entsprechenden Glossareintrag verlinken.
- Keine abweichenden Synonyme in Prozess- oder Toolseiten verwenden, ohne vorheriges Glossar-Update.
- Tool-spezifische Begriffe nur mit Kontext verwenden (z. B. MLflow Model Version vs. Registry Stage).
- Bei Review von Doku-PRs ist die Konsistenz zwischen Glossar,
concepts.mdundtraceability-matrix.mdPflichtkriterium.
Verbindliche Route-Strategie
- Öffentliche Routen sind sprechend und ohne numerische Präfixe:
/docs/<domain>/<page>. - Numerische Ordnerpräfixe (
00-bis09-) bleiben intern für Strukturierung. - Jede Doc-Seite benötigt einen expliziten
slugim Frontmatter.
Konventionen für Links
- In Navbar/Footer nur feste
to: '/docs/<domain>/<page>'-Routen. - In Markdown/MDX dieselbe Kurzroute (
/docs/...) statt relativer Dateipfade. - In BPMN-
<bpmn:documentation>ausschliesslich/docs/...oderNO_DOC_LINK: <Grund>. - BPMN-Dateien als statische Assets unter
/bpmn/*.bpmnreferenzieren.
Verbindlicher Autorenworkflow
- Inhaltliche Änderung vornehmen und Pflichtabschnitte vollständig ausfüllen.
- Placeholder entfernen (
TODO,TBD, Vorlagen-Sätze, Dummy-Listen). - Begriffe und Rollen gegen Glossary prüfen.
- BPMN-/Prozessbezug gegen Traceability Matrix prüfen.
pnpm run link-checkausführen und alle Findings beheben.- Optional
pnpm run buildfür zusätzliche Link-/Routing-Validierung.
BPMN-Kontext und Traceability (verbindlich)
Bei Seiten, die in site/docs/00-platform/traceability-matrix.md als Zielseite geführt werden, gilt zusätzlich:
- Abschnitt
## BPMN-Kontextpflegen mit BPMN-IDs sowie Input-/Entscheidungs-/Output-Bezug. - Gate-Logik nicht redundant verteilen; zentrale Entscheidungslogik verlinken (aktuell
/docs/research-risk/acceptance-criteria). - Status in der Traceability-Matrix konsistent aktualisieren (
Abgedeckt/Gap). - Für Knoten ohne eigene Seite die
NO_DOC_LINK-Regel konsequent anwenden.
Review-Checklist für BPMN-bezogene Doku-PRs (Pflicht)
Jeder Doku-PR, der Prozesslogik, Rollen, Evidenzen oder Eskalationen in der Traceability Matrix verändert, muss vor dem Merge folgende Punkte erfüllen:
- Alle geänderten BPMN-Knoten sind in der Matrix identifiziert und referenziert.
-
Zielseiteverweist auf die fachlich richtige Seite untersite/docs/**. -
Artefakte/Evidenzist prüfbar und auditfähig beschrieben. -
Eskalationspfadist eindeutig (Owner + nächstes Eskalationslevel). - Offene
Gap-Punkte sind entweder geschlossen oder im PR explizit als Folgearbeit begründet. - Schweizer Rechtschreibung eingehalten (
ss, kein Eszett) oder verbleibende Originalzitate explizit markiert.
Workflow für Matrix-Änderungen:
- Betroffene BPMN-Knoten in der Matrix identifizieren.
- Zielseite, Rolle, Evidenz und Eskalationspfad prüfen/aktualisieren.
- Alle
Gap-Einträge entweder schliessen oder im PR explizit begründen.
Definition of Done für Content-PRs (verbindlich)
Ein Content-PR ist nur „Done“, wenn alle folgenden Punkte erfüllt und im PR nachvollziehbar sind:
- Template-frei: Keine Platzhalter, keine vorbefüllten Dummy-Abschnitte, keine unkonkreten Aussagen.
- BPMN-referenziert: Bei prozessnahen Änderungen sind betroffene BPMN-Knoten genannt und auf Zielseiten/Matrix abgestimmt.
- Messbare Akzeptanzkriterien: Aussagen sind prüfbar (Schwellwerte, SLOs, Pass/Fail-Regeln, klare Rollen).
- Traceability vollständig: Glossary- und Traceability-Verlinkung vorhanden, Evidenzpfade benannt.
- CI-konform:
pnpm run link-checkerfolgreich.
Messbare Akzeptanzkriterien (Mindestset)
- 0 Placeholder-Marker in geänderten Seiten.
- 0 fehlerhafte
/docs/...-Links lautpnpm run link-check. - Für jede prozessrelevante Seite: 1 Abschnitt
## BPMN-Kontextmit allen 3 Bezügen (Input/Entscheidung/Output). - Für jede Datenseite: Data-Contract-, Versionierungs- und Incident-Abschnitt vorhanden.
CI-Absicherung
onBrokenLinks: 'throw'im Docusaurus-Config bricht Build bei defekten gerenderten Links.pnpm run link-checkprüft statisch:- Frontmatter +
slugje Docs-Seite, - Konsistenz fester
/docs/...-Links in TS/MD/MDX/JSON, - BPMN-Drilldown-Links in
site/static/bpmn/*.bpmn, - referenzierte BPMN-Assets (
/bpmn/...) in Dokumenten.
- Frontmatter +
Siehe auch: BPMN-Linking Richtlinie, Local Setup, Adding Pipeline.
Deploy-Pipeline (Single Source of Truth)
CI/CD Overview (Source of Truth)
- Deploy ist image-basiert: GitHub Actions baut und pusht nach GHCR; die Prod-VM pullt nur Images (kein Build auf der VM).
- Verbindlicher Workflow:
.github/workflows/publish-mlprojektdocs.yml. - Image-Pattern (immer lowercase):
ghcr.io/<owner>/<repo>, z. B.ghcr.io/optimorum/mlprojektdocs. - Erwartete Tags:
mainundsha-<commit>. - Wichtig: GHCR/Docker akzeptiert Image-Namen nur lowercase.
Was triggert Deploy?
- Push/Merge auf
main. - Zusätzlich muss mindestens eine Datei unter
site/**oder die Workflow-Datei selbst geändert sein (entsprechendon.push.paths).
Wann muss der Workflow angepasst werden? (Coupling Points)
site/wurde umbenannt/verschoben:contextundfileim Build-Step anpassen.- Standard-Branch wechselt von
mainauf einen anderen Branch: Trigger anpassen. - Dockerfile-Pfad oder -Name ändert sich.
- Node- oder Package-Manager-Wechsel beeinflusst den Docker-Build.
- Registry, Image-Namensschema oder Tagging-Konzept ändert sich.
- Repo-/Org-Setting Workflow permissions kann
GITHUB_TOKENeinschränken (insb. Package write). Referenz: GitHub Actions Workflow Syntax – permissions.
Lokal testen (Developer Loop)
- Schnell (Docusaurus dev server):
cd site && pnpm install && pnpm start
- Wie Prod (Container-Build):
docker build -t mlprojektdocs:local ./sitedocker run -p 8085:80 mlprojektdocs:local
Prod-Update-Mechanik
- Manuell (kontrolliert):
docker compose pull && docker compose up -d
- Automatisch (Watchtower):
- Watchtower pollt in Intervallen (typisch 5–15 min) neue Images, pullt Updates und startet betroffene Container neu.