К основному содержанию
промпт GP ChatGPT

Error Handling taste — промпт для ChatGPT и Claude.ai: правила

Промпт задаёт ИИ-ассистенту вкус бэкенд-инженера на TypeScript: как валидировать вход, разделять ожидаемые ошибки и баги, логировать и отдавать клиенту.

Открыть на GitHub

Что делает Error Handling taste

Это набор утверждений о том, как обрабатывать ошибки в TypeScript-бэкенде. Каждое правило идёт с оценкой уверенности, поэтому видно, где автор твёрд, а где сам сомневается. Валидация внешних данных схемой вроде Zod до бизнес-логики, разделение ожидаемых доменных ошибок и настоящих багов, типизированные классы ошибок с машинным кодом.

Дальше — про то, что делать с пойманной ошибкой. Ловить только там, где можно добавить контекст, восстановиться или перевести ошибку, остальное пусть всплывает. Маппинг в HTTP-ответы живёт в одном центральном обработчике, а не в каждом роуте. Тела ответов — problem+json по RFC 9457 с кодом, сообщением и request id. Стек-трейсы, SQL и внутренние хосты наружу не уходят.

Есть блок про устойчивость: таймаут на каждый сетевой вызов, AbortController для отмены нижележащей работы, circuit breaker вокруг нестабильных зависимостей, повтор только идемпотентных операций с экспоненциальной задержкой и жёстким лимитом попыток. Необработанные отклонения промисов считаются фатальными. Промпт вставляют в чат как системную инструкцию или первым сообщением — установки в привычном смысле тут нет.

Какие задачи решает

  • провалидировать внешний ввод схемой до бизнес-логики
  • развести ожидаемые доменные ошибки и настоящие баги
  • собрать типизированные классы ошибок с машинным кодом
  • свести маппинг ошибок в HTTP-ответы в один обработчик
  • закрыть сетевые вызовы таймаутом и отменой

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

  • Вставь эти правила как системную инструкцию и дальше помогай мне с обработкой ошибок в TypeScript-бэкенде
  • Проверь мой код на эти правила: где я глотаю ошибку молча и где нет таймаута на сетевом вызове
  • Перепиши этот catch-блок так, чтобы оригинальная ошибка шла в cause, а наружу уходил problem+json

Как установить Error Handling taste

Как использовать

Вставьте текст в начало диалога или в инструкции проекта

Из того же набора73

Весь набор →
SwiftUI iOS App taste Набор правил для SwiftUI-проекта: как строить экраны, где хранить состояние и что делать с устаревшими API. Пригодится, когда агент пишет новый код для iOS. GP ChatGPT ★ 174 597звёзд репо Universal LLM Operating Guidelines Набор правил для ИИ-кодинга: сначала разобраться в задаче, потом менять код. Снижает выдуманные API и лишние правки. GP ChatGPT ★ 174 597звёзд репо Redis Caching taste Промпт задаёт ИИ-ассистенту набор правил работы с Redis: cache-aside, TTL с джиттером, инвалидация после записи. Пригодится, когда проектируешь кэш и не хочешь забыть про stampede и утечки памяти. GP ChatGPT ★ 174 597звёзд репо Kubernetes taste Промпт задаёт ИИ-ассистенту набор правил платформенной команды: GitOps, пробы, ресурсы, безопасность подов. Пригодится, когда просите модель писать или проверять манифесты. GP ChatGPT ★ 174 597звёзд репо Git Workflow taste Промпт задаёт ИИ-ассистенту привычки trunk-based команды: короткие ветки, Conventional Commits, squash-merge и защита main. GP ChatGPT ★ 174 597звёзд репо Monorepo taste Промпт задаёт агенту свод правил для монорепозитория: pnpm workspaces, Turborepo, границы пакетов и общие конфиги. Пригодится, когда нужно привести структуру репо к одному стилю. GP ChatGPT ★ 174 597звёзд репо Rust CLI taste Промпт задаёт набор правил, по которым ИИ пишет консольные утилиты на Rust: разбор аргументов, ошибки, вывод, тесты. GP ChatGPT ★ 174 597звёзд репо React State Management taste Сводка правил по управлению состоянием в React: когда использовать useState, Zustand, Context и TanStack Query. Помогает избежать типичных ошибок вроде лишних глобальных сторов. GP ChatGPT ★ 174 597звёзд репо

Похожие

