api-pagination — скилл для Claude Code: пагинация API
Скилл подсказывает агенту, как отдавать большие коллекции: offset/limit, курсоры, keyset. Пригодится, когда список пользователей или результатов поиска не влезает в один ответ.
npx skills add aj-geddes/useful-ai-prompts --skill api-pagination -a claude-codeЧто делает api-pagination
Скилл описывает три подхода к пагинации и разбирает каждый в отдельном справочнике внутри references/. Есть файлы про offset/limit, курсорную и keyset-пагинацию, отдельно про поиск и форматы ответа. Для Python — вариант на SQLAlchemy. Агент читает нужный справочник и пишет код под ваш случай.
В SKILL.md лежит краткий пример на Node.js: страница и лимит берутся из query-параметров, лимит ограничен сотней, ответ содержит data и блок pagination с общим числом записей и признаком следующей страницы. Дальше идут списки рекомендаций: сортировать по индексированным полям, не разрешать произвольный размер страницы, не считать строки на каждом запросе.
Отдельный пункт — не смешивать стратегии в одном API. Если начали с offset и на середине списка перешли на курсор, клиент потеряет позицию. Это повод выбрать способ до того, как появится первый эндпоинт со списком.
Какие задачи решает
- отдать список пользователей постранично
- сделать бесконечную прокрутку в интерфейсе
- ускорить запросы к таблице на миллионы строк
- добавить пагинацию в результаты поиска
- выбрать между offset и курсором для нового API
Примеры запросов агенту
- добавь пагинацию в эндпоинт /api/users, лимит 20
- перепиши этот список на keyset-пагинацию
- покажи формат ответа с курсором для поиска
Как установить api-pagination
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill api-pagination -a claude-code2Вручную: положить файлы
~/.claude/skills/api-pagination/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/api-pagination/
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill api-pagination -a codex2Вручную: положить файлы
.agents/skills/api-pagination/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill api-pagination -a cursor2Вручную: положить файлы
.cursor/skills/api-pagination/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install aj-geddes/useful-ai-prompts api-pagination2Вручную: положить файлы
.github/skills/api-pagination/SKILL.md1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill api-pagination -a gemini-cli2Командой платформы
gemini skills install https://github.com/aj-geddes/useful-ai-prompts --path skills/api-paginationВручную: положить файлы
.devin/skills/api-pagination/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill api-pagination -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о api-pagination
Как установить api-pagination в Claude?
Выполните npx skills add aj-geddes/useful-ai-prompts --skill api-pagination -a claude-code. Скилл окажется в ~/.claude/skills/api-pagination/SKILL.md.
Что делает api-pagination?
Даёт агенту готовые схемы пагинации: offset/limit, курсорную и keyset. Внутри шесть справочников с примерами кода и списком типичных ошибок.
Чем keyset отличается от offset?
Keyset идёт по индексированному полю и не пересчитывает пропущенные строки, поэтому глубокая пагинация не замедляется. Offset на больших таблицах дорожает с каждой страницей.
Исходный текст
SKILL.md · MIT
---
name: api-pagination
description: >
Implement efficient pagination strategies for large datasets using
offset/limit, cursor-based, and keyset pagination. Use when returning
collections, managing large result sets, or optimizing query performance.
---
# API Pagination
## Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
## Overview
Implement scalable pagination strategies for handling large datasets with efficient querying, navigation, and performance optimization.
## When to Use
- Returning large collections of resources
- Implementing search results pagination
- Building infinite scroll interfaces
- Optimizing large dataset queries
- Managing memory in client applications
- Improving API response times
## Quick Start
Minimal working example:
```javascript
// Node.js offset/limit implementation
app.get('/api/users', async (req, res) => {
const page = parseInt(req.query.page) || 1;
const limit = Math.min(parseInt(req.query.limit) || 20, 100); // Max 100
const offset = (page - 1) * limit;
try {
const [users, total] = await Promise.all([
User.find()
.skip(offset)
.limit(limit)
.select('id email firstName lastName createdAt'),
User.countDocuments()
]);
const totalPages = Math.ceil(total / limit);
res.json({
data: users,
pagination: {
page,
limit,
total,
totalPages,
hasNext: page < totalPages,
// ... (see reference guides for full implementation)
```
## Reference Guides
Detailed implementations in the `references/` directory:
| Guide | Contents |
|---|---|
| [Offset/Limit Pagination](references/offsetlimit-pagination.md) | Offset/Limit Pagination |
| [Cursor-Based Pagination](references/cursor-based-pagination.md) | Cursor-Based Pagination |
| [Keyset Pagination](references/keyset-pagination.md) | Keyset Pagination |
| [Search Pagination](references/search-pagination.md) | Search Pagination |
| [Pagination Response Formats](references/pagination-response-formats.md) | Pagination Response Formats |
| [Python Pagination (SQLAlchemy)](references/python-pagination-sqlalchemy.md) | Python Pagination (SQLAlchemy) |
## Best Practices
### ✅ DO
- Use cursor pagination for large datasets
- Set reasonable maximum limits (e.g., 100)
- Include total count when feasible
- Provide navigation links
- Document pagination strategy
- Use indexed fields for sorting
- Cache pagination results when appropriate
- Handle edge cases (empty results)
- Implement consistent pagination formats
- Use keyset for extremely large datasets
### ❌ DON'T
- Use offset with billions of rows
- Allow unlimited page sizes
- Count rows for every request
- Paginate without sorting
- Change sort order mid-pagination
- Use deep pagination without cursor
- Skip pagination for large datasets
- Expose database pagination directly
- Mix pagination strategies
- Ignore performance implications
© aj-geddes · MIT · aj-geddes/useful-ai-prompts