Aber genau hier beginnt das Projekt: mit Struktur.
Der Prompt selbst war simpel:
„Erstelle die Grundstruktur des Repositories gemäß SPEC.md.“
Keine Business‑Logik. Keine Migrationen. Kein Schnickschnack. Nur das Skelett, das später alles trägt.
Also: Ordnerstruktur anlegen. Docker Compose erstellen. PHP‑Dockerfile. nginx‑Konfiguration. Ein public/index.php mit einem schlichten „Hello Employee Management“. Leere Skripte für migrate.sh und seed.sh. Der node-build‑Service im Profil build. Mehr nicht.
Codex geht das erstaunlich methodisch an. Erst prüfen, was schon existiert. Dann die Struktur bauen, Datei für Datei.
Die docker-compose.yml enthält genau die Services, die in der SPEC stehen:
- nginx
- php‑fpm
- mariadb
- redis
- node‑build
- playwright
Keine Abweichungen, keine eigenen Ideen. So, wie es sein soll.
Das PHP‑Dockerfile landet unter ops/php/Dockerfile, mit den geforderten Extensions und aktiviertem Opcache. Composer wird über das offizielle Image gezogen. Die nginx‑Config richtet sich exakt nach den definierten Routen: /, /api, /docs, /health, /metrics.
Die Frontcontroller werden angelegt: public/index.php, public/api.php, public/ops.php. Dazu Platzhalter für db/phinx.php und openapi/openapi.yaml. Alles sauber, alles an seinem Platz.
Ein kurzer Testlauf: PHP‑Dateien syntaktisch okay. Docker selbst ist in der Umgebung nicht verfügbar, also kein Compose‑Test. Aber das Grundgerüst steht.
Am Ende erzeugt Codex sogar einen Commit und einen PR‑Eintrag. Ein nüchterner, technischer Abschluss für einen nüchternen, technischen Schritt.
Und damit ist die Bühne bereitet. Die Struktur steht. Das Projekt hat jetzt ein Zuhause. Ab hier wird es interessanter.