backendskills — скилл

Три скилла для бэкенда: агент защищает доступ, данные и миграции схемы, критических ошибок стало 2 из 150 запусков вместо 25.

  • 53 ★ репозитория
  • Последний коммит
Скилл

Минимальный доступ

Почему такой уровень

  • Скиллы только добавляют инструкции агенту и сами ничего не запускают.
Все причины и проверки

globalmpc/backendskills

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/backendskills

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Минимальный доступИнструмент ничего не запускает и не ходит в сеть.

  • Скиллы только добавляют инструкции агенту и сами ничего не запускают.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

backendskills учит Claude Code, Codex и Cursor писать серверный код с запасом надежности. Набор из трех скиллов: `api-endpoint` проверяет, кто вызывает ручку, превращает плохой ввод в ответы 4xx и ограничивает частоту входа; `data-integrity` ставит блокировки или условные обновления, ограничения `UNIQUE` и ключи идемпотентности на платежах и рассылках; `db-migration` ведет миграции по схеме «расширить, затем сузить», с конкурентными индексами, тайм-аутами блокировок и пакетным заполнением. Автор проверил скиллы на 15 задачах с тестовым приложением: на скрытых проверках, вроде 20 покупателей на 5 единиц товара, критические ошибки сократились с 25 до 2 из 150 запусков. Основная разница пришлась на две задачи: ограничение попыток входа и переименование столбца.

Для кого. Бэкенд-разработчикам, которые отдают код ИИ-агенту и хотят избежать ошибок с авторизацией, деньгами и схемой базы.

Подходит, если

  • Агент добавляет ручку API, которая читает чужие заказы по id в адресе.
  • Платежный вебхук или возврат должен выдержать повторную доставку.
  • Столбец переименовывают при поэтапном выкате, когда старая версия приложения еще работает.
  • Нужен лимит попыток входа и защита дорогих маршрутов.

Не подходит, если

  • Проект не имеет серверной части.
  • Нужны правила для интерфейса или мобильного клиента.
  • Команда хочет подробную документацию по базе, а не поведение агента.

Пример запроса к агенту

Добавь эндпоинт получения заказа и проверь, что пользователь видит только свои заказы.

Ограничения

Примеры в скиллах написаны на TypeScript с `pg`, SQL рассчитан на Postgres, для MySQL в тексте есть замены. Раздел «Make it yours» в каждом скилле автор оставил пустым: пока там «not set», агент следует тому, что уже принято в репозитории. Цифры 25 против 2 получены на Sonnet 5.5 и Haiku 5.5 по пять запусков на задачу, 25 запусков не вошли в итог из-за лимита аккаунта. Агент с скиллами делает больше шагов: около 0,11 доллара за запуск против 0,06.

Как отключить. Удалите папки скиллов из каталога скиллов агента. Другие файлы проекта они не меняют.

Частые вопросы

Как поставить backendskills?

Командой `npx skills add globalmpc/backendskills`. Скиллы подходят для Claude Code, Codex и Cursor.

Какие скиллы входят в набор?

Три: `api-endpoint`, `data-integrity` и `db-migration`. Каждый заканчивается разделом для соглашений вашей команды.

Как автор измерял результат?

Агентам дали 15 задач с этими скиллами и без них, а затем запустили скрытые проверки: 20 покупателей одновременно, чтение чужого заказа, старая версия на новой схеме.

Подходит ли набор для MySQL?

Да, правила не привязаны к стеку. В тексте скилла указаны замены `on duplicate key update` для запросов с `on conflict`.

Что делать, если агент все равно ошибся?

Откройте issue в репозитории с промптом и диффом. Скиллы правят в папке `skills/` и пересобирают командой `node scripts/build-dist.mjs`.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Набор из 14 скиллов для Java Spring Boot: от анализа требований и генерации кода до тестов, ревью и Docker-развертывания.

СкиллРасширенный доступ103Звезды репозитория
Официальный

Бэкенд на PostgreSQL, который агент строит через MCP, а платформа проверяет каждое изменение и умеет откатить.

MCP-серверРасширенный доступ83Звезды репозитория

17 скиллов учат агента писать приложения на Convex по документации и вести проект через PRD, task.md и журнал изменений

СкиллРасширенный доступ404Звезды репозитория

Сотни скиллов по провайдерам учат агента принимать вебхуки, проверять подписи и разбирать события; примеры для Express и FastAPI.

СкиллМинимальный доступ101Звезды репозитория
Выбор редакции

Официальные скиллы Supabase: помогают агенту работать с базой, Auth, Edge Functions и лучшими практиками Postgres

СкиллМинимальный доступ3 тыс.Звезды репозитория
Официальный

Плагин Claude Code для Butterbase: 39 скиллов и 34 команды ведут от идеи до запущенного приложения на облачном бэкенде

ПлагинШирокий доступ536Звезды репозитория

Коротко о README

Проект приводит таблицу результатов по 15 задачам и описание трех скиллов. Бенчмарк с сырыми запусками лежит в папке `bench/` и воспроизводится.

Бейдж для README

Исходный SKILL.md

---
name: api-endpoint
description: Rules for HTTP API endpoints. Use when adding or changing any endpoint (route, request or response shape, status codes), especially login and ones that read or change other users' data.
---

# API endpoint

Examples are TypeScript with `pg`. The rules apply to any stack.

The SQL is Postgres. On MySQL, `on conflict ... do update` is `on duplicate key update`, and `on conflict
do nothing` is `on duplicate key update id = id` (0 affected rows: the row was there; not `insert ignore`,
which hides other errors too). There's no `returning`: read the row back in the same transaction.

Anything that changes money, stock or balances, or calls a payment provider or email: also follow the
`data-integrity` skill (transactions, locks, idempotency).

## 1. Check who may call it, not just that they're logged in

Why: a logged-in user who changes the id in the URL reads or edits someone else's data (IDOR).

```ts
// Bad: any logged-in user can read any invoice
const { rows } = await pool.query("select * from invoices where id = $1", [id]);

// Good: scope the query to the caller; someone else's invoice looks the same as a missing one
const { rows } = await pool.query(
  "select id, number, total_cents, status from invoices where id = $1 and account_id = $2", [id, user.accountId]);
if (rows.length === 0) return sendError(res, 404, "not_found", "Invoice not found");
```

Admins or other roles get access through an explicit role check, never by skipping the filter.

Webhooks have no logged-in user, so the signature is the check: verify it on the raw request body with a
constant-time compare (`crypto.timingSafeEqual`, after checking both are the same length, or it throws)
before you parse or trust anything in it. Unsigned or wrongly signed: 401, and nothing changes.

## 2. Bad input is a 4xx, never a 500

Why: a 500 on bad input hides real errors in the noise. Bad values that slip through (negative amounts,
fractions) corrupt data.

- Validate the body and path params at the edge: types, integers where money and quantities are counted,
  ranges (`quantity >= 1`, `amountCents > 0`), required fields, ids that aren't numbers.
- Handle what a request can legally contain but your code doesn't expect, like the same item listed
  twice. Merge the duplicates or reject them with a 400, but don't let the request crash into a 500.

Сообщить о проблеме