DMS-Modul-Grundgerüst als Unterordner im bestehenden nexarch-Monorepo (dms/), eigenes Go-Modul (gitea.perlbach24.de/scripte/nexarch/dms), getrennt von Core. App/Worker-Trennung nach paperless-ngx-Vorbild (lange Aufgaben blockieren nie eine Anfrage): cmd/app (HTTP, /healthz), cmd/worker (Hintergrund-Dienst-Stub), internal/shared. golangci-lint (govet/staticcheck/errcheck/unused/ineffassign/gofmt/ goimports) + Makefile-Targets (install/run/lint/fmt/test). Auf 192.168.1.131 verifiziert: build/fmt/lint/test clean, absichtlich eingefuegter Lint-Verstoss bricht den Build wie gefordert ab (Exit 2), make run startet App+Worker und /healthz antwortet innerhalb 2s. Siehe dms/docs/FDN-01-PRUEFPROTOKOLL.md fuer alle Pruefungsergebnisse. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HhgFcLS8tYMhDJpP74C6AQ
2.2 KiB
2.2 KiB
FDN-01 – Prüfprotokoll: Repository & Projektgerüst
Welle 1, keine Vorbedingungen. Verzeichnis code/dms/ im bestehenden
NEXARCH-Repository (Monorepo-Entscheidung, siehe Rückfrage im
Session-Verlauf: DMS als Unterordner statt eigenes Gitea-Repo).
Struktur
cmd/app— Anfrage-Dienst (HTTP, Port 8090 per Default)cmd/worker— Hintergrund-Dienst (getrennter Prozess)internal/shared— gemeinsam genutzter Codego.mod— eigenes Modulgitea.perlbach24.de/scripte/nexarch/dms, unabhängig vom Core-Modul (kein gemeinsamesgo.mod, um Abhängigkeits- versionen beider Module unabhängig weiterzuentwickeln)
Prüfungen
| # | Prüfung | Zielwert | Ergebnis |
|---|---|---|---|
| 1 | Frischer Clone baut ohne manuelle Nacharbeit | make install läuft ohne Fehler |
bestanden — go build ./... clean auf 192.168.1.131 |
| 2 | Lint-Fehler brechen den Build ab | make lint liefert Exit-Code ≠ 0 bei echtem Verstoß |
bestanden — absichtlich eingefügte ungenutzte Variable liefert Exit-Code 2, Fund korrekt lokalisiert (declared and not used) |
| 3 | README-Setupanleitung von zweiter Person nachvollzogen | — | nicht durchgeführt — keine zweite Person in dieser autonomen Sitzung verfügbar (gleiche Methodik-Abweichung wie QA-05 Prüfung 2/QA-09 Bildschirmleser-Durchlauf); ersatzweise die Anleitung selbst Schritt für Schritt auf einer frischen Kopie (rsync auf 192.168.1.131) nachvollzogen: make install → make run → curl /healthz → {"status":"ok",...}. |
Zusätzlich (nicht explizit gefordert, aber Teil von Akzeptanzkriterium 1
„installieren UND starten"): make run startet App und Worker parallel,
GET /healthz antwortet mit 200 {"status":"ok","service":"dms-app",...}
innerhalb von 2 Sekunden nach Start.
Build/Test-Ergebnis (192.168.1.131)
make build -> clean
make fmt -> clean (keine gofmt-Verstoesse)
make lint -> clean (golangci-lint v1.62.2: govet, staticcheck, errcheck, unused, ineffassign, gofmt, goimports)
make test -> 1/1 Pakete mit Tests ok (cmd/app), 0 Fehlschlaege
Gesamtergebnis
Bestanden, mit einer dokumentierten Methodik-Abweichung (Prüfung 3, Vier-Augen-Nachvollzug) mangels zweiter Person — durch Selbst-Nachvollzug auf frischer Kopie ersetzt.