Zum Inhalt

02 — Solo-MVP Requirements (переработка под 1 разработчика)

Дата: 2026-06-29 Основание: VeriChain 04_requirements_analyst.md (команда 5 чел., 12 нед.) переработан под соло-основателя с AI-инструментами (1 чел., 6 нед. MVP) Предыдущее решение: VeriChain #04 Requirements Analyst — GO, MVP: 12 нед., 5 чел., €192K


0. Контекст переработки

Исходный план VeriChain предполагал команду из 5 человек. Для соло-основателя: - ВСЕ компоненты (iOS, Android, Web, Backend, PDF-сервис) должны помещаться в ОДНУ голову - AI-инструменты (Claude Code, Copilot) сокращают время написания кода на ~50-70%, НО не сокращают архитектурные решения и интеграционное тестирование - Выбор стека критичен: каждый лишний язык/фреймворк = +неделя контекстного переключения

Главный принцип: 1 язык (TypeScript), 1 managed-провайдер (Supabase), 1 мобильный фреймворк (React Native), 1 платформа для старта (iOS).


1. MoSCoW Prioritisation v2 (SOLO)

MUST-HAVE — MVP (недели 1-6)

ID Требование Почему Неделя
M1 Регистрация компании (Company Admin) через email + magic link Без субъекта нет системы. Supabase Auth из коробки. 1
M2 Регистрация сотрудника (Employee) через email + magic link Вторая сторона процесса. Тот же Supabase Auth. 3
M3 Создание визуальной подписи — рисование пальцем, однократно Ключевое УТП: рукописный стиль подписи 3
M4 Хранение подписи локально в Secure Enclave (iOS) Datenschutz-архитектура: подпись не на сервере 3
M5 Face ID / Touch ID / PIN подтверждение для каждого подписания Безопасность: свежая биометрия на каждую операцию 4
M6 Загрузка PDF через веб-интерфейс (до 10 MB, до 30 стр.) Входная точка бизнес-стороны 1
M7 Отметка места подписи на PDF (drag-and-drop, визуально) Без этого подпись некуда встраивать 2
M8 Отправка запроса на подпись сотруднику (email + push) Ключевой поток «компания → сотрудник» 2
M9 Просмотр PDF сотрудником в мобильном приложении Обязательное требование: прочитать перед подписанием 4
M10 Подтверждение подписания: Face ID → наложение подписи → timestamp Core-механика продукта 4
M11 Генерация подписанного PDF с визуальной подписью + метаданными Результат бизнес-цикла 5
M12 Аудит-след на каждый документ (timestamp, device_id, biometric_method, doc_hash) Доказательная база для compliance 5
M13 Скачивание подписанного PDF с аудит-следом (Company Admin) Завершение цикла 5
M14 Базовый веб-дашборд: список документов + статусы HR должен видеть кто подписал 2
M15 Локализация DE/EN (немецкий — primary) Рынок DACH, немецкий Mittelstand 6
M16 Удаление аккаунта (GDPR Art. 17) — все серверные данные Обязательное требование для немецкого рынка 6

Итого: 16 требований, 6 недель.

SHOULD-HAVE — v1.1 (недели 7-10, +4 недели)

ID Требование
S1 Android-приложение (React Native — тот же код, другие настройки)
S2 Массовая отправка: 1 документ → N получателей (ручной ввод + CSV)
S3 Срок действия запроса на подпись + авто-напоминания (email)
S4 Webhook-уведомления для интеграции с HR-системами
S5 Расширенный аудит-лог: все действия, экспорт в ZIP
S6 Отказ от подписания с причиной (employee-side)
S7 Верификация подписанного PDF через веб-загрузку
S8 Ролевая модель: Owner / Admin / Sender

COULD-HAVE — v1.2 (недели 11-14, +4 недели)

ID Требование
C1 PAdES baseline (стандарт электронной подписи в PDF)
C2 TSA-отметка времени (RFC 3161, через DFN/Deutsche Telekom)
C3 Офлайн-режим: кеширование PDF на устройстве
C4 Шаблоны документов
C5 Брендирование: логотип компании на форме подписания
C6 Интеграция с Personio API
C7 App Clip (iOS) — подписание без установки приложения

