Files
pi-kit/skills/kotlin-standards/SKILL.md
T
dev c2cdf40cad docs(skills): fill cross-cutting Git/Jira conventions
- commit format: Conventional Commits (all six *-standards)
- branches/deploy: feature branches from main; release-* -> stage, tag v* -> prod (all six *-standards)
- jira-workflow: statuses To Do -> In Progress -> Review -> Done; who moves status when; MR link + status transition policy; comment guidance
- key-prefix list stays TODO (unknown project prefixes)

Verified: no leftover commit-format TODOs, deploy convention in all 6, skills still load via pi.
2026-07-16 13:10:34 +03:00

64 lines
3.8 KiB
Markdown

---
name: kotlin-standards
description: Используй при написании, ревью и проверке кода на Kotlin (Android и backend) — структура проекта, запуск ktlint/detekt, сборка и тесты через Gradle, формат коммитов и merge request. Применяй всегда, когда пишешь или правишь Kotlin-код, готовишь MR, а также в командах /bugfix, /feature и /review для Kotlin/Android-репозиториев.
---
# Стандарты Kotlin
Один из наших языков — **Kotlin** (в первую очередь Android). Ниже — общепринятые дефолты
экосистемы; специфичное для компании помечено `TODO` — уточняй, не выдумывай.
## Структура
Ориентир (уточняется под компанию):
```
settings.gradle.kts
build.gradle.kts
app/ # Android-модуль приложения
src/main/kotlin/...
src/test/... # unit-тесты
src/androidTest/... # инструментальные тесты
<feature-module>/ # модульная структура
```
<!-- TODO: заполнить реальной эталонной структурой проекта/модулей и версией AGP/Gradle -->
## Линтеры и форматирование
- Стиль/формат: **ktlint** — `./gradlew ktlintCheck` (автоформат `./gradlew ktlintFormat`).
- Статический анализ: **detekt** — `./gradlew detekt` (конфиг `detekt.yml`).
- Android Lint: `./gradlew lint`.
<!-- TODO: корпоративные конфиги ktlint/detekt (общий пресет), если есть -->
## Тесты
- Unit: `./gradlew test`.
- Инструментальные (Android): `./gradlew connectedAndroidTest` (нужен эмулятор/устройство).
- Требования к покрытию / обязательные виды тестов: `<!-- TODO -->`.
## Сборка и зависимости
- Сборка: `./gradlew assembleDebug` (релиз — `assembleRelease`).
- Версии зависимостей — через version catalog (`gradle/libs.versions.toml`), lock коммитим.
## Коммиты и MR
- **Формат коммитов:** Conventional Commits (`feat:`, `fix:`, `chore:`, `docs:`, `refactor:`, `test:` …).
- **Ветки и деплой:** фича-ветки — от `main` (в имя ветки желательно включать ключ тикета).
Деплой управляется ветками/тегами: ветка `release-*` → раскатка на **stage**; тег `v*` → раскатка в **прод**.
Ветки `release-*` и теги `v*` без необходимости не пушь — `permission-gate` переспросит.
- **MR обязателен** (см. корпоративные правила из контекста сессии). Прямой push в защищённые
ветки запрещён — расширение `permission-gate` дополнительно переспросит.
- Перед MR: `ktlintCheck`, `detekt`, `test` (и `lint`) — всё зелёное.
- Описание MR: что и зачем, как проверено, ссылка на тикет (скилл `jira-workflow`).
## Чек-лист перед MR
- [ ] `./gradlew ktlintCheck` чисто
- [ ] `./gradlew detekt` чисто
- [ ] `./gradlew test` зелёные, есть тесты на новую логику / фикс
- [ ] `./gradlew lint` без новых предупреждений
- [ ] нет секретов и закоммиченных ключей/`.env`
- [ ] описание MR со ссылкой на тикет