ARCH-2026-006 – Nachweisbarer Deployment- und Produktionsstand mit Drift-Erkennung¶
Status: Entwurf
Proposal-Status: under_review
Kategorie: architecture
Erstellt: 2026-07-07
Stand: 2026-07-07
Geprüfter Repository-Stand: f84c881aace65ff9aa857b43fc2de4b0a7998397
Anlass¶
Immohai dokumentiert Modell-, Engine- und teilweise Integrationsstände bereits in mehreren Dateien. Nach einem Deployment fehlt jedoch eine einzige belastbare technische Aussage darüber, welcher geprüfte Release tatsächlich in der produktiven App und Dokumentation aktiv ist.
Der aktuelle Deploymentpfad prüft Erreichbarkeit sowie Modell- und Engineversion, erzeugt aber keinen dauerhaft referenzierbaren Deploymentnachweis und erkennt keine Abweichung zwischen erwartetem Release, aktiven Containern, ausgelieferten App-Dateien, Dokumentationsstand und manueller Statusdokumentation.
Entstehung dieses Proposals¶
Auf dem geprüften main-Stand existierten ursprünglich nur ARCH-2026-001 bis ARCH-2026-005.
ARCH-2026-006 wird als eigenständiges neues Proposal erfasst, weil nach der Erweiterung von ARCH-2026-004 und ARCH-2026-005 eine klar abgrenzbare Restverantwortung verbleibt:
ARCH-2026-004
erzeugt einen reproduzierbaren, unveränderbaren Release
ARCH-2026-005
verifiziert den tatsächlich integrierten Repository-Commit
ARCH-2026-006
weist nach, welcher Release in welcher Umgebung tatsächlich aktiv ist
und erkennt Drift zwischen erwartetem und beobachtetem Produktionsstand
Bestätigte Teilentscheidung 1 – Umfang¶
Am 2026-07-07 wurde Variante B bestätigt:
ARCH-2026-006 wird nicht auf zusätzliche HTTP-Smoke-Checks nach dem
Deployment begrenzt.
Das Proposal definiert einen nachweisbaren Deployment- und Produktionsstand
mit eindeutiger Deployment-ID, Releasebezug, technischen Komponentenständen,
Post-Deployment-Verifikation, Browserabnahme-Referenz und Drift-Erkennung.
App und Dokumentation müssen denselben erwarteten Release-Bundle-Stand
nachweisen. Der beobachtete Produktionsstand wird gegen den freigegebenen
Release und den erfolgreichen IntegrationVerificationRecord geprüft.
Manuell wiederholte Commit- und Versionsangaben in README, Deploymentdoku
oder Arbeitsstand sind nicht die technische Produktionswahrheit.
Die konkrete Record-Ablage, Manifest-URL, Drift-Frequenz und Aufbewahrung bleiben Gegenstand weiterer Einzelentscheidungen.
Ausgangsproblem¶
Der aktuelle Ablauf ist vereinfacht:
main aktualisieren
-> Regressionen ausführen
-> docker compose up
-> lokale URLs prüfen
-> öffentliche URLs optional prüfen
-> Modell- und Engineversion aus App-Manifest vergleichen
-> Commit, Modell und Engine im Terminal ausgeben
Nicht formal nachgewiesen werden:
welcher unveränderbare Release aktiviert wurde
welches Web-Artefakt tatsächlich läuft
welches Docs-Artefakt tatsächlich läuft
ob App und Doku demselben Release-Bundle entsprechen
welcher IntegrationVerificationRecord den Release freigegeben hat
ob Runtime-Baseline und erwartete Containerstände übereinstimmen
ob Browserabnahme für genau diesen Release durchgeführt wurde
ob der aktuelle Zustand vom erwarteten Produktionsstand abweicht
welcher vorherige Release für Rollback verfügbar ist
Relevanter bestehender Stand¶
Betroffene Dateien und Prozesse mindestens:
scripts/deploy-and-verify.sh
docker-compose.yml
deploy/nginx/default.conf
frontend/assets/config/model-manifest.json
model/config/model-manifest.json
docs/operations/deployment.md
docs/operations/browser-acceptance.md
docs/roadmap/current-status.md
README.md
.github/workflows/contract-check.yml
Angrenzende Architektur-Proposals:
ARCH-2026-001
Frontend-State, Render-Orchestrierung und View-Eigentümerschaft
ARCH-2026-002
Snapshot-basierte Reportdatenpipeline
ARCH-2026-003
schlanke Architecture Decision Records und Ablösung
ARCH-2026-004
reproduzierbare Prüf-, Release- und Container-Baseline
ARCH-2026-005
Post-Merge-Verifikation des integrierten Repository-Standes
Nachgewiesene aktuelle Lücken¶
1. Kein autoritativer DeploymentRecord¶
Nach einem Deployment existiert kein standardisierter maschinenlesbarer Nachweis mit mindestens:
Deployment-ID
Umgebung
Release-ID
Git-Commit
Integrationsnachweis
Web-Artefakt
Docs-Artefakt
Runtime-Baseline
Zeitpunkt
Ergebnis der technischen Verifikation
Ergebnis oder Referenz der Browserabnahme
vorheriger Release
2. Öffentliche Prüfung kontrolliert nur Modell und Engine¶
Das aktuelle Deploymentskript liest das veröffentlichte Modellmanifest und prüft:
model_version
calculation_engine_version
Zwei technisch unterschiedliche Releases können dieselben Modell- und Engineversionen besitzen.
Damit wird nicht bewiesen, dass exakt der erwartete Git-Commit oder das erwartete Release-Artefakt läuft.
3. App und Dokumentation können auseinanderlaufen¶
Die aktuelle App und Dokumentation werden über getrennte Container und getrennte öffentliche Endpunkte ausgeliefert.
Ohne gemeinsame Release-Bundle-ID kann nicht eindeutig erkannt werden:
App neu, Doku alt
App alt, Doku neu
unterschiedliche Git-Commits
unterschiedliche Runtime-Baselines
nur ein Service erfolgreich aktualisiert
4. Produktiver Stand wird mehrfach manuell beschrieben¶
README, Deploymentdokumentation, Arbeitsstand und Browserabnahme enthalten manuell gepflegte Angaben zu:
Modellversion
Engineversion
Integrationscommit
Deploymentstatus
Pull-Request-Status
Diese Angaben können untereinander konsistent und trotzdem gegenüber dem tatsächlich laufenden System veraltet sein.
5. Browserabnahme besitzt keinen technischen Record-Bezug¶
Das aktuelle Browserabnahmeprotokoll enthält Felder für Integrationscommit, Deploymentzeitpunkt und öffentliches Manifest, bleibt aber ein manuell gepflegter Dokumentblock.
Es fehlt eine stabile Referenz auf:
Deployment-ID
Release-ID
IntegrationVerificationRecord
konkrete App- und Docs-Artefakte
6. Deployment und Produktabnahme sind nicht sauber getrennt¶
Technisch erfolgreiche Bereitstellung und fachlich-visuelle Browserabnahme sind unterschiedliche Zustände.
Der aktuelle Prozess unterscheidet nicht formal zwischen:
deployed
Release wurde aktiviert
technical_verified
Endpunkte, Manifeste und Komponenten stimmen
accepted
erforderliche interaktive Browserabnahme ist abgeschlossen
7. Keine Drift-Erkennung¶
Nach erfolgreichem Deployment gibt es keinen bewussten Wiederholungslauf, der den erwarteten Produktionsstand mit dem beobachteten System vergleicht.
Mögliche Drift:
Container manuell neu gestartet oder ersetzt
bewegliches Image neu gezogen
Dateien im Bind-Mount verändert
nur App oder nur Doku aktualisiert
Release-Manifest und aktive Dateien widersprechen sich
Reverse-Proxy zeigt auf falschen Service
Dokumentation nennt alten Commit
Rollback wurde durchgeführt, aber nicht dokumentiert
8. Rollback wird nicht als neues Deploymentereignis dokumentiert¶
Ein Rollback verändert den aktiven Produktionsstand. Ohne eigenen DeploymentRecord bleibt unklar:
welcher Release zurückgenommen wurde
welcher frühere Release wieder aktiviert wurde
warum der Rollback erfolgte
ob die Verifikation danach erfolgreich war
Zielprinzip¶
erfolgreich integrierter Commit nach ARCH-2026-005
-> reproduzierbarer Release nach ARCH-2026-004
-> Deployment in definierte Umgebung
-> DeploymentRecord erzeugen
-> lokalen Laufzeitstand beobachten
-> öffentliche App und Doku prüfen
-> erwarteten und beobachteten Stand vergleichen
-> technische Verifikation abschließen
-> interaktive Browserabnahme referenzieren
-> Produktionsstatus accepted oder Abweichung dokumentieren
Der technische Produktionsstand ergibt sich aus überprüfbaren Release- und Laufzeitinformationen, nicht aus manuell wiederholten Textangaben.
Geltungsbereich¶
ARCH-2026-006 umfasst:
eindeutige Deployment-ID
Umgebungsidentität
Verknüpfung zu Release-ID und Git-Commit
Verknüpfung zu IntegrationVerificationRecord
DeploymentRecord und aktueller EnvironmentState
beobachtete App- und Docs-Artefaktidentitäten
öffentliche Release-Manifeste
Vergleich von erwartetem und beobachtetem Zustand
Post-Deployment-Smoke- und Manifestprüfung
Drift-Erkennung
Browserabnahme-Referenz
Trennung von deployed, technical_verified und accepted
Rollback als nachvollziehbares Deploymentereignis
Aufbewahrung früherer Deploymentnachweise
Reduktion manueller doppelter Produktionswahrheiten
Nicht Teil dieses Proposals:
Frontend-State oder Rendererlogik aus ARCH-2026-001
Reportdaten oder Reportrenderer aus ARCH-2026-002
ADR-Lifecycle aus ARCH-2026-003
Build, Image-Pinning, Artefakterzeugung oder Aktivierungstechnik aus ARCH-2026-004
Post-Merge-Repositoryprüfung aus ARCH-2026-005
allgemeine Serverüberwachung oder Observability-Plattform
zentrales Logging-System
Backend oder Datenbank
fachliche Modell- oder Engineänderung
automatische Browserabnahme ohne menschliches Review
Abgrenzung zu ARCH-2026-001¶
ARCH-2026-001 definiert den internen Analyse- und Renderzustand der Frontend-App.
ARCH-2026-006 betrachtet ausschließlich den technischen Zustand einer bereitgestellten Umgebung.
AnalysisState
Zustand einer Immobilienanalyse im Browser
EnvironmentState
Zustand eines ausgelieferten Immohai-Releases in einer Umgebung
Diese Zustände dürfen weder dasselbe Objekt noch dieselbe Statuslogik verwenden.
Abgrenzung zu ARCH-2026-002¶
ARCH-2026-002 definiert Reportdaten und reporttypspezifische ViewModels.
ARCH-2026-006 bewertet keine Reports und erzeugt keine fachlichen Reportinhalte. Es prüft nur, dass die erwartete App- und Dokumentationsversion ausgeliefert wird und die erforderliche Browserabnahme für diesen Release referenziert ist.
Abgrenzung zu ARCH-2026-003¶
ARCH-2026-003 definiert Proposal-, ADR- und historische Entscheidungsnachweise.
Deploymentstatuswerte sind davon getrennt:
Proposal-Status
new | under_review | accepted | rejected | deferred | integrated
ADR-Relevanz
current | partial | historical
Deploymentstatus
technisch definierter Zustand einer Umgebung
Ein DeploymentRecord ist keine ADR und keine fachliche Entscheidung.
Abgrenzung zu ARCH-2026-004¶
ARCH-2026-004 verantwortet:
fixierte Runtime-Baseline
kanonischen Contract Check
reproduzierbare Web- und Docs-Artefakte
Release-ID
Aktivierungs- und Rollbackmechanismus
ARCH-2026-006 übernimmt weder Build noch Aktivierungstechnik.
Wesentliche Grenze:
ARCH-2026-004 beantwortet:
Wie wird ein Release gebaut, identifiziert, aktiviert und rückrollbar gehalten?
ARCH-2026-006 beantwortet:
Welcher Release ist nach der Aktivierung tatsächlich in der Umgebung aktiv,
stimmt der beobachtete Stand mit dem erwarteten Stand überein und ist die
erforderliche Abnahme für genau diesen Release dokumentiert?
ARCH-2026-004 darf den DeploymentRecord technisch erzeugen oder anstoßen. Semantik, Vergleichsregeln und Produktionswahrheit gehören zu ARCH-2026-006.
Abgrenzung zu ARCH-2026-005¶
ARCH-2026-005 verifiziert den integrierten Repository-Commit vor Release und Deployment.
IntegrationVerificationRecord
Nachweis des geprüften Repository-Standes
DeploymentRecord
Nachweis eines konkreten Deploymentereignisses
EnvironmentState
aktuell beobachteter Zustand einer Umgebung
Ein erfolgreicher IntegrationVerificationRecord beweist nicht, dass dieser Stand produktiv läuft. Ein erfolgreicher DeploymentRecord beweist nicht rückwirkend, dass ein ungeprüfter Commit integriert werden durfte.
Umgebungen¶
Für den aktuellen privaten MVP genügt mindestens:
production
Optional später:
local
staging
production
Jede Umgebung besitzt eine eindeutige ID. Umgebungsspezifische Secrets oder Zugangsdaten dürfen nicht in Records, Repository oder öffentliche Manifeste gelangen.
Release-Bundle¶
App und Dokumentation gehören zu einem gemeinsamen Immohai-Release-Bundle:
release_id
gemeinsamer fachlich-technischer Releasebezug
web_artifact_identity
konkrete App-Ausgabe
docs_artifact_identity
konkrete Dokumentationsausgabe
App und Doku dürfen unterschiedliche Artefaktdigests besitzen, müssen aber dieselbe erwartete release_id und denselben git_commit ausweisen, sofern sie aus demselben Repository-Release stammen.
Öffentliches Release-Manifest¶
Jede ausgelieferte Komponente soll ein kleines technisches Manifest bereitstellen.
Empfohlene Mindestfelder:
release_manifest_schema_version
release_id
git_commit
component
artifact_identity
built_at
runtime_baseline_version
model_version
calculation_engine_version
schema_versions
Mögliche Komponenten:
web
docs
Konkrete Pfade bleiben offen, beispielsweise:
/assets/config/release-manifest.json
/release-manifest.json
Das Manifest enthält keine Secrets, Benutzerinformationen oder privaten Finanzdaten.
DeploymentRecord¶
Empfohlene Mindeststruktur:
deployment_record_schema_version
deployment_id
environment
release_id
git_commit
integration_verification_id
runtime_baseline_version
web_artifact_identity
docs_artifact_identity
previous_release_id optional
deployment_started_at
deployment_completed_at optional
technical_verified_at optional
accepted_at optional
status
expected_state
observed_state
verification_results
browser_acceptance_reference optional
rollback_of_deployment_id optional
failure_summary optional
Der Record ist technische Betriebsevidenz und kein fachlicher Datenvertrag.
EnvironmentState¶
Der aktuelle EnvironmentState ist eine kompakte Sicht auf den zuletzt beobachteten Stand:
environment
active_deployment_id
expected_release_id
observed_release_id
expected_git_commit
observed_web_git_commit
observed_docs_git_commit
web_artifact_identity
docs_artifact_identity
runtime_baseline_version
last_verified_at
technical_status
acceptance_status
drift_findings
Der EnvironmentState darf aus DeploymentRecord und aktueller Beobachtung abgeleitet werden. Er soll nicht als parallele manuell gepflegte Wahrheit entstehen.
Deploymentstatus¶
Empfohlene technische Statuswerte:
planned
DeploymentRecord erzeugt, Aktivierung noch nicht begonnen
deploying
Aktivierung läuft
deployed
Aktivierung technisch abgeschlossen, Verifikation noch offen
technical_verified
erwarteter und beobachteter technischer Stand stimmen überein
accepted
erforderliche interaktive Abnahme ist abgeschlossen
failed
Aktivierung oder Pflichtverifikation fehlgeschlagen
rolled_back
Deployment wurde durch einen anderen Release ersetzt oder zurückgenommen
Diese Statuswerte sind unabhängig von Proposal- und ADR-Status.
Technische Verifikation¶
Nach Aktivierung sind mindestens zu prüfen:
lokale App erreichbar
lokale Doku erreichbar
öffentliche App erreichbar
öffentliche Doku erreichbar
Web-Manifest lesbar
Docs-Manifest lesbar
beide Manifeste nennen erwartete Release-ID
beide Manifeste nennen erwarteten Git-Commit
Artefaktidentitäten entsprechen dem DeploymentRecord
Modell-, Engine- und Schemaversionen entsprechen dem Release
aktive Runtime-Baseline entspricht Erwartung
Nginx- und Cache-Verhalten bleiben korrekt
keine Pflichtkomponente fehlt
Ein Release darf nur technical_verified werden, wenn alle Pflichtvergleiche erfolgreich sind.
Drift-Erkennung¶
Drift liegt vor, wenn erwarteter und beobachteter Zustand voneinander abweichen.
Mindestens zu erkennen:
release_id_mismatch
web_commit_mismatch
docs_commit_mismatch
web_docs_release_mismatch
web_artifact_mismatch
docs_artifact_mismatch
runtime_baseline_mismatch
model_version_mismatch
engine_version_mismatch
schema_version_mismatch
endpoint_unreachable
manifest_missing
manifest_invalid
browser_acceptance_missing
manual_state_documentation_stale
Nicht jede Drift ist gleich kritisch.
Empfohlene Kategorien:
critical
erwarteter Release läuft nicht oder App und Doku widersprechen sich
warning
technische Ausgabe stimmt, aber Abnahme- oder Dokumentationsreferenz fehlt
informational
nicht produktionskritische Metadatenabweichung
Die genaue Schweregradmatrix bleibt eine offene Einzelentscheidung.
Wiederholungsprüfung¶
Der Produktionsstand soll bewusst erneut geprüft werden können:
nach jedem Deployment
nach jedem Rollback
manuell bei Verdacht auf Drift
vor einer wichtigen Abnahme oder Demonstration
optional später zeitgesteuert
Für den ersten privaten MVP ist kein dauerhaftes Monitoring-System erforderlich. Ein deterministischer manueller oder workflowbasierter Wiederholungslauf genügt.
Browserabnahme¶
Die interaktive Browserabnahme bleibt ein eigener bewusster Schritt.
Zielverknüpfung:
BrowserAcceptanceRecord
deployment_id
release_id
git_commit
Browser und Auflösung
Prüffälle
Ergebnis
Abweichungen
Prüfer und Datum
Der technische Status kann technical_verified sein, obwohl die Browserabnahme noch aussteht.
accepted ist erst zulässig, wenn die nach docs/operations/browser-acceptance.md erforderlichen Fälle für genau denselben Deployment- und Releasebezug abgeschlossen sind.
Eine rein automatisierte Headless-Browserprüfung ersetzt die interaktive Abnahme nicht.
Autoritative Produktionswahrheit¶
Die technische Produktionswahrheit soll sich zusammensetzen aus:
freigegebener Release nach ARCH-2026-004
+ erfolgreicher IntegrationVerificationRecord nach ARCH-2026-005
+ DeploymentRecord
+ beobachtete öffentliche Release-Manifeste
+ BrowserAcceptanceRecord, soweit erforderlich
README, current-status.md und Deploymentdokumentation dürfen diesen Stand erklären oder referenzieren, sollen ihn aber nicht unabhängig durch mehrfach kopierte Commitwerte neu definieren.
Vermeidung eines Commit-Zyklus¶
Der aktuelle Produktionsstand darf nicht zwingend in denselben Repository-Commit zurückgeschrieben werden, den er beschreibt. Sonst entsteht ein unauflösbarer Zyklus:
Commit A wird deployt
-> Produktionsstatus wird in Commit B dokumentiert
-> Commit B wäre anschließend der neueste Repository-Stand,
aber nicht der ursprünglich deployte Release
Empfohlene Richtung:
DeploymentRecord und EnvironmentState repository-extern oder als
Workflow-/Serverartefakt speichern
Repositorydokumentation referenziert das System und seine Regeln,
nicht zwingend jeden aktuellen Wert
Eine separate unveränderbare Deploymenthistorie auf dem Server oder als Workflow-Artefakt ist zulässig. Die konkrete Ablage bleibt offen.
Rollback¶
Ein Rollback ist ein neues nachvollziehbares Deploymentereignis:
fehlgeschlagenes oder zurückgenommenes Deployment markieren
-> vorherigen freigegebenen Release aktivieren
-> neuen DeploymentRecord mit rollback_of_deployment_id erzeugen
-> technische Verifikation wiederholen
-> Browserabnahme nach Risikobewertung wiederholen
Der vorherige Record wird nicht überschrieben.
Sicherheits- und Datenschutzgrenzen¶
Nicht in öffentliche Manifeste oder DeploymentRecords gehören:
Secrets
Tokens
Passwörter
private Schlüssel
interne Zugangsdaten
personenbezogene Finanzdaten
vollständige reale Objektadressen
unnötige Serverdetails
Zulässig sind technische IDs, öffentliche Domains, Modell- und Engineversionen sowie Artefaktidentitäten.
Auswirkungen auf Architektur, Roadmap und Spezifikation¶
Architektur:
Deploymentereignis und aktueller EnvironmentState werden explizite technische Konzepte.
Repository-, Release- und Produktionszustand bleiben getrennt, aber referenziert.
Roadmap:
Stabilisierung des produktiven Betriebs
keine neue Produktfunktion
sinnvoll nach oder gemeinsam mit ARCH-2026-004 und ARCH-2026-005
Spezifikation:
Deployment- und Browserabnahmedokumentation werden nach Annahme ergänzt.
Keine fachliche Modellspezifikation wird geändert.
Auswirkungen auf Formeln, KPIs und Datenverträge¶
keine Änderung
keine Modellversion
keine Engineversion
keine Änderung fachlicher Schemas
DeploymentRecord, EnvironmentState und ReleaseManifest erhalten eigene technische Versionen außerhalb der fachlichen Schemafamilie.
Auswirkungen auf UI, Reporting und Speicherung¶
keine Änderung der Immobilienanalyse-UI
keine Änderung fachlicher Reports
keine Änderung von PropertyInput, AnalysisResult oder PropertyRecord
keine neue Browserpersistenz
Optional kann eine technische Versionsanzeige oder ein Diagnoseendpunkt später ergänzt werden. Dies ist keine fachliche Produktfunktion.
Auswirkungen auf Tests und Referenzfälle¶
Erforderlich:
DeploymentRecord referenziert gültigen Release und Integrationsnachweis
Web- und Docs-Manifeste sind valide
App und Doku nennen dieselbe Release-ID
App und Doku nennen denselben erwarteten Git-Commit
Artefaktidentitäten entsprechen dem aktivierten Release
falscher Commit wird als Drift erkannt
nur ein aktualisierter Service wird als Drift erkannt
fehlendes Manifest blockiert technical_verified
öffentliche und lokale Endpunkte werden getrennt geprüft
BrowserAcceptanceRecord kann eindeutig zugeordnet werden
Rollback erzeugt neuen Record und erhält Historie
manuelle Statusdokumentation wird nicht als technische Wahrheit verwendet
keine Secrets werden serialisiert
Referenzfälle:
normaler erfolgreicher Produktionsrelease
App aktuell, Doku veraltet
Doku aktuell, App veraltet
beide erreichbar, aber falsche Release-ID
Modell und Engine gleich, Git-Commit unterschiedlich
Rollback auf vorherigen Release
technisch verifiziert, Browserabnahme ausstehend
Browserabnahme für falsche Deployment-ID
manuelle Änderung eines aktiven Artefakts
Legacy- und Migrationsfolgen¶
keine Datenmigration
bestehende PropertyRecords bleiben unverändert
ältere Deployments besitzen rückwirkend nicht zwingend vollständige Records
der aktuelle produktive Stand wird bei Einführung als initiale Baseline erfasst
manuelle Statusangaben bleiben historisch erhalten, verlieren aber ihre Rolle als technische Wahrheit
bestehende Ports und öffentlichen URLs bleiben unverändert
Für den initialen DeploymentRecord muss klar gekennzeichnet werden, welche Informationen beobachtet und welche nur aus vorhandener Dokumentation übernommen wurden.
Risiken¶
zu komplexes Betriebsmodell für eine private App
DeploymentRecord und EnvironmentState werden doppelt gepflegt
öffentliche Manifeste geben unnötige technische Details preis
Records gehen durch begrenzte Workflow-Artefakt-Retention verloren
Drift-Check meldet harmlose Unterschiede als kritisch
Browserabnahme bleibt trotz Record-Verknüpfung manuell veraltet
Rollbackhistorie wird unvollständig
ARCH-2026-004 und ARCH-2026-006 duplizieren Aktivierungslogik
Gegenmaßnahmen:
kleines Record-Schema
EnvironmentState aus Records und Beobachtung ableiten
keine Secrets oder internen Pfade veröffentlichen
klare Eigentümerschaft gegenüber ARCH-2026-004
zunächst manuelle Wiederholungsprüfung statt Monitoringplattform
Retention und serverseitige Historie bewusst festlegen
Sicherungs- und Rückfallstrategie¶
Vor Integration:
aktuellen produktiven Commit dokumentieren
aktuelle Container-IDs, Image-IDs und Digests sichern
aktuelle Compose-Konfiguration sichern
lokale und öffentliche App-/Docs-Antworten prüfen
aktuelle Modell- und Engine-Manifeste speichern
Browserabnahmestand sichern
vorherigen funktionierenden Release nach ARCH-2026-004 verfügbar halten
Rollback der ARCH-2026-006-Mechanik:
zusätzliche Record- und Drift-Prüfung deaktivieren
bestehende Endpoint- und Manifestprüfung weiterverwenden
keine fachlichen Daten betroffen
bereits erzeugte Records nicht löschen
Empfohlene Umsetzungsstruktur nach vollständiger Annahme¶
Phase 0
ARCH-2026-004 Artefakt- und Release-ID festlegen
ARCH-2026-005 IntegrationVerificationRecord festlegen
Phase 1
ReleaseManifest, DeploymentRecord und EnvironmentState spezifizieren
aktuelle Produktion als initiale Baseline erfassen
Phase 2
Web- und Docs-Release-Manifeste ausliefern
Post-Deployment-Vergleich implementieren
Phase 3
DeploymentRecord und technische Statusübergänge einführen
Rollback als eigenes Ereignis dokumentieren
Phase 4
Browserabnahme eindeutig mit Deployment-ID verbinden
manuelle Produktionsangaben in Dokumenten reduzieren
Phase 5
bewussten Drift-Wiederholungslauf und Retention etablieren
Weitere offene Einzelentscheidungen¶
2. Record-Ablage
GitHub-Artefakt, serverseitige Historie oder Kombination?
3. Manifest-Pfade
Wo werden Web- und Docs-Release-Manifeste veröffentlicht?
4. Statusmodell
Welche Deploymentstatuswerte sind zwingend?
5. Drift-Schweregrade
Welche Abweichungen sind critical, warning oder informational?
6. BrowserAcceptanceRecord
eigene Datei, Recordfeld oder referenziertes Protokoll?
7. Retention
wie viele Deployment- und Rollbackrecords bleiben erhalten?
8. Wiederholungsrhythmus
nur nach Deployment und manuell oder zusätzlich zeitgesteuert?
9. Dokumentationsdarstellung
welche manuellen produktiven Commitangaben werden entfernt oder nur referenziert?
10. Initiale Baseline
wie wird der bereits laufende produktive Stand ohne vollständige historische Evidenz erfasst?
Entscheidungsmehrwert¶
eindeutig nachweisbarer produktiver Release
klare Trennung von Repository-, Release- und Environmentzustand
App und Dokumentation werden als gemeinsames Release-Bundle geprüft
Drift wird sichtbar statt durch manuelle Dokumentation verdeckt
Browserabnahme ist exakt einem Deployment zugeordnet
Rollback bleibt historisch nachvollziehbar
keine mehrfach gepflegte technische Produktionswahrheit
bessere Fehleranalyse bei abweichenden öffentlichen Ständen
Prüfergebnis¶
Die aktuelle Architektur besitzt bereits einzelne Bausteine:
Modell- und Engineversionen
Integrationscommit in Dokumenten
lokale und öffentliche Endpointprüfungen
Browserabnahmeprotokoll
Diese Bausteine ergeben jedoch noch keinen autoritativen, maschinenlesbaren und wiederholbar überprüfbaren Produktionsstand.
Nach Abgrenzung zu ARCH-2026-004 und ARCH-2026-005 bleibt ARCH-2026-006 als eigenständige Architekturverantwortung erforderlich:
nicht Release bauen
nicht Repository integrieren
sondern laufenden Environmentzustand nachweisen und Drift erkennen
Entscheidung¶
Teilentscheidung 1 am 2026-07-07 bestätigt:
Variante B – nachweisbarer Deployment- und Produktionsstand mit
DeploymentRecord, EnvironmentState, öffentlichen Release-Manifeste,
Browserabnahme-Referenz und Drift-Erkennung.
App und Dokumentation müssen denselben erwarteten Release-Bundle-Stand
nachweisen. Manuell kopierte Commit- oder Versionsangaben sind nicht die
autoritative technische Produktionswahrheit.
Gesamtentscheidung: offen
Proposal-Status: under_review
Zieldokumente bei späterer Annahme¶
technische Definition ReleaseManifest
technische Definition DeploymentRecord
technische Definition EnvironmentState
scripts/deploy-and-verify.sh
neues Deployment-State- oder Drift-Prüfskript
docker-compose.yml
Release-Builddefinitionen aus ARCH-2026-004
frontend-Auslieferungsartefakt
statisches Docs-Auslieferungsartefakt
docs/operations/deployment.md
docs/operations/browser-acceptance.md
docs/specification/architecture/overview.md
docs/specification/architecture/project-structure.md
docs/specification/data-quality-and-validation/validation.md
docs/roadmap/current-status.md
README.md
mkdocs.yml
Integrationscommit¶
offen