WON'T-HAVE — v1 (явно исключено)

ID Требование Причина
W1 QES / eIDAS Qualified Signature Требует сертифицированного TSP, €50K+ на интеграцию
W2 Нативные приложения (Swift/Kotlin) Удваивает трудозатраты, React Native покрывает 95% потребностей
W3 On-premises деплой Enterprise-требование, не для MVP
W4 SSO / OIDC / SAML Сложная интеграция, Mittelstand не требует
W5 SAP / Workday интеграция Enterprise-сегмент, не MVP
W6 Блокчейн-нотаризация Переусложнение, не требуется регуляторами
W7 Видеоидентификация / KYC Отдельный рынок
W8 Множественные подписи на одном документе (sequential) Усложняет PDF-пайплайн в 3x
W9 White-label (кастомизация под клиента) Не для MVP, Mittelstand не требует
W10 Интеграция с EUDI Wallet (eIDAS 2.0) Стандарт ещё не финализирован (2027+)

2. User Stories (22 штуки)

P0 — Critical Path (MVP без этого не работает)

US-01: Регистрация компании

Как HR-менеджер, я хочу зарегистрировать компанию через email, чтобы начать использовать Zustimm для отправки документов. - AC: Ввёл email → получил magic link → перешёл → компания создана. Название компании обязательно. Один email = одна компания. - P0

US-02: Загрузка документа

Как HR-менеджер, я хочу загрузить PDF-документ через веб-интерфейс, чтобы отправить его сотруднику на подпись. - AC: Drag-and-drop или выбор файла. Валидация: PDF, до 10 MB, до 30 страниц, не зашифрован. После загрузки — переход к отметке места подписи. - P0

US-03: Отметка места подписи

Как HR-менеджер, я хочу отметить место подписи на загруженном PDF, чтобы подпись сотрудника корректно разместилась. - AC: Предпросмотр PDF постранично. Drag-and-drop визуального маркера. Хотя бы одно место подписи размещено. Сохранение координат (page, x, y, w, h). - P0

US-04: Отправка запроса на подпись

Как HR-менеджер, я хочу отправить запрос на подпись сотруднику, указав его email, чтобы инициировать процесс подтверждения. - AC: Ввёл email(ы) получателя(ей) → нажал «Отправить». Если сотрудник не зарегистрирован — ему отправляется приглашение. Статус документа → «Ожидает подписания». - P0

US-05: Регистрация сотрудника

Как сотрудник, я хочу зарегистрироваться в мобильном приложении через email, чтобы получать документы на подпись. - AC: Ввёл email → получил magic link → перешёл → создал визуальную подпись (нарисовал пальцем) → настроил Face ID / Touch ID / PIN. Подпись сохранена локально. - P0

US-06: Создание визуальной подписи

Как сотрудник, я хочу нарисовать свою подпись пальцем на экране, чтобы она выглядела как моя рукописная подпись. - AC: Холст для рисования. Кнопки «Очистить» и «Сохранить». Подпись сохраняется в Secure Enclave / expo-secure-store. Не передаётся на сервер до момента подписания. - P0

US-07: Получение уведомления о документе

Как сотрудник, я хочу получать push-уведомления и email о новых документах на подпись, чтобы не пропустить их. - AC: Push-уведомление при новом запросе. Email с информацией: название документа, отправитель, срок. Список ожидающих документов в приложении. - P0

US-08: Просмотр документа перед подписанием

Как сотрудник, я хочу просмотреть PDF-документ в приложении перед подписанием, чтобы понимать что я подтверждаю. - AC: Открытие PDF внутри приложения. Постраничная навигация. Zoom. Отображение названия, отправителя, даты отправки. - P0

US-09: Подписание через Face ID / Touch ID

