# documenting-contracts

Скилл задаёт правила описания API, очередей сообщений, DTO и вебхуков без дублирования схемы. Помогает составить контракт по реальному поведению сериализатора.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 17700 установок · ★ 33
- Автор: riekelt
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/riekelt/technical-writer/tree/HEAD/plugins/technical-writer/skills/documenting-contracts/SKILL.md
- Обновлён: 2026-09-13
- HTML: https://affpapa.org/nevibecode/skills/documenting-contracts

## Что делает

Скилл регламентирует документирование любых машинных интерфейсов: эндпоинтов REST, очередей, полезных нагрузок и форматов файлов. В фокусе находится реальный формат данных в сети, а не внутренние типы языка. Для работы автору потребуется скилл `technical-writing`, потому что правила опираются на его стилевые и фактологические требования.

Структура делится на четыре уровня деталей: индекс доступных вызовов, семантика поведения, схема DTO и единичный пример. Скилл запрещает дублировать поля между уровнями. Если в проекте уже есть спецификация OpenAPI или AsyncAPI, таблицы полей остаются только внутри неё. Ручное ведение второй копии схемы приводит к рассинхронизации.

Типы полей в каталоге DTO фиксируются в терминах протокола: например, `string (date, ISO 8601)` вместо названия класса. Свойства `required` описываются тремя состояниями: `yes`, `no` или условием. Проверять контракт скилл требует по коду сериализатора, а не по моделям. Настройки маппера меняют итоговый JSON незаметно для классов.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add riekelt/technical-writer --skill documenting-contracts -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/documenting-contracts/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/documenting-contracts/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add riekelt/technical-writer --skill documenting-contracts -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/documenting-contracts/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add riekelt/technical-writer --skill documenting-contracts -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/documenting-contracts/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install riekelt/technical-writer documenting-contracts
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/documenting-contracts/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add riekelt/technical-writer --skill documenting-contracts -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/riekelt/technical-writer --path plugins/technical-writer/skills/documenting-contracts
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/documenting-contracts/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add riekelt/technical-writer --skill documenting-contracts -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/riekelt/technical-writer/tree/HEAD/plugins/technical-writer/skills/documenting-contracts/SKILL.md

## Когда брать
- задокументировать контракты эндпоинтов REST или RPC по коду сериализатора
- описать структуру сообщений очередей и полезные нагрузки вебхуков
- составить DTO-каталог с различием значений omitted и null
- зафиксировать семантику сайд-эффектов и идемпотентности без дублирования схемы

## Примеры запросов агенту
- Опиши контракт эндпоинта /thing по правилам documenting-contracts
- Составь DTO-каталог для входящих сообщений очереди thing.create
- Сформируй api-reference.md для legacy-сервиса с таблицей ошибок

## Похожие
- [api-integration-surface-strategy](https://affpapa.org/nevibecode/skills/api-integration-surface-strategy.md) — скилл · 8000 установок
- [api-reference-documentation](https://affpapa.org/nevibecode/skills/api-reference-documentation.md) — скилл · 494 установки
- [spring-boot-rest-api-standards](https://affpapa.org/nevibecode/skills/spring-boot-rest-api-standards.md) — скилл · 4200 установок
- [spring-boot-patterns](https://affpapa.org/nevibecode/skills/spring-boot-patterns.md) — скилл · 322 установки
- [api-error-design](https://affpapa.org/nevibecode/skills/api-error-design.md) — скилл · 7800 установок
- [spring-boot-openapi-documentation](https://affpapa.org/nevibecode/skills/spring-boot-openapi-documentation.md) — скилл · 4000 установок

Из того же набора: [riekelt/technical-writer](https://affpapa.org/nevibecode/by/riekelt/technical-writer.md) — 10 карточек

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

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