feat: Erweitere Skill-Beschreibungen mit präziseren Nutzungsrichtlinien

- Verfeinere Description-Felder aller Skills für besseres Triggering
- Neue skill-creator@claude-plugins-official Permission
- /story mit neuer Reference-Struktur (phase-spezifische Detail-Dateien)
- /go, /plan-review, /ship, /workflow-review: klarere Abgrenzungen
- Vereinfachung im Vergleich zu vorigen Versionen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-19 15:44:52 +02:00
co-authored by Claude Sonnet 4.6
parent 6f9079fa5f
commit 2fbb59852e
26 changed files with 1035 additions and 54 deletions
+86
View File
@@ -0,0 +1,86 @@
[
{
"query": "ich bin fertig mit der implementierung, kannst du die tests laufen lassen und einen PR erstellen?",
"should_trigger": true
},
{
"query": "alles fertig implementiert, bitte testen und PR in Gitea anlegen",
"should_trigger": true
},
{
"query": "die Änderungen sind durch, jetzt Tests + PR bitte",
"should_trigger": true
},
{
"query": "ich hab die auth-middleware fertig gebaut, magst du das jetzt testen und einen PR anlegen bei gitea.troeger-net.org/martin/myproject?",
"should_trigger": true
},
{
"query": "ok der refactor ist durch, kannst du die test suite laufen lassen und wenn alles grün ist nen PR erstellen?",
"should_trigger": true
},
{
"query": "feature ist fertig, jetzt bitte test-runner + code vereinfachen + PR",
"should_trigger": true
},
{
"query": "implementation done, /go bitte",
"should_trigger": true
},
{
"query": "hab den crud-endpoint für /api/orders fertig, kannst du jetzt testen und als PR einreichen?",
"should_trigger": true
},
{
"query": "kannst du mir erklären wie ich manuell einen PR anlege?",
"should_trigger": false
},
{
"query": "bitte nur die tests laufen lassen, ich will noch nicht committen",
"should_trigger": false
},
{
"query": "bitte committen und pushen",
"should_trigger": false
},
{
"query": "erstell mir einen PR für diesen branch, tests sind schon grün",
"should_trigger": false
},
{
"query": "kannst du den code reviewen und vereinfachen ohne PR?",
"should_trigger": false
},
{
"query": "ship it bitte",
"should_trigger": false
},
{
"query": "was ist der status der aktuellen tests?",
"should_trigger": false
},
{
"query": "ich möchte eine neue story starten für das login-feature",
"should_trigger": false
},
{
"query": "bitte führe nur den security-audit durch",
"should_trigger": false
},
{
"query": "kannst du die fehlgeschlagenen tests in test_user_service.py debuggen?",
"should_trigger": false
},
{
"query": "rebase bitte meinen branch auf main",
"should_trigger": false
},
{
"query": "bitte nur den simplify-skill aufrufen, keinen PR",
"should_trigger": false
},
{
"query": "/go",
"should_trigger": true
}
]
+22
View File
@@ -0,0 +1,22 @@
[
{"query": "ich bin fertig mit der implementierung, kannst du die tests laufen lassen und einen PR erstellen?", "should_trigger": true},
{"query": "alles fertig implementiert, bitte testen und PR in Gitea anlegen", "should_trigger": true},
{"query": "die Änderungen sind durch, jetzt Tests + PR bitte", "should_trigger": true},
{"query": "ich hab die auth-middleware fertig gebaut, magst du das jetzt testen und einen PR anlegen bei gitea.troeger-net.org/martin/myproject?", "should_trigger": true},
{"query": "ok der refactor ist durch, kannst du die test suite laufen lassen und wenn alles grün ist nen PR erstellen?", "should_trigger": true},
{"query": "feature ist fertig, jetzt bitte test-runner + code vereinfachen + PR", "should_trigger": true},
{"query": "implementation done, /go bitte", "should_trigger": true},
{"query": "hab den crud-endpoint für /api/orders fertig, kannst du jetzt testen und als PR einreichen?", "should_trigger": true},
{"query": "kannst du mir erklären wie ich manuell einen PR anlege?", "should_trigger": false},
{"query": "bitte nur die tests laufen lassen, ich will noch nicht committen", "should_trigger": false},
{"query": "bitte committen und pushen", "should_trigger": false},
{"query": "erstell mir einen PR für diesen branch, tests sind schon grün", "should_trigger": false},
{"query": "kannst du den code reviewen und vereinfachen ohne PR?", "should_trigger": false},
{"query": "ship it bitte", "should_trigger": false},
{"query": "was ist der status der aktuellen tests?", "should_trigger": false},
{"query": "ich möchte eine neue story starten für das login-feature", "should_trigger": false},
{"query": "bitte führe nur den security-audit durch", "should_trigger": false},
{"query": "kannst du die fehlgeschlagenen tests in test_user_service.py debuggen?", "should_trigger": false},
{"query": "rebase bitte meinen branch auf main", "should_trigger": false},
{"query": "bitte nur den simplify-skill aufrufen, keinen PR", "should_trigger": false}
]
+82
View File
@@ -0,0 +1,82 @@
Split: 14 train, 7 test (holdout=0.4)
============================================================
Iteration 1/5
Description: Führt nach einer Implementierung Tests aus, vereinfacht den Code und erstellt einen PR in Gitea. Aktivieren wenn eine Feature-Implementierung abgeschlossen ist und ein PR erstellt werden soll.
============================================================
Train: 24/42 correct, precision=100% recall=0% accuracy=57% (51.8s)
[FAIL] rate=0/3 expected=True: ok der refactor ist durch, kannst du die test suite laufen l
[FAIL] rate=0/3 expected=True: die Änderungen sind durch, jetzt Tests + PR bitte
[FAIL] rate=0/3 expected=True: feature ist fertig, jetzt bitte test-runner + code vereinfac
[FAIL] rate=0/3 expected=True: /go
[FAIL] rate=0/3 expected=True: alles fertig implementiert, bitte testen und PR in Gitea anl
[FAIL] rate=0/3 expected=True: ich bin fertig mit der implementierung, kannst du die tests
[PASS] rate=0/3 expected=False: kannst du die fehlgeschlagenen tests in test_user_service.py
[PASS] rate=0/3 expected=False: bitte nur den simplify-skill aufrufen, keinen PR
[PASS] rate=0/3 expected=False: ich möchte eine neue story starten für das login-feature
[PASS] rate=0/3 expected=False: kannst du mir erklären wie ich manuell einen PR anlege?
[PASS] rate=0/3 expected=False: was ist der status der aktuellen tests?
[PASS] rate=0/3 expected=False: bitte nur die tests laufen lassen, ich will noch nicht commi
[PASS] rate=0/3 expected=False: bitte führe nur den security-audit durch
[PASS] rate=0/3 expected=False: rebase bitte meinen branch auf main
Test : 12/21 correct, precision=100% recall=0% accuracy=57% (0.0s)
[FAIL] rate=0/3 expected=True: ich hab die auth-middleware fertig gebaut, magst du das jetz
[FAIL] rate=0/3 expected=True: implementation done, /go bitte
[FAIL] rate=0/3 expected=True: hab den crud-endpoint für /api/orders fertig, kannst du jetz
[PASS] rate=0/3 expected=False: erstell mir einen PR für diesen branch, tests sind schon grü
[PASS] rate=0/3 expected=False: ship it bitte
[PASS] rate=0/3 expected=False: bitte committen und pushen
[PASS] rate=0/3 expected=False: kannst du den code reviewen und vereinfachen ohne PR?
Improving description...
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 332, in <module>
main()
~~~~^^
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 297, in main
output = run_loop(
eval_set=eval_set,
...<11 lines>...
log_dir=log_dir,
)
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 202, in run_loop
new_description = improve_description(
client=client,
...<7 lines>...
iteration=iteration,
)
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/improve_description.py", line 114, in improve_description
response = client.messages.create(
model=model,
...<5 lines>...
messages=[{"role": "user", "content": prompt}],
)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_utils/_utils.py", line 283, in wrapper
return func(*args, **kwargs)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/resources/messages/messages.py", line 1000, in create
return self._post(
~~~~~~~~~~^
"/v1/messages",
^^^^^^^^^^^^^^^
...<30 lines>...
stream_cls=Stream[RawMessageStreamEvent],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 1368, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 1062, in request
request = self._build_request(options, retries_taken=retries_taken)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 521, in _build_request
headers = self._build_headers(options, retries_taken=retries_taken)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 451, in _build_headers
self._validate_headers(headers_dict, custom_headers)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_client.py", line 196, in _validate_headers
raise TypeError(
'"Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"'
)
TypeError: "Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"
@@ -0,0 +1,82 @@
[
{
"query": "bitte reviewe meinen plan bevor ich anfange zu implementieren",
"should_trigger": true
},
{
"query": "ich hab den plan fertig, kann ein unabhängiger agent drüber schauen?",
"should_trigger": true
},
{
"query": "plan review bitte",
"should_trigger": true
},
{
"query": "prüfe ob der plan vollständig ist — akzeptanzkriterien, tests, migrations",
"should_trigger": true
},
{
"query": "der plan steht, bitte einen zweiten blick drauf werfen auf risiken und fehlende tests",
"should_trigger": true
},
{
"query": "kannst du mit opus meinen plan prüfen lassen? ich bin nicht sicher ob die alembic-migrationen alle eingeplant sind",
"should_trigger": true
},
{
"query": "/plan-review",
"should_trigger": true
},
{
"query": "ich will sicher gehen dass mein implementierungsplan alle akzeptanzkriterien abdeckt bevor wir loslegen",
"should_trigger": true
},
{
"query": "erkläre mir wie ich einen guten implementierungsplan schreibe",
"should_trigger": false
},
{
"query": "reviewe den code in auth_service.py auf security-probleme",
"should_trigger": false
},
{
"query": "was ist der aktuelle status des projekts?",
"should_trigger": false
},
{
"query": "schreib mir einen implementierungsplan für das login-feature",
"should_trigger": false
},
{
"query": "kannst du die PR-beschreibung reviewen?",
"should_trigger": false
},
{
"query": "ich möchte den workflow reviewen auf best practices",
"should_trigger": false
},
{
"query": "bitte die testabdeckung prüfen",
"should_trigger": false
},
{
"query": "ist mein datenbankschema für user und teams gut designed?",
"should_trigger": false
},
{
"query": "security audit für die aktuellen änderungen bitte",
"should_trigger": false
},
{
"query": "reviewe die PR #23",
"should_trigger": false
},
{
"query": "checke ob meine FastAPI-endpoints die richtigen HTTP-statuscodes zurückgeben",
"should_trigger": false
},
{
"query": "kannst du den plan weiterentwickeln? ich glaube phase 3 fehlt noch",
"should_trigger": false
}
]
@@ -0,0 +1,22 @@
[
{"query": "bitte reviewe meinen plan bevor ich anfange zu implementieren", "should_trigger": true},
{"query": "ich hab den plan fertig, kann ein unabhängiger agent drüber schauen?", "should_trigger": true},
{"query": "plan review bitte", "should_trigger": true},
{"query": "prüfe ob der plan vollständig ist — akzeptanzkriterien, tests, migrations", "should_trigger": true},
{"query": "der plan steht, bitte einen zweiten blick drauf werfen auf risiken und fehlende tests", "should_trigger": true},
{"query": "kannst du mit opus meinen plan prüfen lassen? ich bin nicht sicher ob die alembic-migrationen alle eingeplant sind", "should_trigger": true},
{"query": "/plan-review", "should_trigger": true},
{"query": "ich will sicher gehen dass mein implementierungsplan alle akzeptanzkriterien abdeckt bevor wir loslegen", "should_trigger": true},
{"query": "erkläre mir wie ich einen guten implementierungsplan schreibe", "should_trigger": false},
{"query": "reviewe den code in auth_service.py auf security-probleme", "should_trigger": false},
{"query": "was ist der aktuelle status des projekts?", "should_trigger": false},
{"query": "schreib mir einen implementierungsplan für das login-feature", "should_trigger": false},
{"query": "kannst du die PR-beschreibung reviewen?", "should_trigger": false},
{"query": "ich möchte den workflow reviewen auf best practices", "should_trigger": false},
{"query": "bitte die testabdeckung prüfen", "should_trigger": false},
{"query": "ist mein datenbankschema für user und teams gut designed?", "should_trigger": false},
{"query": "security audit für die aktuellen änderungen bitte", "should_trigger": false},
{"query": "reviewe die PR #23", "should_trigger": false},
{"query": "checke ob meine FastAPI-endpoints die richtigen HTTP-statuscodes zurückgeben", "should_trigger": false},
{"query": "kannst du den plan weiterentwickeln? ich glaube phase 3 fehlt noch", "should_trigger": false}
]
@@ -0,0 +1,81 @@
Split: 13 train, 7 test (holdout=0.4)
============================================================
Iteration 1/5
Description: Startet einen unabhängigen Opus-Agenten der den aktuellen Plan auf Vollständigkeit, Risiken und fehlende Tests prüft. Aktivieren nach der Planungsphase, bevor die Implementierung beginnt.
============================================================
Train: 24/39 correct, precision=100% recall=0% accuracy=62% (49.9s)
[FAIL] rate=0/3 expected=True: kannst du mit opus meinen plan prüfen lassen? ich bin nicht
[FAIL] rate=0/3 expected=True: ich will sicher gehen dass mein implementierungsplan alle ak
[FAIL] rate=0/3 expected=True: plan review bitte
[FAIL] rate=0/3 expected=True: bitte reviewe meinen plan bevor ich anfange zu implementiere
[FAIL] rate=0/3 expected=True: ich hab den plan fertig, kann ein unabhängiger agent drüber
[PASS] rate=0/3 expected=False: ich möchte den workflow reviewen auf best practices
[PASS] rate=0/3 expected=False: ist mein datenbankschema für user und teams gut designed?
[PASS] rate=0/3 expected=False: bitte die testabdeckung prüfen
[PASS] rate=0/3 expected=False: erkläre mir wie ich einen guten implementierungsplan schreib
[PASS] rate=0/3 expected=False: checke ob meine FastAPI-endpoints die richtigen HTTP-statusc
[PASS] rate=0/3 expected=False: security audit für die aktuellen änderungen bitte
[PASS] rate=0/3 expected=False: reviewe den code in auth_service.py auf security-probleme
[PASS] rate=0/3 expected=False: kannst du den plan weiterentwickeln? ich glaube phase 3 fehl
Test : 12/21 correct, precision=100% recall=0% accuracy=57% (0.0s)
[FAIL] rate=0/3 expected=True: prüfe ob der plan vollständig ist — akzeptanzkriterien, test
[FAIL] rate=0/3 expected=True: der plan steht, bitte einen zweiten blick drauf werfen auf r
[FAIL] rate=0/3 expected=True: /plan-review
[PASS] rate=0/3 expected=False: schreib mir einen implementierungsplan für das login-feature
[PASS] rate=0/3 expected=False: was ist der aktuelle status des projekts?
[PASS] rate=0/3 expected=False: kannst du die PR-beschreibung reviewen?
[PASS] rate=0/3 expected=False: reviewe die PR #23
Improving description...
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 332, in <module>
main()
~~~~^^
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 297, in main
output = run_loop(
eval_set=eval_set,
...<11 lines>...
log_dir=log_dir,
)
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 202, in run_loop
new_description = improve_description(
client=client,
...<7 lines>...
iteration=iteration,
)
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/improve_description.py", line 114, in improve_description
response = client.messages.create(
model=model,
...<5 lines>...
messages=[{"role": "user", "content": prompt}],
)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_utils/_utils.py", line 283, in wrapper
return func(*args, **kwargs)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/resources/messages/messages.py", line 1000, in create
return self._post(
~~~~~~~~~~^
"/v1/messages",
^^^^^^^^^^^^^^^
...<30 lines>...
stream_cls=Stream[RawMessageStreamEvent],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 1368, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 1062, in request
request = self._build_request(options, retries_taken=retries_taken)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 521, in _build_request
headers = self._build_headers(options, retries_taken=retries_taken)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 451, in _build_headers
self._validate_headers(headers_dict, custom_headers)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_client.py", line 196, in _validate_headers
raise TypeError(
'"Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"'
)
TypeError: "Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"
+86
View File
@@ -0,0 +1,86 @@
[
{
"query": "feature ist fertig, bitte committen, pushen und mergen",
"should_trigger": true
},
{
"query": "alles fertig, bitte den branch jetzt mergen und aufräumen",
"should_trigger": true
},
{
"query": "ich bin zufrieden mit den änderungen, bitte jetzt shippen",
"should_trigger": true
},
{
"query": "kannst du die änderungen committen, einen PR erstellen und gleich mergen?",
"should_trigger": true
},
{
"query": "die story ist abgeschlossen, branch in main mergen bitte",
"should_trigger": true
},
{
"query": "wir sind durch, bitte alles aufräumen und in main bringen",
"should_trigger": true
},
{
"query": "/ship bitte",
"should_trigger": true
},
{
"query": "ok ich hab noch fix/login-redirect offen auf dem branch, der ist fertig — kannst du commiten, PR anlegen, mergen und den branch löschen?",
"should_trigger": true
},
{
"query": "erstelle nur einen PR, ich will selbst reviewen bevor ich merge",
"should_trigger": false
},
{
"query": "bitte nur committen, noch nicht pushen",
"should_trigger": false
},
{
"query": "kannst du die änderungen pushen?",
"should_trigger": false
},
{
"query": "tests laufen lassen und PR erstellen",
"should_trigger": false
},
{
"query": "ich will den branch noch offen halten für weitere änderungen",
"should_trigger": false
},
{
"query": "merge bitte nur wenn die CI grün ist — ich check das nochmal selbst",
"should_trigger": false
},
{
"query": "was müssen wir noch machen bevor wir mergen können?",
"should_trigger": false
},
{
"query": "kannst du den alten branch feat/old-feature löschen?",
"should_trigger": false
},
{
"query": "bitte nur git push, kein PR",
"should_trigger": false
},
{
"query": "die PR-beschreibung stimmt nicht, kannst du sie anpassen?",
"should_trigger": false
},
{
"query": "führe den plan-review durch bevor wir weitermachen",
"should_trigger": false
},
{
"query": "workflow review bitte",
"should_trigger": false
},
{
"query": "/ship",
"should_trigger": true
}
]
+22
View File
@@ -0,0 +1,22 @@
[
{"query": "feature ist fertig, bitte committen, pushen und mergen", "should_trigger": true},
{"query": "alles fertig, bitte den branch jetzt mergen und aufräumen", "should_trigger": true},
{"query": "ich bin zufrieden mit den änderungen, bitte jetzt shippen", "should_trigger": true},
{"query": "kannst du die änderungen committen, einen PR erstellen und gleich mergen?", "should_trigger": true},
{"query": "die story ist abgeschlossen, branch in main mergen bitte", "should_trigger": true},
{"query": "wir sind durch, bitte alles aufräumen und in main bringen", "should_trigger": true},
{"query": "/ship bitte", "should_trigger": true},
{"query": "ok ich hab noch fix/login-redirect offen auf dem branch, der ist fertig — kannst du commiten, PR anlegen, mergen und den branch löschen?", "should_trigger": true},
{"query": "erstelle nur einen PR, ich will selbst reviewen bevor ich merge", "should_trigger": false},
{"query": "bitte nur committen, noch nicht pushen", "should_trigger": false},
{"query": "kannst du die änderungen pushen?", "should_trigger": false},
{"query": "tests laufen lassen und PR erstellen", "should_trigger": false},
{"query": "ich will den branch noch offen halten für weitere änderungen", "should_trigger": false},
{"query": "merge bitte nur wenn die CI grün ist — ich check das nochmal selbst", "should_trigger": false},
{"query": "was müssen wir noch machen bevor wir mergen können?", "should_trigger": false},
{"query": "kannst du den alten branch feat/old-feature löschen?", "should_trigger": false},
{"query": "bitte nur git push, kein PR", "should_trigger": false},
{"query": "die PR-beschreibung stimmt nicht, kannst du sie anpassen?", "should_trigger": false},
{"query": "führe den plan-review durch bevor wir weitermachen", "should_trigger": false},
{"query": "workflow review bitte", "should_trigger": false}
]
+82
View File
@@ -0,0 +1,82 @@
Split: 14 train, 7 test (holdout=0.4)
============================================================
Iteration 1/5
Description: Finales Commit → Push → PR erstellen → Mergen → Aufräumen. Explizit vom User aufzurufen wenn ein Feature abgeschlossen ist.
============================================================
Train: 24/42 correct, precision=100% recall=0% accuracy=57% (51.1s)
[FAIL] rate=0/3 expected=True: die story ist abgeschlossen, branch in main mergen bitte
[FAIL] rate=0/3 expected=True: ich bin zufrieden mit den änderungen, bitte jetzt shippen
[FAIL] rate=0/3 expected=True: wir sind durch, bitte alles aufräumen und in main bringen
[FAIL] rate=0/3 expected=True: /ship
[FAIL] rate=0/3 expected=True: feature ist fertig, bitte committen, pushen und mergen
[FAIL] rate=0/3 expected=True: alles fertig, bitte den branch jetzt mergen und aufräumen
[PASS] rate=0/3 expected=False: die PR-beschreibung stimmt nicht, kannst du sie anpassen?
[PASS] rate=0/3 expected=False: workflow review bitte
[PASS] rate=0/3 expected=False: erstelle nur einen PR, ich will selbst reviewen bevor ich me
[PASS] rate=0/3 expected=False: kannst du den alten branch feat/old-feature löschen?
[PASS] rate=0/3 expected=False: was müssen wir noch machen bevor wir mergen können?
[PASS] rate=0/3 expected=False: bitte nur committen, noch nicht pushen
[PASS] rate=0/3 expected=False: bitte nur git push, kein PR
[PASS] rate=0/3 expected=False: führe den plan-review durch bevor wir weitermachen
Test : 12/21 correct, precision=100% recall=0% accuracy=57% (0.0s)
[FAIL] rate=0/3 expected=True: kannst du die änderungen committen, einen PR erstellen und g
[FAIL] rate=0/3 expected=True: /ship bitte
[FAIL] rate=0/3 expected=True: ok ich hab noch fix/login-redirect offen auf dem branch, der
[PASS] rate=0/3 expected=False: tests laufen lassen und PR erstellen
[PASS] rate=0/3 expected=False: merge bitte nur wenn die CI grün ist — ich check das nochmal
[PASS] rate=0/3 expected=False: kannst du die änderungen pushen?
[PASS] rate=0/3 expected=False: ich will den branch noch offen halten für weitere änderungen
Improving description...
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 332, in <module>
main()
~~~~^^
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 297, in main
output = run_loop(
eval_set=eval_set,
...<11 lines>...
log_dir=log_dir,
)
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 202, in run_loop
new_description = improve_description(
client=client,
...<7 lines>...
iteration=iteration,
)
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/improve_description.py", line 114, in improve_description
response = client.messages.create(
model=model,
...<5 lines>...
messages=[{"role": "user", "content": prompt}],
)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_utils/_utils.py", line 283, in wrapper
return func(*args, **kwargs)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/resources/messages/messages.py", line 1000, in create
return self._post(
~~~~~~~~~~^
"/v1/messages",
^^^^^^^^^^^^^^^
...<30 lines>...
stream_cls=Stream[RawMessageStreamEvent],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 1368, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 1062, in request
request = self._build_request(options, retries_taken=retries_taken)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 521, in _build_request
headers = self._build_headers(options, retries_taken=retries_taken)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 451, in _build_headers
self._validate_headers(headers_dict, custom_headers)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_client.py", line 196, in _validate_headers
raise TypeError(
'"Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"'
)
TypeError: "Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"
+86
View File
@@ -0,0 +1,86 @@
[
{
"query": "wir brauchen ein neues feature: user-registrierung mit email-verifizierung",
"should_trigger": true
},
{
"query": "neue story: passwort-reset-flow implementieren",
"should_trigger": true
},
{
"query": "ich möchte einen export-button für die auftragstabelle hinzufügen, bitte vollständig implementieren",
"should_trigger": true
},
{
"query": "kannst du das neue api-endpoint für monatsstatistiken implementieren? spec ist im ticket #42",
"should_trigger": true
},
{
"query": "wir brauchen multi-tenant-support, fang am besten mit einer vollständigen analyse an",
"should_trigger": true
},
{
"query": "neues feature: dark mode in die vue-app einbauen, von research bis PR",
"should_trigger": true
},
{
"query": "implementiere bitte das dashboard für die auftragsverwaltung, start to finish",
"should_trigger": true
},
{
"query": "ich hab hier ein neues ticket: CSV-import für kundendaten. kannst du das vollständig umsetzen?",
"should_trigger": true
},
{
"query": "kannst du den bug in der login-funktion in auth_service.py:87 fixen?",
"should_trigger": false
},
{
"query": "refactore bitte die service-schicht, zu viel code-duplikation",
"should_trigger": false
},
{
"query": "erkläre mir wie der auth-flow funktioniert",
"should_trigger": false
},
{
"query": "führe den plan-review für den aktuellen plan durch",
"should_trigger": false
},
{
"query": "mach einen PR für die aktuellen änderungen",
"should_trigger": false
},
{
"query": "wie sollte ich das feature architektonisch aufbauen? nur erklären, nicht implementieren",
"should_trigger": false
},
{
"query": "optimiere die sql-query in user_repository.py:134, sie ist zu langsam",
"should_trigger": false
},
{
"query": "füge einen test für UserService.create_user hinzu",
"should_trigger": false
},
{
"query": "kannst du die abhängigkeiten in requirements.txt updaten?",
"should_trigger": false
},
{
"query": "ship it bitte",
"should_trigger": false
},
{
"query": "bitte nur recherchieren und einen plan erstellen, noch nicht implementieren",
"should_trigger": false
},
{
"query": "workflow review bitte, ich will die skills auf best practices prüfen",
"should_trigger": false
},
{
"query": "/story",
"should_trigger": true
}
]
+22
View File
@@ -0,0 +1,22 @@
[
{"query": "wir brauchen ein neues feature: user-registrierung mit email-verifizierung", "should_trigger": true},
{"query": "neue story: passwort-reset-flow implementieren", "should_trigger": true},
{"query": "ich möchte einen export-button für die auftragstabelle hinzufügen, bitte vollständig implementieren", "should_trigger": true},
{"query": "kannst du das neue api-endpoint für monatsstatistiken implementieren? spec ist im ticket #42", "should_trigger": true},
{"query": "wir brauchen multi-tenant-support, fang am besten mit einer vollständigen analyse an", "should_trigger": true},
{"query": "neues feature: dark mode in die vue-app einbauen, von research bis PR", "should_trigger": true},
{"query": "implementiere bitte das dashboard für die auftragsverwaltung, start to finish", "should_trigger": true},
{"query": "ich hab hier ein neues ticket: CSV-import für kundendaten. kannst du das vollständig umsetzen?", "should_trigger": true},
{"query": "kannst du den bug in der login-funktion in auth_service.py:87 fixen?", "should_trigger": false},
{"query": "refactore bitte die service-schicht, zu viel code-duplikation", "should_trigger": false},
{"query": "erkläre mir wie der auth-flow funktioniert", "should_trigger": false},
{"query": "führe den plan-review für den aktuellen plan durch", "should_trigger": false},
{"query": "mach einen PR für die aktuellen änderungen", "should_trigger": false},
{"query": "wie sollte ich das feature architektonisch aufbauen? nur erklären, nicht implementieren", "should_trigger": false},
{"query": "optimiere die sql-query in user_repository.py:134, sie ist zu langsam", "should_trigger": false},
{"query": "füge einen test für UserService.create_user hinzu", "should_trigger": false},
{"query": "kannst du die abhängigkeiten in requirements.txt updaten?", "should_trigger": false},
{"query": "ship it bitte", "should_trigger": false},
{"query": "bitte nur recherchieren und einen plan erstellen, noch nicht implementieren", "should_trigger": false},
{"query": "workflow review bitte, ich will die skills auf best practices prüfen", "should_trigger": false}
]
+82
View File
@@ -0,0 +1,82 @@
Split: 14 train, 7 test (holdout=0.4)
============================================================
Iteration 1/5
Description: Orchestriert den vollständigen Story-Lifecycle von Planung bis PR. Aktivieren wenn eine neue User Story oder ein neues Feature implementiert werden soll.
============================================================
Train: 24/42 correct, precision=100% recall=0% accuracy=57% (50.9s)
[FAIL] rate=0/3 expected=True: ich möchte einen export-button für die auftragstabelle hinzu
[FAIL] rate=0/3 expected=True: /story
[FAIL] rate=0/3 expected=True: neues feature: dark mode in die vue-app einbauen, von resear
[FAIL] rate=0/3 expected=True: wir brauchen multi-tenant-support, fang am besten mit einer
[FAIL] rate=0/3 expected=True: neue story: passwort-reset-flow implementieren
[FAIL] rate=0/3 expected=True: wir brauchen ein neues feature: user-registrierung mit email
[PASS] rate=0/3 expected=False: ship it bitte
[PASS] rate=0/3 expected=False: workflow review bitte, ich will die skills auf best practice
[PASS] rate=0/3 expected=False: füge einen test für UserService.create_user hinzu
[PASS] rate=0/3 expected=False: kannst du den bug in der login-funktion in auth_service.py:8
[PASS] rate=0/3 expected=False: optimiere die sql-query in user_repository.py:134, sie ist z
[PASS] rate=0/3 expected=False: refactore bitte die service-schicht, zu viel code-duplikatio
[PASS] rate=0/3 expected=False: kannst du die abhängigkeiten in requirements.txt updaten?
[PASS] rate=0/3 expected=False: bitte nur recherchieren und einen plan erstellen, noch nicht
Test : 12/21 correct, precision=100% recall=0% accuracy=57% (0.0s)
[FAIL] rate=0/3 expected=True: kannst du das neue api-endpoint für monatsstatistiken implem
[FAIL] rate=0/3 expected=True: implementiere bitte das dashboard für die auftragsverwaltung
[FAIL] rate=0/3 expected=True: ich hab hier ein neues ticket: CSV-import für kundendaten. k
[PASS] rate=0/3 expected=False: führe den plan-review für den aktuellen plan durch
[PASS] rate=0/3 expected=False: wie sollte ich das feature architektonisch aufbauen? nur erk
[PASS] rate=0/3 expected=False: erkläre mir wie der auth-flow funktioniert
[PASS] rate=0/3 expected=False: mach einen PR für die aktuellen änderungen
Improving description...
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 332, in <module>
main()
~~~~^^
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 297, in main
output = run_loop(
eval_set=eval_set,
...<11 lines>...
log_dir=log_dir,
)
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 202, in run_loop
new_description = improve_description(
client=client,
...<7 lines>...
iteration=iteration,
)
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/improve_description.py", line 114, in improve_description
response = client.messages.create(
model=model,
...<5 lines>...
messages=[{"role": "user", "content": prompt}],
)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_utils/_utils.py", line 283, in wrapper
return func(*args, **kwargs)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/resources/messages/messages.py", line 1000, in create
return self._post(
~~~~~~~~~~^
"/v1/messages",
^^^^^^^^^^^^^^^
...<30 lines>...
stream_cls=Stream[RawMessageStreamEvent],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 1368, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 1062, in request
request = self._build_request(options, retries_taken=retries_taken)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 521, in _build_request
headers = self._build_headers(options, retries_taken=retries_taken)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 451, in _build_headers
self._validate_headers(headers_dict, custom_headers)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_client.py", line 196, in _validate_headers
raise TypeError(
'"Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"'
)
TypeError: "Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"
@@ -0,0 +1,82 @@
[
{
"query": "reviewe den aktuellen workflow und sag mir was verbessert werden kann",
"should_trigger": true
},
{
"query": "sind die skills noch up to date?",
"should_trigger": true
},
{
"query": "bitte prüfe alle skills und agenten auf konsistenz",
"should_trigger": true
},
{
"query": "ich möchte wissen ob meine claude-konfiguration best practices folgt",
"should_trigger": true
},
{
"query": "gibt es widersprüche zwischen den skills in diesem repo?",
"should_trigger": true
},
{
"query": "schau mal über die workflow-konfiguration, besonders den /ship-skill stimmt was nicht",
"should_trigger": true
},
{
"query": "workflow review bitte",
"should_trigger": true
},
{
"query": "vergleiche unsere skills mit der externen best-practice-referenz und zeig mir abweichungen",
"should_trigger": true
},
{
"query": "reviewe meinen code in orders_service.py auf qualität",
"should_trigger": false
},
{
"query": "bitte den offenen PR #15 reviewen",
"should_trigger": false
},
{
"query": "wie funktioniert der story-lifecycle?",
"should_trigger": false
},
{
"query": "erstelle einen neuen skill für automatisches changelog-schreiben",
"should_trigger": false
},
{
"query": "prüfe meinen implementierungsplan",
"should_trigger": false
},
{
"query": "was bedeutet das feld context: fork in einem skill?",
"should_trigger": false
},
{
"query": "bitte den security-audit für die neuen endpoints durchführen",
"should_trigger": false
},
{
"query": "wie wird der test-runner agent gestartet?",
"should_trigger": false
},
{
"query": "kannst du das CLAUDE.md reviewen und verbessern?",
"should_trigger": false
},
{
"query": "check mal ob settings.json korrekt ist",
"should_trigger": false
},
{
"query": "zeig mir alle hooks die aktuell konfiguriert sind",
"should_trigger": false
},
{
"query": "was sind die unterschiede zwischen /go und /ship?",
"should_trigger": false
}
]
@@ -0,0 +1,22 @@
[
{"query": "reviewe den aktuellen workflow und sag mir was verbessert werden kann", "should_trigger": true},
{"query": "sind die skills noch up to date?", "should_trigger": true},
{"query": "bitte prüfe alle skills und agenten auf konsistenz", "should_trigger": true},
{"query": "ich möchte wissen ob meine claude-konfiguration best practices folgt", "should_trigger": true},
{"query": "gibt es widersprüche zwischen den skills in diesem repo?", "should_trigger": true},
{"query": "schau mal über die workflow-konfiguration, besonders den /ship-skill stimmt was nicht", "should_trigger": true},
{"query": "workflow review bitte", "should_trigger": true},
{"query": "vergleiche unsere skills mit der externen best-practice-referenz und zeig mir abweichungen", "should_trigger": true},
{"query": "reviewe meinen code in orders_service.py auf qualität", "should_trigger": false},
{"query": "bitte den offenen PR #15 reviewen", "should_trigger": false},
{"query": "wie funktioniert der story-lifecycle?", "should_trigger": false},
{"query": "erstelle einen neuen skill für automatisches changelog-schreiben", "should_trigger": false},
{"query": "prüfe meinen implementierungsplan", "should_trigger": false},
{"query": "was bedeutet das feld context: fork in einem skill?", "should_trigger": false},
{"query": "bitte den security-audit für die neuen endpoints durchführen", "should_trigger": false},
{"query": "wie wird der test-runner agent gestartet?", "should_trigger": false},
{"query": "kannst du das CLAUDE.md reviewen und verbessern?", "should_trigger": false},
{"query": "check mal ob settings.json korrekt ist", "should_trigger": false},
{"query": "zeig mir alle hooks die aktuell konfiguriert sind", "should_trigger": false},
{"query": "was sind die unterschiede zwischen /go und /ship?", "should_trigger": false}
]
@@ -0,0 +1,81 @@
Split: 13 train, 7 test (holdout=0.4)
============================================================
Iteration 1/5
Description: Reviewt Skills, Agenten und Konfigurationsdateien dieses Repos auf Vollständigkeit, Konsistenz und Best Practices. Erstellt einen umsetzbaren Plan für Verbesserungen.
============================================================
Train: 24/39 correct, precision=100% recall=0% accuracy=62% (48.5s)
[FAIL] rate=0/3 expected=True: bitte prüfe alle skills und agenten auf konsistenz
[FAIL] rate=0/3 expected=True: schau mal über die workflow-konfiguration, besonders den /sh
[FAIL] rate=0/3 expected=True: reviewe den aktuellen workflow und sag mir was verbessert we
[FAIL] rate=0/3 expected=True: vergleiche unsere skills mit der externen best-practice-refe
[FAIL] rate=0/3 expected=True: sind die skills noch up to date?
[PASS] rate=0/3 expected=False: was bedeutet das feld context: fork in einem skill?
[PASS] rate=0/3 expected=False: wie wird der test-runner agent gestartet?
[PASS] rate=0/3 expected=False: reviewe meinen code in orders_service.py auf qualität
[PASS] rate=0/3 expected=False: bitte den security-audit für die neuen endpoints durchführen
[PASS] rate=0/3 expected=False: zeig mir alle hooks die aktuell konfiguriert sind
[PASS] rate=0/3 expected=False: kannst du das CLAUDE.md reviewen und verbessern?
[PASS] rate=0/3 expected=False: bitte den offenen PR #15 reviewen
[PASS] rate=0/3 expected=False: was sind die unterschiede zwischen /go und /ship?
Test : 12/21 correct, precision=100% recall=0% accuracy=57% (0.0s)
[FAIL] rate=0/3 expected=True: ich möchte wissen ob meine claude-konfiguration best practic
[FAIL] rate=0/3 expected=True: gibt es widersprüche zwischen den skills in diesem repo?
[FAIL] rate=0/3 expected=True: workflow review bitte
[PASS] rate=0/3 expected=False: erstelle einen neuen skill für automatisches changelog-schre
[PASS] rate=0/3 expected=False: wie funktioniert der story-lifecycle?
[PASS] rate=0/3 expected=False: prüfe meinen implementierungsplan
[PASS] rate=0/3 expected=False: check mal ob settings.json korrekt ist
Improving description...
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 332, in <module>
main()
~~~~^^
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 297, in main
output = run_loop(
eval_set=eval_set,
...<11 lines>...
log_dir=log_dir,
)
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py", line 202, in run_loop
new_description = improve_description(
client=client,
...<7 lines>...
iteration=iteration,
)
File "/home/martin/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/improve_description.py", line 114, in improve_description
response = client.messages.create(
model=model,
...<5 lines>...
messages=[{"role": "user", "content": prompt}],
)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_utils/_utils.py", line 283, in wrapper
return func(*args, **kwargs)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/resources/messages/messages.py", line 1000, in create
return self._post(
~~~~~~~~~~^
"/v1/messages",
^^^^^^^^^^^^^^^
...<30 lines>...
stream_cls=Stream[RawMessageStreamEvent],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 1368, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 1062, in request
request = self._build_request(options, retries_taken=retries_taken)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 521, in _build_request
headers = self._build_headers(options, retries_taken=retries_taken)
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_base_client.py", line 451, in _build_headers
self._validate_headers(headers_dict, custom_headers)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/martin/.local/lib/python3.13/site-packages/anthropic/_client.py", line 196, in _validate_headers
raise TypeError(
'"Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"'
)
TypeError: "Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted"