# type-design-analyzer

Проверяет новые и изменённые типы в коде: находит инварианты, оценивает инкапсуляцию и защиту от некорректных состояний.

- субагент · `type=agent` · Claude Code · ★ 44770
- Автор: Anthropic · официальный репозиторий Anthropic
- Лицензия: Apache-2.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/anthropics/claude-plugins-official/tree/HEAD/plugins/pr-review-toolkit/agents/type-design-analyzer.md
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/agents/type-design-analyzer

## Что делает

Субагент разбирает типы в вашем коде и выдаёт отчёт: список найденных инвариантов, оценки по четырём осям от 1 до 10, сильные стороны, замечания и конкретные предложения по улучшению. Оценки ставятся за инкапсуляцию, выражение инвариантов, их полезность и проверку на этапе выполнения.

Вызывают его в трёх случаях: когда вы только что написали новый тип, когда готовите pull request с несколькими новыми типами и когда переписываете существующие типы ради качества. Во втором случае он проходит по каждому добавленному в диффе типу, а не только по главному.

Внутри — методика из пяти шагов: поиск инвариантов, оценка инкапсуляции, проверка того, насколько структура типа сама сообщает о своих ограничениях, суждение о пользе инвариантов и разбор того, где они проверяются. Отдельно он отмечает антипаттерны: анемичные модели без поведения, публичные изменяемые поля, инварианты, описанные только в комментариях, отсутствие валидации в конструкторе. Советует предпочитать проверки на этапе компиляции рантайм-проверкам и не усложнять код ради полноты.

## Установка

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

1. **Через маркетплейс плагинов**
В чате агента (не в терминале):
```text
/plugin install pr-review-toolkit@claude-plugins-official
```

2. **Вручную: положить файлы**
- Файл: `.claude/agents/type-design-analyzer.md` — Для всех проектов — ~/.claude/agents/. Claude делегирует задачу сам по полю description или по @-упоминанию

### Codex

**Вручную: положить файлы**
- Файл: `.codex/agents/type-design-analyzer.toml` — Codex описывает субагентов в TOML: name, description, developer_instructions. Текст из Markdown перенесите в developer_instructions вручную. Для всех проектов — ~/.codex/agents/

### Cursor

**Вручную: положить файлы**
- Файл: `.cursor/agents/type-design-analyzer.md` — Cursor понимает и .claude/agents/

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/anthropics/claude-plugins-official/tree/HEAD/plugins/pr-review-toolkit/agents/type-design-analyzer.md

## Когда брать
- проверить новый тип на прочность инвариантов до мержа
- пройтись по всем типам в диффе pull request
- найти места, где инвариант держится только на комментарии
- оценить, можно ли снаружи сломать состояние объекта
- упростить перегруженный тип с лишними обязанностями

## Примеры запросов агенту
- Разбери тип `Session` и оцени его инкапсуляцию
- Пройдись по всем новым типам в этом диффе и дай оценки по четырём осям
- Посмотри `OrderState` — какие инварианты он выражает и где они проверяются

## Похожие
- [code-reviewer](https://affpapa.org/nevibecode/agents/voltagent-community-code-reviewer.md) — субагент · 31050 установок
- [debugger](https://affpapa.org/nevibecode/agents/debugger.md) — субагент · 13459 установок

Из того же набора: [anthropics/claude-plugins-official](https://affpapa.org/nevibecode/by/anthropics/claude-plugins-official.md) — 145 карточек

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

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