Преглед на файлове

Require the capability banner to be kept current

The banner derives from real overrides, but the labels behind it do not:
a new method shows up in no log until _CAPABILITY_LABELS gains an entry,
and the model learns nothing until the platform_hint mentions it. Write
both steps down so an added capability is announced, not just present.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Paul-Dieter Klumpp преди 1 седмица
родител
ревизия
1b4462d2d7
променени са 1 файла, в които са добавени 26 реда и са изтрити 0 реда
  1. 26 0
      AGENTS.md

+ 26 - 0
AGENTS.md

@@ -16,6 +16,32 @@ PYTHONPATH=/tmp/hermes uv run --with pyyaml pytest -q
 Dev-Dependencies. Liegt der Checkout schon irgendwo, den Pfad einfach
 wiederverwenden statt neu zu klonen.
 
+## Capabilities
+
+**Erweiterst du die Fähigkeiten des Adapters, pflege das Startup-Banner mit.**
+
+Beim Registrieren loggt `_capabilities()` (in `adapter.py`), was das Plugin kann
+— damit man beim Start sieht, was zur Verfügung steht, statt es aus dem Code
+lesen zu müssen. Ob eine Fähigkeit als vorhanden gilt, wird aus echten Overrides
+abgeleitet: sie zählt nur, wenn `ChattoAdapter` die Methode von
+`BasePlatformAdapter` ersetzt. Das Label dazu steht aber in `_CAPABILITY_LABELS`
+und wird *nicht* automatisch gefunden.
+
+Beim Hinzufügen einer überschriebenen `BasePlatformAdapter`-Methode also:
+
+1. Eintrag in `_CAPABILITY_LABELS` ergänzen (Methodenname → Bezeichnung, die für
+   jemanden ohne Codekenntnis Sinn ergibt). Ohne diesen Schritt kann das Plugin
+   die Sache zwar, sagt es aber nirgends.
+2. Prüfen, ob der `platform_hint` in `register()` sie erwähnen muss. Der Hint
+   geht in den System-Prompt und ist das Einzige, woraus das Modell erfährt, was
+   der Kanal kann — fehlt der Hinweis, behilft sich der Agent mit der Shell.
+3. Test in `TestRegistration` ergänzen, falls die Fähigkeit nutzerseitig sichtbar
+   ist.
+
+Umgekehrt gilt dasselbe: fällt eine Methode weg, verschwindet ihre Zeile von
+selbst aus dem Log — der Eintrag in `_CAPABILITY_LABELS` sollte dann trotzdem
+mit raus.
+
 ## Shell Scripts
 
 **Always run `shellcheck` after editing any shell scripts.**