Oma Backend

Backend-agent: router/service/repository-lager, explicita transaktioner, ORM N+1-regler

av first-fluke · first-fluke/oh-my-agent

Fungerar med konfiguration ★ 7.6/10

Oma Backend — Backend-agent: router/service/repository-lager, explicita transaktioner, ORM N+1-regler

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 architecture
  • Set up database migrations for this feature
  • Implement authentication in the service layer