- Мульти-провайдер: 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>
386 lines
14 KiB
Markdown
386 lines
14 KiB
Markdown
# papa-yu — Полномасштабная презентация программы
|
||
|
||
**Версия:** 2.4.5
|
||
**Дата:** 2025-01-31
|
||
**Статус:** Investment-ready (~87% DD score)
|
||
|
||
---
|
||
|
||
# Часть 1. ОБЗОР
|
||
|
||
---
|
||
|
||
## Слайд 1. Что такое papa-yu
|
||
|
||
**papa-yu** — десктопное приложение для **анализа проектов** и **автоматических исправлений** с использованием LLM.
|
||
|
||
| Характеристика | Значение |
|
||
|----------------|----------|
|
||
| **Тип** | Desktop (Tauri + Rust) |
|
||
| **Назначение** | LLM-оркестрация: анализ, план, применение правок |
|
||
| **Фокус** | Детерминизм, безопасность, управляемость |
|
||
| **Пользователь** | Разработчик / tech lead, работающий с локальными проектами |
|
||
|
||
---
|
||
|
||
## Слайд 2. Ключевая ценность
|
||
|
||
> **Продукт превращает «хочу исправить» в структурированные, проверяемые и откатываемые действия.**
|
||
|
||
- **Анализ** — поиск проблем (README, .gitignore, тесты, структура)
|
||
- **План** — LLM или эвристика предлагают конкретные правки
|
||
- **Превью** — пользователь видит diff до применения
|
||
- **Apply** — транзакционное применение с auto-check и откатом при ошибке
|
||
- **Undo/Redo** — полный контроль над изменениями
|
||
|
||
---
|
||
|
||
## Слайд 3. Текущий статус
|
||
|
||
| Параметр | Статус |
|
||
|----------|--------|
|
||
| **Due Diligence** | ~87% (investment-ready) |
|
||
| **Архитектура** | Документирована, ADR зафиксированы |
|
||
| **Границы продукта** | LIMITS.md, Critical failures |
|
||
| **Операционная готовность** | RUNBOOK, INCIDENTS |
|
||
| **Готовность к передаче** | Высокая |
|
||
|
||
---
|
||
|
||
# Часть 2. ПРОДУКТ
|
||
|
||
---
|
||
|
||
## Слайд 4. Основные сценарии
|
||
|
||
1. **Анализ по пути** — выбор папки → отчёт (findings, recommendations, actions)
|
||
2. **Предложить исправления** — план через LLM или эвристику → превью → применение
|
||
3. **Batch** — анализ → превью → apply в одной команде
|
||
4. **Agentic run** — цикл: план → apply → проверка → откат при неудаче
|
||
5. **Online research** — поиск (Tavily) → summarize → «Save as Project Note»
|
||
6. **Weekly report** — агрегация traces, LLM proposals, метрики v3
|
||
|
||
---
|
||
|
||
## Слайд 5. Что продукт НЕ делает (LIMITS.md)
|
||
|
||
| Область | Ограничение |
|
||
|---------|-------------|
|
||
| **Real-time** | Операции занимают секунды |
|
||
| **Concurrency** | Один активный контекст |
|
||
| **Plugins** | Нет sandbox для произвольного кода |
|
||
| **Auth** | SSO / RBAC не в scope |
|
||
| **Remote** | Прямая работа с удалёнными репозиториями — unsupported |
|
||
|
||
---
|
||
|
||
## Слайд 6. Critical failures
|
||
|
||
| Событие | Impact |
|
||
|---------|--------|
|
||
| Corrupted workspace | Потеря файлов при сбое apply + отката |
|
||
| Silent data loss (EDIT_FILE) | Некорректная замена без явной ошибки |
|
||
| Network outside allowlist | SSRF, утечка данных |
|
||
| Secrets in trace | Утечка ключей в логах |
|
||
|
||
**Риски названы и управляемы.**
|
||
|
||
---
|
||
|
||
# Часть 3. АРХИТЕКТУРА
|
||
|
||
---
|
||
|
||
## Слайд 7. High-level
|
||
|
||
```
|
||
┌─────────────┐ ┌──────────────────┐ ┌─────────────┐
|
||
│ UI │────▶│ Tauri commands │────▶│ Domain │
|
||
│ (React) │ │ (boundary) │ │ logic │
|
||
└─────────────┘ └──────────────────┘ └──────┬──────┘
|
||
│
|
||
▼
|
||
┌─────────────┐ ┌──────────────────┐ ┌─────────────┐
|
||
│ Adapters │◀────│ fs / net │◀────│ llm_ │
|
||
│ (IO) │ │ (centralized) │ │ planner │
|
||
└─────────────┘ └──────────────────┘ └─────────────┘
|
||
```
|
||
|
||
**Принцип:** UI никогда не выполняет fs/network напрямую.
|
||
|
||
---
|
||
|
||
## Слайд 8. Модули
|
||
|
||
| Модуль | Роль |
|
||
|--------|------|
|
||
| **net** | Единая точка сетевого доступа, SSRF-защита |
|
||
| **llm_planner** | Планирование, оркестрация, контекст |
|
||
| **online_research** | Внешние данные через net::fetch_url_safe |
|
||
| **commands/** | Граница Tauri, валидация ввода |
|
||
| **tx/** | Транзакции, undo/redo, снимки |
|
||
|
||
---
|
||
|
||
## Слайд 9. Протоколы v1 / v2 / v3
|
||
|
||
| Версия | Действия | Особенности |
|
||
|--------|----------|-------------|
|
||
| v1 | CREATE, UPDATE, DELETE | Простой контент |
|
||
| v2 | + PATCH_FILE (unified diff) | base_sha256 |
|
||
| v3 | + EDIT_FILE (anchor/before/after) | Структурированные правки, repair-first |
|
||
|
||
**Golden traces** фиксируют поведение для регрессий.
|
||
|
||
---
|
||
|
||
## Слайд 10. ADR — ключевые решения
|
||
|
||
| ADR | Тема | Суть |
|
||
|-----|------|------|
|
||
| ADR-001 | Tauri | Меньше attack surface, контроль IO, производительность |
|
||
| ADR-002 | EDIT_FILE v3 | Детерминизм, golden traces, протокол версионирован |
|
||
| ADR-003 | SSRF | Вся сеть через net, allowlist, лимиты размера/таймаута |
|
||
|
||
---
|
||
|
||
# Часть 4. КАЧЕСТВО И ТЕСТЫ
|
||
|
||
---
|
||
|
||
## Слайд 11. Тестирование
|
||
|
||
- **>100** автоматических тестов (Rust)
|
||
- **Golden traces** v1, v2, v3 — фиксация observable behavior
|
||
- **CI** — обязательный gate перед merge
|
||
- **Регрессии** — изменения без обновления тестов невозможны
|
||
|
||
---
|
||
|
||
## Слайд 12. CI/CD
|
||
|
||
| Этап | Команда |
|
||
|------|---------|
|
||
| Форматирование | `cargo fmt --check` |
|
||
| Линтинг | `cargo clippy` |
|
||
| Безопасность | `cargo audit` |
|
||
| Тесты | `cargo test` (включая golden_traces) |
|
||
|
||
Воспроизводимая сборка из чистого checkout.
|
||
|
||
---
|
||
|
||
# Часть 5. БЕЗОПАСНОСТЬ
|
||
|
||
---
|
||
|
||
## Слайд 13. Security posture
|
||
|
||
| Контроль | Реализация |
|
||
|----------|------------|
|
||
| **Сеть** | net::fetch_url_safe, SSRF mitigations |
|
||
| **Схемы** | http/https only |
|
||
| **IP** | Запрет private/loopback |
|
||
| **Размер** | 1 MB limit |
|
||
| **Таймаут** | 15 s |
|
||
| **Секреты** | Не в репозитории |
|
||
| **Зависимости** | cargo audit в CI |
|
||
|
||
**Scope:** design & code level (без pentest).
|
||
|
||
---
|
||
|
||
## Слайд 14. Protected paths
|
||
|
||
- `.git`, `node_modules`, `target`, `dist`, vendor
|
||
- Бинарные файлы — запрещены
|
||
- Только текстовые расширения (.rs, .ts, .py, .json, .toml, …)
|
||
- Allowlist команд для verify/auto_check
|
||
|
||
---
|
||
|
||
# Часть 6. ОПЕРАЦИИ
|
||
|
||
---
|
||
|
||
## Слайд 15. Build & Run
|
||
|
||
```bash
|
||
# Development
|
||
npm install && npm run tauri dev
|
||
|
||
# Production build
|
||
npm run tauri build
|
||
```
|
||
|
||
Требования: Node.js 18+, Rust 1.70+, npm.
|
||
|
||
---
|
||
|
||
## Слайд 16. Типовые проблемы (RUNBOOK)
|
||
|
||
| Проблема | Решение |
|
||
|----------|---------|
|
||
| Golden traces mismatch | Пересчитать schema_hash, обновить фикстуры |
|
||
| LLM planner нестабилен | PAPAYU_LLM_STRICT_JSON=1, уменьшить контекст |
|
||
| ERR_EDIT_* | См. EDIT_FILE_DEBUG.md, проверить anchor/before |
|
||
| Пустое окно | Запускать только `npm run tauri dev` |
|
||
|
||
---
|
||
|
||
## Слайд 17. INCIDENTS.md
|
||
|
||
- Шаблон формата инцидентов
|
||
- Известные «больные места»:
|
||
- llm_planner чувствителен к промптам
|
||
- PATCH/EDIT — сложность anchor/before
|
||
- Golden traces — schema_hash при смене схемы
|
||
|
||
---
|
||
|
||
# Часть 7. РИСКИ И ROADMAP
|
||
|
||
---
|
||
|
||
## Слайд 18. Известные риски
|
||
|
||
| Риск | Управление |
|
||
|------|------------|
|
||
| Чувствительность LLM к вводу | repair retry, fallback v3→v2 |
|
||
| Жёсткость PATCH/EDIT | Документировано, golden traces |
|
||
| Desktop-only | Явно в LIMITS, не сервер |
|
||
|
||
**Техдолг зафиксирован. Нет зон «не трогать».**
|
||
|
||
---
|
||
|
||
## Слайд 19. Roadmap
|
||
|
||
| Горизонт | Задачи |
|
||
|----------|--------|
|
||
| **Short** | cargo deny, LICENSES.md |
|
||
| **Mid** | Снижение bus-factor, расширение покрытия |
|
||
| **Long** | Новые протоколы, research adapters |
|
||
|
||
---
|
||
|
||
# Часть 8. ИНВЕСТИЦИОННАЯ ГОТОВНОСТЬ
|
||
|
||
---
|
||
|
||
## Слайд 20. Due Diligence Score
|
||
|
||
| Раздел | Оценка |
|
||
|--------|--------|
|
||
| A. Продукт | 4/4 |
|
||
| B. Архитектура | 4/4 |
|
||
| D. Тестирование | 4/4 |
|
||
| E. CI/CD | 4/4 |
|
||
| F. Security | 4/4 |
|
||
| H. Эксплуатация | 4/4 |
|
||
| I. Bus-factor | 3/3 |
|
||
| **Итого** | **~87%** |
|
||
|
||
---
|
||
|
||
## Слайд 21. Green flags (BUYER_RED_GREEN_FLAGS)
|
||
|
||
- 📗 Документация объясняет решения
|
||
- 🧠 Техдолг зафиксирован
|
||
- 🔐 Security на уровне дизайна
|
||
- 🧪 Тесты ловят регрессии
|
||
- 🔁 CI гарантирует воспроизводимость
|
||
- 📉 Риски названы прямо
|
||
|
||
---
|
||
|
||
## Слайд 22. Почему это актив, а не код
|
||
|
||
- Риски названы
|
||
- Поведение детерминировано (golden traces)
|
||
- Качество проверяется автоматически (CI)
|
||
- Знания зафиксированы (ADR, RUNBOOK)
|
||
|
||
**Снижает uncertainty — главный дисконт на сделках.**
|
||
|
||
---
|
||
|
||
# Часть 9. DATA ROOM И WALKTHROUGH
|
||
|
||
---
|
||
|
||
## Слайд 23. Структура Data Room (из Buyer.docx)
|
||
|
||
```
|
||
00_READ_ME_FIRST/ — Overview, 5 минут на понимание
|
||
01_PRODUCT/ — Назначение, LIMITS, Critical failures
|
||
02_ARCHITECTURE/ — Схема, ADR
|
||
03_CODEBASE/ — Репозиторий, BUILD_AND_RUN
|
||
04_QUALITY_AND_TESTS/ — Тесты, CI
|
||
05_SECURITY/ — SSRF, зависимости
|
||
06_OPERATIONS/ — RUNBOOK, INCIDENTS
|
||
07_RISKS_AND_DEBT/ — Риски, техдолг
|
||
08_ROADMAP/ — План развития
|
||
09_INVESTMENT/ — TECH_MEMO, DD Assessment
|
||
10_LEGAL_AND_MISC/ — Лицензии, ownership
|
||
```
|
||
|
||
---
|
||
|
||
## Слайд 24. Buyer Walkthrough (15–20 мин)
|
||
|
||
| Время | Тема |
|
||
|-------|------|
|
||
| 0–3 мин | Контекст: desktop, Rust/Tauri, LLM-оркестрация, фокус на детерминизме |
|
||
| 3–6 мин | Почему актив: golden traces, CI, риски задокументированы |
|
||
| 6–10 мин | Архитектура: IO централизован, SSRF, ADR |
|
||
| 10–13 мин | Риски: жёсткость PATCH/EDIT, desktop, LLM — осознаны и управляемы |
|
||
| 13–16 мин | Передача: 3–5 дней до первого изменения, extension points |
|
||
| 16–20 мин | Вопросы — объяснять, не защищаться |
|
||
|
||
---
|
||
|
||
## Слайд 25. Финальный месседж
|
||
|
||
> **«Это не идеальный код. Но это понятный, управляемый, передаваемый актив.»**
|
||
|
||
Проект готов к:
|
||
- передаче владельца
|
||
- продаже
|
||
- due diligence
|
||
- масштабированию команды
|
||
|
||
**Цена определяется рынком, а не страхами.**
|
||
|
||
---
|
||
|
||
# Приложения
|
||
|
||
---
|
||
|
||
## A. Ссылки на документы
|
||
|
||
| Документ | Путь |
|
||
|----------|------|
|
||
| README | `README.md` |
|
||
| LIMITS | `docs/LIMITS.md` |
|
||
| ARCHITECTURE | `docs/ARCHITECTURE.md` |
|
||
| RUNBOOK | `docs/RUNBOOK.md` |
|
||
| ADR | `docs/adr/` |
|
||
| TECH_MEMO | `docs/TECH_MEMO_FOR_INVESTORS.md` |
|
||
| BUYER_QA | `docs/BUYER_QA.md` |
|
||
| Investment Report | `docs/INVESTMENT_READY_REPORT.md` |
|
||
|
||
---
|
||
|
||
## B. Ключевые env-переменные
|
||
|
||
| Переменная | Назначение |
|
||
|------------|------------|
|
||
| PAPAYU_LLM_API_URL | API для LLM |
|
||
| PAPAYU_LLM_API_KEY | Ключ (OpenAI) |
|
||
| PAPAYU_PROTOCOL_VERSION | 1/2/3 |
|
||
| PAPAYU_ONLINE_RESEARCH | 1 = включить Tavily |
|
||
| PAPAYU_TAVILY_API_KEY | Tavily API |
|
||
| PAPAYU_TRACE | 1 = сохранять traces |
|