.cursor/skills/golang-errors/SKILL.md
Работа с ошибками в Go (github.com/muonsoft/errors). Sentinel-ошибки, обёртывание, атрибуты, маппинг в HTTP.
npx skillsauth add strider2038/knowledge-db golang-errorsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Пакет: github.com/muonsoft/errors.
| Функция | Назначение |
|---------|------------|
| errors.New(msg) | Sentinel-ошибка (без стека) |
| errors.Errorf("action: %w", err) | Обёртка + стек + контекст |
| errors.Wrap(err, options...) | Обёртка с атрибутами |
| errors.Is(err, target) | Проверка sentinel |
| errors.As[T](err) | Извлечение типизированной ошибки |
errors.New — только для объявления sentinel на уровне пакета. Для анонимных ошибок — всегда errors.Errorf.
var (
ErrNodeNotFound = errors.New("node not found")
ErrInvalidPath = errors.New("invalid path")
)
Каждый return ..., err из handler или use case — обёрнут:
if err != nil {
return errors.Errorf("get node: %w", err)
}
С атрибутами:
return errors.Errorf("save node: %w", err,
errors.String("path", path),
)
ErrNodeNotFound → 404 Not FoundСтандартная библиотека fmt.Errorf не сохраняет стек вызовов. Для обёртки ошибок всегда использовать errors.Errorf из github.com/muonsoft/errors — он добавляет стек и поддерживает %w для цепочки.
// Неправильно
return fmt.Errorf("get node: %w", err)
// Правильно
return errors.Errorf("get node: %w", err)
errors.Newerrors.Errorf (не fmt.Errorf)"get node", "validate base"development
Knowledge base layout and node format for knowledge-db. Use when creating or editing KB markdown files. Root path placeholder {{DATA_PATH}}.
development
Frontend web/ (React, TypeScript, Vite). Используй при работе с web/src/**/*.tsx, web/src/**/*.ts.
tools
Регистрация фоновых процессов через pior/runnable. Используй при добавлении Telegram bot и других воркеров в kb-server.
testing
Verify implementation matches change artifacts. Use when the user wants to validate that implementation is complete, correct, and coherent before archiving.