# pony

Правило для Cursor задаёт стиль работы с Pony ORM: сессии, запросы, типизация, разделение слоёв. Пригодится, если проект на Python с Pony ORM.

- правило · `type=rule` · Cursor · ★ 3579
- Автор: sanjeed5
- Лицензия: CC0-1.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/pony.mdc
- Обновлён: 2026-05-19
- HTML: https://affpapa.org/nevibecode/rules/pony

## Что делает

Файл `pony.mdc` подключается к Cursor и подсказывает агенту, как писать код на Pony ORM. Внутри шесть разделов: работа через `db_session`, генераторные запросы вместо ручного SQL, разделение моделей и сервисов, типизация сущностей, доверие встроенному кэшу и IdentityMap, синхронизация схемы с моделями. Каждое правило идёт парой примеров — как не надо и как надо.

Правило срабатывает на файлах `**/*.py`, так что в Python-проекте оно подхватится само. Ничего дополнительно ставить не нужно: это обычный mdc-файл в `.cursor/rules/`. Правда, польза будет только там, где уже используется Pony ORM — на SQLAlchemy или Django ORM советы про `db_session` и `select(p for p in Product)` просто не к месту.

Автор советует держать сущности в `models.py`, а операции с данными — в `repositories.py` или `services.py`. Это влияет на структуру проекта, поэтому решать стоит до того, как кодовая база разрастётся.

## Установка

### Cursor (родная платформа)

**Вручную: положить файлы**
- Файл: `.cursor/rules/pony.mdc` — Во frontmatter: description, globs, alwaysApply

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/pony.md` — Поле paths во frontmatter ограничивает файлы: globs из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### GitHub Copilot

**Вручную: положить файлы**
- Файл: `.github/instructions/pony.instructions.md` — Поле applyTo задаёт, к каким файлам применять: globs из источника → applyTo

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/pony.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/pony.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/pony.mdc

## Когда брать
- забыть закоммитить транзакцию и получить утечку соединения
- вытащить все записи в Python и фильтровать их в цикле
- смешать модели, настройку базы и бизнес-логику в одном файле
- потерять типы у атрибутов сущностей и параметров функций
- написать свой кэш поверх IdentityMap и ловить устаревшие данные

## Примеры запросов агенту
- Перепиши эту функцию так, чтобы вся работа с базой шла внутри `db_session`.
- Замени фильтрацию в Python на запрос через `select` по `Product`.
- Разнеси этот файл на `models.py` и `services.py` и добавь типы.

## Похожие
- [django-expert](https://affpapa.org/nevibecode/skills/django-expert.md) — скилл · 5700 установок
- [SQLAlchemy ORM Expert](https://affpapa.org/nevibecode/skills/sqlalchemy-orm-expert.md) — скилл · 470 установок
- [odoo-development](https://affpapa.org/nevibecode/skills/odoo-development.md) — скилл · 2300 установок
- [odoo-19](https://affpapa.org/nevibecode/skills/odoo-19.md) — скилл · 2000 установок
- [django-python](https://affpapa.org/nevibecode/skills/django-python.md) — скилл · 933 установки
- [django-patterns](https://affpapa.org/nevibecode/skills/django-patterns.md) — скилл · 5200 установок

Из того же набора: [sanjeed5/awesome-cursor-rules-mdc](https://affpapa.org/nevibecode/by/sanjeed5/awesome-cursor-rules-mdc.md) — 87 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