Как сотрудник, я хочу подтвердить ознакомление с документом через Face ID / Touch ID / PIN, чтобы подписание было безопасным и юридически значимым. - AC: Кнопка «Подписать» → системный диалог биометрии → успех → визуальная подпись извлекается из локального хранилища → отправляется на сервер ТОЛЬКО для встраивания → немедленно удаляется с сервера. Отображается подтверждение. - P0

US-10: Получение подписанного PDF

Как HR-менеджер, я хочу скачать подписанный PDF с визуальной подписью и аудит-следом, чтобы хранить его для compliance. - AC: Уведомление (email) о подписании. В дашборде — кнопка «Скачать». PDF содержит: визуальную подпись в отмеченном месте + страницу аудит-следа. Имя файла: <doc_name>_signed_<date>.pdf. - P0

P1 — Core Experience (MVP без этого хуже, но работает)

US-11: Дашборд статусов

Как HR-менеджер, я хочу видеть дашборд со статусами всех отправленных документов, чтобы отслеживать процесс подписания. - AC: Таблица: название документа, получатель, дата отправки, статус (ожидает/подписан/просрочен). Фильтр по статусу. Сортировка по дате. - P1

US-12: История подписанных документов (сотрудник)

Как сотрудник, я хочу видеть список всех подписанных мной документов в приложении, чтобы отслеживать что было подтверждено. - AC: Список с датами. Просмотр подписанного PDF. Поиск по названию. - P1

US-13: Отказ от подписания

Как сотрудник, я хочу отказаться от подписания документа с указанием причины, если я не согласен с его содержанием. - AC: Кнопка «Отклонить» → поле для причины → подтверждение. Отправитель получает уведомление с причиной. Статус → «Отклонён». - P0 (перенесено в Should-Have для MVP)

US-14: Удаление аккаунта (GDPR)

Как сотрудник, я хочу удалить свой аккаунт и все связанные данные, чтобы реализовать право на забвение (GDPR Art. 17). - AC: Кнопка «Удалить аккаунт» в настройках → подтверждение → немедленное удаление локальных данных (подпись). Серверные данные (email, device_id, audit-trail) удаляются в течение 30 дней. Подписанные PDF, уже переданные компании, НЕ модифицируются. - P0

US-15: Верификация подлинности PDF

Как compliance-офицер, я хочу загрузить подписанный PDF на веб-страницу верификации, чтобы проверить его целостность. - AC: Загрузка PDF → проверка хеша документа + метаданных → результат: VALID/INVALID + отображение аудит-следа. - P1

US-16: Локализация DE

Как немецкий сотрудник, я хочу использовать приложение на немецком языке, чтобы понимать интерфейс. - AC: Все тексты интерфейса на немецком. Дата/время в немецком формате. Fallback на английский. - P0

US-17: Управление отправителями (роли)

Как HR-менеджер (Owner), я хочу добавлять других HR-менеджеров как отправителей, чтобы они тоже могли отправлять документы. - AC: Список пользователей компании. Кнопка «Пригласить». Выбор роли: Sender. Приглашённый получает email. - P1

P2 — Базовые, но не критические

US-18: Срок действия запроса

Как HR-менеджер, я хочу установить срок действия запроса на подпись, чтобы документы не висели бесконечно. - AC: При отправке — поле «Действителен до» (дата). По истечении — статус «Просрочен», уведомление отправителю. - P2

US-19: Повторная отправка напоминания

Как HR-менеджер, я хочу отправить напоминание сотруднику, который не подписал документ, чтобы ускорить процесс. - AC: В дашборде — кнопка «Напомнить» для документов в статусе «Ожидает». Отправляет повторный email. - P2

US-20: Массовая отправка

Как HR-менеджер, я хочу отправить один документ сразу нескольким сотрудникам, чтобы сэкономить время. - AC: При отправке — множественные email (ручной ввод через запятую) или CSV-файл. Каждый получатель получает индивидуальный запрос. - P2

US-21: Экспорт аудит-лога

Как HR-менеджер, я хочу экспортировать полный аудит-лог по документу, чтобы предоставить его аудиторам. - AC: Кнопка «Экспорт аудит-лога» → PDF или JSON со всеми событиями по документу. - P2

