# 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 |