AI Фактор

Скіл навчає агента писати ідіоматичний Rust

Репозиторій 25.10.2026
Скіл навчає агента писати ідіоматичний Rust

BeautifulRust — Agent Skill `rust-best-practices` для Claude Code, Codex, Copilot, Cursor і Gemini CLI. Підвантажується на задачах із Rust, cargo, clippy чи `.rs`-файлами. Правила зведені з пʼяти джерел, зокрема Google Rust Style Guide та офіційних Rust API Guidelines — де вони розходяться, скіл обирає варіант і пояснює чому.

На тесті генерації семвер-бібліотеки без скіла агент зробив публічні поля і `unwrap()` у прикладах без документації помилок. Зі скілом — поля приватні, помилки задокументовані. На трьох тестових задачах скіл пройшов 29 із 30 перевірок проти 24 із 30 без нього.

Встановлення: три шляхи, залежно від агента

Скіл — це просто папка skills/rust-best-practices/, яку потрібно покласти туди, де агент шукає скіли. Найпростіший варіант — універсальний інсталятор для більшості агентів (потрібен Node 22.20 або новіший):

  • npx skills add morganlinton/BeautifulRust — ставить скіл у поточний проєкт
  • додай -g, щоб встановити на рівні користувача, а не проєкту
  • додай -a <агент>, якщо потрібно вказати конкретного агента, наприклад -a codex чи -a cursor

Для Claude Code є окремий шлях через плагін — оновлення тоді приходять однією командою: claude plugin install beautiful-rust --marketplace morganlinton/BeautifulRust. Усередині сесії те саме робиться двома рядками: /plugin marketplace add morganlinton/BeautifulRust і /plugin install beautiful-rust@beautiful-rust.

Звідки правила і що робить скіл, коли джерела не згодні

Правила зведені з п'яти джерел: Google Rust Style Guide, офіційних Rust API Guidelines, книги Effective Rust Девіда Драйсдейла, збірки Rust Design Patterns і Microsoft Pragmatic Rust Guidelines. У скіл вбудований стиснутий дайджест кожного джерела — агент може звернутись до оригінальної аргументації, коли потрібно. Де джерела розходяться в рекомендаціях, скіл не змішує підходи, а обирає один варіант і пояснює чому саме цей.

Що саме змінюється в коді: повний приклад

На бібліотеці для парсингу семверу без скіла агент видав структуру з публічними полями (pub major: u64 і так далі), без секції /// # Errors у документації та з unwrap() прямо в doc-прикладі. Зі скілом та ж модель зробила поля приватними, додала методи-геттери типу major(), задокументувала конкретні причини помилки (порожній рядок, зайвий нуль на початку числа, переповнення u64, недопустимі символи в ідентифікаторі) і переписала doc-приклад так, щоб він повертав Result через ? замість unwrap() — тобто код, який користувач може скопіювати в реальний проєкт без ризику паніки.

Цю різницю перевіряли на трьох тестових задачах: написання бібліотеки, написання CLI і рефакторинг захаращеного модуля. Сумарний результат — 29 з 30 перевірок пройдено зі скілом проти 24 з 30 без нього.

Коли скіл підвантажується сам

Агент підхоплює скіл автоматично, коли в задачі фігурують Rust, cargo, краб-залежності (crates), borrow checker, clippy або файли з розширенням .rs — спеціально викликати його не потрібно.

Раніше в теміClaude Code тримає довгі задачі й питає дозволуПізніше в теміGoogle розклав ADK-агентів на три шари
Читати в ТелеграміПрактика ШІ в бізнесі — щодня, без хайпу