US-22: Смена устройства сотрудником

Как сотрудник, я хочу переустановить приложение на новом устройстве, чтобы продолжить подписывать документы. - AC: Установка на новое устройство → вход по email → создание НОВОЙ подписи (старая не переносится). Старые подписи остаются верифицируемыми по device_id. - P2


3. Edge Cases (25 штук)

Аутентификация и биометрия

# Edge Case Severity Mitigation
EC-01 Face ID / Touch ID не сработал (грязные пальцы, маска, плохое освещение) Medium Fallback на PIN-код, заданный при регистрации. 3 неудачные попытки → блокировка на 30 сек.
EC-02 Биометрия скомпрометирована (чужой палец/лицо) Critical Email-уведомление владельцу при КАЖДОМ подписании. device_id в аудит-следе.
EC-03 Устройство jailbreak/root High Детекция при запуске (expo-device + jailbreak-detection). Отметка device_integrity=compromised в аудит-следе. Предупреждение пользователю. НЕ блокируем — решение принимает компания.
EC-04 Пользователь сменил устройство High Старая подпись безвозвратно потеряна (хранение только локально). Пересоздание подписи. Старые документы верифицируемы по старому device_id.
EC-05 Пользователь забыл PIN Medium Сброс через email → повторная настройка биометрии/PIN. Подпись НЕ сбрасывается (локальное хранилище).

Документы и PDF

# Edge Case Severity Mitigation
EC-06 PDF повреждён или невалидный High Валидация при загрузке: magic bytes, структура PDF, отсутствие шифрования. Сообщение об ошибке с причиной.
EC-07 PDF слишком большой (>10 MB) Low Отклонение с указанием лимита. Предложение: оптимизировать PDF перед загрузкой.
EC-08 PDF содержит вредоносный код (JavaScript, embedded files) Critical Санитизация при загрузке: удаление JavaScript, embedded files, внешних ссылок. Библиотека pdf-lib с флагом ignoreEncryption.
EC-09 PDF с нестандартными шрифтами — подпись отображается некорректно Medium Встраивание шрифтов при рендеринге. Тестирование с топ-20 немецких HR-документов.
EC-10 Место подписи выходит за границы страницы Low Валидация координат при отметке: x + w ≤ page_width, y + h ≤ page_height.

Сеть и доступность

# Edge Case Severity Mitigation
EC-11 Нет интернета на устройстве сотрудника Medium Чёткое сообщение: «Требуется подключение к интернету». Офлайн-режим — только в v1.2.
EC-12 Push-уведомление не доставлено (APNs сбой) High Email как fallback-канал. Документ отображается в списке «Ожидающие» при следующем открытии приложения.
EC-13 Серверное хранилище (Supabase Storage) недоступно Critical Retry с exponential backoff (3 попытки). Webhook health-check. Мониторинг через Uptime Kuma (pAss).
EC-14 PDF-микросервис не отвечает High Retry с exponential backoff. Статус документа → «Обработка». Уведомление отправителю при задержке >5 мин.

Данные и согласованность

# Edge Case Severity Mitigation
EC-15 Двойная отправка запроса на подпись одному сотруднику Medium Уникальный constraint на (document_id, signer_email). Повторная отправка → «Запрос уже отправлен».
EC-16 Два HR-менеджера одновременно редактируют отметку подписи Low Оптимистическая блокировка (version field). Last-write-wins с предупреждением.
EC-17 Сотрудник зарегистрирован в нескольких компаниях Medium Один email → множественные company_id. Переключение между компаниями в приложении.
EC-18 Компания удаляет аккаунт (GDPR) — что с подписанными PDF? High Серверные данные: soft-delete → hard-delete через 30 дней. PDF, уже скачанные компанией, не модифицируются. Аудит-след включает факт удаления аккаунта.
EC-19 Сотрудник оспаривает факт подписания («это не я») Critical Аудит-след содержит: email, device_id, biometric_method, timestamp, doc_hash. Отдельная страница в подписанном PDF. Этого достаточно для Beweiswert (не Beweiskraft — нужен QES для полной силы).
EC-20 Betriebsrat отклоняет документ — что делает HR? Low Вне системы. HR вручную удаляет запрос или помечает как «Отозван». Статус → «Отозван», уведомление сотруднику.

