Files
Terrata/harness/_todo.md
T
2026-10-10 13:56:48 +02:00

4.2 KiB

Harness: offene Anpassungen

Stand 2026-10-10. Der Harness wurde aus einem C#/React-Projekt (PersonManager) importiert; diese Dateien tragen noch dessen Inhalt. Reihenfolge nach Wirkung: oben wirkt in jeder Session, unten beschreibt Artefakte, die es noch nicht gibt.

1. AGENTS.md neu schreiben

  • Indexzeilen für _uitests.md und _code.md ohne Playwright, tests/ui, docker-compose.tests.yml, code/backend, ReSharper.
  • Abschnitte „Dev Workflow" und „Push Workflow" auf Terrata umstellen: ./gradlew build (Compile, Tests, Konsist, detekt, spotlessCheck), ./gradlew spotlessApply vor dem Commit, harness/markdown-fmt.py --check und harness/glossary-lint.sh nach Doku-Änderungen. analyse_all.py, UI-Tests und docker compose up entfernen.
  • Tippfehler („ide neuen Tests", „grundenen") verschwinden damit von selbst.
  • Begründung: Die Datei wird in jeder Session geladen; heute folgt jeder Agent bei jedem Commit einer Anleitung, deren Werkzeuge nicht existieren.

2. harness/_code.md für Kotlin neu schreiben

  • harness/PersonManager.sln.DotSettings löschen (einzige Referenz ist _code.md).
  • Nicht 1:1 übersetzen. Was spotless/ktlint und detekt im Build erzwingen, nicht wiederholen. Das Prinzip „die Regeldatei gewinnt" bleibt und zeigt auf die detekt-Konfiguration und .editorconfig in build-logic (terrata.quality).
  • Nur aufnehmen, was kein Werkzeug prüft: explicitApi (heute Warning, später strict), KDoc und Kommentare auf Englisch, Enums ohne Display-Labels (Lokalisierung ist Sache der UI), kotlinx-datetime statt eigener Datumslogik, Logging von Fehlern immer mit vollem Stacktrace (logger.error(msg, e)), Benennung von Tests, Package-Root terrata.<module>.
  • Compose-Konventionen (Previews, Tokens statt Literale) nicht duplizieren, sondern auf CLAUDE.md § Component previews und _uiux.md § 12 verweisen.
  • Abschnitt „Compliance Example" durch ein kurzes Kotlin-Beispiel ersetzen oder streichen.

3. harness/_devdocs.md: Beispiele austauschen

  • Gerüst behalten (fünf Grundregeln, Mermaid-only, Struktur von docs/dev/).
  • Bausteintabelle (code/backend/PersonenApi/…) durch die KMP-Module aus _design.md ersetzen (:core:model, :core:app, :adapter:*, :ui, :map:*, :interop:dav, :app:*).
  • Kontextdiagramm (React, ASP.NET Core, EF Core, personen.db) durch Terrata ersetzen: Desktop-App, Store auf der Platte, SQLite-Index, DAV-Server, Sync-Ziel.
  • Deployment-Abschnitt (docker-compose.yml, Docker-Host) streichen oder auf die Desktop-Distribution umstellen.
  • Prozessbeispiel „Sachbearbeiter wählt Anlegen" durch einen Terrata-Prozess ersetzen, etwa „Record anlegen" oder „Store scannen".
  • Zuständigkeits-Kasten (um Zeile 190): den Verweis auf den C#-Codestil auf die neue _code.md umbiegen und die Beschreibung von _design.md („Backend-Architektur: Entitäten, DTOs, EF-Konfigurationen, Controller, Statuscodes, Migrationen") durch die Ports-&-Adapter-Begriffe ersetzen.
  • Zeitpunkt: vor dem ersten Dokument unter docs/dev/ (laut CLAUDE.md die Index-Tabellen, sobald gebaut).

4. harness/_userdocs.md: zwei Zeilen

  • Screenshot-Erzeugung (um Zeile 101 und 119): Playwright und den Entwicklungs-Stack durch ein Compose-Pendant ersetzen oder als „offen, bis docs/user/ entsteht" markieren.
  • Rest ist sauber.

5. harness/_uitests.md: auf Stub kürzen

  • Playwright, Vitest, xUnit, Testdatenbank, Docker-Stack entfernen.
  • Generische Regeln behalten: kein Test ohne Akzeptanzkriterium, Zuordnung Story ↔ Test, keine Tests gegen Produktivdaten.
  • Stack benennen: Compose-UI-Tests in :ui (laufen offscreen, siehe ci/docker/Dockerfile), Rest explizit „offen, bis es eine bedienbare App gibt".
  • Keine Compose-Testkonvention erfinden, bevor es etwas zu testen gibt.

6. Nacharbeiten

  • CLAUDE.md § Specs & harness: den Pitfall-Satz „the last four still carry the C#/Angular content" entfernen, sobald 2 bis 5 erledigt sind.
  • harness/_requirements.md, _design.md, _uiux.md, _glossary.md, _ideas.md, _markdown.md sind bereits Terrata, nichts zu tun.
  • Diese Datei löschen, wenn alles abgehakt ist.