feat: AcroForm-Fill via Claude CLI, Multi-Source, Kanagawa, Docker-Deploy

Komplettes Rework der AI-Studio-Vorlage zu einem produktiven Werkzeug fuer
deutsche AcroForm-Formulare (Reha-Antraege, Arzt-Befundberichte):

- Backend: Express spawnt headless Claude CLI ('claude -p --output-format json'
  via stdin-Pipe). Prompt enthaelt die Feldnamen als Ziel-Schema plus die
  Arbeitsregeln (Stichwortstil, feste Zeichen-Kaestchen ohne Leerzeichen,
  Vordrucke respektieren, keine geratenen Werte, nur medizinisch).
- PDF-Handling: pdfjs-dist statt pdf-lib — pdf-lib scheitert an verschluesselten
  Object-Streams in DRV-Formularen. annotationStorage + saveDocument, kein
  Flatten. Worker-Patch zur Laufzeit forciert Auto-Size und schwarze Schrift.
- Multi-Source-Upload: beliebig viele PDFs/Bilder + optional Freitext.
- Design: Kanagawa Design System (Preset aus ../kanagawa-design-system),
  Tailwind lokal gebaut statt CDN, Dark/Light-Toggle, Progress-Indicator.
- Deployment: Multi-Stage-Dockerfile, docker-compose in matrix_default-Netz,
  Claude-Credentials vom Host per Volume. PLAN.md + AGENTS.md (Alex-Schema).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kenearos 2026-04-20 22:48:32 +02:00
parent d6cab4aeb5
commit 3c669fb003
28 changed files with 6756 additions and 934 deletions

View file

@ -1,20 +1,58 @@
<div align="center">
<img width="1200" height="475" alt="GHBanner" src="https://github.com/user-attachments/assets/0aa67016-6eaf-458a-adb2-6e31a0763ed6" />
</div>
# Rentenversicherer
# Run and deploy your AI Studio app
Halbautomatisches Ausfüllen von deutschen AcroForm-PDFs (Reha-Anträge,
ärztliche Befundberichte, etc.) mit der Claude Code CLI als Subprozess.
This contains everything you need to run your app locally.
- Original-PDF bleibt strukturell unverändert — Felder sind nach dem
Ausfüllen im PDF-Reader weiter editierbar (kein Flatten).
- Claude zieht die Werte aus beliebig vielen Quelldateien (PDF/Bild) und
optionalem freiem Text.
- Browser-UI im Kanagawa-Design-Schema, Review-Panel mit Live-Preview.
View your app in AI Studio: https://ai.studio/apps/drive/1eOJcZ5qjOqVKG1eSXvA6HRcCwqcgcuGO
## Voraussetzungen
## Run Locally
- Node.js 20+
- Claude Code CLI im `PATH`, gültiges Claude-Login
- Windows: Git Bash (`CLAUDE_CODE_GIT_BASH_PATH` wird auf dem
Scoop-Standard-Pfad gesetzt — falls du Git anders installiert hast,
in der Shell vorher setzen oder `server/claudeRunner.ts:GIT_BASH_FALLBACK`
anpassen)
**Prerequisites:** Node.js
## Start
```bash
npm install
npm run dev
```
1. Install dependencies:
`npm install`
2. Set the `GEMINI_API_KEY` in [.env.local](.env.local) to your Gemini API key
3. Run the app:
`npm run dev`
- Browser-UI: <http://localhost:5173>
- Backend-Health: <http://127.0.0.1:3001/api/health>
## Workflow
1. **Ziel-Formular** (PDF mit AcroForm-Feldern) in die linke Spalte ziehen.
Die App zeigt an, wie viele Felder erkannt wurden.
2. **Quelldokumente** rechts hochladen — beliebig viele PDFs/Bilder, plus
optional ein Freitext-Feld.
3. **„Analysieren & Ausfüllen"** — kann 30120 Sekunden dauern, je nach
Umfang. Claude-CLI läuft headless im Backend.
4. **Review-Panel** — Werte prüfen, bei Bedarf korrigieren, mit Haken
bestätigen.
5. **„PDF runterladen"** — das Original-PDF mit gesetzten Feldern.
Im Acrobat/Reader können die Felder weiter bearbeitet werden.
## Arbeitsregeln für die Verarbeitung
Im Prompt an Claude fest eingebaut (siehe `server/claudeRunner.ts`):
- Stichwortstil, kein Gutachten
- Feste Zeichen-Kästchen (VSNR, IBAN, BIC, IK) ohne Leerzeichen
- Vordrucke respektieren (kein doppeltes "DE", kein "€")
- Nur medizinisch; Sozialbereich bleibt leer
- Keine geratenen Werte — bei Unsicherheit leer + WARNING
- PDF nie flatten
## Dokumentation
- [`PLAN.md`](./PLAN.md) — Zweck, Scope, Architektur
- [`AGENTS.md`](./AGENTS.md) — Commands, Code-Style, Architektur-Regeln