Пользовательский опыт

# Edge Case Severity Mitigation
EC-21 Сотрудник не хочет рисовать подпись пальцем Medium Альтернатива: выбор из предустановленных шрифтов (рукописный стиль). Кнопка «Пропустить» → автоматическая подпись из имени.
EC-22 Сотрудник с ограниченными возможностями (Accessibility) Medium VoiceOver/TalkBack для всех элементов. Достаточный цветовой контраст. Минимальный размер touch-target: 44pt (Apple HIG).
EC-23 Сотрудник случайно подписал не тот документ Low Подтверждение перед подписанием: «Вы подтверждаете ознакомление с [название]?» НЕТ возможности «отменить» подписание — только через HR.
EC-24 Сотрудник удалил приложение, не подписав документ Low Статус остаётся «Ожидает». HR видит просрочку и отправляет напоминание по email.
EC-25 Изменение законодательства (eIDAS 2.0, EUDI Wallet 2027+) Medium Архитектура с плагинами для методов подписи (абстракция SigningMethod). Сегодня — EES (biometric + visual), завтра — QES через TSP, послезавтра — EUDI Wallet.

4. Technical Stack (соло-оптимизированный)

Принципы выбора:

  1. Единый язык: TypeScript везде — mobile (React Native), web (Next.js), backend logic (Supabase Edge Functions + TypeScript), PDF-сервис (Node.js). Контекстное переключение между языками = потерянные часы.
  2. Managed services где возможно: Каждый self-hosted компонент = +2-4 часа в неделю на运维.
  3. 1 платформа для старта: iOS first. Android — тот же код React Native, но отдельный релиз в v1.1.

Выбор мобильного фреймворка: React Native (Expo) vs Native (Swift/Kotlin)

Критерий React Native (Expo) SwiftUI + Jetpack Compose
Время разработки (соло) 6 нед. на iOS+Android 12 нед. на iOS ТОЛЬКО
Единый язык с бекендом ✅ TypeScript ❌ Swift + Kotlin + TypeScript
Биометрия expo-local-authentication ✅ LocalAuthentication (Swift) ✅
Secure storage expo-secure-store ✅ Keychain (Swift) ✅
Подпись (рисование) react-native-skia ✅ PencilKit (Swift) ✅
PDF-просмотр react-native-pdf ✅ PDFKit (Swift) ✅
Push-уведомления expo-notifications ✅ APNs/FCM (нативно) ✅
Кривая обучения (соло) Одна → продуктивен с дня 1 Две → +2-3 недели на каждую

Решение: React Native (Expo SDK 52+). React Native закрывает ВСЕ технические потребности MVP. Нативная разработка не даёт преимуществ, которые окупили бы удвоение трудозатрат.

Выбор бекенда: Supabase vs Go/FastAPI + PostgreSQL + Redis + S3

Критерий Supabase Self-hosted Go/FastAPI stack
Auth (email magic link) Встроено, 0 строк кода ~500 строк + OAuth2 flow
PostgreSQL Встроено, managed Установка, бэкапы, мониторинг
Object Storage (PDF) Встроено (S3-compatible) MinIO установка + настройка
Realtime (статусы) Встроено (WebSocket) WebSocket сервер вручную
Edge Functions Встроено (Deno) Отдельный сервис
Row-Level Security Встроено Ручная реализация
EU-хостинг ✅ eu-central-1 (AWS Frankfurt) ✅ Hetzner (Nürnberg/Falkenstein)
Стоимость (MVP) $0 (free tier) → $25/мес (Pro) ~€8/мес (CX22 VPS) + трудозатраты на运维
Время настройки (соло) 2 часа 2-3 дня

Решение: Supabase (cloud, eu-central-1). Для MVP экономия 2-3 дней настройки и 2-4 часов в неделю на运维 важнее, чем €25/мес. При масштабировании (v1.2+) — миграция на self-hosted Supabase на Hetzner.

