03_LLM_Assignments
Prompt
Du bist ein Experte für Softwareentwicklung und Git. Deine Aufgabe ist es, Git-Commit-Nachrichten nach ihrer Qualität zu bewerten. Orientiere dich an den Best Practices von Chris Beams:
- Verwendung des Imperativs: Der Titel (erste Zeile) beginnt mit einem Befehlswort (z. B. „Fix“, „Add“, „Update“). Kein „Fixed“ oder „Added“.
- Länge des Titels: Der Titel ist maximal 50 Zeichen lang.
- Trennung von Titel und Body: Titel und Body sind durch eine Leerzeile getrennt.
- Erklärung im Body: Der Body erklärt, warum die Änderung gemacht wurde (nicht nur was geändert wurde).
- Klarheit: Die Nachricht ist klar und einfach zu verstehen, ohne unnötige Worte.
- Keine vagen Aussagen: Die Nachricht enthält keine vagen oder nicht hilfreichen Begriffe wie „Fix“ oder „Update“ ohne weitere Erklärung.
- Details zur Änderung: Die Nachricht beschreibt, was genau geändert wurde und wie die Änderung das Projekt verbessert.
Für jede der oben genannten Regeln erhält die Commit-Nachricht maximal einen Punkt. Bewerte die Nachricht entsprechend, ob sie der jeweiligen Regel entspricht (1 Punkt) oder nicht (0 Punkte). Das maximale Bewertungsergebnis sind 7 Punkte.
Bewertung von 5 Git Commit Messages (Excel-Tabelle "Good")
Commit Message | Score by ChatGPT | Score by Copilot |
---|---|---|
Fix crash on login due to null user token | 4 | 4 |
Rework the @PropertySource parsing logic recently changed in commit 7c608886 to deal with the same source appearing on a @Configuration class and an @Import class | 4 | 4 |
Issue: SPR-12059 | 1 | 1 |
Update HierarchicalUriComponents.toUri() to only prepend a missing '/' when the scheme, user info, host or port are specified. This makes the toUri() method behave in the same way as .toUriString() and allows relative URIs to be created. | 5 | 4 |
UriComponentsBuilder supports query without value | 1 | 1 |
Bewertung von 5 Git Commit Messages (Excel-Tabelle "Bad")
Commit Message | Score by ChatGPT | Score by Copilot |
---|---|---|
refactoring .testsuite .aop.aspectj tests in preparation for migration to .context | 3 | 3 |
re-adding mock.jndi.* artifacts to .orm test codebase eliminated after moving away from svn:externals | 4 | 4 |
IN PROGRESS - issue SPR-5599: Hook @Configuration class processing into context:component-scan/ and context:annotation-config/ through AnnotationConfigUtils#registerAnnotationConfigProcessors | 3 | 3 |
+ Adding POC tooling integration points, namely AbstractConfigurationPostProcessor and allowing for tooling-specified ClassLoader for use with ASM parsing + Eliminated ModelMethod in favor of BeanMethod throughout | 6 | 4 |
polishing | 2 | 2 |
Optional Assignment - Let an LLM create the Scoring Prompt
Meta-Prompt:
Du bist dazu bestimmt, Git-Commit-Nachrichten gemäß den 7 Regeln von Chris Beams zu bewerten. Deine Aufgabe ist es, einen Bewertungsprompt zu erstellen, der Commit-Nachrichten nach der Reihe der folgenden 7 Regeln prüft, ob sie diese Regeln einhalten:
https://cbea.ms/git-commit/#seven-rules
Dein Ziel ist es, einen Bewertungsprompt zu erstellen, der die Commit-Nachricht nach diesen 7 Regeln prüft. Die Punktzahl wird wie folgt vergeben:
- 1 Punkt: Wenn die Commit-Nachricht der Regel entspricht.
- 0 Punkte: Wenn die Commit-Nachricht nicht der Regel entspricht.
Am Ende der Bewertung addierst du die Punkte aus jeder Regel und gibst die Gesamtnote auf einer Skala von 0 bis 7 an.
Bewertungsprompt (vom Meta-Prompt erzeugt):
Bitte bewerte die folgende Commit-Nachricht anhand der 7 Regeln aus Chris Beams' Blogpost. Jede Regel sollte einzeln bewertet werden. Gib zu jeder Regel eine Punktzahl von 0 oder 1 und eine kurze Begründung, warum die Commit-Nachricht der jeweiligen Regel entspricht oder nicht. Am Ende addiere die Punktzahlen und gib eine Gesamtbewertung von 0 bis 7 an.
-
Trenne Betreff und Textkörper mit einer Leerzeile:
Hat die Commit-Nachricht Betreff und Textkörper durch eine Leerzeile getrennt?
Punktzahl (0 oder 1): [Begründung]
-
Begrenze den Betreff auf 50 Zeichen:
Hat der Betreff maximal 50 Zeichen?
Punktzahl (0 oder 1): [Begründung]
-
Setze den Betreff groß:
Ist der Betreff großgeschrieben?
Punktzahl (0 oder 1): [Begründung]
-
Verwende den Imperativ im Betreff:
Wird der Imperativ verwendet (z. B. „Füge hinzu“, „Verbessere“, „Entferne“) im Betreff?
Punktzahl (0 oder 1): [Begründung]
-
Beende den Betreff nicht mit einem Punkt:
Endet der Betreff nicht mit einem Punkt?
Punktzahl (0 oder 1): [Begründung]
-
Wickele den Textkörper bei 72 Zeichen:
Wird der Textkörper bei 72 Zeichen umgebrochen?
Punktzahl (0 oder 1): [Begründung]
-
Erkläre im Textkörper was und warum, nicht wie:
Wird im Textkörper erklärt, was getan wurde und warum, ohne detaillierte Anweisungen zum „Wie“?
Punktzahl (0 oder 1): [Begründung]
Addiere die Punktzahlen aus den einzelnen Regeln. Die maximale Punktzahl ist 7, wenn alle Regeln vollständig eingehalten wurden.
Gesamtbewertung (0–7)