Beautiful Rust — плагин

Три скилла и конфиг clippy: агент пишет, проверяет и переносит код на идиоматичный Rust, а правила проходят в CI

  • 1 728 ★ репозитория
  • Последний коммит
  • MIT
Плагин

Расширенный доступ

Почему такой уровень

  • Скилл ревью запускает `cargo fmt`, clippy и тесты вашего проекта, а тесты выполняют код из репозитория
  • Скилл переноса создает и перезаписывает файлы нового Rust-проекта и `PORTING.md`
Все причины и проверки

morganlinton/beautifulrust

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add plugins/beautiful-rust

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Скилл ревью запускает `cargo fmt`, clippy и тесты вашего проекта, а тесты выполняют код из репозитория
  • Скилл переноса создает и перезаписывает файлы нового Rust-проекта и `PORTING.md`

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Beautiful Rust ставит агенту три скилла и конфигурацию clippy. Скилл `rust-best-practices` подключается, когда агент пишет или меняет Rust, и ведет его к идиоматичному, надежному коду: приватные поля, документированные ошибки, безопасные примеры в документации. Скилл `rust-review` проверяет файл, крейт или diff и пишет отчет с тремя уровнями: исправить обязательно, желательно и можно. У каждой находки есть место `file:line`, нарушенное правило с источником и минимальная правка. Скилл `rust-port` переносит код с C, C++, Python, Go или JavaScript на Rust с тем же поведением, сначала перенося тесты, и пишет `PORTING.md` с картой старого и нового API. Каталог `lints/` содержит готовую настройку clippy для CI, которая проверяет правила, поддающиеся машинной проверке. Рекомендации сведены из пяти источников: руководство Google по стилю Rust, Rust API Guidelines, Effective Rust, Rust Design Patterns и руководство Microsoft. Дайджест каждого источника лежит внутри скилла, а там, где источники расходятся, скилл выбирает сторону и объясняет почему. Скиллы следуют формату Agent Skills и работают в Claude Code, Codex, GitHub Copilot, Cursor и Gemini CLI. По замерам автора на трех задачах (библиотека, CLI и рефакторинг запутанного модуля) со скиллом проходит 29 проверок из 30, без него 24.

Для кого. Для разработчиков на Rust и команд, которые пишут Rust с помощью агентов и хотят единых правил стиля, ревью по источникам и проверки в CI.

Подходит, если

  • Агент пишет новую библиотеку на Rust, и нужно, чтобы поля были приватными, а ошибки задокументированными
  • Нужно ревью файла или diff с отчетом по уровням и правкой для каждой находки
  • Модуль на C, Python или Go переносится на Rust, и тесты нужно перенести первыми
  • Нужны одинаковые правила clippy в CI, подобранные под рекомендации скиллов
  • Нужен один набор скиллов сразу для Claude Code, Codex, Copilot, Cursor и Gemini CLI

Не подходит, если

  • Нужна помощь с кодом на другом языке: скиллы работают только с Rust
  • Нужен автоматический форматтер без обсуждения стиля: хватит `cargo fmt` и clippy без скиллов
  • Проект уже следует собственному внутреннему руководству по стилю, которое расходится с пятью источниками

Пример запроса к агенту

Проверь src/parser.rs по rust-review и дай отчет по уровням, а потом предложи правки

Ограничения

  • Скиллы запускают `cargo fmt`, clippy и тесты, когда в среде есть Rust-тулчейн, поэтому для полного ревью он должен быть установлен. Все примеры кода автор проверил на стабильном Rust, а каждое правило clippy сверил с актуальной версией.
  • Установка через `npx skills add` требует Node 22.20 или новее, для Gemini CLI и GitHub CLI 2.90 команды свои.
  • Claude Code не читает общий каталог `.agents/skills/`, ему нужен свой каталог или плагин. Для claude.ai каждый скилл заливается отдельным zip через раздел Skills при включенном выполнении кода.
  • Тесты автора охватывают три задачи, поэтому цифры 29 из 30 и 24 из 30 говорят о небольшой выборке.

Как отключить. В Claude Code выполните `/plugin uninstall beautiful-rust@beautiful-rust`. Установленные через `skills` скиллы удалите их папками `rust-best-practices`, `rust-review` и `rust-port` из каталога скиллов агента. Конфиг clippy из `lints/` уберите из проекта вручную.

Частые вопросы

Как поставить Beautiful Rust в Claude Code?

Выполните `claude plugin install beautiful-rust --marketplace morganlinton/BeautifulRust` или внутри сессии `/plugin marketplace add morganlinton/BeautifulRust` и `/plugin install beautiful-rust@beautiful-rust`. Скиллы появятся как `/beautiful-rust:rust-best-practices`, `/beautiful-rust:rust-review` и `/beautiful-rust:rust-port`, но срабатывают они и сами.

Как поставить скиллы для Codex?

