Swift Concurrency Pro — скилл
Скилл Пола Хадсона для ревью конкурентного кода на Swift 6.2: акторы, Sendable, группы задач, отмена и типичные ошибки моделей
- 577 ★ репозитория
- Последний коммит
- MIT
Минимальный доступ
Почему такой уровень
- Скилл состоит из текстовых инструкций и справочных файлов, сам ничего не запускает
- Агент читает исходники проекта, которые и так видит, а правки вносит по вашему запросу
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/swift-concurrency-proОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемМинимальный доступИнструмент ничего не запускает и не ходит в сеть.
- Скилл состоит из текстовых инструкций и справочных файлов, сам ничего не запускает
- Агент читает исходники проекта, которые и так видит, а правки вносит по вашему запросу
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Swift Concurrency Pro проверяет код на Swift: корректность конкурентности, современные API и типичные ловушки async/await. Автор — Пол Хадсон (Hacking with Swift), он собрал правила из своей книги о конкурентности и обзоров новинок Swift 6. Скилл нацелен на ошибки, которые допускают языковые модели: новые возможности, которых они не знают, старые функции, с которыми они путаются, и приемы, делающие код безопасным и быстрым. Проверка идет по шагам. Сначала агент ищет опасные паттерны по списку из `references/hotspots.md`, затем сверяет код с поведением Swift 6.2, разбирает реентерабельность акторов, предпочтение структурной конкуренции вместо `Task {}`, отмену, асинхронные потоки, мосты между синхронным и асинхронным кодом и миграцию со старых API. При строгих ошибках компилятора скилл сопоставляет диагностику с исправлением, а для тестов смотрит асинхронные шаблоны. Отчет сгруппирован по файлам: строка, нарушенное правило и короткий вариант до и после. Файлы без замечаний пропускаются, в конце идет приоритетный список главных правок. Придирок и выдуманных проблем в отчете нет, а `@unchecked Sendable` в качестве заглушки для компилятора скилл не предлагает.
Для кого. Для разработчиков под iOS и macOS, которые пишут на Swift 6 и просят агента проверить или переписать асинхронный код.
Подходит, если
- Компилятор Swift 6 выдает ошибки строгой конкурентности, и нужно понять, какое исправление не заглушит проблему
- Агент написал актор, и вы хотите проверить, не меняется ли состояние между двумя `await`
- Проект переводят с Grand Central Dispatch и замыканий на `async/await` и группы задач
- Нужно найти потерянную отмену, забытые `Task {}` и ошибки в `AsyncStream` и continuation
- Перед релизом надо просмотреть асинхронные тесты и мосты между синхронным и асинхронным кодом
Не подходит, если
- Нужно ревью интерфейса на SwiftUI: для этого у автора отдельный скилл SwiftUI Pro
- Проект собирается на Swift старше 6.2: скилл ориентирован на Swift 6.2 и строгую проверку конкурентности
- Нужно обучить агента основам `async/await`: скилл намеренно не пересказывает то, что модели и так знают
- Низкоуровневый код держится на очередях и замках: скилл допускает GCD там, где он уместен, и ошибкой его не считает
Пример запроса к агенту
Используй скилл Swift Concurrency Pro и найди в проекте возможные проблемы с конкурентностью, начни с акторов и отмены задачОграничения
Скилл рассчитан на Swift 6.2 и более новые версии со строгой проверкой конкурентности. Если части проекта собираются с разными настройками, агент должен сначала сравнить параметры сборки целей и пакетов, а потом делать выводы.
Скилл — набор инструкций для агента: код он не запускает и компилятор не заменяет. Автор принял осознанное решение держать материал коротким, чтобы не тратить токены, поэтому базовые понятия в нем не разжеваны.
В README указаны iOS 26 и Swift 6.2 как целевая платформа.
Как отключить. В Claude Code удалите плагин swift-concurrency-pro через меню `/plugin`. Если ставили через `npx skills`, удалите папку swift-concurrency-pro из каталога скиллов агента, проектного или общего.
Частые вопросы
Как поставить Swift Concurrency Pro в Claude Code?
Добавьте маркетплейс командой `/plugin marketplace add twostraws/Swift-Concurrency-Agent-Skill`, затем установите плагин: `/plugin install swift-concurrency-pro@swift-concurrency-agent-skill`. Вызов скилла: `/swift-concurrency-pro`, можно с уточнением, например про миграцию.
Как вызвать скилл в Codex?
Командой `$swift-concurrency-pro`, при необходимости с задачей, например про переход на группы задач. Ставится он через `npx skills add https://github.com/twostraws/swift-concurrency-agent-skill --skill swift-concurrency-pro`, в мастере можно выбрать агентов и область: проект или все проекты.
Чем он отличается от другого скилла по конкурентности в Swift?
Скилл Пола Хадсона построен как ревью по шагам с отдельными справочными файлами: акторы, отмена, потоки, мосты, диагностика, тесты. Он нацелен на ошибки языковых моделей и не пересказывает основы, которые модели уже знают.
Что значит правило про `@unchecked Sendable`?
Скилл запрещает предлагать `@unchecked Sendable` ради того, чтобы убрать ошибку компилятора: это глушит диагностику, но гонку данных оставляет. Вместо этого он советует акторы, типы-значения или параметры `sending`, а допускает атрибут только для типов с внутренней блокировкой, безопасность которых можно доказать.
Какие еще скиллы есть у автора для Swift?
В README перечислены SwiftUI Pro, SwiftData Pro и Swift Testing Pro, а ссылка на Swift Agent Skills ведет к подборке скиллов для Swift и платформ Apple.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыСкилл Пола Хадсона для ревью и написания SwiftUI под iOS 26: устаревшие API, поток данных, навигация, доступность, производительность
Набор скиллов по iOS 26+, Swift 6.3 и SwiftUI: агент получает знания по современным фреймворкам Apple
Скилл с практиками SwiftUI: состояние, композиция view, производительность, новые API, Liquid Glass и разбор трейсов Instruments
Скилл проверяет проект iOS или macOS на частые причины отказа в App Store до отправки на ревью
Скиллы для разработки под Apple: справочники по SwiftUI, UIKit и Liquid Glass, гайды по Swift 6 и маршрутизатор для задач iOS 26
Скилл, который для SwiftUI-приложения собирает встроенную съемку экранов и элементов и прогоняет ее по всем локалям для App Store
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| Swift Concurrency Pro (эта запись) | нет | 577 | |
| Swift Concurrency Agent Skill | нет | 1 694 | другой скилл по конкурентности в Swift от другого автора, с собственным набором справочных файлов |
| SwiftUI Pro | нет | 6 395 | тот же автор, но ревью интерфейсов SwiftUI, а не конкурентности |
Коротко о README
README объясняет, что скилл помогает Claude Code, Codex, Cursor и Gemini писать конкурентный код на Swift, и показывает способы установки: маркетплейс плагинов для Claude Code и `npx skills` для остальных. Затем описаны вызовы по имени и естественным языком, причины создать такой скилл и правила для тех, кто хочет внести правки: коротко, без повторения того, что модели знают, и под лицензией MIT.
Бейдж для README
Исходный SKILL.md
---
name: swift-concurrency-pro
description: Reviews Swift code for concurrency correctness, modern API usage, and common async/await pitfalls. Use when reading, writing, or reviewing Swift concurrency code.
license: MIT
metadata:
author: Paul Hudson
version: "1.0"
---
Review Swift concurrency code for correctness, modern API usage, and adherence to project conventions. Report only genuine problems - do not nitpick or invent issues.
Review process:
1. Scan for known-dangerous patterns using `references/hotspots.md` to prioritize what to inspect.
1. Check for recent Swift 6.2 concurrency behavior using `references/new-features.md`.
1. Validate actor usage for reentrancy and isolation correctness using `references/actors.md`.
1. Ensure structured concurrency is preferred over unstructured where appropriate using `references/structured.md`.
1. Check unstructured task usage for correctness using `references/unstructured.md`.
1. Verify cancellation is handled correctly using `references/cancellation.md`.
1. Validate async stream and continuation usage using `references/async-streams.md`.
1. Check bridging code between sync and async worlds using `references/bridging.md`.
1. Review any legacy concurrency migrations using `references/interop.md`.
1. Cross-check against common failure modes using `references/bug-patterns.md`.
1. If the project has strict-concurrency errors, map diagnostics to fixes using `references/diagnostics.md`.
1. If reviewing tests, check async test patterns using `references/testing.md`.
If doing a partial review, load only the relevant reference files.
## Core Instructions
- Target Swift 6.2 or later with strict concurrency checking.
- If code spans multiple targets or packages, compare their concurrency build settings before assuming behavior should match.
- Prefer structured concurrency (task groups) over unstructured (`Task {}`).
- Prefer Swift concurrency over Grand Central Dispatch for new code. GCD is still acceptable in low-level code, framework interop, or performance-critical synchronous work where queues and locks are the right tool – don't flag these as errors.
- If an API offers both `async`/`await` and closure-based variants, always prefer `async`/`await`.
- Do not introduce third-party concurrency frameworks without asking first.
- Do not suggest `@unchecked Sendable` to fix compiler errors. It silences the diagnostic without fixing the underlying race. Prefer actors, value types, or `sending` parameters instead. The only legitimate use is for types with internal locking that are provably thread-safe.