papayu/docs/ПРЕЗЕНТАЦИЯ_PAPA_YU.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

386 lines
14 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.

# 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 (1520 мин)
| Время | Тема |
|-------|------|
| 03 мин | Контекст: desktop, Rust/Tauri, LLM-оркестрация, фокус на детерминизме |
| 36 мин | Почему актив: golden traces, CI, риски задокументированы |
| 610 мин | Архитектура: IO централизован, SSRF, ADR |
| 1013 мин | Риски: жёсткость PATCH/EDIT, desktop, LLM — осознаны и управляемы |
| 1316 мин | Передача: 35 дней до первого изменения, extension points |
| 1620 мин | Вопросы — объяснять, не защищаться |
---
## Слайд 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 |