Выполните `codex plugin marketplace add morganlinton/BeautifulRust`, затем `codex plugin add beautiful-rust@beautiful-rust`. Тот же пакет работает в настольном приложении ChatGPT. Другой вариант: `npx skills add morganlinton/BeautifulRust -a codex`.

Чем rust-review отличается от обычного clippy?

Clippy проверяет то, что поддается машинной проверке. Скилл запускает его и добавляет ревью по источникам: у каждой находки есть правило (например код C-GETTER из API Guidelines), место и минимальная правка. Отчет заканчивается тем, что в коде сделано хорошо.

Что делает rust-port с тестами?

Переносит их первыми, затем проектирует Rust-API вместо пословного перевода и сверяет результат командами `cargo test` и clippy. К порту прилагается `PORTING.md` с картой старого и нового API и тестов.

Нужно ли ставить все три скилла?

Да, автор советует ставить все три. Скиллы review и port опираются на best-practices в вопросах стиля.

Обсуждение

Вопросов и отзывов пока нет.

Плагины

265 коротких правил по Rust для ИИ-агента: заимствование, ошибки, async, unsafe и производительность, с примерами плохого и хорошего кода

СкиллМинимальный доступ672Звезды репозитория

Агент для программирования на Rust с графическим окном, терминалом, режимом ACP для Zed и MCP-сервером

CLIШирокий доступ187Звезды репозитория

CodeGraph на Rust

codegraph-rust

Граф кода для агента на Rust: четыре MCP-инструмента показывают, что заденет правка, как устроена архитектура и где хрупкие места проекта

MCP-серверРасширенный доступ913Звезды репозитория

Rust SDK для агентов программирования и готовый CLI abstract: REPL, 34 инструмента, MCP, граф памяти, Anthropic и OpenAI, вывод JSON для CI

CLIШирокий доступ464Звезды репозитория
Официальный

agnix — линтер для CLAUDE.md, AGENTS.md, SKILL.md, хуков и MCP-конфигов: 702 правила, автофикс и редакторские расширения для VS Code и JetBrains

CLIМинимальный доступ471Звезды репозитория

MCP-сервер на потоках Rust: агент получает подсказки, переходы к определениям, ссылки, форматирование и диагностику компилятора от rust-analyzer

MCP-серверРасширенный доступ486Звезды репозитория

Коротко о README

README представляет три скилла и конфигурацию clippy, показывает разницу в коде со скиллом и без него и дает установку для Claude Code, Codex, GitHub Copilot, Gemini CLI, Cursor и claude.ai. Дальше разделы о ревью и переносе, о правилах clippy, о том, как проверялись скиллы, и о структуре репозитория.

Бейдж для README

Исходный SKILL.md

---
name: rust-best-practices
description: >-
  Write idiomatic, robust, maintainable Rust. Use this skill whenever you write, review,
  refactor, debug, or explain Rust code: new crates, modules, functions, structs, traits,
  error types, async code, unsafe or FFI code, Cargo.toml, tests, or rustdoc. Trigger on
  any mention of Rust, cargo, crates, .rs files, the borrow checker, lifetimes, traits,
  clippy, or rustfmt, even when the user does not ask for "best practices" or "idiomatic"
  code. Synthesized from the Google Rust Style Guide, the Rust API Guidelines,
  Effective Rust, Rust Design Patterns, and Microsoft's Pragmatic Rust Guidelines.
---

# Rust best practices

Distilled from five Rust style and design guides, with a digest of each in `references/`.
Where they disagree, this file says which to follow and why.

## 1. Mindset

- **Write Rust-shaped code.** Don't port C++, Java, C#, or Python constructs one-to-one.
  Model errors with `Result`, resources with ownership and `Drop`, polymorphism with
  traits and enums, and nullability with `Option`. Inheritance-flavored tricks (`Deref` to
  a "base" struct, `Manager`/`Factory` types, `throw_if_null` helpers) are smells.
- **Make invalid states unrepresentable.** Push invariants into types: enums instead of
  bool flags and "must be X if Y" comments, newtypes for units and IDs, fallible
  constructors that validate once. Then the compiler enforces what a comment only requests.
- **Application code is not library code.** Library code (anything with external users)
  follows the API-design rules below strictly. Application code should favor simplicity
  and directness: concrete types, `String` or `&str` rather than `impl Into<String>`
  parameters, `anyhow`-style errors, `Vec` return values, no speculative generality.
- **Let the tools do the work.** rustfmt owns formatting, clippy owns idiom checks, the
  compiler owns memory safety. Spend your attention on design.

## 2. Before you hand back code

Run these and fix everything they report:

```bash
cargo fmt
cargo clippy --all-targets --all-features -- -D warnings
cargo test
cargo doc --no-deps   # libraries: catches broken doc links and missing docs
```

- Fix a lint rather than silencing it. When a lint is genuinely wrong for one item, use

Сообщить о проблеме

Foxx AIBeautiful Rust
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.