feat(skills): add kotlin-standards + swift-standards for mobile profile
- kotlin-standards: gradle build/test, ktlint/detekt, Android lint; company specifics TODO - swift-standards: SwiftPM/xcodebuild, swiftformat/swiftlint, XCTest; company specifics TODO - wire mobile profile -> kotlin+swift; 'all' now includes both; README matrix updated - verified all six *-standards skills load via pi RPC
This commit is contained in:
54
skills/swift-standards/SKILL.md
Normal file
54
skills/swift-standards/SKILL.md
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
name: swift-standards
|
||||
description: Используй при написании, ревью и проверке кода на Swift (iOS/macOS) — структура проекта, запуск swiftformat/swiftlint, сборка и тесты, формат коммитов и merge request. Применяй всегда, когда пишешь или правишь Swift-код, готовишь MR, а также в командах /bugfix, /feature и /review для Swift/iOS-репозиториев.
|
||||
---
|
||||
|
||||
# Стандарты Swift
|
||||
|
||||
Один из наших языков — **Swift** (iOS/macOS). Ниже — общепринятые дефолты экосистемы;
|
||||
специфичное для компании помечено `TODO` — уточняй, не выдумывай.
|
||||
|
||||
## Структура
|
||||
|
||||
Ориентир (уточняется под компанию):
|
||||
|
||||
```
|
||||
Package.swift # SwiftPM, или *.xcodeproj / *.xcworkspace
|
||||
Sources/<Target>/...
|
||||
Tests/<Target>Tests/...
|
||||
```
|
||||
|
||||
<!-- TODO: заполнить реальной эталонной структурой (SwiftPM vs Xcodeproj, менеджер зависимостей: SPM/CocoaPods) -->
|
||||
|
||||
## Линтеры и форматирование
|
||||
|
||||
- Форматирование: **swiftformat** — `swiftformat --lint .` (автоформат `swiftformat .`).
|
||||
- Линтер: **swiftlint** — `swiftlint` (конфиг `.swiftlint.yml`), в CI `swiftlint --strict`.
|
||||
<!-- TODO: корпоративные конфиги swiftformat/swiftlint (общий пресет), если есть -->
|
||||
|
||||
## Тесты
|
||||
|
||||
- SwiftPM: `swift test`.
|
||||
- Xcode-проект: `xcodebuild test -scheme <Scheme> -destination 'platform=iOS Simulator,name=iPhone 15'`.
|
||||
- Требования к покрытию / обязательные виды тестов: `<!-- TODO -->`.
|
||||
|
||||
## Сборка и зависимости
|
||||
|
||||
- Сборка: `swift build` (или `xcodebuild build -scheme <Scheme>`).
|
||||
- Зависимости: `<!-- TODO: SwiftPM / CocoaPods -->` — lock (`Package.resolved`/`Podfile.lock`) коммитим.
|
||||
|
||||
## Коммиты и MR
|
||||
|
||||
- **Формат коммитов:** `<!-- TODO: например Conventional Commits или свой -->`.
|
||||
- **MR обязателен** (см. корпоративные правила из контекста сессии). Прямой push в защищённые
|
||||
ветки запрещён — расширение `permission-gate` дополнительно переспросит.
|
||||
- Перед MR: `swiftformat --lint .`, `swiftlint --strict`, тесты — всё зелёное.
|
||||
- Описание MR: что и зачем, как проверено, ссылка на тикет (скилл `jira-workflow`).
|
||||
|
||||
## Чек-лист перед MR
|
||||
|
||||
- [ ] `swiftformat --lint .` чисто
|
||||
- [ ] `swiftlint --strict` чисто
|
||||
- [ ] тесты зелёные, есть тесты на новую логику / фикс
|
||||
- [ ] нет секретов и закоммиченных ключей/`.env`
|
||||
- [ ] описание MR со ссылкой на тикет
|
||||
Reference in New Issue
Block a user