Ergaenze allgemeine Agentenrichtlinien
parent
a2f9335449
commit
8e141af914
|
|
@ -0,0 +1,95 @@
|
|||
# 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.java` manuell verdrahtet; kein DI-Framework ergaenzen.
|
||||
- Der `EreignisBus` ist 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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
cd dokumentation/anforderungen
|
||||
pandoc EINGABE.md -o AUSGABE.pdf --pdf-engine=tectonic
|
||||
```
|
||||
|
||||
PlantUML aus dem Repository-Root rendern:
|
||||
|
||||
```bash
|
||||
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 status` und den aktuellen Remote-Stand pruefen.
|
||||
- Vorhandene fremde oder lokale Aenderungen niemals verwerfen oder ueberschreiben.
|
||||
- Nur aufgabenbezogene Dateien stagen; insbesondere `.DS_Store`, `target/` und `daten/`
|
||||
nicht committen.
|
||||
- Vor Commit den Diff und `git diff --check` pruefen.
|
||||
- Commit und Push nur nach ausdruecklicher Freigabe des Nutzers.
|
||||
- Vor einem Push erneut synchronisieren und sicherstellen, dass alle Tests erfolgreich
|
||||
sind.
|
||||
Loading…
Reference in New Issue