Help us improve
Share bugs, ideas, or general feedback.
From dex-skill-deep-audit
Глубокий аудит компонента — контракты, concurrency, error handling, безопасность. Активируется при deep audit, глубокий аудит, критический анализ, аудит компонента, race condition, thread safety, double fault, N+1, deadlock, memory leak, injection
How this skill is triggered — by the user, by Claude, or both
Slash command
/dex-skill-deep-audit:deep-auditThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Плохо: `grep -r "lock" src/` и выводы по совпадениям без контекста
Share bugs, ideas, or general feedback.
Плохо: grep -r "lock" src/ и выводы по совпадениям без контекста
Правильно: прочитать ключевые файлы целиком (entry point, data access, workers)
Почему: grep теряет контекст — вызов внутри комментария, мёртвый код, условная ветка. Ложные срабатывания и пропуски реальных проблем
Плохо: сразу читать файлы по догадке — "наверное, проблема в Repository" Правильно: сначала найти манифесты, публичные контракты, entry point, DI-регистрацию, фоновые задачи Почему: без карты пропускаешь workers, scheduled jobs, event handlers — именно там скрыты race conditions и resource leaks
Плохо: искать только бизнес-логику, игнорируя инфраструктурный код Правильно: явно искать raw SQL, reflection, eval, retry/polling, static mutable state, DateTime.Now Почему: инфраструктурные ловушки (injection, drift, concurrency) чаще приводят к critical issues чем бизнес-логика
Плохо: Enqueue() значит "сообщение гарантированно сохранено" — не проверяя реализацию
Правильно: читать реализацию — Enqueue может класть в in-memory буфер без persist
Почему: implicit expectations ломаются под нагрузкой или при сбое. Имя описывает intent, не гарантию
Плохо: проверять только happy path внутри модуля Правильно: проверять что происходит при null, пустой коллекции, concurrent access, таймауте Почему: баги живут на границах — между модулями, между потоками, между сервисами
Плохо: предполагать что класс thread-safe без анализа shared state Правильно: явно искать static поля, mutable singletons, запись без lock/atomic Почему: отсутствие synchronized/lock не значит "нет проблемы" — значит race condition тихий и проявится в production
Плохо: lock на весь batch (lock(list) { foreach ... process })
Правильно: проверить scope каждого lock — можно ли заменить на per-item или lock-free структуру
Почему: coarse-grained lock создаёт contention, fine-grained — риск deadlock. Оба варианта надо осознанно выбирать
Плохо: catch логирует в БД, а БД недоступна — исходная ошибка потеряна Правильно: проверять что catch/finally не содержат I/O, который может бросить второе исключение Почему: double fault маскирует root cause. В логах видишь ошибку cleanup, а не исходную проблему
Плохо: retry policy на операции, которая не идемпотентна — CreateOrder() повторяется при timeout
Правильно: проверить наличие dedup key, unique constraint, idempotency token
Почему: retry + non-idempotent = дубликаты данных. Timeout не значит "не выполнилось" — может быть "выполнилось, ответ потерялся"
Плохо: DateTime.Now / Date.now() на сервере приложений для записи в БД
Правильно: now() / GETDATE() в SQL или единый time source
Почему: drift между серверами 100ms-несколько секунд. При 3 инстансах — записи с "будущим" временем, сломанная сортировка, потерянные events
Плохо: проверить что запрос работает с тестовыми данными Правильно: анализировать failure scenarios — что при disconnect, partial commit, constraint violation Почему: happy path работает всегда. Production падает на edge cases: deadlock при concurrent update, orphan records при partial failure
Плохо: async Task Process() без CancellationToken — не останавливается при shutdown
Правильно: проверить что CancellationToken передаётся через всю цепочку до I/O вызовов
Почему: без cancellation graceful shutdown не работает — процесс убивается, транзакции обрываются, данные в inconsistent state
npx claudepluginhub dex-it/claude-code-marketplace --plugin dex-skill-deep-auditOrchestrates changing an existing working feature to new desired behavior by updating tests first, then implementation, with review and gated commit.