3.8 KiB
AGENTS.md
Diese Datei beschreibt die Arbeitsregeln fuer Codex und andere Coding-Agenten im gesamten Repository. Vor einer Aenderung ist zu klaeren, welches Modul und welche Projektgruppe fachlich verantwortlich sind.
Projekt
Desktop-Fakturierungsanwendung fuer das Hochschulprojekt SE1, Team 1.
- Java 21, Maven, JUnit 5
- Swing-Oberflaeche mit FlatLaf
- lokale JSON-Persistenz unter
daten/(nicht versioniert) - deutsche Bezeichner, Kommentare, UI-Texte und Spezifikationen
Module und Verantwortungsbereiche
| Bereich | Gruppe | Verantwortung |
|---|---|---|
src/main/java/de/team1/faktura/dokumente/ |
A | Dokumentenzyklus, Belegnummern und PDF-Export |
src/main/java/de/team1/faktura/produkte/ |
B | Produktverwaltung, Nummernvergabe und Loeschsperre |
src/main/java/de/team1/faktura/kunden/ |
C | Kundenverwaltung, Nummernvergabe und Loeschsperre |
src/main/java/de/team1/faktura/gui/ |
D | Swing-Oberflaeche, Panels, Dialoge und Wizard |
src/main/java/de/team1/faktura/gemeinsam/ |
alle | EreignisBus, Persistenzhilfe, CSV und Exceptions |
Tests liegen spiegelbildlich unter src/test/java/de/team1/faktura/. Pflichtenhefte und
Diagramme der Gruppen liegen unter dokumentation/anforderungen/ beziehungsweise
dokumentation/diagramme/.
Agenten sollen Modulgrenzen respektieren und nur die fuer die Aufgabe erforderlichen Bereiche aendern. Gruppenuebergreifende Aenderungen sind erlaubt, wenn sie fuer eine Schnittstelle oder Integration notwendig sind; Auswirkungen auf alle betroffenen Module muessen dann mit Tests abgesichert werden. Lastenheft, Modultestplan, Project Charter und Praesentation nur bearbeiten, wenn sie ausdruecklich Teil der Aufgabe sind.
Allgemeine Entwicklungsregeln
- Bestehende Klassen, Schnittstellen, Repositories und Muster bevorzugen.
- Abhaengigkeiten werden in
Main.javamanuell verdrahtet; kein DI-Framework ergaenzen. - Der
EreignisBusist der vorhandene Mechanismus fuer Aktualisierungen nach Datenveraenderungen. - Persistenz erfolgt ueber die vorhandenen Repository-Schnittstellen und JSON- Implementierungen.
- Keine aufgabenfremden Refactorings, Umbenennungen oder Formatierungsaenderungen mitziehen.
- Neue Logik mit fokussierten JUnit-Tests absichern.
Build und Tests
Der Maven-Wrapper ist nicht ausfuehrbar eingecheckt. Deshalb ueber die Shell starten:
sh mvnw compile
sh mvnw test
sh mvnw test -Dtest=NameDerTestklasse
sh mvnw test -Dtest=NameDerTestklasse#nameDerTestmethode
sh mvnw package
java -jar target/fakturierung-1.0.0.jar
Zunaechst die passende modulbezogene Testklasse ausfuehren, vor Commit oder Push den vollstaendigen Testlauf starten. Neue Logik mit Tests auf der niedrigsten sinnvollen Ebene absichern.
Dokumentation und Diagramme
Markdown und PDF werden gemeinsam versioniert. Pflichtenhefte aus dem Dokumentationsordner bauen, damit die relativen Diagrammpfade stimmen. Beispiel:
cd dokumentation/anforderungen
pandoc EINGABE.md -o AUSGABE.pdf --pdf-engine=tectonic
PlantUML aus dem Repository-Root rendern:
java -jar tools/plantuml.jar -tpng \
dokumentation/diagramme/DATEI.puml
Nach Dokumentaenderungen die erzeugte PDF visuell pruefen. Diagramme duerfen nicht
abgeschnitten oder unlesbar klein sein. Quellen (.md, .puml) und erzeugte Artefakte
(.pdf, .png) konsistent aktualisieren.
Git und Zusammenarbeit
- Vor Aenderungen
git statusund den aktuellen Remote-Stand pruefen. - Vorhandene fremde oder lokale Aenderungen niemals verwerfen oder ueberschreiben.
- Nur aufgabenbezogene Dateien stagen; insbesondere
.DS_Store,target/unddaten/nicht committen. - Vor Commit den Diff und
git diff --checkpruefen. - Commit und Push nur nach ausdruecklicher Freigabe des Nutzers.
- Vor einem Push erneut synchronisieren und sicherstellen, dass alle Tests erfolgreich sind.