PDF-микросервис

Проблема: Supabase Edge Functions имеют ограничения по payload (6 MB) и runtime (60s CPU). PDF-процессинг (скачать PDF + скачать подпись + рендерить + загрузить результат) требует больше ресурсов.

Решение: Отдельный Node.js-микросервис на Hetzner VPS (CX22, ~€4/мес): - Библиотека: pdf-lib (JavaScript) — добавление изображений, метаданных, текста - API: 1 эндпоинт POST /render — принимает URL PDF + URL подписи + координаты → возвращает URL подписанного PDF - Безопасность: internal API key, доступ только из Supabase Edge Function - Докеризация: Dockerfile → docker compose на Hetzner

Итоговый стек

Компонент Технология Почему
Mobile App React Native (Expo SDK 52) + TypeScript 1 кодовая база для iOS/Android, единый язык с бекендом
Web Admin Next.js 15 + TypeScript + Tailwind CSS Быстрая разработка, Vercel деплой
Auth + DB + Storage Supabase (eu-central-1) Managed, 0运维 для MVP
API Logic Supabase Edge Functions (TypeScript/Deno) Рядом с данными, низкая латентность
PDF Processing Node.js + pdf-lib (Hetzner CX22) Вынесен из-за ограничений Edge Functions
Push Notifications expo-notifications (APNs) Встроено в Expo
Email Resend.com (бесплатно 100/день) Простой API, европейский провайдер
Deployment Vercel (web) + EAS Build (mobile) + Hetzner (pdf-service) Минимальная конфигурация
Monitoring Uptime Kuma (pAss) + Sentry (free tier) Уже есть в pAss
CI/CD GitHub Actions Бесплатно для публичных репозиториев

Что НЕ используем (явно):

Отклонённая технология Причина
Swift / Kotlin (нативная разработка) Удваивает трудозатраты, не даёт преимуществ для MVP
Go / FastAPI (кастомный бекенд) Требует ручного управления PostgreSQL, Redis, Auth, Storage
Firebase US-хостинг (CLOUD Act), хуже с реляционными данными
AWS Amplify Сложнее чем Supabase, US-хостинг
Docker Compose на Hetzner для всего Съедает 4-6 ч/нед. на运维 — не для соло
MongoDB Нужен реляционный аудит-лог (ACID)

5. Ключевые допущения (Assumptions)

Без подтверждения которых продукт НЕ ИМЕЕТ СМЫСЛА:

