This commit is contained in:
team3
2026-07-27 11:29:57 +02:00
parent 15ad6dfe8a
commit 1c8a4fd4fd
30 changed files with 1133 additions and 173 deletions

View File

@@ -9,13 +9,61 @@ Rein manuelle Pflege: Sidebar links = Projekte, Hauptbereich = Feature-Cards.
## Karten prüfen
Das ⌾-Icon in der Sidebar prüft alle Karten des aktiven Projekts gegen
`backend/stil.md` (eine Anfrage je Karte). Fehlerhafte Karten öffnen sich rot markiert
und zeigen unter jeder Stelle einen Vorschlag mit ✓/✕; ✓ schreibt ihn in die Datei, die
übrigen Vorschläge bleiben stehen. Rechts läuft ein Panel mit Fortschritt und Problemliste.
Das ⌾-Icon in der Sidebar prüft alle Karten des aktiven Projekts gegen den Stil-Katalog.
Fehlerhafte Karten öffnen sich rot markiert und zeigen unter jeder Stelle einen Vorschlag
mit ✓/✕; ✓ schreibt ihn in die Datei, die übrigen Vorschläge bleiben stehen. Unter dem
Icon steht der Fortschritt, rechts läuft ein Panel mit Problemliste.
Zwei Stufen je Prüfstelle. Was sich zählen lässt, zählt `struktur.py` — Wortzahl,
Satzzeichen am Zeilenende, Füllwörter, Klammern, Badge-Wert. Was es wegstreichen kann,
geht als fertiger Vorschlag durch, ganz ohne Anfrage. Der Rest hängt als Auftrag
„Gemessen, bitte neu schreiben" am Ausschnitt für das Modell. Das Modell darf diese
Klasse nicht selbst melden — sonst erfindet es Regeln, die im Katalog nicht stehen.
Höchstens ein gemessener Befund je Zeile: zwei Vorschläge für dieselbe Zeile wären
nicht unabhängig anwendbar.
Eine Anfrage je Prüfstelle, nicht je Karte:
```
Karte ──┬── Kartenebene titel · badge · ziel · regeln 1 Anfrage
├── Funktion 1 titel · ziel · regeln · testen 1 Anfrage
└── Funktion 2 … 1 Anfrage
```
Ein Vorschlag ersetzt seine Stelle eins zu eins. Was das bewirkt, sagt der Prüfer
nicht — es ergibt sich aus dem Vergleich:
```
eine Zeile schreibt die Stelle um
mehrere Zeilen ersetzen die Stelle durch alle davon; steht die alte
wieder vorn, kommt nur etwas dazu
leer streicht die Stelle
```
So muss das Modell keine Aktion auswählen. Es schreibt nur hin, was dort stehen soll.
Ohne umsetzbaren Vorschlag wird ein Problem verworfen statt leer angezeigt.
Vorschläge werden einzeln und in beliebiger Reihenfolge angenommen. Jeder muss
darum für sich allein anwendbar sein und selbst dem Katalog genügen.
Jede Anfrage bekommt nur ihren Ausschnitt der Karte und nur den Katalogteil, der für sie
gilt. Die Herkunft eines Problems stammt aus dem Code, nicht aus der Modellantwort.
Der Katalog liegt in `backend/stil/` — eine Datei je Feld, alphabetisch zusammengesetzt
(`allgemein` landet dadurch vorn). Das Präfix entscheidet, wer sie zu sehen bekommt:
```
allgemein.md beide Prüfer
feature-*.md nur die Kartenebene: titel, badge, ziel, regeln
funktion-*.md nur die Funktionen: titel, ziel, regeln, testen
```
Eine neue Datei wird ohne Codeänderung mitgelesen. Ist der Ordner leer, bricht die
Prüfung ab statt ohne Vorgaben zu prüfen.
Zugang über `.env` (Vorlage: `.env.example`) — `MINIMAX_API_KEY`, `MINIMAX_MODELL`,
`MINIMAX_URL`, dazu `PRUEFUNG_PARALLEL` (gleichzeitig geprüfte Karten, Standard 10).
`MINIMAX_URL`, dazu `PRUEFUNG_PARALLEL` (gleichzeitig laufende Anfragen, Standard 10).
Fehlt einer der Zugangswerte, bricht die Prüfung mit sichtbarer Meldung ab;
es wird nie still auf ein anderes Modell ausgewichen. Ergebnisse liegen nur im
Serverspeicher und überleben keinen Neustart.