Skip to content

Commit ccd2409

Browse files
author
m.buchhorn-roth
committed
fix: broken links, pre-commit hooks, package rename
1 parent 53cbbbb commit ccd2409

10 files changed

Lines changed: 1343 additions & 129 deletions

File tree

.husky/pre-commit

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/sh
2+
# Pre-commit quality gates
3+
4+
echo "⏳ TypeScript type check..."
5+
npx tsc --noEmit || { echo "❌ TypeScript errors — commit blocked"; exit 1; }
6+
7+
echo "⏳ ESLint..."
8+
npm run lint || { echo "❌ ESLint errors — commit blocked"; exit 1; }
9+
10+
echo "⏳ Markdownlint..."
11+
npx markdownlint "**/*.md" --ignore node_modules --ignore ".husky" || { echo "❌ Markdown lint errors — commit blocked"; exit 1; }
12+
13+
echo "⏳ Link check (staged files only)..."
14+
python3 scripts/check_links.py || { echo "❌ Broken links found — commit blocked"; exit 1; }
15+
16+
echo "✅ All checks passed"

.markdownlint.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"default": true,
3+
"MD009": false,
4+
"MD013": false,
5+
"MD022": false,
6+
"MD024": false,
7+
"MD032": false,
8+
"MD033": false,
9+
"MD036": false,
10+
"MD041": false,
11+
"MD060": false
12+
}

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# 📋 CASSA DRV — Digitaler Wissensassistent für die Rentenversicherung
1+
# 📋 CASSA RELIEF — Digitaler Wissensassistent für die e-Akte
22

33
**Compliance-Assured Structured Semantic Analysis** für die Deutsche Rentenversicherung — Interaktive 3D-Visualisierung eines Sozialrecht-Knowledge-Graphs mit GraphRAG und Chat-API.
44

