К основному содержанию
скилл CX Codex

kotlin-api-design — скилл для Claude Code: где размещать код в Kotlin

Помогает решить, кому принадлежит функция, где ставить extension, а где хватит value class. Пригодится при проектировании публичного API на Kotlin и в KMP.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add chrisbanes/skills --skill kotlin-api-design -a claude-code
Открыть на GitHub

Что делает kotlin-api-design

Скилл разбирает проектирование Kotlin-API по шагам. Сначала вы называете доменное понятие, тип или модуль, которому оно принадлежит, и тех, кто будет от него зависеть. Потом выбираете владельца функции — member, top-level, extension, фабрика или сервисный слой. Если вариант отклонён, скилл просит назвать владельца, к которому стоит обратиться вместо него.

Дальше — типы. Одно поле в доменном понятии описывается самым маленьким типом, который сохраняет смысл и контракт для interop: @JvmInline value class, data class или обычный класс. При ревью маппинга над sealed-результатом скилл требует перечислить все видимые вызывающему исходы и ругается на else, который прячет подтип: явные ветки сохраняют исчерпывающий контракт и smart casts.

Общий код остаётся семантическим, а нативные SDK, файлы, сенсоры и разрешения уходят за интерфейс или за узкую границу expect/actual. Для каждой темы есть свой файл-справочник, и скилл отправляет читать нужный по таблице сигналов. Ветвление и форму guard-условий он передаёт соседнему скиллу kotlin-control-flow.

Какие задачи решает

  • выбрать владельца функции до того, как появился лишний helper
  • заменить примитив на value class без потери interop
  • сделать маппинг sealed-результата исчерпывающим
  • вынести нативный SDK за границу expect/actual
  • убрать из публичного API удобные абстракции без хозяина

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

  • Разбери этот публичный API на Kotlin: где должны жить функции и почему
  • Проверь маппинг sealed-результата — нет ли else, который прячет подтип
  • Стоит ли заменить String в этом доменном типе на value class?

Как установить kotlin-api-design

1Через Skills CLI (Vercel)

npx skills add chrisbanes/skills --skill kotlin-api-design -a claude-code

2Вручную: положить файлы

~/.claude/skills/kotlin-api-design/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/kotlin-api-design/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о kotlin-api-design

Как установить kotlin-api-design в Claude?

Выполните npx skills add chrisbanes/skills --skill kotlin-api-design -a claude-code. Скилл окажется в ~/.claude/skills/kotlin-api-design/SKILL.md.

Что делает kotlin-api-design?

Проводит по шагам проектирования и ревью Kotlin-API: выбор владельца функции, тип для одного поля, границы платформы. Отдельно следит за исчерпывающим маппингом sealed-результатов.

С какими платформами он совместим?

Кроме Claude есть установка для Codex, Cursor, GitHub Copilot, Gemini CLI и OpenCode. Для GitHub Copilot команда другая: gh skill install chrisbanes/skills kotlin-api-design.

Исходный текст

SKILL.md · Apache-2.0
---
name: kotlin-api-design
description: Use when designing or reviewing Kotlin function ownership, member or extension functions, factories, single-field domain types, value classes, data classes, Kotlin Multiplatform expect/actual declarations, or platform service boundaries.
---

# Kotlin API design

## Core principle

Place behavior, types, and platform seams where their meaning is clearest to
callers; use the smallest public abstraction that preserves domain language and
platform independence.

## Procedure

1. Name the domain concept, its owning type or module, and the callers that
   need to depend on it.
2. Choose function ownership before adding an extension, factory, helper, or
   service layer. When rejecting one, name the owner callers should use instead.
3. When reviewing a public mapping over a sealed result, name every
   caller-visible outcome. Flag a catch-all `else` that hides a subtype and
   recommend explicit subtype branches so the contract stays exhaustive and
   preserves smart casts.
4. Represent a single-field domain concept with the smallest type that preserves
   its semantic and interop contract.
