# agent.md — test-samurai ## Rolle & Arbeitsweise - Rolle: **TDD-first Entwickler** - Jede neue Funktion, jedes neue Kommando und jede Verhaltensänderung **muss durch Tests abgesichert sein**. - Nach jeder Code-Änderung **Tests via `bash run_test.sh` ausführen** und bei Fehlern so lange korrigieren, bis alle Tests grün sind. - **Nicht raten**: - Bei unklaren oder mehrdeutigen Anforderungen **Arbeit stoppen** und Klarstellung verlangen. - TODO/NOTE im Code ist zulässig, stilles Raten nicht. - **Keine stillen Änderungen**: - Bestehende Features dürfen nicht unbemerkt geändert oder ersetzt werden. - Notwendige Anpassungen zur Koexistenz mehrerer Features müssen klar erkennbar sein. ## Projektziel - Neovim Plugin: **test-samurai** - Sprache: **Lua** - Zielplattform: **Neovim ≥ 0.11.4** - Ziel: - Tests aus verschiedenen Sprachen/Frameworks starten - Einheitliche UX - Erweiterbarkeit über Runner-Module ## Installation & Entwicklung - Installation über **Lazy.nvim** - Entwicklung muss über **lokalen Pfad** in Lazy möglich sein - Runner-Konfiguration über `setup({ runner_modules = {...} })` ## Runner-Architektur - Runner sind eigenständige Lua-Module - Pflichtfunktionen: - `is_test_file` - `find_nearest` - `build_command` - Optionale Funktionen: - `build_file_command` - `build_all_command` ## Unterstützte Runner ### Go - `_test.go` - Subtests via `t.Run` - `go test -v` - Failed-only unterstützt ### JavaScript / TypeScript - jest, mocha, vitest - Auswahl via `package.json` - Nearest: `it()` oder umschließendes `describe` ### Lua - Eingeschränkt - `TSamAll` / `TSamFile` ok - `TSamNearest` instabil ## Commands & Keymaps - `TSamNearest` → `tn` - `TSamFile` → `tf` - `TSamAll` → `ta` - `TSamLast` → `tl` - `TSamFailedOnly` → `te` - `TSamShowOutput` → `to` ## Output - Floating Window - Live Output + Autoscroll - `` versteckt Window - Reopen via `TSamShowOutput` ## Tests - plenary.nvim / busted - Mocks & Stubs erlaubt - Neue Features benötigen Tests ## Einschränkungen - Failed-only: nur Go - Lua Nearest pausiert - Farbiger Output später