papayu/docs/SNYK_AND_DOCUMATIC_SYNC.md
Yuriy 65e95a458d feat: мульти-провайдер LLM, тренды дизайна, Snyk/Documatic sync, личная автоматизация
- Мульти-провайдер: PAPAYU_LLM_PROVIDERS — сбор планов от нескольких ИИ (Claude, OpenAI), агрегация
- Тренды дизайна и иконок: вкладка в модалке, поиск по безопасным доменам (Tavily include_domains)
- Snyk Code: PAPAYU_SNYK_SYNC, REST API issues → snyk_findings в agent-sync
- Documatic: architecture_summary из .papa-yu/architecture.md в agent-sync
- Личная автоматизация: capability personal-automation (терминал git/npm/cargo, открытие URL)
- agent_sync расширен: snyk_findings, architecture_summary; analyze_project_cmd и run_batch пишут sync
- Документация: SNYK_AND_DOCUMATIC_SYNC.md, SECURITY_AND_PERSONAL_AUTOMATION.md, обновлён CLAUDE_AND_AGENT_SYNC

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-10 15:05:39 +03:00

110 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Синхронизация ИИ-агента с Snyk Code и Documatic
Интеграция с **Snyk Code** (анализ и дополнение кода) и **Documatic** (архитектура и структурирование) для передачи контекста в agent-sync и ИИ-агента.
---
## 1. Snyk Code
[Snyk Code](https://docs.snyk.io/scan-with-snyk/snyk-code) выполняет статический анализ кода на уязвимости и проблемы безопасности. Результаты подмешиваются в **agent-sync** и доступны агенту в Cursor / Claude Code.
### Включение
1. Получите API-токен в [Snyk](https://app.snyk.io/account): Account Settings → General → API Token (или создайте Service Account).
2. Узнайте **Organization ID** (в настройках организации или в URL: `app.snyk.io/org/<org_id>`).
3. Опционально: если в Snyk импортирован конкретный проект — скопируйте **Project ID** (в карточке проекта).
4. Задайте переменные окружения:
```bash
export PAPAYU_AGENT_SYNC=1
export PAPAYU_SNYK_SYNC=1
export PAPAYU_SNYK_TOKEN="ваш-токен"
# или
export SNYK_TOKEN="ваш-токен"
export PAPAYU_SNYK_ORG_ID="uuid-организации"
# опционально — только issues этого проекта
export PAPAYU_SNYK_PROJECT_ID="uuid-проекта"
```
### Поведение
- При каждом **анализе проекта** (кнопка «Анализировать» и т.п.) приложение при включённом `PAPAYU_SNYK_SYNC` запрашивает у Snyk REST API список **code**-issues по организации (и по проекту, если задан `PAPAYU_SNYK_PROJECT_ID`).
- Результаты записываются в **`.papa-yu/agent-sync.json`** в поле **`snyk_findings`** (массив: title, details, path). Агент в IDE может читать этот файл и учитывать замечания Snyk при предложениях.
### Ограничения
- Нужен проект, уже импортированный в Snyk (через UI или интеграцию с Git). Локальный анализ только по пути без импорта в Snyk через этот API не запускается.
- Используется REST API Snyk: `GET /rest/orgs/{org_id}/issues?type=code&...`. Версия API: `2024-04-02~experimental`.
---
## 2. Documatic (архитектура и структурирование)
[Documatic](https://www.documatic.com/) — поиск и документация по кодовой базе (расширение VS Code и веб-платформа). Публичного REST API для вызова из PAPA YU нет, поэтому интеграция — **через общий файл архитектуры**, который агент читает из agent-sync.
### Настройка
1. Экспортируйте или сохраните описание архитектуры/структуры проекта в файл в репозитории, например:
- **`.papa-yu/architecture.md`** (по умолчанию),
- или укажите свой путь через переменную **`PAPAYU_DOCUMATIC_ARCH_PATH`** (относительно корня проекта).
2. Содержимое можно:
- сформировать вручную,
- сгенерировать в Documatic (если есть экспорт) и скопировать в этот файл,
- собрать из других инструментов (диаграммы, списки модулей и т.д.).
3. Переменные окружения:
```bash
export PAPAYU_AGENT_SYNC=1
# по умолчанию читается .papa-yu/architecture.md
# свой путь (относительно корня проекта):
# export PAPAYU_DOCUMATIC_ARCH_PATH="docs/architecture.md"
```
### Поведение
- При записи **agent-sync** приложение читает файл архитектуры (если он есть) и добавляет его содержимое в **`architecture_summary`** в **`.papa-yu/agent-sync.json`** (обрезается до 16 000 символов). ИИ-агент в Cursor / Claude Code может использовать это для анализа и структурирования архитектуры при предложениях.
---
## 3. Структура agent-sync.json
При включённых интеграциях файл **`.papa-yu/agent-sync.json`** может выглядеть так:
```json
{
"path": "/path/to/project",
"updated_at": "2026-02-09T12:00:00Z",
"narrative": "Краткий вывод анализа PAPA YU...",
"findings_count": 3,
"actions_count": 5,
"snyk_findings": [
{
"title": "SQL injection",
"details": "[high] ...",
"path": "src/api/users.rs"
}
],
"architecture_summary": "# Архитектура\n\nМодули: ..."
}
```
- **snyk_findings** — при `PAPAYU_SNYK_SYNC=1` и успешном ответе Snyk API.
- **architecture_summary** — при наличии файла архитектуры (по умолчанию `.papa-yu/architecture.md` или путь из `PAPAYU_DOCUMATIC_ARCH_PATH`).
---
## 4. Краткий чеклист
| Задача | Действие |
|--------|----------|
| Snyk Code | Задать `PAPAYU_AGENT_SYNC=1`, `PAPAYU_SNYK_SYNC=1`, `PAPAYU_SNYK_TOKEN`, `PAPAYU_SNYK_ORG_ID` (и при необходимости `PAPAYU_SNYK_PROJECT_ID`). Импортировать проект в Snyk. |
| Documatic / архитектура | Положить описание архитектуры в `.papa-yu/architecture.md` (или задать `PAPAYU_DOCUMATIC_ARCH_PATH`). Включить `PAPAYU_AGENT_SYNC=1`. |
| Агент в IDE | Настроить правило/скрипт: читать `.papa-yu/agent-sync.json` и учитывать `narrative`, `snyk_findings`, `architecture_summary` при предложениях. |
---
*См. также: `docs/CLAUDE_AND_AGENT_SYNC.md`, `env.openai.example`.*