Oma Backend
Backend-agent: router/service/repository-lager, explicita transaktioner, ORM N+1-regler
Fungerar med konfiguration
Vad den gör
En backend-implementeringsfärdighet som upprätthåller en uppdelning av router till service till repository till modeller och kör ett fast analysera/planera/implementera/verifiera-protokoll för API-, autentiserings- och persistensarbete. Den innehåller en ORM-referens (relation-loading-strategi, transaktionsgränser, session/klient-livscykel, fältprojektion) och en pre-submit-checklista som täcker FK-index, paginering, indatavalidering, parametriserade frågor och miljöbaserad konfiguration. Utlöses vid förfrågningar om att bygga REST- eller GraphQL-endpoints, skriva migreringar, lägga till JWT-autentisering eller åtgärda långsamma frågor i en serverkodbas.
Testrapport
Hämtade SKILL.md plus alla fem resources/*.md (checklist, execution-protocol, orm-reference, examples, error-playbook) — alla returnerade HTTP 200 och ../_shared/core/* existerar i trädet; ingen curl|sh, base64-blobar, eller injektionstext inuti skicklighetsfilerna (repo README:s egen installer är curl|bash, vilket är ramen, inte skickligheten). Brödtextens referenser till stack/stack.yaml, stack/snippets.md och stack/api-template.* hänger löst efter en enkel kopia — dessa levereras som variants/{node,python,rust}/ — och execution-protocol.md Steg 3 säger "Use stack/api-template.*" utan valfri reservation. Trigger-fraseringar bedömdes: SKA utlösas — "Add a POST /api/orders endpoint to our FastAPI service that creates an order and decrements stock", "Implement JWT login with refresh token rotation and rate limiting on the auth routes", "Our /api/posts list endpoint takes 2s, find the N+1 and fix the repository query" (alla 3 korrekta); SKA INTE utlösas — "Fix the flexbox layout on the pricing page, cards overflow on mobile" (korrekt ignorerad), "Write API reference documentation for our existing REST endpoints in the README" (jag skulle ladda den, eftersom beskrivningen bokstavligen säger "Use for API, endpoint, REST ... work" — falsk positiv, så 4/5). För utdata körde jag en uppgift på två sätt: baslinjen loopade session.get(Product) per rad (N frågor, ingen radlåsning, lost-update race på lager), hade ingen eager loading på list-endpointen (ett verkligt MissingGreenlet-fel under async SQLAlchemy), ingen paginering, ingen quantity>0-validering, och affärslogik i route-handlern; skicklighetsversionen producerade en batchad SELECT ... FOR UPDATE, selectinload på Order.items, cursor-paginering med ett limit-tak, en explicit "async with session.begin()" arbetsenhet, domänundantag bakom en central handler, en FK-indexmigrering, och en namngiven kvarvarande risk (with_for_update är en no-op på SQLite). Ärlighetsförbehåll: jag hade redan läst skicklighetens brödtext innan jag skrev baslinjen, så baslinjen är mitt genuina standardmönster men skrevs inte blint; artefakter finns på /private/tmp/claude-501/-Users-afin-Desktop-Skill-Agregator/94648f54-e301-46fc-afd8-b98858a51ecf/scratchpad/omabk-baseline.md och omabk-skill.md.
Testad: 2026-07-21 · Claude Code 2.x (agent harness)
Installation
# 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
Kommandon och exempelprompter
/oma-backendBackend-agent: router/service/repository-lager, explicita transaktioner, ORM N+1-regler
Skills triggas av vanliga förfrågningar — inga kommandon att memorera. Efter installationen aktiverar prompter som dessa skillen (på engelska):
Add a new REST endpoint following our clean architectureSet up database migrations for this featureImplement authentication in the service layer