- Мульти-провайдер: 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>
110 lines
6.3 KiB
Markdown
110 lines
6.3 KiB
Markdown
# Синхронизация ИИ-агента с 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`.*
|