evlog — скилл

Три скилла по логированию в TypeScript: разбор логов кода и переход на события с полным контекстом, журнал аудита и анализ локальных логов

  • 1 907 ★ репозитория
  • Последний коммит
  • MIT
СкиллОфициальный

Расширенный доступ

Почему такой уровень

  • Скиллы правят код обработчиков и добавляют зависимость в проект, а `evlog init` записывает файлы настройки
  • Команды через `npx` скачивают пакет @evlog/cli из сети, если его нет в проекте
  • Разбор логов читает файлы приложения, где бывают данные пользователей и платежей
Все причины и проверки

evloghq/evlog

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/evlog

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Скиллы правят код обработчиков и добавляют зависимость в проект, а `evlog init` записывает файлы настройки
  • Команды через `npx` скачивают пакет @evlog/cli из сети, если его нет в проекте
  • Разбор логов читает файлы приложения, где бывают данные пользователей и платежей

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

evlog — библиотека логирования для TypeScript, где на каждую операцию приходится одно широкое событие со всем контекстом, а ошибки несут поля `why` и `fix`. В папке skills/ репозитория лежат три скилла для агента, который работает с кодом приложения. Установка командой `npx skills add https://www.evlog.dev` кладет их в каталог скиллов. Скилл `review-logging-patterns` ищет в TypeScript и JavaScript россыпь вызовов console.log, ошибки без контекста и пропущенные идентификаторы запроса. Затем он переводит код на evlog: заменяет разрозненные записи на `useLogger()` и `log.set()`, а общие ошибки на `createError({ why, fix })`. Он настраивает отправку логов и выборку для Nuxt, Nitro, Next.js, TanStack Start, Hono, Express, Fastify и других фреймворков. На семи фреймворках скилл может запустить команды `evlog init` (подключить библиотеку) и `evlog map` (оценить, какие входные точки приложения не пишут логов), но каждый раз спрашивает разрешения. Скилл `build-audit-logs` проектирует журнал аудита по схеме действие, исполнитель, объект, исход: вызовы `log.audit()` и `withAudit()`, отказы в доступе, обогащение контекстом, подпись записей по HMAC или цепочке хэшей и проверки в тестах. Скилл `analyze-logs` читает локальные файлы `.evlog/logs/*.jsonl`, которые пишет файловый приемник, и отвечает на вопросы: что упало, какие запросы медленные, что произошло с конкретным requestId. Для этого он берет команды `evlog logs` или разбирает файлы сам.

Для кого. Для TypeScript-разработчиков, которые пишут сервис на Nuxt, Next.js, Hono или Express и хотят, чтобы агент привел логи в порядок, собрал журнал аудита и разбирал сбои по логам.

Подходит, если

  • В обработчиках запросов россыпь console.log, а ошибки приходят строкой «Что-то пошло не так», и вы хотите перевести код на структурные события
  • Нужен журнал аудита для платежей, администрирования или выгрузки данных: кто, что, над чем сделал и разрешили ли это
  • Сервис упал, и агент должен по локальным логам найти ошибки, медленные запросы и цепочку одного запроса
  • Вы хотите добавить в проект оценку покрытия логированием и держать ее в CI порогом или базовой линией
  • Нужно подключить отправку логов в Axiom, Sentry, Datadog, OTLP, PostHog или другой приемник с выборкой и обогащением

Не подходит, если

  • Проект написан не на TypeScript или JavaScript: скиллы и вся библиотека рассчитаны на эти языки
  • Нужен разбор ошибок прода в уже работающем сервисе мониторинга: для этого в каталоге есть Sentry for AI, а evlog читает только свои локальные файлы или ваш приемник
  • Вы не хотите добавлять в проект зависимость evlog: скиллы учат писать код под эту библиотеку
  • Логов приложения на диске нет и приемник не включен: `analyze-logs` читает файлы `.evlog/logs/` и приемник памяти и без них будет работать вхолостую

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

Просмотри обработчик оформления заказа и замени россыпь console.log одним событием с контекстом, а ошибку оплаты сделай объяснимой через `why` и `fix`

Ограничения

Лицензия MIT. Скиллы привязаны к библиотеке evlog: работа с чужими логгерами в них не описана. Перевод кода на evlog добавляет в проект зависимость `npm install evlog`.

Команды `evlog init`, `evlog map` и `evlog agents` скилл предлагает запускать на Nuxt, Nitro, Next.js, TanStack Start, Hono, Express и Fastify. На остальных фреймворках настройку нужно вести вручную. Автор называет командную строку ранней: оценки и правила меняются от версии к версии. Если в проекте нет `@evlog/cli`, команды через `npx` скачивают его без фиксации версии, поэтому скилл просит разрешения.

Быстрее всего скиллы ставит `npx evlog agents`: по умолчанию в `~/.agents/skills` с ссылкой для Claude Code, а с ключом `--local` в проект. Другие агенты добавляются отдельным запуском `npx skills add` с ключом `--agent`.

У скилла `analyze-logs` есть тонкость: события содержат то, что приложение положило через `log.set()`, например данные пользователей или платежей. Файлы автоматически попадают в `.gitignore` и лежат только на машине, где работает приложение.

Как отключить. Удалите папки `review-logging-patterns`, `build-audit-logs` и `analyze-logs` из `~/.agents/skills` и ссылки на них в `~/.claude/skills` либо из `.agents/skills` и `.claude/skills` проекта. Если команда `npx evlog agents` добавила блок правил в AGENTS.md, уберите его вручную. Саму библиотеку снимает `npm uninstall evlog`, а каталог `.evlog/` можно удалить.

Частые вопросы

Что такое широкое событие и зачем оно агенту?

Это одна запись на операцию: запрос, пользователь, корзина, ошибка и длительность лежат в одном JSON. Склеивать десяток строк по времени не нужно. Поля `why` и `fix` в ошибке сразу подсказывают причину и исправление.

Что считает команда `evlog map`?

Она читает проект на диске без трафика и находит все входные точки приложения. Каждой она ставит оценку по тому, пишет ли обработчик события и ошибки, и называет три места, которые стоит исправить первыми. Показатель можно держать в CI: ключ `--min-score` задает порог, а `--baseline` не пускает ухудшение по сравнению с сохраненным результатом.

Какие приемники логов умеет настраивать скилл?

Скилл называет Axiom, OTLP, HyperDX, Sazabi, PostHog, Sentry, Better Stack, Datadog, Loki, ClickHouse, NuxtHub и приемник памяти. Для разработки по умолчанию подходит файловый приемник, который пишет в `.evlog/logs/`.

Как сделать журнал аудита неизменяемым?

Обертка `signed()` добавляет к записям подпись HMAC или цепочку хэшей. Записи аудита всегда сохраняются без выборки, а `auditOnly()` отправляет в отдельный приемник только их. Для тестов есть `mockAudit()`.

Как `analyze-logs` ищет в логах нужное?

Сначала пробует команду `evlog logs` с фильтрами: `errors`, `slow`, по requestId, `stats` по маршрутам с p50 и p95, условие через `--where`. Если командной строки нет, он читает файлы `.jsonl` по датам, определяет формат NDJSON или построчный вывод и фильтрует по полям `level`, `status`, durationMs и requestId.

Что записывает команда `evlog agents`?

Она запускает установку тех же скиллов и добавляет в AGENTS.md проекта короткий блок правил: как агенту писать логирование при любой правке. Скиллы дают подробности, а блок напоминает основное на каждый запрос.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Скиллы для Node.js от одного из авторов Fastify: практики Node и Fastify, TypeScript, OAuth, линтинг и документация

СкиллМинимальный доступ2 тыс.Звезды репозитория

Скиллы Better Auth

Better Auth Skills

Официальные скиллы Better Auth: разворачивают аутентификацию в JS и TS проектах и подсказывают безопасную настройку

СкиллРасширенный доступ227Звезды репозитория
Официальный

24 скилла в пакетах tRPC: сервер, адаптеры, клиент, Next.js, TanStack React Query и OpenAPI подгружаются агенту по теме задачи через TanStack Intent

СкиллМинимальный доступ40,7 тыс.Звезды репозитория
Выбор редакции

Больше сорока скиллов по Go: стиль, ошибки, конкурентность, тесты, безопасность, производительность и популярные библиотеки

СкиллРасширенный доступ3,7 тыс.Звезды репозитория

Скилл Payload

Payload agent skill

Официальный скилл Payload CMS, который приходит вместе с пакетом: коллекции, поля, хуки, доступы, запросы и адаптеры баз данных

СкиллМинимальный доступ45,6 тыс.Звезды репозитория

17 скиллов учат агента писать приложения на Convex по документации и вести проект через PRD, task.md и журнал изменений

СкиллРасширенный доступ405Звезды репозитория

Коротко о README

Описание библиотеки на английском: проблема россыпи логов, пример широкого события, настройка через evlog.config.ts, подключение к Nuxt и другим фреймворкам, таблица интеграций, раздел про командную строку `evlog map` и раздел о скиллах с примерами запросов. Скиллы лежат в skills/ вместе с эталонами по широким событиям, структурным ошибкам, конвейеру приемников и проверке кода. Для самих разработчиков evlog в .agents/skills есть отдельные скиллы, а документация лежит на evlog.dev.

Бейдж для README

Исходный SKILL.md

---
name: review-logging-patterns
description: Review code for logging patterns and suggest evlog adoption. Optionally use the evlog CLI, shipped with the evlog package (`evlog init` to wire evlog, `evlog agents` to write the conventions into AGENTS.md, `evlog map` to score entry-point coverage, `--baseline` to gate regressions in CI) on Nuxt, Nitro, Next.js, TanStack Start, Hono, Express, and Fastify. Guides setup on those plus SvelteKit, React Router, NestJS, Express, Fastify, Elysia, oRPC, Cloudflare Workers, AWS Lambda, Astro, and standalone TypeScript. Detects console.log spam, unstructured errors, and missing context. Covers wide events, structured errors, drain adapters (Axiom, OTLP, HyperDX, Sazabi, PostHog, Sentry, Better Stack, Datadog, Loki, ClickHouse, NuxtHub, Memory), sampling, enrichers, and AI SDK integration.
license: MIT
metadata:
  author: HugoRCD
  version: "0.9"
---

# Review logging patterns

Review and improve logging patterns in TypeScript/JavaScript codebases. Transform scattered console.logs into structured wide events and convert generic errors into self-documenting structured errors.

## When to Use

- Setting up evlog in a new or existing project (any supported framework)
- Reviewing code for logging best practices
- Converting console.log statements to structured logging
- Improving error handling with better context
- Configuring log draining, sampling, or enrichment

## Quick Reference

| Working on...           | Resource                                                           |
| ----------------------- | ------------------------------------------------------------------ |
| Setup (CLI)             | [`evlog init`](https://www.evlog.dev/cli/init): wire evlog into the project |
| Project conventions (CLI) | [`evlog agents`](https://www.evlog.dev/cli/agents): write the evlog block into the project's AGENTS.md |
| Coverage map (CLI)      | [`evlog map`](https://www.evlog.dev/cli/map): score dark entry points |
| CI gating (CLI)         | [`evlog map --min-score / --baseline`](https://www.evlog.dev/cli/ci): gate regressions |
| Wide events patterns    | [references/wide-events.md](references/wide-events.md)             |
| Error handling          | [references/structured-errors.md](references/structured-errors.md) |
| Code review checklist   | [references/code-review.md](references/code-review.md)             |
| Drain pipeline          | [references/drain-pipeline.md](references/drain-pipeline.md)       |
| Audit logs              | [build-audit-logs](../build-audit-logs/SKILL.md) skill + [docs](https://www.evlog.dev/use-cases/audit/overview) |

## Audit logs

For security-sensitive actions (auth, billing, admin, data export), use evlog's audit layer: a typed `audit` field on wide events, not a parallel logger. See the **`build-audit-logs`** skill for end-to-end setup (`log.audit`, `withAudit`, denials, `auditEnricher`, `auditOnly`, `signed`, `mockAudit`).

```typescript
log.audit({
  action: 'invoice.refund',
  actor: { type: 'user', id: user.id },
  target: { type: 'invoice', id: invoice.id },
  outcome: 'success',

Сообщить о проблеме

Foxx AIevlog
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.