- Мульти-провайдер: 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>
7.7 KiB
7.7 KiB
Оценка papa-yu по Tech Due Diligence Checklist
Дата: 2025-01-31
Результат: ~65% — продаваем с дисконтом (диапазон 60–80%)
A. Продукт и назначение — 2/4 ✅⚠️
| Пункт | Статус | Комментарий |
|---|---|---|
| Что делает и для кого | ✅ | README: «Десктопное приложение для анализа проекта и автоматических исправлений». ЦА — разработчики (неформально). |
| Ключевые сценарии | ✅ | Batch, agentic run, предложить исправления, undo/redo, domain notes, weekly report. |
| Что НЕ делает (LIMITS.md) | ❌ | Отдельного LIMITS.md нет. Ограничения разбросаны по README и IMPLEMENTATION_STATUS. |
| Critical отказ | ❌ | Не описано явно, что считается критическим отказом для бизнеса. |
Действие: Добавить docs/LIMITS.md с границами продукта и определением Critical failure.
B. Архитектура — 1/4 ⚠️
| Пункт | Статус | Комментарий |
|---|---|---|
| ARCHITECTURE.md | ❌ | Отдельного документа нет. |
| Слои domain/services/adapters | ❌ | Слои не заданы. Есть commands, tx, online_research, domain_notes — границы неформальные. |
| Скрытые зависимости | ✅ | Зависимости явно в Cargo.toml, package.json. |
| ADR | ❌ | ADR нет. Часть решений описана в PROTOCOL_V*_PLAN, IMPLEMENTATION_STATUS. |
Red flag: Архитектура понятна в основном из кода.
Действие: Создать docs/ARCHITECTURE.md (1–2 стр.) и 2–3 ADR по основным решениям.
C. Качество кода — 2/4 ✅⚠️
| Пункт | Статус | Комментарий |
|---|---|---|
| Единый стиль | ✅ | cargo fmt в CI, единый стиль Rust/TS. |
| Дублирование | ⚠️ | Trace field adapters уменьшили дублирование; остаётся в llm_planner. |
| Сложность функций | ⚠️ | llm_planner крупный; функции длинные. |
| Обработка ошибок | ✅ | ERR_* коды, repair-логика, частичное использование контекста. |
Действие: Постепенно дробить llm_planner; при необходимости ограничить сложность через clippy.
D. Тестирование — 4/4 ✅
| Пункт | Статус | Комментарий |
|---|---|---|
| Автотесты | ✅ | cargo test, 100+ тестов. |
| Покрытие критики | ✅ | Golden traces v1/v2/v3, unit-тесты apply, verify, SSRF. |
| Тесты в CI | ✅ | cargo test в GitHub Actions. |
| Golden / regression | ✅ | docs/golden_traces/, валидация в CI. |
Green flag: Тестам можно доверять.
E. CI/CD и релизы — 4/4 ✅
| Пункт | Статус | Комментарий |
|---|---|---|
| Сборка одной командой | ✅ | npm install && npm run tauri build. |
| CI gate | ✅ | fmt, clippy, audit, test. |
| Воспроизводимые релизы | ✅ | Cargo.lock, package-lock.json в репо. |
| Откат | ⚠️ | Undo в приложении есть; откат релиза — через git. |
Green flag: Релиз может выпустить новый владелец по инструкции из README.
F. Security — 3/4 ✅
| Пункт | Статус | Комментарий |
|---|---|---|
| Секреты не в репо | ✅ | env.openai.example без ключей. |
| Fetch/SSRF | ✅ | Модуль net, fetch_url_safe, trends через него. |
| Audit/deny | ⚠️ | cargo audit в CI; cargo deny не настроен. |
| Threat model | ⚠️ | IMPLEMENTATION_STATUS, IMPROVEMENT_ROADMAP; без отдельного threat model. |
G. Зависимости и лицензии — 2/4 ⚠️
| Пункт | Статус | Комментарий |
|---|---|---|
| Lock-файлы | ✅ | Cargo.lock, package-lock.json. |
| Список лицензий | ❌ | Нет явного LICENSE-обзора. |
| GPL/AGPL | ⚠️ | Не проверялось. Rust/TS стек обычно MIT/Apache. |
| Abandoned deps | ❌ | План по замене abandoned-зависимостей не описан. |
Действие: Добавить cargo deny или лицензионный обзор.
H. Эксплуатация — 2/4 ⚠️
| Пункт | Статус | Комментарий |
|---|---|---|
| RUNBOOK.md | ❌ | Нет. |
| Типовые проблемы | ⚠️ | INCIDENTS.md — «больные места». |
| INCIDENTS.md | ✅ | Шаблон и список известных проблем. |
| Логи и метрики | ⚠️ | Traces, weekly report; нет структурированного лога. |
Действие: Добавить короткий RUNBOOK (запуск, сборка, типовые ошибки).
I. Bus-factor и передача — 2/3 ⚠️
| Пункт | Статус | Комментарий |
|---|---|---|
| Передача без автора | ⚠️ | README, IMPLEMENTATION_STATUS, PROTOCOL_* помогают; RUNBOOK бы усилил. |
| «Почему» в документах | ✅ | PROTOCOL_V3_PLAN, IMPLEMENTATION_STATUS объясняют решения. |
| «Не трогай» без объяснений | ✅ | INCIDENTS перечисляет проблемные места с контекстом. |
Сводка
| Раздел | Оценка | Баллы |
|---|---|---|
| A. Продукт | ✅⚠️ | 2/4 |
| B. Архитектура | ⚠️ | 1/4 |
| C. Качество кода | ✅⚠️ | 2/4 |
| D. Тестирование | ✅ | 4/4 |
| E. CI/CD | ✅ | 4/4 |
| F. Security | ✅ | 3/4 |
| G. Зависимости | ⚠️ | 2/4 |
| H. Эксплуатация | ⚠️ | 2/4 |
| I. Bus-factor | ⚠️ | 2/3 |
| Итого | 22/35 ≈ 63% |
Интерпретация
- 63% — в диапазоне 60–80%: продаваем с дисконтом.
- Покупатель увидит: сильные тесты, CI, SSRF-защиту, частичную документацию.
- Слабости: архитектура «из кода», нет LIMITS.md, RUNBOOK.md, ADR, лицензионного обзора.
Quick wins для перехода в >80%
- LIMITS.md — границы продукта, что не делает, что считается Critical.
- ARCHITECTURE.md — 1–2 страницы: стек, модули, границы.
- RUNBOOK.md — запуск, сборка, типовые проблемы, контакты.
- 2–3 ADR — например: выбор Tauri, протокол v3 EDIT_FILE, SSRF-модель.
- cargo deny или лицензионный обзор зависимостей.
Оценка после этих шагов: ~75–80%.