Oma Backend
Agent backendowy: warstwowanie router/service/repository, jawne transakcje, zasady ORM N+1
Działa po konfiguracji
Co robi ten skill
Umiejętność implementacji backendu, która wymusza podział router na serwis, serwis na repozytorium, repozytorium na modele i uruchamia stały protokół analizy/planowania/implementacji/weryfikacji dla pracy z API, uwierzytelnianiem i trwałością. Zawiera referencje ORM (strategia ładowania relacji, granice transakcji, cykl życia sesji/klienta, projekcja pól) oraz listę kontrolną przed wysłaniem, obejmującą indeksy FK, paginację, walidację danych wejściowych, sparametryzowane zapytania i konfigurację opartą na zmiennych środowiskowych. Uruchamia się na żądania budowania punktów końcowych REST lub GraphQL, pisania migracji, dodawania uwierzytelniania JWT lub naprawiania wolnych zapytań w kodzie serwera.
Raport z testu
Pobrano SKILL.md plus wszystkie pięć resources/*.md (checklist, execution-protocol, orm-reference, examples, error-playbook) — każdy zwrócił HTTP 200, a ../_shared/core/* istnieje w drzewie; brak curl|sh, blobów base64 lub tekstu iniekcji w plikach umiejętności (własny instalator README repozytorium to curl|bash, co jest uprzężą, a nie umiejętnością). Odwołania w treści do stack/stack.yaml, stack/snippets.md i stack/api-template.* są wiszące po zwykłym skopiowaniu — te są dostarczane jako variants/{node,python,rust}/ — a execution-protocol.md Krok 3 mówi "Use stack/api-template.*" bez opcjonalnego zabezpieczenia. Frazy wyzwalające ocenione: POWINIEN zadziałać — "Dodaj punkt końcowy POST /api/orders do naszej usługi FastAPI, który tworzy zamówienie i zmniejsza stan magazynowy", "Zaimplementuj logowanie JWT z rotacją tokenów odświeżania i ograniczaniem szybkości na trasach uwierzytelniania", "Nasz punkt końcowy listy /api/posts trwa 2s, znajdź N+1 i napraw zapytanie repozytorium" (wszystkie 3 poprawne); NIE POWINIEN zadziałać — "Napraw układ flexbox na stronie cennika, karty przepełniają się na urządzeniach mobilnych" (poprawnie zignorowane), "Napisz dokumentację referencyjną API dla naszych istniejących punktów końcowych REST w README" (załadowałbym to, ponieważ opis dosłownie mówi "Użyj dla API, endpoint, REST ... pracy" — fałszywy pozytyw, więc 4/5). Dla wyjścia uruchomiłem jedno zadanie na dwa sposoby: wersja bazowa zapętlała session.get(Product) na linię (N zapytań, brak blokady wiersza, wyścig utraconej aktualizacji na stanie magazynowym), nie miała eager loading na punkcie końcowym listy (rzeczywisty błąd MissingGreenlet w async SQLAlchemy), brak paginacji, brak walidacji quantity>0 i logika biznesowa w handlerze trasy; wersja umiejętności wygenerowała jedno batched SELECT ... FOR UPDATE, selectinload na Order.items, paginację kursorową z limitem, jawną jednostkę pracy "async with session.begin()", wyjątki domenowe za centralnym handlerem, migrację indeksu FK i nazwane ryzyko resztkowe (with_for_update jest no-op na SQLite). Uwaga dotycząca uczciwości: przeczytałem już treść umiejętności przed napisaniem wersji bazowej, więc wersja bazowa jest moim prawdziwym domyślnym wzorcem, ale nie została napisana na ślepo; artefakty znajdują się w /private/tmp/claude-501/-Users-afin-Desktop-Skill-Agregator/94648f54-e301-46fc-afd8-b98858a51ecf/scratchpad/omabk-baseline.md i omabk-skill.md.
Testowano: 2026-07-21 · Claude Code 2.x (agent harness)
Instalacja
# clone the harness (the skill references ../_shared, so copy that too) git clone --depth 1 https://github.com/first-fluke/oh-my-agent /tmp/oma mkdir -p ~/.claude/skills cp -R /tmp/oma/.agents/skills/oma-backend ~/.claude/skills/ cp -R /tmp/oma/.agents/skills/_shared ~/.claude/skills/ # optional: materialize the stack/ folder the body references, from a variant cp -R ~/.claude/skills/oma-backend/variants/python ~/.claude/skills/oma-backend/stack # alternatives (whole suite): bunx oh-my-agent@latest # or: apm install first-fluke/oh-my-agent/.agents/skills/oma-backend
Komendy i przykładowe prompty
/oma-backendAgent backendowy: warstwowanie router/service/repository, jawne transakcje, zasady ORM N+1
Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):
Add a new REST endpoint following our clean architectureSet up database migrations for this featureImplement authentication in the service layer