m07-concurrency — скилл для Claude Code: потоки и async
Помогает разбирать конкурентный и асинхронный Rust-код: выбрать потоки, async/await, каналы или синхронизацию. Нужен при ошибках Send/Sync, дедлоках и гонках.
npx skills add actionbook/rust-skills --skill m07-concurrency -a claude-codeЧто делает m07-concurrency
Скилл направляет разбор Rust-задач с потоками и async: сначала отделяет вычислительную работу от ввода-вывода, затем определяет модель совместного доступа к данным. Для параллельных вычислений предлагает std::thread или rayon, для операций ввода-вывода — async/await с tokio или async-std.
Он помогает подобрать Arc<T> для неизменяемых данных, Arc<Mutex<T>> и Arc<RwLock<T>> для изменяемого состояния, каналы для передачи сообщений и атомарные типы для простых операций. Отдельно разбирает E0277, future is not Send, MutexGuard во время await и порядок захвата блокировок.
Скилл просит проверить, должна ли сущность вообще переходить между потоками, а не добавлять Send или Mutex автоматически. Удержание блокировки во время await способно задерживать другие задачи, поэтому это повод сузить область жизни guard.
Какие задачи решает
- разобрать ошибку
E0277дляSendилиSync - выбрать между потоками и
async/await - передать состояние между потоками через канал
- убрать
MutexGuardиз областиawait - найти причину дедлока в порядке блокировок
Примеры запросов агенту
- Разбери ошибку
E0277: мой тип нельзя передать между потоками. - Нужно распараллелить вычисления в Rust: выбрать
std::threadилиrayon. - Проверь, почему
future is not Sendпослеawaitвtokio::spawn.
Как установить m07-concurrency
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m07-concurrency -a claude-code2Вручную: положить файлы
~/.claude/skills/m07-concurrency/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/m07-concurrency/
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m07-concurrency -a codex2Вручную: положить файлы
.agents/skills/m07-concurrency/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m07-concurrency -a cursor2Вручную: положить файлы
.cursor/skills/m07-concurrency/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install actionbook/rust-skills m07-concurrency2Вручную: положить файлы
.github/skills/m07-concurrency/SKILL.md1Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m07-concurrency -a gemini-cli2Командой платформы
gemini skills install https://github.com/actionbook/rust-skills --path skills/m07-concurrencyВручную: положить файлы
.devin/skills/m07-concurrency/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m07-concurrency -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о m07-concurrency
Как установить m07-concurrency в Claude Code?
Выполните npx skills add actionbook/rust-skills --skill m07-concurrency -a claude-code, затем повторите npx skills add actionbook/rust-skills --skill m07-concurrency -a claude-code. Файл скилла находится по пути ~/.claude/skills/m07-concurrency/SKILL.md.
Что делает m07-concurrency?
Скилл помогает проектировать конкурентный Rust-код и разбирать ошибки, связанные с потоками, Send, Sync, Future, блокировками и каналами. Он подсказывает подходящие примитивы по типу нагрузки и модели доступа к данным.
Как скилл советует выбирать между Mutex, RwLock и каналами?
Для изменяемого общего состояния он рассматривает Mutex или RwLock, причём RwLock подходит для нагрузки с преобладанием чтения. Если общее состояние не требуется, скилл предлагает передачу сообщений через каналы.