modern-cpp — скилл для Claude Code: что делает и как установить
Направляет код на C++ к стандарту C++20/23/26, убирая уязвимости памяти и устаревшие конструкции вроде сырых указателей и макросов.
npx skills add trailofbits/skills --skill modern-cpp -a claude-codeЧто делает modern-cpp
Скилл от Trail of Bits переводит проекты на безопасные конструкции C++20, C++23 и C++26. Вместо сырых указателей и ручных вызовов new/delete агент предлагает std::unique_ptr или std::shared_ptr. Устаревшие связки указателя с длиной заменяются на std::span, а макросы форматирования вроде printf уступают место std::print и std::format.
Внутри заложены уровни внедрения и таблица типичных антипаттернов. Первый уровень охватывает готовые возможности C++20/23: концепты, диапазоны и std::jthread. Второй уровень добавляет флаги компиляторов GCC и Clang, включая -D_FORTIFY_SOURCE=3 и режим hardened libc++.
Для чистого Си скилл бесполезен: он рассчитан исключительно на C++. Инструкция не навязывает свежие стандарты, если проект привязан к старому ABI или embedded-ограничениям. Вопросы настройки сборочных систем в CMake или Meson скилл намеренно игнорирует.
Какие задачи решает
- Заменить сырые указатели и ручные вызовы
newна безопасные умные указатели - Упростить шаблоны со SFINAE с помощью концептов и выражений
requires - Переписать небезопасный вывод через
printfнаstd::printилиstd::format - Включить флаги защиты компилятора вроде
-fstack-protector-strongи режим hardened libc++
Примеры запросов агенту
- Проверь этот класс на устаревшие паттерны и перепиши методы с использованием C++20 и std::span.
- Переведи обработку ошибок в модуле разбора данных на std::expected из C++23.
- Подскажи флаги защиты Clang и санитайзеры для сборки сетевого сервиса.
Как установить modern-cpp
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill modern-cpp -a claude-code2Вручную: положить файлы
~/.claude/skills/modern-cpp/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/modern-cpp/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill modern-cpp -a codex2Вручную: положить файлы
.agents/skills/modern-cpp/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill modern-cpp -a cursor2Вручную: положить файлы
.cursor/skills/modern-cpp/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install trailofbits/skills modern-cpp2Вручную: положить файлы
.github/skills/modern-cpp/SKILL.md1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill modern-cpp -a gemini-cli2Командой платформы
gemini skills install https://github.com/trailofbits/skills --path plugins/modern-cpp/skills/modern-cppВручную: положить файлы
.devin/skills/modern-cpp/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill modern-cpp -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о modern-cpp
Как установить modern-cpp в Claude Code?
Выполните в терминале команду npx skills add trailofbits/skills --skill modern-cpp -a claude-code. Агент запишет файл инструкций по пути ~/.claude/skills/modern-cpp/SKILL.md.
Что делает скилл modern-cpp?
Он направляет генерацию кода на C++ по правилам C++20, C++23 и C++26. Скилл исключает утечки памяти за счёт умных указателей и заменяет громоздкий SFINAE на концепты.
В каких проектах скилл использовать нельзя?
Он не работает с чистым кодом на Си и не помогает в настройке сборщиков вроде CMake или Meson. Если проект ограничен старым стандартом языка из-за legacy ABI, скилл не станет ломать совместимость.