5. Keep shared code semantic; put native SDK and platform details behind an
   interface or a narrowly justified expect/actual boundary.
6. Read the focused reference for the selected decision below.
7. Finish when the public surface states domain intent, platform details remain
   at leaves, and callers do not depend on convenience abstractions with no
   clear owner.

## Topic router

| Signal | Read |
|---|---|
| Member vs top-level, extension, factory, service, or receiver choice | [Function ownership](references/functions.md) |
| Primitive obsession, one-field domain type, `@JvmInline value class`, data class, interop, or Compose stability | [Value classes](references/value-classes.md) |
| Source sets, platform services, native SDKs, files, sensors, permissions, Compose Multiplatform interop, or expect/actual | [Multiplatform boundaries](references/multiplatform-boundaries.md) |
| Branching, guard-condition shape, sealed-result mapping, or a catch-all `else` | [Kotlin control flow](../kotlin-control-flow/SKILL.md) |

© chrisbanes · Apache-2.0 · chrisbanes/skills

Похожие скиллы

Все скиллы по теме «Языки программирования» →
kotlin-specialist https://github.com/Jeffallan Скилл направляет ИИ при разработке на Kotlin: корутины, Flow, KMP, Compose и Ktor. Пригодится для реализации функций с проверками стиля и отмены задач. CX Codex +1 5 200установок swift-api-design-guidelines dpearson2699 Скилл помогает оформлять публичные интерфейсы на Swift по официальным гайдлайнам Apple. Пригодится при выборе меток аргументов, пар мутирующих методов и написании документации. CX Codex +1 2 800установок kotlin-tooling-agp9-migration JetBrains Ведёт проект Kotlin Multiplatform через переход на Android Gradle Plugin 9.0: замена плагинов, разбиение модулей, перенос DSL. CX Codex +1 2 200установок swift-api-design-guidelines-skill Erikote04 Скилл помогает проектировать и проверять API на Swift по официальным гайдлайнам. Пригодится при рефакторинге интерфейсов, подборе меток аргументов и составлении doc-комментариев. CX Codex +1 1 200установок kotlin-tooling-native-build-performance JetBrains Разбирает, почему iOS-сборка в Kotlin Multiplatform идёт медленно, и предлагает безопасные правки с замером до и после. CX Codex +1 943установок public-api-design-review Samuel Berthe Прогоняет REST API по чек-листу: имена ресурсов, методы, коды ответов, пагинация, формат ошибок. Каждую находку делит на Must-change и Improvement. CX Codex +1 7 800установок

Из того же набора17

compose-state-and-effects Скилл помогает проектировать и проверять владение состоянием в Jetpack Compose. Он распределяет стейт по уровням и подбирает эффекты под их жизненный цикл. CX Codex +1 1 100установок using-chrisbanes-skills Разбирает задачу по Kotlin или Jetpack Compose и подключает нужный скилл из набора chrisbanes. Полезен, когда в одном изменении пересекаются несколько тем. CX Codex +1 1 100установок kotlin-control-flow Скилл для ИИ-агента, который пишет и правит ветвления Kotlin: when, guard-условия, исчерпывающие проверки sealed-типов, smart casts. CX Codex +1 1 100установок compose-component-design Скилл для проектирования и ревью переиспользуемых компонентов Jetpack Compose: слоты, модификаторы, размещение корневого layout. CX Codex +1 1 000установок gradle-run Скилл гоняет сборки Gradle через обёртку с компактным выводом и ведёт журнал запусков, чтобы агент не заливал контекст полным логом. CX Codex +1 768установок run-github-project Ведёт работу по колонкам GitHub Project: разбирает Todo, берёт задачи в Ready to implement и доводит до Done. CX Codex +1 643установок implement-with-subagents Координирует выполнение графа задач соло-агентом или пулом субагентов с изолированными коммитами и обязательным независимым ревью. CX Codex +1 582установок grounded-writing Скилл убирает выдуманные факты, рекламный тон и лишние детали реализации из публичной документации и технических отчётов. CX Codex +1 448установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой