diff --git a/DEVLOG.md b/DEVLOG.md index d513a330..f80bb1dd 100644 --- a/DEVLOG.md +++ b/DEVLOG.md @@ -2640,3 +2640,478 @@ Keine Commits in dieser Session. Keine Änderungen ermittelbar. --- +## 2026-09-17 16:00 – 16:03 (3m) +**Beschreibung:** Claude Code Session +**Projekt:** nexarch + +### Commits +- be47bcf feat: NEXARCH Projekt-Baseline committen (Boards, Tickets, Konzeptdokumente) + +### Geänderte Dateien +- .claude/agents/docker-expert.md | 57 ++++ +- .claude/agents/github-actions-expert.md | 57 ++++ +- .claude/agents/go-expert.md | 57 ++++ +- .claude/agents/grafana-expert.md | 57 ++++ +- .claude/agents/jwt-expert.md | 57 ++++ +- .claude/agents/nextjs-expert.md | 58 ++++ +- .claude/agents/oauth-oidc-expert.md | 53 +++ +- .claude/agents/openapi-expert.md | 57 ++++ +- .claude/agents/owasp-top10-expert.md | 54 +++ +- .claude/agents/postgres-expert.md | 58 ++++ +- .claude/agents/prometheus-expert.md | 57 ++++ +- .claude/agents/react-expert.md | 57 ++++ +- .claude/agents/rest-expert.md | 57 ++++ +- .claude/agents/sql-expert.md | 57 ++++ +- .claude/agents/tailwind-expert.md | 53 +++ +- .claude/agents/typescript-expert.md | 57 ++++ +- .claude/agents/websocket-expert.md | 54 +++ +- .gitignore | 2 + +- CLAUDE.md | 10 + +- DEVLOG.md | 2642 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +- LIZENZMODELL.md | 75 ++++ +- MIGRATIONSKONZEPT.md | 104 ++++++ +- PRODUKTARCHITEKTUR.md | 111 ++++++ +- PROXMOX-DEPLOYMENT.md | 102 ++++++ +- ROADMAP.md | 83 +++++ +- SAAS-BETRIEBSMODELL.md | 60 ++++ +- SICHERHEITSKONZEPT.md | 10 +- +- SKALIERUNGSKONZEPT.md | 154 +++++++++ +- STORAGE-KONZEPT.md | 165 +++++++++ +- UI-UX-KONZEPT.md | 54 +++ +- USP.md | 48 +++ +- VERGLEICHSPROJEKTE.md | 77 +++++ +- _shared/kanban.css | 40 +++ +- _shared/kanban.js | 152 +++++++++ +- ai-kanban/DEVLOG.md | 46 +++ +- ai-kanban/tickets/CLS-01.md | 65 ++++ +- ai-kanban/tickets/CLS-02.md | 60 ++++ +- ai-kanban/tickets/CLS-03.md | 60 ++++ +- ai-kanban/tickets/CLS-04.md | 60 ++++ +- ai-kanban/tickets/CLS-05.md | 61 ++++ +- ai-kanban/tickets/ENG-01.md | 65 ++++ +- ai-kanban/tickets/ENG-02.md | 64 ++++ +- ai-kanban/tickets/ENG-03.md | 62 ++++ +- ai-kanban/tickets/ENG-04.md | 61 ++++ +- ai-kanban/tickets/ENG-05.md | 67 ++++ +- ai-kanban/tickets/ENG-06.md | 62 ++++ +- ai-kanban/tickets/EXT-01.md | 63 ++++ +- ai-kanban/tickets/EXT-02.md | 62 ++++ +- ai-kanban/tickets/EXT-03.md | 63 ++++ +- ai-kanban/tickets/EXT-04.md | 63 ++++ +- ai-kanban/tickets/EXT-05.md | 62 ++++ +- ai-kanban/tickets/GOV-01.md | 63 ++++ +- ai-kanban/tickets/GOV-02.md | 63 ++++ +- ai-kanban/tickets/GOV-03.md | 62 ++++ +- ai-kanban/tickets/GOV-04.md | 63 ++++ +- ai-kanban/tickets/GOV-05.md | 62 ++++ +- ai-kanban/tickets/GOV-06.md | 66 ++++ +- ai-kanban/tickets/QA-01.md | 60 ++++ +- ai-kanban/tickets/QA-02.md | 65 ++++ +- ai-kanban/tickets/QA-03.md | 65 ++++ +- ai-kanban/tickets/QA-04.md | 62 ++++ +- ai-kanban/tickets/QA-05.md | 65 ++++ +- ai-kanban/tickets/QA-06.md | 70 ++++ +- ai-kanban/tickets/QA-07.md | 65 ++++ +- ai-kanban/tickets/QA-08.md | 62 ++++ +- ai-kanban/tickets/QA-09.md | 60 ++++ +- ai-kanban/tickets/SEM-01.md | 62 ++++ +- ai-kanban/tickets/SEM-02.md | 62 ++++ +- ai-kanban/tickets/SEM-03.md | 63 ++++ +- ai-kanban/tickets/SEM-04.md | 63 ++++ +- ai-kanban/tickets/SEM-05.md | 61 ++++ +- ai-kanban/tickets/SEM-06.md | 64 ++++ +- ai-kanban/tickets/SUM-01.md | 61 ++++ +- ai-kanban/tickets/SUM-02.md | 60 ++++ +- ai-kanban/tickets/SUM-03.md | 61 ++++ +- ai-kanban/tickets/SUM-04.md | 59 ++++ +- ai-kanban/tickets/WFS-01.md | 60 ++++ +- ai-kanban/tickets/WFS-02.md | 60 ++++ +- ai-kanban/tickets/WFS-03.md | 59 ++++ +- archive-kanban/tickets/ANA-01.md | 61 ++++ +- archive-kanban/tickets/ANA-02.md | 60 ++++ +- archive-kanban/tickets/ANA-03.md | 60 ++++ +- archive-kanban/tickets/BAK-01.md | 62 ++++ +- archive-kanban/tickets/BAK-02.md | 62 ++++ +- archive-kanban/tickets/BAK-03.md | 68 ++++ +- archive-kanban/tickets/BAK-04.md | 62 ++++ +- archive-kanban/tickets/BAK-05.md | 63 ++++ +- archive-kanban/tickets/BAK-06.md | 62 ++++ +- archive-kanban/tickets/BAK-07.md | 65 ++++ +- archive-kanban/tickets/CMP-01.md | 62 ++++ +- archive-kanban/tickets/CMP-02.md | 62 ++++ +- archive-kanban/tickets/CMP-03.md | 62 ++++ +- archive-kanban/tickets/CMP-04.md | 62 ++++ +- archive-kanban/tickets/CMP-05.md | 63 ++++ +- archive-kanban/tickets/CMP-06.md | 66 ++++ +- archive-kanban/tickets/CMP-07.md | 70 ++++ +- archive-kanban/tickets/QA-01.md | 61 ++++ +- archive-kanban/tickets/QA-02.md | 64 ++++ +- archive-kanban/tickets/QA-03.md | 66 ++++ +- archive-kanban/tickets/QA-04.md | 64 ++++ +- archive-kanban/tickets/QA-05.md | 68 ++++ +- archive-kanban/tickets/QA-06.md | 60 ++++ +- archive-kanban/tickets/QA-07.md | 60 ++++ +- archive-kanban/tickets/RET-01.md | 65 ++++ +- archive-kanban/tickets/RET-02.md | 64 ++++ +- archive-kanban/tickets/RET-03.md | 63 ++++ +- archive-kanban/tickets/RET-04.md | 62 ++++ +- archive-kanban/tickets/RET-05.md | 63 ++++ +- archive-kanban/tickets/RET-06.md | 62 ++++ +- archive-kanban/tickets/RET-07.md | 64 ++++ +- connect-kanban/DEVLOG.md | 13 + +- connect-kanban/tickets/API-01.md | 64 ++++ +- connect-kanban/tickets/API-02.md | 63 ++++ +- connect-kanban/tickets/API-03.md | 63 ++++ +- connect-kanban/tickets/DAT-01.md | 65 ++++ +- connect-kanban/tickets/DAT-02.md | 62 ++++ +- connect-kanban/tickets/DAT-03.md | 64 ++++ +- connect-kanban/tickets/DMS2-01.md | 62 ++++ +- connect-kanban/tickets/DMS2-02.md | 65 ++++ +- connect-kanban/tickets/DMS2-03.md | 62 ++++ +- connect-kanban/tickets/ENG-01.md | 69 ++++ +- connect-kanban/tickets/ENG-02.md | 66 ++++ +- connect-kanban/tickets/ENG-03.md | 64 ++++ +- connect-kanban/tickets/ENG-04.md | 63 ++++ +- connect-kanban/tickets/ENG-05.md | 63 ++++ +- connect-kanban/tickets/ENG-06.md | 64 ++++ +- connect-kanban/tickets/ERP-01.md | 63 ++++ +- connect-kanban/tickets/ERP-02.md | 62 ++++ +- connect-kanban/tickets/ERP-03.md | 63 ++++ +- connect-kanban/tickets/ERP-04.md | 62 ++++ +- connect-kanban/tickets/M365-01.md | 63 ++++ +- connect-kanban/tickets/M365-02.md | 62 ++++ +- connect-kanban/tickets/M365-03.md | 62 ++++ +- connect-kanban/tickets/QA-01.md | 63 ++++ +- connect-kanban/tickets/QA-02.md | 66 ++++ +- connect-kanban/tickets/QA-03.md | 71 ++++ +- connect-kanban/tickets/QA-04.md | 62 ++++ +- connect-kanban/tickets/QA-05.md | 67 ++++ +- connect-kanban/tickets/QA-06.md | 61 ++++ +- connect-kanban/tickets/QA-07.md | 60 ++++ +- connect-kanban/tickets/QA-08.md | 61 ++++ +- core-kanban/DEVLOG.md | 310 +++++++++++++++++ +- core-kanban/README.md | 2 +- +- core-kanban/board.csv | 9 +- +- core-kanban/board.json | 45 ++- +- core-kanban/kanban.html | 2 +- +- core-kanban/tickets/API-01.md | 64 ++++ +- core-kanban/tickets/API-02.md | 64 ++++ +- core-kanban/tickets/API-03.md | 66 ++++ +- core-kanban/tickets/API-04.md | 62 ++++ +- core-kanban/tickets/API-05.md | 67 ++++ +- core-kanban/tickets/API-06.md | 67 ++++ +- core-kanban/tickets/API-07.md | 63 ++++ +- core-kanban/tickets/API-08.md | 62 ++++ +- core-kanban/tickets/API-09.md | 63 ++++ +- core-kanban/tickets/API-10.md | 69 ++++ +- core-kanban/tickets/API-11.md | 59 ++++ +- core-kanban/tickets/AUD-01.md | 63 ++++ +- core-kanban/tickets/AUD-02.md | 66 ++++ +- core-kanban/tickets/AUD-03.md | 62 ++++ +- core-kanban/tickets/AUD-04.md | 62 ++++ +- core-kanban/tickets/AUD-05.md | 66 ++++ +- core-kanban/tickets/AUD-06.md | 58 ++++ +- core-kanban/tickets/CFG-01.md | 62 ++++ +- core-kanban/tickets/CFG-02.md | 62 ++++ +- core-kanban/tickets/CFG-03.md | 62 ++++ +- core-kanban/tickets/CFG-04.md | 62 ++++ +- core-kanban/tickets/DEVLOG.md | 13 + +- core-kanban/tickets/IAM-01.md | 67 ++++ +- core-kanban/tickets/IAM-02.md | 76 +++++ +- core-kanban/tickets/IAM-03.md | 62 ++++ +- core-kanban/tickets/IAM-04.md | 62 ++++ +- core-kanban/tickets/IAM-05.md | 66 ++++ +- core-kanban/tickets/IAM-06.md | 66 ++++ +- core-kanban/tickets/IAM-07.md | 66 ++++ +- core-kanban/tickets/IAM-08.md | 64 ++++ +- core-kanban/tickets/IAM-09.md | 62 ++++ +- core-kanban/tickets/IAM-10.md | 63 ++++ +- core-kanban/tickets/IAM-11.md | 66 ++++ +- core-kanban/tickets/IAM-12.md | 59 ++++ +- core-kanban/tickets/IAM-13.md | 64 ++++ +- core-kanban/tickets/IAM-14.md | 59 ++++ +- core-kanban/tickets/IAM-15.md | 49 +++ +- core-kanban/tickets/IAM-16.md | 59 ++++ +- core-kanban/tickets/IAM-20.md | 59 ++++ +- core-kanban/tickets/LIC-01.md | 63 ++++ +- core-kanban/tickets/LIC-02.md | 66 ++++ +- core-kanban/tickets/LIC-03.md | 62 ++++ +- core-kanban/tickets/LIC-04.md | 64 ++++ +- core-kanban/tickets/LIC-05.md | 68 ++++ +- core-kanban/tickets/OPS-01.md | 63 ++++ +- core-kanban/tickets/OPS-02.md | 62 ++++ +- core-kanban/tickets/OPS-03.md | 62 ++++ +- core-kanban/tickets/OPS-04.md | 63 ++++ +- core-kanban/tickets/OPS-05.md | 65 ++++ +- core-kanban/tickets/OPS-06.md | 52 +++ +- core-kanban/tickets/QA-01.md | 65 ++++ +- core-kanban/tickets/QA-02.md | 72 ++++ +- core-kanban/tickets/QA-03.md | 63 ++++ +- core-kanban/tickets/QA-04.md | 72 ++++ +- core-kanban/tickets/QA-05.md | 79 +++++ +- core-kanban/tickets/QA-06.md | 64 ++++ +- core-kanban/tickets/QA-07.md | 65 ++++ +- core-kanban/tickets/QA-08.md | 61 ++++ +- core-kanban/tickets/QA-09.md | 64 ++++ +- core-kanban/tickets/RBAC-01.md | 65 ++++ +- core-kanban/tickets/RBAC-02.md | 67 ++++ +- core-kanban/tickets/RBAC-03.md | 62 ++++ +- core-kanban/tickets/RBAC-04.md | 63 ++++ +- core-kanban/tickets/RBAC-05.md | 64 ++++ +- core-kanban/tickets/RBAC-06.md | 59 ++++ +- core-kanban/tickets/SHL-01.md | 70 ++++ +- core-kanban/tickets/TEN-01.md | 74 ++++ +- core-kanban/tickets/TEN-02.md | 63 ++++ +- core-kanban/tickets/TEN-03.md | 62 ++++ +- core-kanban/tickets/TEN-04.md | 62 ++++ +- core-kanban/tickets/TEN-05.md | 63 ++++ +- core-kanban/tickets/TEN-06.md | 66 ++++ +- core-kanban/tickets/TEN-07.md | 65 ++++ +- core-kanban/tickets/TEN-08.md | 59 ++++ +- datenmodell-altsysteme.md | 184 ++++++++++ +- dms-kanban/DEVLOG.md | 420 +++++++++++++++++++++++ +- dms-kanban/README.md | 2 +- +- dms-kanban/board.csv | 7 +- +- dms-kanban/board.json | 41 ++- +- dms-kanban/kanban.html | 2 +- +- dms-kanban/known-issues-archivdms.md | 25 ++ +- dms-kanban/known-issues-archivmail.md | 17 + +- dms-kanban/reuse-mapping.md | 158 +++++++++ +- dms-kanban/tickets/DEVLOG.md | 13 + +- dms-kanban/tickets/DOC-01.md | 79 +++++ +- dms-kanban/tickets/DOC-02.md | 65 ++++ +- dms-kanban/tickets/DOC-03.md | 63 ++++ +- dms-kanban/tickets/DOC-04.md | 68 ++++ +- dms-kanban/tickets/DOC-05.md | 69 ++++ +- dms-kanban/tickets/DOC-06.md | 67 ++++ +- dms-kanban/tickets/DOC-07.md | 62 ++++ +- dms-kanban/tickets/DOC-08.md | 63 ++++ +- dms-kanban/tickets/DOC-09.md | 63 ++++ +- dms-kanban/tickets/DOC-10.md | 63 ++++ +- dms-kanban/tickets/DOC-11.md | 62 ++++ +- dms-kanban/tickets/DOC-12.md | 63 ++++ +- dms-kanban/tickets/DOC-13.md | 65 ++++ +- dms-kanban/tickets/DOC-14.md | 65 ++++ +- dms-kanban/tickets/DOC-15.md | 63 ++++ +- dms-kanban/tickets/DOC-18.md | 58 ++++ +- dms-kanban/tickets/FDN-01.md | 65 ++++ +- dms-kanban/tickets/FDN-02.md | 75 ++++ +- dms-kanban/tickets/FDN-03.md | 68 ++++ +- dms-kanban/tickets/FDN-04.md | 76 +++++ +- dms-kanban/tickets/FDN-07.md | 72 ++++ +- dms-kanban/tickets/FDN-08.md | 66 ++++ +- dms-kanban/tickets/FDN-09.md | 70 ++++ +- dms-kanban/tickets/INT-01.md | 66 ++++ +- dms-kanban/tickets/INT-03.md | 63 ++++ +- dms-kanban/tickets/INT-04.md | 63 ++++ +- dms-kanban/tickets/INT-06.md | 63 ++++ +- dms-kanban/tickets/INT-08.md | 66 ++++ +- dms-kanban/tickets/INT-09.md | 63 ++++ +- dms-kanban/tickets/INT-10.md | 63 ++++ +- dms-kanban/tickets/INT-11.md | 63 ++++ +- dms-kanban/tickets/INT-12.md | 62 ++++ +- dms-kanban/tickets/INT-13.md | 62 ++++ +- dms-kanban/tickets/MET-01.md | 67 ++++ +- dms-kanban/tickets/MET-02.md | 64 ++++ +- dms-kanban/tickets/MET-03.md | 64 ++++ +- dms-kanban/tickets/MET-04.md | 63 ++++ +- dms-kanban/tickets/MET-05.md | 65 ++++ +- dms-kanban/tickets/QA-01.md | 70 ++++ +- dms-kanban/tickets/QA-02.md | 68 ++++ +- dms-kanban/tickets/QA-03.md | 69 ++++ +- dms-kanban/tickets/QA-04.md | 65 ++++ +- dms-kanban/tickets/QA-05.md | 64 ++++ +- dms-kanban/tickets/QA-06.md | 70 ++++ +- dms-kanban/tickets/QA-07.md | 62 ++++ +- dms-kanban/tickets/QA-08.md | 64 ++++ +- dms-kanban/tickets/QA-09.md | 69 ++++ +- dms-kanban/tickets/QA-10.md | 63 ++++ +- dms-kanban/tickets/QA-11.md | 61 ++++ +- dms-kanban/tickets/QA-12.md | 70 ++++ +- dms-kanban/tickets/SRC-01.md | 66 ++++ +- dms-kanban/tickets/SRC-02.md | 69 ++++ +- dms-kanban/tickets/SRC-03.md | 68 ++++ +- dms-kanban/tickets/SRC-04.md | 64 ++++ +- dms-kanban/tickets/SRC-05.md | 72 ++++ +- dms-kanban/tickets/SRC-06.md | 62 ++++ +- dms-kanban/tickets/SRC-07.md | 62 ++++ +- dms-kanban/tickets/SRC-08.md | 64 ++++ +- dms-kanban/tickets/SRC-09.md | 63 ++++ +- dms-kanban/tickets/SRC-10.md | 63 ++++ +- dms-kanban/tickets/SRC-11.md | 53 +++ +- dms-kanban/tickets/UX-01.md | 61 ++++ +- dms-kanban/tickets/UX-02.md | 61 ++++ +- dms-kanban/tickets/UX-03.md | 61 ++++ +- dms-kanban/tickets/UX-04.md | 61 ++++ +- dms-kanban/tickets/UX-05.md | 62 ++++ +- dms-kanban/tickets/VER-01.md | 65 ++++ +- dms-kanban/tickets/VER-02.md | 63 ++++ +- dms-kanban/tickets/VER-03.md | 62 ++++ +- dms-kanban/tickets/VER-04.md | 63 ++++ +- dms-kanban/tickets/VER-05.md | 63 ++++ +- dms-kanban/tickets/VER-06.md | 63 ++++ +- dms-kanban/tickets/VER-07.md | 63 ++++ +- mail-kanban/DEVLOG.md | 90 +++++ +- mail-kanban/tickets/ARC-01.md | 76 +++++ +- mail-kanban/tickets/ARC-02.md | 67 ++++ +- mail-kanban/tickets/ARC-03.md | 63 ++++ +- mail-kanban/tickets/ARC-04.md | 59 ++++ +- mail-kanban/tickets/ARC-05.md | 62 ++++ +- mail-kanban/tickets/ARC-06.md | 61 ++++ +- mail-kanban/tickets/ARC-07.md | 60 ++++ +- mail-kanban/tickets/ARC-08.md | 60 ++++ +- mail-kanban/tickets/ARC-09.md | 63 ++++ +- mail-kanban/tickets/ARC-10.md | 69 ++++ +- mail-kanban/tickets/IMP-01.md | 69 ++++ +- mail-kanban/tickets/IMP-02.md | 62 ++++ +- mail-kanban/tickets/IMP-03.md | 62 ++++ +- mail-kanban/tickets/IMP-04.md | 64 ++++ +- mail-kanban/tickets/IMP-05.md | 61 ++++ +- mail-kanban/tickets/IMP-06.md | 61 ++++ +- mail-kanban/tickets/IMP-07.md | 61 ++++ +- mail-kanban/tickets/IMP-08.md | 63 ++++ +- mail-kanban/tickets/IMP-09.md | 64 ++++ +- mail-kanban/tickets/ING-01.md | 68 ++++ +- mail-kanban/tickets/ING-02.md | 65 ++++ +- mail-kanban/tickets/ING-03.md | 69 ++++ +- mail-kanban/tickets/ING-04.md | 66 ++++ +- mail-kanban/tickets/ING-05.md | 62 ++++ +- mail-kanban/tickets/ING-06.md | 61 ++++ +- mail-kanban/tickets/ING-07.md | 61 ++++ +- mail-kanban/tickets/ING-08.md | 61 ++++ +- mail-kanban/tickets/ING-09.md | 61 ++++ +- mail-kanban/tickets/ING-10.md | 64 ++++ +- mail-kanban/tickets/INT-01.md | 64 ++++ +- mail-kanban/tickets/INT-05.md | 61 ++++ +- mail-kanban/tickets/INT-06.md | 59 ++++ +- mail-kanban/tickets/INT-07.md | 59 ++++ +- mail-kanban/tickets/INT-08.md | 63 ++++ +- mail-kanban/tickets/INT-09.md | 62 ++++ +- mail-kanban/tickets/INT-10.md | 62 ++++ +- mail-kanban/tickets/QA-01.md | 64 ++++ +- mail-kanban/tickets/QA-02.md | 67 ++++ +- mail-kanban/tickets/QA-03.md | 65 ++++ +- mail-kanban/tickets/QA-04.md | 62 ++++ +- mail-kanban/tickets/QA-05.md | 66 ++++ +- mail-kanban/tickets/QA-06.md | 65 ++++ +- mail-kanban/tickets/QA-07.md | 60 ++++ +- mail-kanban/tickets/QA-08.md | 62 ++++ +- mail-kanban/tickets/QA-09.md | 62 ++++ +- mail-kanban/tickets/SRC-01.md | 65 ++++ +- mail-kanban/tickets/SRC-02.md | 62 ++++ +- mail-kanban/tickets/SRC-03.md | 62 ++++ +- mail-kanban/tickets/SRC-04.md | 60 ++++ +- mail-kanban/tickets/SRC-05.md | 59 ++++ +- mail-kanban/tickets/SRC-06.md | 60 ++++ +- mail-kanban/tickets/SRC-07.md | 62 ++++ +- mail-kanban/tickets/SRC-08.md | 59 ++++ +- mail-kanban/tickets/SRC-09.md | 59 ++++ +- mail-kanban/tickets/SRC-10.md | 59 ++++ +- mail-kanban/tickets/SRC-11.md | 53 +++ +- mail-kanban/tickets/UX-01.md | 66 ++++ +- mail-kanban/tickets/UX-02.md | 62 ++++ +- mail-kanban/tickets/UX-03.md | 64 ++++ +- mail-kanban/tickets/UX-04.md | 61 ++++ +- mail-kanban/tickets/UX-05.md | 61 ++++ +- mail-kanban/tickets/UX-06.md | 61 ++++ +- mail-kanban/tickets/UX-07.md | 61 ++++ +- mail-kanban/tickets/UX-08.md | 61 ++++ +- mail-kanban/tickets/UX-09.md | 65 ++++ +- migration-kanban/README.md | 101 ++++++ +- migration-kanban/board.csv | 131 +++++++ +- migration-kanban/board.json | 1383 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +- migration-kanban/kanban.html | 50 +++ +- migration-kanban/tickets/COR-01.md | 55 +++ +- migration-kanban/tickets/COR-02.md | 59 ++++ +- migration-kanban/tickets/COR-03.md | 51 +++ +- migration-kanban/tickets/COR-04.md | 50 +++ +- migration-kanban/tickets/COR-05.md | 51 +++ +- migration-kanban/tickets/CUT-01.md | 58 ++++ +- migration-kanban/tickets/CUT-02.md | 54 +++ +- migration-kanban/tickets/CUT-03.md | 49 +++ +- migration-kanban/tickets/CUT-04.md | 54 +++ +- migration-kanban/tickets/CUT-05.md | 48 +++ +- migration-kanban/tickets/CUT-06.md | 50 +++ +- migration-kanban/tickets/DOK-01.md | 54 +++ +- migration-kanban/tickets/DOK-02.md | 48 +++ +- migration-kanban/tickets/DOK-03.md | 49 +++ +- migration-kanban/tickets/DOK-04.md | 52 +++ +- migration-kanban/tickets/DOK-05.md | 48 +++ +- migration-kanban/tickets/MAI-01.md | 49 +++ +- migration-kanban/tickets/MAI-02.md | 54 +++ +- migration-kanban/tickets/MAI-03.md | 48 +++ +- migration-kanban/tickets/MAI-04.md | 46 +++ +- migration-kanban/tickets/MAP-01.md | 56 +++ +- migration-kanban/tickets/MAP-02.md | 57 ++++ +- migration-kanban/tickets/MAP-03.md | 54 +++ +- migration-kanban/tickets/MAP-04.md | 50 +++ +- migration-kanban/tickets/ROL-01.md | 48 +++ +- migration-kanban/tickets/ROL-02.md | 50 +++ +- migration-kanban/tickets/TAR-01.md | 53 +++ +- migration-kanban/tickets/TAR-02.md | 48 +++ +- migration-kanban/tickets/VAL-01.md | 50 +++ +- migration-kanban/tickets/VAL-02.md | 49 +++ +- migration-kanban/tickets/VAL-03.md | 48 +++ +- migration-kanban/tickets/VAL-04.md | 48 +++ +- migration-kanban/tickets/VAL-05.md | 48 +++ +- migration-kanban/tickets/WFL-01.md | 50 +++ +- prompt.md | 800 +++++++++++++++++++++++++++++++++++++++++++ +- repos-analyse-mail-reuse.md | 28 ++ +- uebersicht.html | 387 +++++++++++++++++++++ +- workflow-kanban/DEVLOG.md | 57 ++++ +- workflow-kanban/tickets/APR-01.md | 66 ++++ +- workflow-kanban/tickets/APR-02.md | 63 ++++ +- workflow-kanban/tickets/APR-03.md | 63 ++++ +- workflow-kanban/tickets/APR-04.md | 64 ++++ +- workflow-kanban/tickets/ENG-01.md | 67 ++++ +- workflow-kanban/tickets/ENG-02.md | 65 ++++ +- workflow-kanban/tickets/ENG-03.md | 62 ++++ +- workflow-kanban/tickets/ENG-04.md | 62 ++++ +- workflow-kanban/tickets/ENG-05.md | 63 ++++ +- workflow-kanban/tickets/QA-01.md | 61 ++++ +- workflow-kanban/tickets/QA-02.md | 65 ++++ +- workflow-kanban/tickets/QA-03.md | 65 ++++ +- workflow-kanban/tickets/QA-04.md | 63 ++++ +- workflow-kanban/tickets/QA-05.md | 66 ++++ +- workflow-kanban/tickets/QA-06.md | 62 ++++ +- workflow-kanban/tickets/QA-07.md | 61 ++++ +- workflow-kanban/tickets/QA-08.md | 61 ++++ +- workflow-kanban/tickets/RTE-01.md | 64 ++++ +- workflow-kanban/tickets/RTE-02.md | 63 ++++ +- workflow-kanban/tickets/RTE-03.md | 63 ++++ +- workflow-kanban/tickets/RTE-04.md | 63 ++++ +- workflow-kanban/tickets/RTE-05.md | 63 ++++ +- workflow-kanban/tickets/TSK-01.md | 64 ++++ +- workflow-kanban/tickets/TSK-02.md | 64 ++++ +- workflow-kanban/tickets/TSK-03.md | 64 ++++ +- workflow-kanban/tickets/TSK-04.md | 68 ++++ +- workflow-kanban/tickets/TSK-05.md | 63 ++++ +- workflow-kanban/tickets/VOR-01.md | 66 ++++ +- workflow-kanban/tickets/VOR-02.md | 65 ++++ +- workflow-kanban/tickets/VOR-03.md | 66 ++++ +- workflow-kanban/tickets/VOR-04.md | 73 ++++ +- workflow-kanban/tickets/VOR-05.md | 71 ++++ + +--- +## 2026-09-18 12:07 – 12:07 (0m) +**Beschreibung:** Claude Code Session +**Projekt:** nexarch + +### Commits +Keine Commits in dieser Session. + +### Geänderte Dateien +- archive-kanban/board.json | 3062 ++++++++++++++++++++++----------------------- + +--- +## 2026-09-18 17:07 – 17:07 (0m) +**Beschreibung:** Claude Code Session +**Projekt:** nexarch + +### Commits +Keine Commits in dieser Session. + +### Geänderte Dateien +- archive-kanban/board.json | 3062 ++++++++++++++++++++++----------------------- + +--- diff --git a/dms-kanban/tickets/DEVLOG.md b/dms-kanban/tickets/DEVLOG.md index add3b712..fa4f8981 100644 --- a/dms-kanban/tickets/DEVLOG.md +++ b/dms-kanban/tickets/DEVLOG.md @@ -11,3 +11,14 @@ Keine Commits in dieser Session. Keine Änderungen ermittelbar. --- +## 2026-09-18 13:41 – 13:41 (0m) +**Beschreibung:** Claude Code Session +**Projekt:** code + +### Commits +Keine Commits in dieser Session. + +### Geänderte Dateien +- archive-kanban/board.json | 3062 +++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------- + +--- diff --git a/dms-kanban/tickets/DOC-19.md b/dms-kanban/tickets/DOC-19.md new file mode 100644 index 00000000..3c4c96de --- /dev/null +++ b/dms-kanban/tickets/DOC-19.md @@ -0,0 +1,60 @@ +# DOC-19 – TIFF-Vorschau in der Thumbnail-Pipeline + +**Epic:** 🗂️ Dokumentenkern | **Rolle:** Backend | **Komplexität:** Einfach | **Aufwand:** 1 Personentag | **Welle:** 6 + +--- + +## Rolle +Du bist erfahrene Entwicklerin im Bereich Backend und baust ein Dokumentenmanagement-System, das die Stärken von paperless-ngx, Alfresco, Docspell und ecoDMS vereint und deren bekannte Schwächen vermeidet. +Serverseitige Logik, Datenzugriff und Schnittstelle. Keine Geschäftslogik in der Oberfläche. + +## Auftrag +TIFF als unterstütztes Quellformat in der Vorschau-/Thumbnail-Pipeline ergänzen — Netzwerkscanner (INT-06) liefern häufig TIFF-Stapel, dafür fehlt aktuell jede Vorschau. + +**Technische Grundlage:** Bildableitung, wie bei JPEG/PNG/GIF bereits vorhanden + +## Produkt-DNA für diesen Bereich +> Erfassen muss so mühelos sein wie bei paperless-ngx, die Ablage so strukturiert wie bei Alfresco. + +**Übernehmen:** +- Automatisierte Erfassungsstrecke: ablegen genügt, das System übernimmt Vorverarbeitung und Ableitungen. + +**Bewusst vermeiden:** +- Keine Vorschau, die den Download erzwingt oder einen eigenen Client verlangt. + +**Für genau diese Kachel:** Scan-Stapel vom Netzwerkscanner sind in der Praxis oft TIFF, nicht PDF — ohne diese Kachel bleibt die Vorschau für genau die Dokumente dunkel, die am häufigsten über den Scanner-Weg (INT-06) reinkommen. + +## Ausgangslage +Die folgenden Arbeitspakete sind bereits fertiggestellt und dürfen vorausgesetzt werden. Baue auf ihnen auf, statt Funktionalität zu duplizieren: +- `DOC-04` Vorschau- & Thumbnail-Pipeline – `dms/internal/thumbnail/generate.go` erkennt Content-Type über Magic-Bytes und erzeugt PNG-Thumbnails für PDF (via `pdftoppm`) sowie JPEG/PNG/GIF (via Go-Standardbibliothek `image`). TIFF fällt aktuell in den `default`-Zweig und schlägt als "nicht unterstützter Dateityp" fehl (Job-Status "failed", keine Pipeline-Blockade, aber auch kein Thumbnail). + +## Akzeptanzkriterien +Die Kachel gilt erst als umgesetzt, wenn alle Punkte erfüllt sind: +1. TIFF-Dateien (Single- und Multi-Page) erzeugen ein Thumbnail von der ersten Seite +2. Bereits unterstützte Formate (PDF/JPEG/PNG/GIF) funktionieren unverändert weiter +3. Beschädigte/nicht dekodierbare TIFF-Datei führt zu Fehlerstatus statt Absturz, wie bei den übrigen Formaten + +## Prüfungen vor der Abnahme +Führe jede Prüfung tatsächlich durch und halte das Ergebnis schriftlich fest. Nicht durchgeführte Prüfungen zählen als offen: +1. Echtes Multi-Page-TIFF aus einem realen Scanvorgang (oder gleichwertig erzeugt) liefert korrektes Thumbnail der ersten Seite +2. Bestehende Testsuite für PDF/JPEG/PNG/GIF bleibt grün +3. Absichtlich beschädigte TIFF-Datei erzeugt Fehlerstatus, kein Prozessabsturz, andere Jobs in der Queue unbeeinträchtigt + +## Nicht Bestandteil dieser Kachel +Diese Punkte gehören ausdrücklich in andere Kacheln. Bereite höchstens die Schnittstelle dafür vor: +- `DOC-20` Office-Dokumente in der Vorschau anzeigen (separates, unabhängiges Problem — Office-Formate, nicht TIFF) +- `INT-06` Scanner-Anbindung selbst (liefert TIFF nur an, diese Kachel verarbeitet es nur in der bestehenden Pipeline weiter) + +## Arbeitsweise +1. Lies zuerst den bestehenden Code der Vorbedingungen (`dms/internal/thumbnail/generate.go`) und halte dich an die dort etablierten Muster (Magic-Bytes-Erkennung, Fehlerbehandlung, kleinste Lösung). +2. Setze die kleinste Lösung um, die alle Akzeptanzkriterien erfüllt. Kein Umbau angrenzender Bereiche. +3. Schreibe zu jedem Akzeptanzkriterium mindestens einen automatisierten Test. +4. Führe alle Prüfungen aus und dokumentiere Zielwert und Ergebnis. +5. Deutschsprachige Oberflächentexte, englischsprachige Bezeichner im Code. +6. Keine Zugangsdaten, Schlüssel oder Verbindungszeichenfolgen im Code – ausschließlich über Umgebungsvariablen. + +## Abschluss +- Commit-Nachricht: `DOC-19: tiff-vorschau in der thumbnail-pipeline` +- Branch: `feature/doc-19-tiff-vorschau-in-der-thumbnail-pipeline` +- Schrittweise committen, Branch pushen, dann anhalten. Kein Merge, kein Deploy. +- In der Beschreibung des Pull Request die durchgeführten Prüfungen mit Ergebnis auflisten. diff --git a/dms-kanban/tickets/DOC-20.md b/dms-kanban/tickets/DOC-20.md new file mode 100644 index 00000000..1d207b5f --- /dev/null +++ b/dms-kanban/tickets/DOC-20.md @@ -0,0 +1,62 @@ +# DOC-20 – Office-Dokumente in der Vorschau anzeigen + +**Epic:** 🗂️ Dokumentenkern | **Rolle:** Backend | **Komplexität:** Mittel | **Aufwand:** 2 Personentage | **Welle:** 6 + +--- + +## Rolle +Du bist erfahrene Entwicklerin im Bereich Backend und baust ein Dokumentenmanagement-System, das die Stärken von paperless-ngx, Alfresco, Docspell und ecoDMS vereint und deren bekannte Schwächen vermeidet. +Serverseitige Logik, Datenzugriff und Schnittstelle. Keine Geschäftslogik in der Oberfläche. + +## Auftrag +Den bereits vorhandenen PDF-Viewer (DOC-05) auch für Office-Dokumente nutzbar machen, indem der Inhalts-Endpunkt bei vorliegendem PDF-Derivat (DOC-06) dieses statt des Originals ausliefert — ohne den Download-Zwang oder Client-Zwang wiedereinzuführen, den das Produkt bewusst vermeidet. + +**Technische Grundlage:** Bestehende Endpunkte `documentapi` (DOC-05) und `pdfconvert` (DOC-06) verknüpfen + +## Produkt-DNA für diesen Bereich +> Erfassen muss so mühelos sein wie bei paperless-ngx, die Ablage so strukturiert wie bei Alfresco. + +**Übernehmen:** +- Automatisierte Erfassungsstrecke: ablegen genügt, das System übernimmt Vorverarbeitung und Ableitungen. + +**Bewusst vermeiden:** +- Keine Vorschau, die den Download erzwingt oder einen eigenen Client verlangt – der Fehler von ecoDMS. +- Das Original darf beim Anzeigen niemals verändert oder ersetzt werden (GoBD-Unveränderbarkeit) — die Anzeige liest ausschließlich das separate Derivat, die Revision bleibt unangetastet. + +**Für genau diese Kachel:** DOC-06 erzeugt das PDF-Derivat bereits, DOC-05 kann PDF bereits anzeigen — beide Ketten sind fertig, aber nirgendwo verbunden. Eine hochgeladene .docx liefert heute den Rohinhalt an PDF.js, das damit nichts anfangen kann. + +## Ausgangslage +Die folgenden Arbeitspakete sind bereits fertiggestellt und dürfen vorausgesetzt werden. Baue auf ihnen auf, statt Funktionalität zu duplizieren: +- `DOC-05` PDF-Viewer-Komponente – `dms/internal/documentapi`, `GET /documents/{id}/content` liefert aktuell IMMER den entschlüsselten Originalinhalt der aktuellen Revision (Magic-Bytes-Content-Type), unabhängig vom tatsächlichen Format. +- `DOC-06` Office-zu-PDF-Konverter – `dms/internal/pdfconvert`, legt das PDF-Derivat in eigener Tabelle `revision_pdf_derivatives` ab (Status pending/processing/ready/failed je Revision), Original bleibt unverändert. + +## Akzeptanzkriterien +Die Kachel gilt erst als umgesetzt, wenn alle Punkte erfüllt sind: +1. Bei einer Revision mit `ready`-Derivat in `revision_pdf_derivatives` liefert der Inhalts-/Vorschau-Endpunkt das PDF-Derivat, nicht das Original +2. Ohne vorhandenes oder noch nicht fertiges Derivat bleibt das bisherige Verhalten (Original-Content ausliefern) unverändert erhalten — kein Bruch für bereits unterstützte Formate wie PDF-Originale selbst +3. Der PDF-Viewer (DOC-05, `web/pdf-viewer`) zeigt eine hochgeladene .docx/.xlsx/.pptx nach abgeschlossener Konvertierung ohne weitere Änderung am Frontend an + +## Prüfungen vor der Abnahme +Führe jede Prüfung tatsächlich durch und halte das Ergebnis schriftlich fest. Nicht durchgeführte Prüfungen zählen als offen: +1. Test: .docx hochgeladen, nach Abschluss der Konvertierung liefert der Endpunkt PDF-Bytes (Magic-Bytes-Check `%PDF`), nicht die ursprünglichen .docx-Bytes +2. Test: PDF-Original hochgeladen (kein Derivat nötig) liefert weiterhin exakt das Original, byteidentisch +3. Test: Derivat-Status `failed` oder `pending` liefert sinnvolles Fallback-/Fehlerverhalten, kein stiller Ausfall + +## Nicht Bestandteil dieser Kachel +Diese Punkte gehören ausdrücklich in andere Kacheln. Bereite höchstens die Schnittstelle dafür vor: +- `DOC-19` TIFF-Vorschau in der Thumbnail-Pipeline (separates, unabhängiges Problem) +- Änderungen an `web/pdf-viewer` selbst, falls über reines Zeigen des gelieferten PDFs hinaus nötig (z. B. Hinweistext "aus Office-Datei konvertiert") — Frontend-Hinweistexte sind eine eigene, kleinere Folgekachel, falls gewünscht + +## Arbeitsweise +1. Lies zuerst den bestehenden Code der Vorbedingungen (`dms/internal/documentapi/handler.go`, `dms/internal/pdfconvert/pdfconvert.go`) und halte dich an die dort etablierten Muster. +2. Setze die kleinste Lösung um, die alle Akzeptanzkriterien erfüllt. Kein Umbau angrenzender Bereiche. +3. Schreibe zu jedem Akzeptanzkriterium mindestens einen automatisierten Test. +4. Führe alle Prüfungen aus und dokumentiere Zielwert und Ergebnis. +5. Deutschsprachige Oberflächentexte, englischsprachige Bezeichner im Code. +6. Keine Zugangsdaten, Schlüssel oder Verbindungszeichenfolgen im Code – ausschließlich über Umgebungsvariablen. + +## Abschluss +- Commit-Nachricht: `DOC-20: office-dokumente in der vorschau anzeigen` +- Branch: `feature/doc-20-office-dokumente-in-der-vorschau-anzeigen` +- Schrittweise committen, Branch pushen, dann anhalten. Kein Merge, kein Deploy. +- In der Beschreibung des Pull Request die durchgeführten Prüfungen mit Ergebnis auflisten.