2026-07-27 11:29:57 +02:00
2026-07-27 11:29:57 +02:00
2026-07-27 11:29:57 +02:00
2026-07-27 11:29:57 +02:00
2026-07-27 07:54:09 +02:00
2026-07-27 07:54:09 +02:00
2026-07-24 22:39:23 +02:00
2026-07-27 11:29:57 +02:00

Planer2 — Feature-Verwaltung

Verwaltet Features meiner Projekte als Cards und definiert damit die „Wahrheit" je Projekt. 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 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 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.

Datenablage

Markdown-Dateien unter daten/<projekt>/<feature>.md — Projekt = Ordner, die Datei ist die Wahrheit. Der Editor bearbeitet immer den rohen Text; geparst wird nur für die Anzeige.

Format (Marker allein auf einer Zeile; <!-- funktion --> ist wiederholbar; <!-- ziel -->, <!-- regeln --> und <!-- testen --> nach einer Funktion gehören zu ihr — ziel/regeln vor der ersten Funktion gehören zur Karte; regeln/testen: je eine - -Zeile pro Eintrag; <!-- regel -->-Blöcke aus dem Alt-Format werden zu Zeilen zusammengeführt; Trennzeilen aus --- sind Optik):

<!-- titel -->
Login
<!-- art -->
kern
<!-- ziel -->
Kurzer Satz, was das Ziel ist.
<!-- funktion -->
Anmeldung mit E-Mail
<!-- regeln -->
- Passwort nie loggen
<!-- testen -->
- Formular öffnen
- Daten eingeben
<!-- funktion -->
Abmeldung

Der Kompaktmodus zeigt Ziel und Funktionstitel, der Vollmodus alles — umgeschaltet per mittlerer Maustaste auf die Karte oder das Augen-Icon. Bearbeitet wird nur im Vollmodus: Klick auf den Text, Verlassen speichert, Escape verwirft; Anlegen und Entfernen laufen über das Kontextmenü (Rechtsklick) mit Bestätigung im Modal. Jedes Speichern setzt die Datei neu zusammen, Titeländerungen benennen sie passend um.

Text vor dem ersten Marker, Inhalt unbekannter Marker und verwaiste regeln/testen-Blöcke (auch Alt-Marker flow) werden nicht angezeigt, aber beim Speichern erhalten.

Hinweis: Sektionen werden im Frontend als Markdown gerendert (marked, ohne Sanitizing) — die Daten sind lokal und selbst geschrieben.

Description
No description provided
Readme 2 MiB
Languages
Python 62.3%
Vue 30.4%
JavaScript 5.8%
CSS 1.2%
HTML 0.2%
Other 0.1%