5-
> **[▶ Live-App öffnen](https://ma3u.github.io/cassa-drv/)**
5+
> **[▶ Live-App öffnen](https://ma3u.github.io/cassa-relief/)**
66
77
![Knoten](https://img.shields.io/badge/Knoten-65+-blue) ![Beziehungen](https://img.shields.io/badge/Beziehungen-90+-green) ![SGB](https://img.shields.io/badge/SGB-5%2B-orange) ![Chat API](https://img.shields.io/badge/Chat_API-OpenAI--kompatibel-brightgreen)
88

@@ -50,8 +50,8 @@ CASSA demonstriert, wie ein **Knowledge Graph** mit **GraphRAG** die Komplexitä
5050

5151
```bash
5252
# Repository klonen
53-
git clone https://github.com/ma3u/cassa-drv.git
54-
cd cassa-drv
53+
git clone https://github.com/ma3u/cassa-relief.git
54+
cd cassa-relief
5555

5656
# Abhängigkeiten installieren
5757
npm ci
@@ -60,7 +60,7 @@ npm ci
6060
npm run dev
6161
```
6262

63-
Öffne [http://localhost:5173/cassa-drv/](http://localhost:5173/cassa-drv/) im Browser.
63+
Öffne [http://localhost:5000/cassa-relief/](http://localhost:5000/cassa-relief/) im Browser.
6464

6565
## Build & Deploy
6666

@@ -74,7 +74,7 @@ npm run lint # ESLint
7474

7575
Das Projekt wird automatisch via GitHub Actions deployed:
7676
- Push auf `main` → Build → Deploy auf GitHub Pages
77-
- URL: `https://ma3u.github.io/cassa-drv/`
77+
- URL: `https://ma3u.github.io/cassa-relief/`
7878

7979
---
8080

@@ -93,7 +93,7 @@ Die Landing Page zeigt 4 konkrete Beispiele, wo Vector RAG versagt:
9393

9494
CASSA implementiert eine OpenAI-kompatible Chat-API:
9595

96-
```
96+
```http
9797
POST /api/v1/chat # Multi-Turn Chat mit Session
9898
POST /api/v1/search # Single-Turn Search (stateless)
9999
GET /api/v1/chat/{id}/history # Konversationsverlauf
@@ -106,7 +106,7 @@ GET /health # Health Check
106106

107107
## Projektstruktur
108108

109-
```
109+
```text
110110
src/
111111
├── App.tsx # Haupt-SPA mit allen Sektionen
112112
├── components/

RELIEF_DEMO_PLAN.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ Bezogen auf den konkreten CASSA RELIEF Use Case — 47 Dokumente (Fotos, Scans,
168168

169169
### Phase 1: Textextraktion (OCR & Parsing)
170170

171-
#### [IBM Granite-Docling-258M](https://huggingface.co/ds4sd/docling-ibm-granite-258m-preview) (Sep 2025, Apache 2.0)
171+
#### [IBM Granite-Docling-258M](https://github.com/DS4SD/docling) (Sep 2025, Apache 2.0)
172172

173173
Der aktuell beste Open-Source-Ansatz für den RELIEF-Use Case. Das Modell ist mit nur **258M Parametern** speziell für Dokumentenkonvertierung trainiert — nicht auf einen allgemeinen LLM adaptiert. Es liefert **DocTags**, die Layout, Tabellenstruktur, Formeln und Code vollständig erhalten, und übertrifft dabei deutlich größere Systeme in Benchmarks. Für RELIEF zentral: Es verarbeitet sowohl digitale PDFs (ohne OCR-Overhead) als auch **Fotos und Screenshots** (mit integrierter Vision) — also genau die Qualitätsprobleme #1#4 aus dem Demo-Fall.
174174

@@ -228,7 +228,7 @@ Für Personennamen (Thomas Becker, Leila Kaya) in deutschen Verwaltungstexten li
228228

229229
### Empfohlene RELIEF-Pipeline (vollständig lokal, DSGVO-konform)
230230

231-
```
231+
```text
232232
Eingang (Foto/Scan/PDF/Screenshot)
233233
234234
[Granite-Docling-258M] → DocTags / Markdown-Text
@@ -249,7 +249,7 @@ Strukturierte E-AKTE (xdomea 3.0-konform)
249249

250250
| Modell/Tool | Aufgabe | Stärke im RELIEF-Kontext | Lizenz |
251251
|---|---|---|---|
252-
| **[Granite-Docling-258M](https://huggingface.co/ds4sd/docling-ibm-granite-258m-preview)** | OCR + Layout | Fotos, Screenshots, Scans → strukturierter Text | Apache 2.0 |
252+
| **[Granite-Docling-258M](https://github.com/DS4SD/docling)** | OCR + Layout | Fotos, Screenshots, Scans → strukturierter Text | Apache 2.0 |
253253
| **[GLiNER-PII-Large](https://huggingface.co/knowledgator/gliner-pii-large-v1.0)** | NER/PII | IBAN, Geburtsdatum, Zero-Shot | Apache 2.0 |
254254
| **[Presidio](https://microsoft.github.io/presidio/)** | Redaktions-Framework | Modularer Stack, Docker-ready | MIT |
255255
| **[spaCy `de_core_news_lg`](https://spacy.io/models/de#de_core_news_lg)** | NER Deutsch | Deutsche Eigennamen (PER, LOC) | MIT |
@@ -340,12 +340,12 @@ Beispiel für den Demo-Fall:
340340
→ Bescheid erstellen
341341
```
342342

343-
#### 2. [BRML](https://docs.oasis-open.org/ruleml/ruleml-specification/v1.03/ruleml-specification-v1.03.html) / [DMN 1.4](https://www.omg.org/spec/DMN/) — Geschäftsregeln
343+
#### 2. [BRML](https://ruleml.org/) / [DMN 1.4](https://www.omg.org/spec/DMN/) — Geschäftsregeln
344344

345345
Die **Entscheidungslogik** (Rechenregeln, Prüfregeln, Schwellenwerte) wird in maschinenlesbare Regelformate überführt:
346346

347347
- **[DMN](https://www.omg.org/spec/DMN/) (Decision Model and Notation)**: OMG-Standard für Entscheidungstabellen — z.B. Regelbedarfsstufentabelle (§20 SGB II), Freibetragsberechnung (§11b SGB II)
348-
- **[RuleML](https://docs.oasis-open.org/ruleml/ruleml-specification/v1.03/ruleml-specification-v1.03.html) / BRML**: XML-basierte Geschäftsregelsprache für komplexe Regelketten mit Bedingungen und Ausnahmen
348+
- **[RuleML](https://ruleml.org/) / BRML**: XML-basierte Geschäftsregelsprache für komplexe Regelketten mit Bedingungen und Ausnahmen
349349
- **Entscheidungstabellen**: Jede Zeile eine Regel, jede Spalte eine Bedingung — lesbar für Juristen und Fachkräfte
350350

351351
Beispiel DMN-Entscheidungstabelle für Freibeträge (§11b SGB II):

eslint.config.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import js from '@eslint/js'
2+
import reactHooks from 'eslint-plugin-react-hooks'
3+
import reactRefresh from 'eslint-plugin-react-refresh'
4+
import tseslint from 'typescript-eslint'
5+
6+
export default tseslint.config(
7+
{ ignores: ['dist', 'node_modules'] },
8+
{
9+
extends: [js.configs.recommended, ...tseslint.configs.recommended],
10+
files: ['**/*.{ts,tsx}'],
11+
plugins: {
12+
'react-hooks': reactHooks,
13+
'react-refresh': reactRefresh,
14+
},
15+
rules: {
16+
...reactHooks.configs.recommended.rules,
17+
'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],
18+
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
19+
'@typescript-eslint/no-explicit-any': 'warn',
20+
},
21+
},
22+
)

0 commit comments

Comments
 (0)