Dieses Dokument beschreibt, wie wir gemeinsam den Projektplan für das Projekt „Meldungen an das Implantateregister Deutschland (IRD)" erarbeiten. Es dient als Orientierung für die Zusammenarbeit in dieser Session sowie als Nachschlagewerk für spätere Sessions.
Um Missverständnisse zwischen Claude, Claude Code und Jörg zu vermeiden, gelten folgende Begriffe verbindlich:
| Begriff | Bedeutung |
|---|---|
| Repo | Das GitHub-Repository ird-projektplan – der zentrale, versionierte Stand |
| Working Copy | Das lokale Verzeichnis auf Jörgs Rechner (via git clone / git pull) |
| Output | Dateien die Claude zum Download bereitstellt (/mnt/user-data/outputs/) |
| Kontext | Was Claude in der laufenden Session im Speicher hat – hochgeladene oder bearbeitete Dateien |
Claude Code arbeitet auf der Working Copy. Claude arbeitet im Kontext und liefert in den Output. Jörg ist die Brücke: er lädt Dateien aus der Working Copy zu Claude hoch und checkt Output-Dateien in die Working Copy ein.
SESSION-NOTES.md – die dort eingetragene Nummer ist verbindlich| Datei / Verzeichnis | Zweck | Status |
|---|---|---|
docs/projektplan_ird.md |
Hauptdokument – der eigentliche Projektplan | In Bearbeitung |
docs/projektplan_ird.odt |
Druckversion des Projektplans (automatisch per GitHub Action generiert) | Wird bei jedem Push auf main neu erzeugt |
qs_docs/QS-Protokoll-v1_0.md |
QS-Protokoll zur ersten Prüfrunde des Projektplans | In Bearbeitung |
ARBEITSWEISE.md |
Dieses Dokument – Konventionen und Struktur | In Bearbeitung |
BACKLOG.md |
Offene Punkte, Fragen, geplante Ergänzungen | In Bearbeitung |
README.md |
Kurzbeschreibung des Projekts und Repository-Struktur | In Bearbeitung |
Die aktuelle Verzeichnisstruktur des Repos wird von Claude Code in DATEIEN.md gepflegt und dort automatisch aktualisiert. Claude Code trägt beim Einchecken neuer Verzeichnisse oder Dateien die Struktur in DATEIEN.md ein.
Für die aktuelle Verzeichnisstruktur siehe
DATEIEN.md.
Jedes Steuerungsdokument hat eine klar abgegrenzte Rolle. Überschneidungen sind zu vermeiden.
| Dokument | Rolle | Enthält |
|---|---|---|
BACKLOG.md |
Aufgaben- und Klärungsregister | Offene Aufgaben, Klärungsbedarfe, geplante Ergänzungen – Was muss noch getan / geklärt werden? |
DATEIEN.md |
Vollständige Dateiliste | Alle Dateien im Repo mit aktuellen Versionen – Was liegt im Repo, in welcher Version? Wird von Claude Code beim Einchecken automatisch aktualisiert. |
docs/projekt/entscheidungen.md |
Entscheidungsregister | Offene und getroffene Entscheidungen mit Entscheidungsträger, Status und Datum – Was muss entschieden werden, und was wurde entschieden? |
README.md |
Repo-Übersicht | Dokumentenliste mit Versionen und Pfaden – Was gibt es im Repo? |
SESSION-NOTES.md |
Sessionübergabe | Letzter Stand, was wurde gemacht, nächste Schritte – Wo stehen wir gerade? |
Abgrenzungsregel: K-Einträge im BACKLOG die primär eine Entscheidung erfordern (kein weiterer Analyseaufwand nötig), werden in entscheidungen.md geführt und im BACKLOG nur noch referenziert.
#, ##, ###, ####)AP X.Y (X = Phase, Y = laufende Nummer).odt-Datei wird automatisch per GitHub Action generiert und nicht manuell bearbeitetversion, stand, session) und Versionshistorie aktualisiert – unabhängig davon, ob die Änderung von Claude, Claude Code oder Jörg vorgenommen wirdClaude, Claude Code oder JörgDATEIEN.md geprüft, nicht gegen READMEversion: im Kommentar)DATEIEN.md entsprechend und committet die Datei mitDATEIEN.md – beim Anlegen neuer Verzeichnisse wird die Struktur dort aktualisiertClaude und Claude Code verlieren bei automatischer Kontextkomprimierung Informationen. Um das zu vermeiden gilt:
| Thema | Festlegung |
|---|---|
| Tool-Überführung | Der Projektplan wird nach Confluence überführt (Projektstandard). Zusätzlich Ablage auf dem Netzwerk-Laufwerk für Projekte. |
| Corporate Design / Vorlagen | PowerPoint-Vorlagen vorhanden. Für Textdokumente (Markdown, Word) freie Gestaltung. |
Die Projektdokumentation ist unter https://ird-docs.oemesrv.eu erreichbar.
Konzept:
home.md (Repo-Root) = Startseite mit vollständiger Übersicht und direkten Links zu allen SeitenRegel: Neue Seite einbinden
Wenn eine neue .md-Datei ins Repo kommt, sind zwei Stellen zu aktualisieren:
home.md – Link im passenden Abschnitt ergänzentools/wikijs_navigation.sql – Eintrag in der entsprechenden Gruppe ergänzen, dann Script auf dem VPS ausführen (siehe unten)Navigation per SQL aktualisieren (schneller als Admin-UI):
# Repo auf develop pullen (einmalig oder bei Bedarf)
git -C /tmp/ird-dev pull
# Script ausführen
docker exec -i wikijs_db_1 psql -U wikijs -d wiki < /tmp/ird-dev/tools/wikijs_navigation.sql
# Wiki.js neu starten (Cache leeren)
cd /opt/wikijs && docker-compose restart wiki
Beim ersten Mal einmalig klonen:
git clone -b develop git@github.com:oeme-github/ird-projektplan.git /tmp/ird-dev
Seitenstruktur (7 Abschnitte):
| Abschnitt | Inhalt |
|---|---|
| Projektüberblick | Projektplan, README |
| Mapping-Arbeit | Mapping Übersicht + alle 7 Mapping-Sheets |
| Felder & Wertelisten | felder_* + wertelisten_ird |
| Projektdokumentation | Entscheidungen, Aufwand, Rollen, Schnittstellenentsch., Entsch.rahmen DQ |
| Terminavorbereitung | SAP, Xaxoa, Lückenanalyse |
| QS | QS-Protokoll v2.0 + v1.0 |
| Projektsteuerung | Backlog, Arbeitsweise |
Nicht in Wiki.js: SESSION-NOTES.md, DATEIEN.md (interne Wartungsdokumente), mapping_template.md
Bekannte Wiki.js-Einschränkungen (Datei- und Verzeichnisnamen):
qs ist ein reservierter Wiki.js-Pfad → nicht verwendbar (→ qs_docs).md) verhindern den Import (z.B. v1.0.md → v1_0.md)Apache Reverse Proxy (VPS-Konfiguration):
Config-Dateien (beide in /etc/apache2/sites-enabled/):
ird-docs.conf – HTTP-Redirect (Port 80)ird-docs-le-ssl.conf – HTTPS/SSL (Port 443, von Certbot verwaltet)Wichtig: mod_proxy_wstunnel muss aktiviert sein (Wiki.js nutzt WebSockets):
sudo a2enmod proxy_wstunnel
sudo systemctl reload apache2
Der HTTPS-VirtualHost muss WebSocket-Weiterleitung enthalten (vor den ProxyPass-Direktiven):
RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:3000/$1" [P,L]
Ohne diese Regeln können WebSocket-Verbindungen von Wiki.js mit 504 Gateway Timeout scheitern.
www.-Subdomain: Zertifikat deckt beide Domains ab (ird-docs.oemesrv.eu + www.ird-docs.oemesrv.eu). In ird-docs-le-ssl.conf ist ein 301-Redirect von www → non-www eingerichtet (vor den WebSocket-Regeln). Bei Certbot-Renewal bleibt das Zertifikat für beide Domains gültig.
Sicherheitskonfiguration (VPS + Wiki.js):
| Maßnahme | Status | Hinweis |
|---|---|---|
| Let's Encrypt SSL | ✅ | Automatische Erneuerung per Certbot |
| HSTS | ✅ | max-age=31536000; includeSubDomains in ird-docs-le-ssl.conf |
| mod_evasive | ✅ | Rate-Limiting gegen Scan-Versuche; Config: /etc/apache2/mods-available/evasive.conf |
| Fail2ban | ✅ | Auf VPS-Ebene eingerichtet |
| UFW Firewall | ✅ | Auf VPS-Ebene eingerichtet |
| Wiki.js 2FA | ✅ | In Admin → Security aktiviert |
| Wiki.js Self-Registration | ✅ | Deaktiviert in Admin → Authentication → Local |
| www-Redirect | ✅ | www.ird-docs.oemesrv.eu → 301 → ird-docs.oemesrv.eu; Cert deckt beide Domains ab |
mod_evasive Werte (angepasst für Wiki.js):
DOSHashTableSize 1024
DOSPageCount 20 # Standard 2 wäre zu niedrig für Wiki.js
DOSSiteCount 150
DOSBlockingPeriod 30
Technisches (Entscheidung G-06): Siehe docs/projekt/entscheidungen.md
Bei „End Session" immer:
Vollständige Versionsprüfung aller Dokumente erfolgt über
DATEIEN.md(wird von Claude Code gepflegt).
| Version | Datum | Session | Akteur | Änderung |
|---|---|---|---|---|
| 1.0 | 2026-03-12 | 2 | Claude | Erstversion |
| 1.1 | 2026-03-12 | 13 | Claude | Session-Abschluss-Regel ergänzt |
| 1.2 | 2026-03-17 | 14 | Claude | A-01/A-02: Nur .md bearbeiten; .odt wird von GitHub Action erzeugt |
| 1.3 | 2026-03-17 | 14 | Claude | A-03/A-04: Versionshistorie-Regel mit Akteur-Spalte eingeführt |
| 1.4 | 2026-03-17 | 14 | Claude | A-05: Sessiongröße-Regel ergänzt |
| 1.5 | 2026-03-17 | 15 | Claude | Begriffe-Abschnitt ergänzt (Repo, Working Copy, Output, Kontext) |
| 1.6 | 2026-03-17 | 15 | Claude | Sessionnummer-Regel ergänzt |
| 1.7 | 2026-03-17 | 16 | Claude | Sessionnummer-Regel verschärft: Claude Code darf Nummer nicht selbst hochzählen |
| 1.8 | 2026-03-17 | 18 | Claude | Verzeichnisstruktur ergänzt: docs/xaxoa/ für Xaxoa-Korrespondenz |
| 1.9 | 2026-03-17 | 21 | Claude | Session-Abschluss: README-Versionsprüfung als Pflichtschritt ergänzt |
| 2.0 | 2026-03-17 | 22 | Claude | Dokumentenrollen-Abschnitt ergänzt; Abgrenzung BACKLOG / entscheidungen.md / README / SESSION-NOTES |
| 2.1 | 2026-03-17 | 23 | Claude | Offene Fragen geschlossen: Tool-Überführung (Confluence + Netzlaufwerk) und Corporate Design als Festlegungen dokumentiert |
| 2.2 | 2026-03-17 | 23 | Claude | Versionsmismatches: Regel ergänzt – Claude fragt nach aktueller Version bevor er eine Datei bearbeitet |
| 2.3 | 2026-03-17 | 25 | Claude | Verzeichnisstruktur aktualisiert: docs/sap/ und docs/schnittstellen/mappings/ ergänzt |
| 2.4 | 2026-03-18 | 27 | Claude | DATEIEN.md eingeführt: Dokumentenrolle, Claude-Code-Regel, Versionsprüfung; Session-Abschluss angepasst |
| 2.5 | 2026-03-18 | 27 | Claude | Verzeichnisstruktur aus ARBEITSWEISE entfernt; Claude Code pflegt Struktur in DATEIEN.md |
| 2.6 | 2026-05-26 | 46 | Claude Code | Wiki.js-Abschnitt ergänzt: Konzept, Pflegeregel, Seitenstruktur |
| 2.7 | 2026-05-26 | 46 | Claude Code | Wiki.js Navigation: SQL-Script-Ansatz dokumentiert (schneller als Admin-UI) |
| 2.8 | 2026-05-28 | 47 | Claude Code | Wiki.js-Einschränkungen ergänzt: reservierter Pfad qs, Punkte in Dateinamen |
| 2.9 | 2026-06-02 | 49 | Claude Code | Apache Reverse Proxy: WebSocket-Config (mod_proxy_wstunnel) dokumentiert |
| 3.0 | 2026-06-02 | 50 | Claude Code | Sicherheitskonfiguration dokumentiert: HSTS, mod_evasive, Wiki.js 2FA + Self-Registration |
| 3.1 | 2026-06-02 | 51 | Claude Code | www-Redirect + Zertifikatserweiterung dokumentiert |
| 3.2 | 2026-06-16 | 60 | Claude Code | Header-Versionskommentar korrigiert (war veraltet auf 2.8 stehengeblieben) |