error-handling affaan-m Скилл задаёт единые правила обработки ошибок в TypeScript, Python и Go: типизированные исключения, ретраи, circuit breaker, тексты для пользователя. CX Codex +1 4 800установок error-handling-patterns Seth Hobson Скилл помогает проектировать обработку ошибок: исключения, Result-типы, передачу контекста и graceful degradation. Пригодится для API и отладки сбоев. CX Codex 22 957установок go-error-handling cxuu Скилл учит агента писать надёжную обработку ошибок в Go: выбирать между %w и %v, задавать sentinel-ошибки и не смешивать логирование с возвратом. CX Codex +1 1 300установок golang-error-handling samber Скилл для идиоматичной обработки ошибок в Go: оборачивание с контекстом, проверка цепочек, структурированное логирование и интеграция с samber/oops. Применяется при создании, оборачивании, инспекции и логировании ошибок. CX Codex +1 43 400установок iii-error-handling iii-hq Скилл учит агента распознавать коды ошибок iii-движка и SDK, различать сетевые сбои от отказов в доступе, определять, когда повторять вызов безопасно. Нужен, если пишешь код на Node, Python, Rust или в браузере с вызовами удалённых функций. CX Codex +1 4 100установок m06-error-handling actionbook Помогает ИИ-агенту выбирать правильный способ обработки ошибок в Rust. Пригодится, когда нужно решить между Result, Option, panic!, thiserror и anyhow. CX Codex +1 3 500установок

Рядом в каталоге

Всё по теме «Бэкенд и API» →

Вопросы о Error Handling taste

Как установить Error Handling taste в Claude?

Отдельной команды установки нет: промпт вставляют в чат как системную инструкцию или первым сообщением, а дальше работают в этом же диалоге.

Что делает Error Handling taste?

Задаёт ассистенту набор правил обработки ошибок в TypeScript-бэкенде: валидация на входе, разделение ожидаемых ошибок и багов, централизованный маппинг в HTTP, логирование с контекстом.

Что нужно для работы промпта?

Ничего, кроме чата. Правила ссылаются на Zod и RFC 9457 problem+json, но это ориентиры для кода, а не зависимости самого промпта.

Исходный текст

prompts.csv · CC0-1.0
# Error handling taste of a TypeScript backend engineer
- Fail fast at the edges: validate every external input with a schema library such as Zod before it reaches business logic. Confidence: 0.90
- Separate expected domain errors (not found, conflict, validation) from unexpected bugs, and handle them differently. Confidence: 0.90
- Model expected failures as return values or a Result type; reserve throw for truly exceptional cases. Confidence: 0.70
- Define a small set of typed error classes with a stable machine-readable code field. Confidence: 0.85
- Never swallow an error silently; an empty catch block needs a comment explaining why. Confidence: 0.95
- When rethrowing, wrap the original with the cause option so the stack chain survives. Confidence: 0.85
- Only catch an error where you can add context, recover, or translate it; let everything else bubble up. Confidence: 0.85
- Map errors to HTTP responses in one central error handler, not inside each route. Confidence: 0.90
- Return RFC 9457 problem+json bodies with a code, a human message, and a request id. Confidence: 0.75
- Never leak stack traces, SQL, or internal hostnames to API clients. Confidence: 0.95
- Log each error once, at the boundary that handles it, not at every layer it passes through. Confidence: 0.85
- Include structured context in error logs (request id, user id, operation), never secrets or tokens. Confidence: 0.90
- Retry only idempotent operations, with exponential backoff, jitter, and a hard attempt limit. Confidence: 0.90
- Put a timeout on every network call; a missing timeout is a bug. Confidence: 0.95
- Use AbortController to cancel downstream work when the caller goes away. Confidence: 0.75
- Wrap flaky dependencies in a circuit breaker so one slow service cannot take the whole app down. Confidence: 0.70
- Treat unhandled promise rejections as fatal: log them and let the process restart. Confidence: 0.85
- Let a supervisor restart a crashed process instead of trying to keep a corrupted one alive. Confidence: 0.80
- Report unexpected errors to an error tracker with release and environment tags. Confidence: 0.85
- Write tests for failure paths, not only the happy path. Confidence: 0.85
- Write error messages that say what failed, with which input, and what the caller can do next. Confidence: 0.85
- Use the never type in exhaustive switch statements so new error codes break the build until handled. Confidence: 0.75

© f · CC0-1.0 · f/prompts.chat

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой