event-log-analysis

$npx mdskill add SteelMorgan/1c-agent-based-dev-framework/event-log-analysis

Analyzes 1C Event Log via ClickHouse to find errors, user actions, and events for troubleshooting and auditing.

  • Helps diagnose errors, audit user activities, and verify database changes after tests.
  • Integrates with ClickHouse for querying logs and uses cluster_map.yaml for database identification.
  • Follows a cascading strategy, prioritizing recent error-level entries before broader time-based searches.
  • Presents results with event details like time and metadata, masking personal data by default.

SKILL.md

.github/skills/event-log-analysisView on GitHub ↗
---
name: event-log-analysis
description: Анализ журнала регистрации 1С (Event Log). Навык учит агента искать ошибки, события и действия пользователей в журнале регистрации (ЖР) через ClickHouse.
---

# Анализ журнала регистрации (Event Log)

ЖР — read-only источник. Сырые записи не включать в вывод без маскирования персональных данных. По умолчанию `mode: "minimal"`.

Для запросов СУБД, блокировок, исключений платформы — `tech-log-analysis`.

---

## Когда применять

| Триггер | Действие |
|---------|----------|
| Пользователь сообщает об ошибке | Сначала последние `Error`, затем узкое окно времени |
| Ошибка за конкретный период | `search_event_log` с `from`/`to` |
| Аудит действий пользователя | `search_event_log` с фильтром по пользователю |
| Проверка изменений объекта | `search_event_log` с фильтром по метаданным |
| Состояние базы после тестов | `search_event_log` с `from: test_start_time`, `limit: 20` |
| Vanessa-прогон не прошёл | Сначала последние `Error`, если пусто — без фильтра уровня |

---

## Алгоритм поиска

1. Получить `cluster_guid` и `infobase_guid` из `cluster_map.yaml`.
2. Определить стратегию (см. каскад ниже).
3. `search_event_log` с нужными фильтрами.
4. Анализ `records`: `event_time`, `event_presentation`, `comment`, `metadata_presentation`.
5. При упоминании объекта метаданных — `navigate_symbol` для перехода к коду.

### Каскад фильтрации

1. **Сначала** — последние записи `level: "Error"` (без `from`/`to` при неизвестном точном времени).
2. **Если пусто** — повторить без фильтра уровня.
3. **Если известно время** — сузить `from`/`to` до ±15 минут.
4. **Если ЖР не даёт ответа** — переходить к `tech-log-analysis`.

Timezone drift: локальное время и ClickHouse могут расходиться; поэтому шаг 1 без временного фильтра надёжнее.

```
search_event_log(
  cluster_guid: "...",
  infobase_guid: "...",
  from: "2025-02-11T13:00:00Z",
  to:   "2025-02-11T14:00:00Z",
  level: "Error",
  mode: "minimal",
  limit: 100
)
```

### Интерпретация результатов (после тестов / Vanessa)

| Картина | Вывод |
|---------|-------|
| Записей нет | База не запустилась / ЖР недоступен |
| Есть события, `Error` отсутствует | База живая, тесты выполняются |
| Последнее событие — завершение сеанса без ошибок | Тесты завершились успешно |
| Есть `Error` в `event_presentation` / `comment` | Анализировать `comment` и `metadata_presentation` |
| `Предупреждение безопасности` | Перейти к визуальной диагностике через GUI/скриншот |

---

## Безопасность

- Маскировать ФИО, ИНН, контактные данные в выводе.
- По умолчанию `mode: "minimal"`.
- Сужать `from`/`to` до минимально необходимого периода.
- Не запрашивать более 1000 записей при первичном поиске.

---

## Capabilities

| Capability | Назначение |
|------------|------------|
| `search_event_log` | Поиск по журналу регистрации (через ClickHouse) |
| `navigate_symbol` | Переход к коду по метаданным из записи ЖР |

---

## Типичные ошибки

| Ошибка | Обходной путь |
|--------|---------------|
| GUID-ы не из `cluster_map.yaml` | Прочитать конфиг; при отсутствии — запросить у пользователя |
| ClickHouse недоступен | Зафиксировать причину; предложить альтернативу через ТЖ |
| Слишком широкий диапазон — timeout | Сузить окно до 15–30 минут; уменьшить `limit` |
| Нет ошибок в ЖР | Каскад: без фильтра уровня → сузить окно → ТЖ |

---
depends_on: []
---

More from SteelMorgan/1c-agent-based-dev-framework

SkillDescription
1c-ai-agent-cliCLI 1C BSL Agent Framework — tools/install.py (clone, install). Используй при клонировании репозитория, установке компонентов в проект, настройке IDE (Cursor, Claude Code, Windsurf, VS Code+Continue).
agent-debugПаттерн отладочных сообщений для 1С BSL. Используй, когда стандартная диагностика (event-log, скриншоты) не даёт понять фактическое поведение системы — нужно вставить временные точки логирования в код, запустить тест и проанализировать записи ЖР.
agent-developmentCreate custom subagents for specialized AI tasks. Use when the user wants to create a new type of subagent, set up task-specific agents, configure code reviewers, debuggers, or domain-specific assistants with custom prompts.
agent-development-ext>
agent-git-workflowStandardizes git workflow for the AI agent in the sandbox devcontainer: work in agent/<task>-<yyyymmdd>, integrate via agent, never push to main/master, open PRs via GitHub CLI. Use when the user asks to create branches, push changes, open PRs, or follow this sandbox repo setup.
auto-skill-bootstrapDeterministic helper to inventory existing project skills, detect missing capability coverage, search skills.sh via Skills CLI, and (optionally) install missing skills under a trust policy. Uses skills-manifest.json + state.json to stay idempotent across changing requirements.
code-navigationНавигация по коду (Code Navigation). Навык учит агента **эффективно перемещаться по BSL-коду** с помощью LSP (Language Server Protocol).
config-operationsОперации с конфигурацией 1С (CF) — init, info, edit, validate. Используй при создании конфигурации, анализе структуры, изменении свойств и ChildObjects, валидации Configuration.xml.
epf-buildСобрать EPF/ERF из XML-исходников. Используй после внесения временных диагностических правок в разобранную обработку.
epf-dumpРазобрать EPF/ERF в XML-исходники. Используй, когда нужно быстро получить исходный код внешней обработки или отчета для анализа и временной модификации.