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. Основные сценарии
- Анализ по пути — выбор папки → отчёт (findings, recommendations, actions)
- Предложить исправления — план через LLM или эвристику → превью → применение
- Batch — анализ → превью → apply в одной команде
- Agentic run — цикл: план → apply → проверка → откат при неудаче
- Online research — поиск (Tavily) → summarize → «Save as Project Note»
- 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
# 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 |