TASKS Phase 1. tests/parser.test.js mit dem kanonischen SPEC-§10-Beispiel als Fixture und den geforderten Randfällen: URL mit @, %% am Zeilenanfang/-ende, leere Labels, mehrere Wurzeln, Tab = 2 Leerzeichen, ungleichmäßige Einrückung, gemischte Gates, x/X + case-insensitive Größe, Vokabular-Exporte. 18 Tests grün. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
41 lines
2.1 KiB
Markdown
41 lines
2.1 KiB
Markdown
# Aufgaben
|
|
|
|
Abhaken beim Erledigen; neue Aufgaben unten anfügen.
|
|
|
|
## Phase 1 — Modularisierung & Tests
|
|
- [x] Projektgerüst: `src/` (parser.js, model.js, render.js, app.js),
|
|
`tests/`, `index.html` bindet Module ein; weiterhin ohne Build nutzbar
|
|
(ES-Module) oder mit minimalem Setup (Vite) — Entscheidung dokumentieren.
|
|
→ **Vite** gewählt (D19): `src/` als ES-Module, `npm run build` bündelt zu
|
|
einer self-contained `dist/index.html` (file://-tauglich). Gerüst steht
|
|
(aktuell `src/app.js` + `src/style.css`); Parser/Renderer werden in den
|
|
folgenden Checkboxen herausgelöst.
|
|
- [x] Parser extrahieren; Verhalten exakt wie in `docs/SPEC.md` §1–§8.
|
|
→ `src/parser.js` exportiert `parse`, `STATUS_BY_CODE`, `SIZE_RANK`
|
|
(headless, kein DOM); `app.js` importiert sie.
|
|
- [x] Unit-Tests für den Parser (Vitest): kanonisches Beispiel aus SPEC §10
|
|
als Fixture; Randfälle: gemischte Gates, Tabs/ungleichmäßige Einrückung,
|
|
URL mit `@`, mehrere Wurzeln, leere Labels, `%%` am Zeilenanfang/-ende.
|
|
→ `tests/parser.test.js` (18 Tests).
|
|
- [ ] Renderer extrahieren (HTML-String-Erzeugung), Snapshot-Tests für
|
|
Normal- und Vertikalmodus sowie „Untergliederung fehlt“.
|
|
- [ ] Warnungs-Modell vereinheitlichen (Zeilennummern, Typen).
|
|
|
|
## Phase 2 — Qualität
|
|
- [ ] Barrierefreiheit: Fokusreihenfolge, aria-Labels für Status/Größe/Tags.
|
|
- [ ] Druck-Stylesheet (Diagramm ohne Editor-Panel).
|
|
- [ ] Fehlertolerantes Parsen weiter ausbauen (unbekannte Statuszeichen melden).
|
|
|
|
## Deployment
|
|
- [x] GitHub-Pages-Workflow angelegt (`.github/workflows/pages.yml`,
|
|
siehe docs/DECISIONS.md D16).
|
|
|
|
## Phase 3 — Integrationen (siehe docs/ROADMAP.md)
|
|
- [ ] Backend-Gerüst per Spring Initializr in `backend/` anlegen
|
|
(Kotlin, Gradle Kotlin DSL, JDK 21; Konventionen: backend/CLAUDE.md).
|
|
- [ ] SVG-Renderer (Layout-Engine) als gemeinsame Basis für Export und
|
|
Mermaid-Plugin.
|
|
- [ ] Mermaid-Plugin-Spike: Detektor + Registrierung, ein Minimalbaum.
|
|
- [ ] Taiga-Spike: `#ref`-Syntax parsen, Status via REST-API auflösen
|
|
(read-only), Mapping konfigurierbar.
|