Rust CLI taste — промпт для ChatGPT и Claude.ai: правила для Rust CLI
Промпт задаёт набор правил, по которым ИИ пишет консольные утилиты на Rust: разбор аргументов, ошибки, вывод, тесты.
Открыть на GitHubЧто делает Rust CLI taste
Это промпт-набор из девятнадцати пунктов про то, как выглядит аккуратная CLI-утилита на Rust. Модель разбирает аргументы через clap с derive API, а текст справки берёт из doc-комментариев. Из main возвращается anyhow::Result, и каждый шаг, который может упасть, получает .context(). Для библиотечных типов ошибок предлагается thiserror, а anyhow остаётся только в бинарнике.
Структура крейта — тонкий main.rs и lib.rs с настоящей логикой, чтобы её можно было тестировать. Обычный вывод идёт в stdout, логи, прогресс и ошибки — в stderr. Есть --json для машиночитаемого вывода через serde, tracing с фильтром по флагам -v и переменной RUST_LOG, уважение к NO_COLOR и отключение цвета, когда stdout не терминал. Прогресс-бары на indicatif — только для операций длиннее примерно секунды. Коды выхода разные и документированные, а не всегда 1.
Конфигурация читается по порядку: флаги, переменные окружения, TOML-файл; пути ищутся через directories. Тесты — end-to-end через assert_cmd и снапшоты через insta. Асинхронность и tokio промпт советует не тянуть, если утилита не делает параллельную сетевую работу. В сборке — clap_complete и clap_mangen для автодополнения и man-страницы, cargo-dist для готовых бинарников из GitHub Actions, clippy с запретом предупреждений и cargo fmt --check в CI. Отдельный пункт — корректная обработка Ctrl+C через ctrlc, чтобы не оставалось недописанных файлов.
Какие задачи решает
- разобрать аргументы CLI и получить справку из doc-комментариев
- добавить контекст к каждой ошибке вместо голого
? - разделить крейт на тонкий
main.rsи тестируемыйlib.rs - отдавать машиночитаемый вывод по флагу
--json - настроить разные коды выхода вместо постоянной единицы
Примеры запросов агенту
- Напиши CLI-утилиту на Rust по правилам Rust CLI taste: clap с derive, anyhow в main, thiserror в библиотеке.
- Сделай разбор аргументов через clap и добавь
.context()к каждому шагу, который может упасть. - Добавь флаг
--jsonс serde и убери цвет, когда stdout не терминал.
Как установить Rust CLI taste
Как использовать
Вставьте текст в начало диалога или в инструкции проекта
Вручную: положить файлы
.claude/commands/prompts.csv.mdИз того же набора73
Весь набор →Похожие
Рядом в теме «Языки программирования»
Все промпты по теме «Языки программирования» →Вопросы о Rust CLI taste
Как установить Rust CLI taste в Claude?
Отдельной команды установки нет: промпт вставляют в чат как обычное сообщение или сохраняют в свои инструкции.
Что делает Rust CLI taste?
Задаёт правила, по которым модель пишет консольные утилиты на Rust: clap, anyhow и thiserror, разделение вывода по потокам, тесты через assert_cmd и insta.
Нужен ли tokio для утилиты по этому промпту?
Промпт советует обходиться без async и tokio, если инструмент не выполняет параллельную сетевую работу.
Исходный текст
prompts.csv · CC0-1.0
# Rust CLI taste - Parse arguments with clap using the derive API and doc comments as help text. Confidence: 0.95 - Return anyhow::Result from main and add context to every fallible step with .context(). Confidence: 0.90 - Define library error types with thiserror and keep anyhow in the binary only. Confidence: 0.85 - Split the crate into a thin main.rs and a lib.rs that holds the real logic for testing. Confidence: 0.85 - Write normal output to stdout and logs, progress and errors to stderr. Confidence: 0.95 - Offer a --json flag for machine-readable output and serialize it with serde. Confidence: 0.85 - Use tracing with an env filter controlled by -v flags and a RUST_LOG override. Confidence: 0.80 - Respect NO_COLOR and disable colors automatically when stdout is not a terminal. Confidence: 0.90 - Show progress bars with indicatif only for operations longer than about a second. Confidence: 0.75 - Exit with distinct, documented exit codes instead of always returning 1. Confidence: 0.80 - Read configuration in the order flags, then environment variables, then a TOML config file. Confidence: 0.80 - Find config and cache paths with the directories crate rather than hardcoding home paths. Confidence: 0.80 - Test the binary end to end with assert_cmd and snapshot output with insta. Confidence: 0.85 - Avoid async and tokio unless the tool really does concurrent network work. Confidence: 0.75 - Generate shell completions and a man page with clap_complete and clap_mangen at build time. Confidence: 0.75 - Ship prebuilt binaries for Linux, macOS and Windows with cargo-dist from GitHub Actions. Confidence: 0.80 - Run cargo clippy with warnings denied and cargo fmt --check in CI. Confidence: 0.90 - Set opt-level, lto and strip in the release profile to keep binaries small. Confidence: 0.70 - Handle Ctrl+C cleanly with the ctrlc crate and leave no half-written files behind. Confidence: 0.80
© f · CC0-1.0 · f/prompts.chat