# Допущение Проверка Impact если неверно
A1 Визуальная подпись + биометрия + аудит-след имеют Beweiswert в немецких трудовых судах Rechtsgutachten (Fachanwalt IT-Recht), 2 нед., ДО написания кода FATAL. Продукт не имеет ценности без юридической значимости.
A2 Целевые документы (Betriebsvereinbarungen, Arbeitsanweisungen, NDA) НЕ требуют письменной формы по § 126 BGB Rechtsgutachten — какие документы требуют Schriftform (§ 126) vs Textform (§ 126b) vs соглашения (formfrei) FATAL. Если все целевые документы требуют § 126 BGB — продукт не работает без QES.
A3 HR-отделы Mittelstand 50-500 чел. готовы платить €29-99/мес за compliance acknowledgement 20 depth interviews с HR-директорами Mittelstand, 3 нед. FATAL. Если готовы платить только 0-9 EUR — юнит-экономика не сходится.
A4 Сотрудники готовы установить отдельное приложение для подписания HR-документов CustDev-опросы сотрудников (через HR-директоров) HIGH. Если нет → нужен Web-фолбек или App Clip в v1.1.
A5 Supabase cloud (AWS Frankfurt) удовлетворяет DSGVO-требованиям для MVP DPIA (Data Protection Impact Assessment), консультация Datenschutzbeauftragter HIGH. Если нет → миграция на self-hosted Supabase на Hetzner (+2-3 нед.).
A6 Рынок DACH достаточен для окупаемости при ARPU €50-75 Market Research уже сделан (VeriChain #07): TAM €578M, SAM €98M MEDIUM. Подтверждено, но нужна проверка willingness-to-pay.
A7 React Native (Expo) обеспечивает достаточный доступ к Secure Enclave / Keystore Технический spike: 1 день на expo-secure-store + expo-local-authentication MEDIUM. Если нет → переход на нативный модуль (React Native bridge).
A8 pdf-lib (JavaScript) достаточен для встраивания подписи и метаданных Proof-of-concept PDF pipeline: 2 дня LOW. Альтернативы: iText (Java), PyPDF2 (Python) через микросервис.

CustDev-план (до написания кода):

  1. Rechtsgutachten (недели -2 — -1): Fachanwalt für IT-Recht, подтверждение допущений A1 и A2. Бюджет: €1,500-3,000.
  2. 20 depth interviews (недели -3 — 0): HR-директора немецкого Mittelstand, 50-500 сотрудников.
  3. DPIA (параллельно с MVP): обязателен по GDPR Art. 35 для биометрических данных.

6. Дорожная карта (12 недель)

Pre-MVP: Валидация (недели -2 — 0) — ДО кода

Неделя Что делаем Результат
-2 Rechtsgutachten: заказ у Fachanwalt für IT-Recht Подтверждение/опровержение A1, A2
-1 CustDev: 10+ depth interviews с HR-директорами Подтверждение/опровержение A3, A4
0 Landing page zustimm.io + waitlist + Figma-прототип 50+ waitlist → GO

Gate (конец недели 0): Rechtsgutachten положительный + 10+ интервью подтверждают спрос + 50+ waitlist → GO к коду. Если нет → PIVOT.

MVP: Ядро продукта (недели 1-6) — 1 чел. + AI

Неделя 1-2: Фундамент + Web Admin

День Задача Стек
1-2 Настройка Supabase: проект (eu-central-1), схема БД (organisations, users, documents, signature_requests, audit_trail), RLS-политики Supabase SQL
3-4 Next.js проект: регистрация компании (M1), магическая ссылка (Supabase Auth) Next.js + Supabase JS SDK
5-7 Загрузка PDF (M6): drag-and-drop, валидация, Supabase Storage Next.js + Supabase Storage
8-10 Отметка места подписи (M7): предпросмотр PDF, drag-and-drop маркера, сохранение координат react-pdf + Supabase

Gate (конец недели 2): Можно зарегистрировать компанию → загрузить PDF → отметить место подписи → сохранить в БД.

Неделя 3-4: Мобильное приложение

День Задача Стек
1-2 Expo проект: навигация, Supabase-клиент, экран регистрации сотрудника (M2) Expo + Supabase JS SDK
3-5 Создание подписи (M3): холст рисования, сохранение в expo-secure-store (M4) react-native-skia + expo-secure-store
6-7 Настройка биометрии (M5): Face ID / Touch ID / PIN, expo-local-authentication expo-local-authentication
8-10 Просмотр PDF (M9) + получение уведомлений (M7) + список ожидающих react-native-pdf + expo-notifications

Gate (конец недели 4): Можно зарегистрироваться → создать подпись → получить уведомление → просмотреть PDF.

Неделя 5-6: PDF-пайплайн + Интеграция + Полировка

День Задача Стек
1-2 PDF-микросервис (M11): Node.js + pdf-lib, API render на Hetzner Node.js + pdf-lib + Docker
3-4 Подтверждение подписания (M10): биометрия → извлечение подписи → отправка на рендеринг → удаление с сервера Supabase Edge Function
5-6 Аудит-след (M12): запись всех событий, страница аудит-следа в PDF Supabase Edge Function
7-8 Скачивание подписанного PDF (M13) + базовый дашборд (M14) Next.js
9-10 End-to-end тестирование: регистрация → загрузка → отправка → подписание → скачивание Ручное + Playwright (web)
11-12 Локализация DE (M15) + удаление аккаунта (M16) + GDPR-проверка i18n
13-14 Полировка: error states, loading states, accessibility

Gate (конец недели 6): End-to-end сценарий работает. 3 design partner используют продукт. → MVP RELEASED.

v1.1: Android + Массовость (недели 7-10)

Неделя Что делаем
7 Android-сборка: Expo EAS Build, тестирование на 5+ устройствах (S1)
8 Массовая отправка: ручной ввод + CSV-импорт (S2)
9 Срок действия + авто-напоминания + отказ от подписания (S3, S6)
10 Webhooks + экспорт аудит-лога + ролевая модель + верификация PDF (S4, S5, S7, S8)

v1.2: Compliance + Enterprise-ready (недели 11-14)

Неделя Что делаем
11 PAdES baseline + TSA-отметка времени (C1, C2)
12 Офлайн-режим + шаблоны (C3, C4)
13 Брендирование + Personio API (C5, C6)
14 App Clip (iOS) для подписания без установки (C7)

7. Метрики успеха MVP

Метрика Цель (конец недели 6) Измерение
Design partners 3 компании (Mittelstand 50-500) Ручной трекинг
End-to-end latency Отправка → подписание <30 мин (медиана) Supabase Audit Trail
PDF rendering time <10 сек (p95) Логи PDF-сервиса
Crash-free rate (iOS) >99% Sentry
Same-day signature rate >60% Supabase Audit Trail
GDPR compliance DPIA выполнен, 0 нарушений Внешний аудит
Support tickets <5 в неделю Email/Telegram

Анти-метрики (должны быть 0):

  • Жалобы на Datenschutz: 0
  • Потеря данных (подпись, PDF, аудит-след): 0
  • App Store отклонение: 0

8. Открытые вопросы (до написания кода)

# Вопрос Ответственный Срок
OQ-1 Достаточна ли EES (биометрия + визуальная подпись + device key) для Beweiswert в немецком трудовом суде? Fachanwalt IT-Recht Неделя -2
OQ-2 Какие конкретно HR-документы требуют § 126 BGB Schriftform, а какие — § 126b Textform? Fachanwalt IT-Recht Неделя -2
OQ-3 Готовы ли сотрудники Mittelstand рисовать подпись пальцем? (US-21) CustDev Неделя -1
OQ-4 Per-envelope или per-seat-per-month pricing? CustDev Неделя -1
OQ-5 Достаточен ли Supabase free tier для первых 3 design partners? Технический spike Неделя 1
OQ-6 Нужен ли DPIA до запуска даже для закрытого тестирования с 3 компаниями? Datenschutzbeauftragter Неделя 0
OQ-7 Какие альтернативы рисованию подписи (шрифты, авто-генерация) принять для Accessibility? UX-тестирование Неделя 4

9. Риски соло-разработки

# Риск Probability Impact Mitigation
R1 Выгорание. 6 недель интенсивной разработки соло. High High Жёсткий график: 5 дней/нед., 8 часов/день. Выходные — полностью офлайн.
R2 PDF-рендеринг сложнее чем ожидалось. Шрифты, позиционирование, PAdES. Medium High POC на неделе -1: pdf-lib с 5 реальными HR-документами.
R3 Apple App Store review затягивается. Биометрия — sensitive permission. Medium Medium Ранняя отправка на review (неделя 5). TestFlight для design partners.
R4 Supabase уходит из EU или меняет цены. Low Medium Self-hosted backup plan: Supabase Docker на Hetzner.
R5 CLAUDE.md rule overload. Правила pAss + Zustimm конфликтуют. Low Low Zustimm CLAUDE.md только project-specific правила, без дублирования pAss.

10. Следующие шаги

  • [ ] Rechtsgutachten заказан (неделя -2)
  • [ ] 20 depth interviews запланированы (неделя -1)
  • [ ] Landing page zustimm.io + domain (неделя 0)
  • [ ] Figma-прототип: web admin + mobile app (неделя 0)
  • [ ] Технический POC: pdf-lib + expo-secure-store + expo-local-authentication (неделя 0)
  • [ ] Gate review (конец недели 0): GO / NO-GO к коду