Обработка ошибок в Rust через error-stack

engineering

handling-rust-errors — это скилл для Claude Code, который задаёт паттерны обработки ошибок в Rust на основе крейта error-stack, принятого в кодовой базе HASH. Скилл охватывает три ключевых сценария: определение пользовательских типов ошибок через derive_more и Report<MyError>, пропагацию ошибок методами change_context и change_context_with, а также добавление контекста с помощью attach и attach_with (включая ленивый вариант для дорогих вычислений). Явно запрещено использовать anyhow, eyre, thiserror и Box<dyn Error> — вместо них строго применяется error-stack с импортом ResultExt. Исключение: компилятор HashQL (libs/@local/hashql/*) использует hashql-diagnostics для диагностик с указанием позиций в исходном коде, меток и предложений исправлений. Скилл будет полезен Rust-разработчикам, работающим с Result-типами и выстраивающим единообразную, отлаживаемую обработку ошибок в проектах на базе HASH.