← Übersicht

F18 Versionskontrolle und reproduzierbare Quality-Toolchain herstellen

Versionskontrolle und reproduzierbare Quality-Toolchain herstellen

Finding: F18 Priorität: P2 Status: IN UMSETZUNG Stand: 2026-07-16

Problembeschreibung

  • Projektpfad ist kein Git-Repository.
  • Kein Composer-, PHPUnit- oder PHPStan-Projektmanifest; globale Tools sind nicht gepinnt.
  • Direkte DB-Änderungen ohne Migrationstracking lassen Code/DB/Doku keinem Release zuordnen.

Ziel

Jeder Release aus Code, DB, Doku und Qualitykonfiguration ist versioniert, reproduzierbar und rollbackfähig.

Aufgabe

  1. Autoritativen Repository-Checkout herstellen.
  2. Qualitytools/-config versionieren und Runtime trennen.
  3. Commit-/Release-ID in Deploy/Doku.
  4. CI-Gates für Syntax, Tests, PHPStan, LOC, Secrets, Migration.

Scope

  • In Scope: alle unter Code Blast genannten Komponenten, Daten, Verträge und Tests.
  • Out of Scope: neue Features und produktive externe Mutation ohne separate Freigabe.

Harte Spezifikation

  • MUST: Produktion referenziert immutable Artefakt.
  • MUST: Toolversionen reproduzierbar.
  • MUST: Secrets/PDF/State/Logs nie versioniert.
  • MUST: Release bindet Migration/Doku; Rollback getestet.

Harte Quality Gateways

  • Sauberer Checkout reproduziert Offline-Gates.
  • Secret-/Large-file-Scan vor Initialcommit 0.
  • Deploy zeigt Commit/Migration/Doku.
  • Rollback ohne DB-Datenverlust.
  • Global: PHPStan Level 8 und PHPUnit liefern 0 Fehler; kein Ignore oder Baseline.

Code Blast

  • VCS/CI/Ignore/Deploymetadaten.
  • Kein unmittelbarer Fachcodewechsel.

Code-Impact-Analyse

  • Mehr Audit-/Rollbackfähigkeit.
  • Initialimport braucht Secret-/Datenprüfung.

Risikoanalyse

| Risiko | Eintritt | Schaden | |---|---|---| | Nicht rollbackfähige Änderung | hoch | hoch | | Initialcommit enthält Secrets/Tooldrift | mittel | kritisch |

Strategie zur Risikonullierung

  1. Prevent: Ignore/Secretgates.
  2. Detect: CI/Fingerprint.
  3. Contain: immutable Artefakte.
  4. Recover: Rollback/DB Roll-forward.

Abschlussnachweis

Erledigt erst, wenn alle MUST-Spezifikationen implementiert, alle Gateways mit unveränderlicher Evidenz grün und Restrisiken technisch ausgeschlossen oder ausdrücklich fachlich akzeptiert sind.

Supervisionsfortschritt 2026-07-16

  • Git main initialisiert; Composer-Lock mit PHPUnit 11.5.55/PHPStan 2.1.33 und npm-Lock reproduzierbar. Erstcommit/Release erst nach final gruenem E2E.

Supervisionsfortschritt 2026-07-16 (Quality-Gateway)

  • Reproduzierbares Offline-Gateway und Vorabscan fuer Secrets, Runtime-Artefakte und Dateien ueber 5 MiB sind versioniert und gruen.
  • Erstcommit, immutable Release-ID und Rollbackbeleg bleiben bis zum finalen externen E2E gesperrt.

Supervisionsfortschritt 2026-07-16 (Finaler lokaler Lauf)

  • Das vollstaendige Offline-Gateway ist mit 67 PHPUnit-Tests/240 Assertions, PHPStan Level 8, 9 Node-Tests, YAML, Syntax und LOC gruen.
  • Ohne ausgeschlossene Wetell-Konfiguration endet `run-rechnung.php` fail-closed mit Exit 1; Rechnungsdateien bleiben exakt 0 zu 0 und Lexware wird nicht aufgerufen.
  • VCS-Vorpruefung: Runtime-Credentials sind ignoriert; Secret-/Grossdatei-Gateway prueft 223 Versionskandidaten ohne Fund.

Frühere Versionen

VersionZeitpunktOperation
65 2026-07-16 20:26:01.579124+02 UPDATE
52 2026-07-16 20:11:22.769053+02 UPDATE
44 2026-07-16 19:53:19.687899+02 UPDATE