План реализации и критерии готовности¶
Scope и стартовые defaults приняты в реестре решений, поэтому проектирование БД можно начинать без ожидания экспертов или поставщиков. Методические, лицензионные, коммерческие и юридические уточнения отделены в pre-pilot gate: они не блокируют внутреннюю разработку, но блокируют внешний пилот.
Админ-панель, admin role и административный API не входят ни в один milestone MVP. Их возможный будущий модуль
описан отдельно в post-MVP backlog.
Milestone 0 — зафиксированный baseline¶
- KarmaCode и текущее ТЗ приняты как продуктовый baseline;
natal-v1, строгий режим неизвестного времени и стартовая orb policy приняты;- три заменяемых
v0-движка описаны с versioned contracts; - принят passwordless e-mail OTP через Resend, без Telegram;
- платёжная модель поддерживает несколько тарифов, в MVP активен один месячный тариф;
- AI изолирован provider-agnostic портом; до выбора модели работает fixture adapter;
- внешний pilot gate отделён от текущих engineering-решений.
Exit: выполнен — документы согласованы, а логическая/физическая модель подготовлена в проекте БД и ожидает согласования перед Prisma migrations.
Milestone 1 — foundation и бесплатный funnel¶
- физическая Prisma schema и миграции (foundation-срез identity/onboarding/operations готов; остальные модули — следующими миграциями);
- Resend OTP, sessions, роли
client|practitioner, consent, draft→user claim и birth profiles; - place resolver + historical timezone snapshot;
- calculation orchestration, job/outbox и analytics attribution;
- server-side API бесплатного результата, технические логи и метрики.
Exit: гость вводит данные, расчёт завершается идемпотентно, OTP-вход забирает draft, пользователь видит только свои versioned facts; повторы и сбой worker безопасны.
Milestone 2 — четыре движка¶
natal-v1+ golden/property/integration tests;numerology-pythagorean-v0,human-design-standard-v0иdestiny-matrix-22-v0как реализации общего заменяемого контракта;- evidence normalization и бесплатные versioned labels;
- внутренние deterministic fixtures для всех движков и сравнительные natal fixtures.
Exit: одинаковый input/version даёт одинаковый result hash на dev/CI/Linux image; silent Swiss fallback запрещён, а версия методики и набора данных сохранена с результатом.
Milestone 3 — деньги и доступ¶
- каталог
Product/Priceс одним активным seed-тарифом и возможностью добавить другие; - orders, YooKassa initial payment и verified webhook;
- saved method, renewal worker, cancel-at-period-end, past-due/grace/expiry;
- entitlement checks, refunds, immutable ledger и reconciliation.
Exit: sandbox-сценарии из платёжного документа автоматизированы; redirect не выдаёт доступ; duplicate webhook, retry и timeout не создают двойного списания или entitlement. Операционные ошибки видны через alerts и runbooks без административного API.
Milestone 4 — AI-разбор и прогноз¶
- versioned evidence mappings
axes-v1; AiProviderregistry,FixtureAiProvider, generation queue/cache и строгая schema validation;- двухшаговый evidence→narrative pipeline для core reading, tensions, route и period forecast;
- safety gates, cost telemetry и provider/model snapshot в каждом артефакте.
Exit: evaluation fixtures проходят hard gates; каждый опубликованный тезис имеет evidence; повторное чтение не вызывает provider; смена adapter/model не требует миграции домена; outage не ломает бесплатную часть.
Milestone 5 — retention и консультации¶
- goals/requests, check-ins и statistics;
- Resend e-mail preferences, transactional templates и reminders;
- practitioner seed/onboarding data, каталог и consultation request/status;
- отдельный order консультации и первичный ручной settlement workflow.
Календарь, чат, видеосвязь, Telegram и автоматический split не входят в milestone.
Exit: клиент проходит сквозные goal и consultation flows, роли не раскрывают чужую карту/заметки, время согласуется через данные заявки и её состояния, а финансовые edge cases соответствуют versioned policy.
Milestone 6 — готовность к внешнему пилоту¶
- закрыты все пункты pre-pilot checklist с owner и evidence;
- export/delete workflows, backup/restore, alerts и runbooks проверены;
- метрики ТЗ/PRD доступны через telemetry pipeline или ограниченный операционный export, не через admin API;
- пройдены load/abuse/security checks и end-to-end pilot rehearsal.
Exit: команда может определить, где потерялся конкретный funnel event/payment/job, восстановиться из backup, провести финансовую сверку без прямого редактирования production DB и предъявить evidence закрытия pre-pilot gate.
Стратегия тестов¶
- unit: математика, state machines, OTP, entitlement, prices и evidence rules;
- property/golden: расчёты и canonical hashes;
- repository integration: реальный PostgreSQL, transactions/constraints/locks;
- contract: frozen YooKassa/AI/geocoder/Resend payload fixtures и schema drift checks;
- end-to-end: draft→OTP→payment→interpretation, renewal/refund и consultation;
- security: auth enumeration, OTP abuse, object-level access, webhook spoof/replay, rate limit и PII log scan;
- operations: worker crash между внешним effect и commit, retry/dead-letter, reconciliation и backup restore.
Definition of Done use case¶
- правила, state transition и error codes описаны;
- authorization и audit определены;
- migration/rollback и idempotency constraint есть;
- логи/метрики не содержат ПДн, для неустранимой ошибки есть alert;
- happy path, дубль, forbidden, invalid input и внешний timeout покрыты тестами;
- OpenAPI и связанная документация обновлены;
npm run checkи production image проходят;- feature выключаема без порчи данных.
Главные риски и принятый контроль¶
| Риск | Контроль сейчас |
|---|---|
| Временные методики трёх систем | заменяемые versioned engines v0, immutable artifacts, pre-pilot review |
| Лицензия Swiss Ephemeris | внутреннее использование сейчас, отдельный обязательный license gate |
| Ошибочное историческое время | IANA timezone snapshot, DST edge tests, manual disambiguation |
| Двойное списание/ложный доступ | idempotency, webhook GET verification, unique invoices, reconciliation |
| AI выдумывает факты/опасные советы | evidence refs, schema/safety gates, expert eval; provider не вычисляет facts |
| Смена AI-поставщика или модели | AiProvider, registry, config и immutable provider/model snapshot |
| Утечка чувствительных данных | data minimization, object auth, redacted logs, retention/deletion workflows |
| Нет админ-панели в MVP | telemetry, alerts, runbooks, controlled scripts; будущий модуль отдельно |
| Vendor outage/cost | async jobs, cache, limits, adapters и graceful degradation |