MOffice · анализ проекта

Что готово, что не работает и что делать дальше — с живыми макетами всех экранов

Проверено по коду, тестам и журналам сессий на 4 октября 2026 (анализ — main ba87613, факты дополнены по main fbe12b0, 22:36). Продукт переименован: Meridian Office → MOffice (решение владельца № 41). Итог: основание пакета построено, настоящих приложений пока два: MOffice Write — просмотр, печать и экспорт PDF, без правки текста, и MOffice Sheets — окно с правкой таблиц (дорожка C, 4–5 октября; без стилей ячеек). Остальные 12 приложений существуют как спецификации и макеты.

Подготовлено 2026-10-04, дополнено 2026-10-05 (Sheets, этап 2) · язык — русский · все цифры — из прогона тестов, журналов A/B и стендов

1. Коротко

Готово (фаза 0 «Основание» по объёму работ закрыта за один день, 4 октября)
  • Ядро на Rust для документов Write: чтение docx (94,1 % файлов корпуса, 0 паник), вёрстка страниц, свой шейпер для всех письменностей, растр, экспорт PDF/A-2b (veraPDF 160/160).
  • «Весь код свой» (решение № 40) доведён до конца в ядре и оболочке: свои ZIP, XML, Юникод, шрифты, шейпер, PNG/JPEG, растеризатор, PDF, окно на Cocoa/X11/Win32.
  • Своя оболочка Write без Qt: окно, лента, вкладки документов, навигация, палитра, backstage, диалог «Открыть», темы, Tab-фокус, подсказки Alt.
  • Окно MOffice Sheets с правкой (дорожка C, 4–5 октября): сетка, строка формул, ввод с пересчётом ядром, листы, форматы, отмена, буфер обмена, xlsx; этап 2 — маркер заполнения и серии, копирование формул со сдвигом ссылок, сортировка, поиск, CSV, автоширина, общий диалог «Открыть / Сохранить как» — 50 тестов на macOS и Linux.
  • Ядро таблиц: meridian-calc — 497 функций, числовые форматы, русская локаль; свои чтение и запись xlsx (99,94 % формул корпуса = значениям Excel). Правописание meridian-spell, шифрование MOP, лицензии MRDN/.mlic.
  • Сервисы лицензий и аккаунтов онлайн, свой CI-раннер с ночным фаззингом, юридические черновики, 12 спецификаций, 103 экрана макетов.
Не работает / ещё нет
  • Правки нет нигде: в Write нельзя набрать текст, кнопки форматирования только рисуются.
  • Сохранения нет: нет кодека записи документа (ни .mwx, ни .docx). Печать и экспорт PDF из окна появились вечером 4 октября.
  • Точность рендера — 20,3 % страниц с SSIM ≥ 0,95 при цели вехи M0.4 60 % и критерии фазы 0 — 70 %.
  • Нет окон Hub, Sheets, Slides, Draw, Paint, PDF, Math, Notes, Mail, Base, Forms (13 из 14 приложений — только макеты).
  • Ввод через IME есть пока только в полях интерфейса (macOS, Linux), в документе — нет; нет установщиков, обновлений, биллинга, портала; доступность — только начало на macOS. Windows ни разу не запускалась, CI — только Linux.

Главный вывод: фундамент сделан необычно быстро и качественно (своё ядро сверяется с эталонами побайтно), но продукт ещё не начался — следующая веха, которая превращает просмотрщик в приложение, это модель правки текста + сохранение. С неё и начинается фаза 1 в плане ниже.

Решения владельца от 4 октября

№РешениеЧто это значитКто делает
41Переименовать продукт в MOffice (вместо Meridian Office: знак MERIDIAN занят для ПО в США)Этап 1 (идёт): все видимые имена — «MOffice», «MOffice Write», «MOffice Sheets»…, «MOffice ID», «MOffice Cloud», «MOffice Script», «MOffice Design System (MDS)», «MOffice Open Package (MOP)»; в русском тексте — тоже латиницей (произносится «Эм-Офис»). Этап 2 (нужно отдельное «да»): внутреннее кодовое имя «meridian» — крейты meridian-*, C ABI meridian_*, URN urn:meridian:office:*, MIME vnd.meridian.*, префикс ключей MRDN-, домены стендов. Рекомендация: до выпуска первых ключей сменить то, что видят пользователи и разработчики форматов (префикс ключей, URN, MIME, домены), а имена крейтов оставить кодовым именемA и B — каждая в своей зоне; отчёт и прототип — эта сессия (сделано)
42Эталоны рендера из Microsoft Word разрешены (Word установлен на Mac)сравнение точности перейдёт с LibreOffice на Word — метрика станет честной для цели «как в Word»A (corpus-tool refs через Word, лаборатория)
43Шрифты-данные в комплект разрешены (OFL и подобные)Caladea (= Cambria), Gelasio (= Georgia), PT Sans/Serif, Noto, STIX Two Math, Latin Modern Math — документы из Office будут подменяться точнееA (шрифты и подстановки), B (реестр лицензий)

2. Цифры

≈ 87 тыс.строк своего Rust (ядро, оболочка, сервисы, инструменты)
23своих крейта ядра и оболочки
≈ 350своих тестов — все зелёные (+ ≈ 2 960 тестов эталона IronCalc)
1 075файлов в корпусе (docx 367, xlsx 159, doc 158, pptx 102…)
94,1 %docx корпуса открываются, 0 паник
20,3 %страниц с SSIM ≥ 0,95 (цель 60–70 %), средний SSIM 0,70
160 / 160PDF/A-2b проходят veraPDF
7,4 мскадр 2880×1800 на CPU в своей оболочке
≈ 14 МБWrite одним файлом (интерфейс + шрифты + ядро)
497 / 518функций Sheets в своём движке формул (вечер 04.10)
30 / 30сквозной тест лицензий и аккаунтов на стенде
2 / 14приложений имеют окно: Write (просмотр, печать, PDF) и Sheets (правка, с 04.10)

Прогон cargo test --workspace --release на этой машине: 3 317 тестов прошли, 1 упал — тест эталона IronCalc test_to_from_bytes::errors (в release-сборке сообщение об ошибке bitcode другое; эталон в продукт не входит, CI собирает debug и этого не видит). Окно Write собрано и снято заново: открывает docx с оглавлением на 35 страниц.

3. Приложения: матрица готовности

Работает в кодеЧастично — есть ядро или часть окнаТолько макет — спецификация и макеты, кода нет
ПриложениеФаза → релизЯдроОкноИтогЧего не хватает в первую очередь
Hub1 → 1.0—— (есть backstage в Write)Макетброкер meridian-broker, окно Hub, недавние, настройки, обновления
Write1 → 1.0чтение docx, вёрстка, рендер, PDF/A, оглавлениепросмотр, печать, экспорт PDFЧастичномодель правки и ввод, запись .mwx/.docx, рецензирование, точность 85 %
Sheets2 → 1.5meridian-calc: 497 функций, форматы, ru-локаль; свой xlsx (чтение и запись); C ABI книг (FFI v0.4)окно с правкой (дорожка C, 04–05.10): сетка, формулы, листы, форматы, отмена, xlsx и CSV, серии, сортировка, поискЧастичностили ячеек, вставка строк, диаграммы, сводные, автофильтр, печать таблиц
Slides3 → 2.0——Макетобщая сцена фигур, модель слайдов, pptx, анимации, показ
Draw3 → 2.0фигуры VML/DrawingML только в рендере docx—Макетmeridian-scene, коннекторы, трафареты, vsdx
Paint4 → 2.5растр, PNG/JPEG; спайк кистей вне продукта—Макетслои, кисти (порт уже проверен), фильтры, форматы
PDF4 → 2.5писатель PDF/A-2b; спайк просмотра вне продукта—Частичносвой растеризатор PDF, аннотации, формы, подписи, OCR
Math4 → 2.5——Макетраскладка формул, показ OMML из docx (нужен уже в фазе 1)
Notes5 → 3.0——Макетмодель холста, импорт OneNote по [MS-ONESTORE] (4–7 чел.-мес.)
Mail5 → 3.0——МакетIMAP/SMTP, CalDAV, PST, хранилище SQLite
Base5 → 3.0выражения = meridian-calc—Макет.mbx на SQLite, запросы, формы, отчёты, accdb
Forms5 → 3.0——Макетконструктор, ответы в Sheets, PDF-формы
Publisher7 → 4.0——Нет даже макетовспецификация и макеты
Plan7 → 4.0——Нет даже макетовспецификация и макеты

Общие модули (библия §2.2)

МодульСостояниеЧто есть / чего нет
Kernel — текстЧастичномодель документа (подмножество), стили с наследованием, вёрстка, Кнут–Пласс, переносы 46 языков, списки, таблицы, колонтитулы; нет операционной модели правки, undo/redo, CRDT-журнала
CodecsЧастичночтение docx; чтение и запись xlsx (свои, круговой путь на 160 книгах); нет MOP (.mwx), docx-записи, doc, odt, rtf, pptx, html/md
RenderРаботаетсвой растеризатор (CPU), картинки, фигуры, PDF/A-2b; GPU-пути нет (по плану — по замерам)
Chart · Scene · Diagram · ColorНетспецификация диаграмм есть (docs/algorithms/chart-engine.md), кода нет
CryptoЧастичношифрование MOP готово и проверено векторами, независимой реализацией и фаззингом; с 04.10 — свои криптопримитивы meridian-cipher (SHA-256, HKDF, Argon2id, AES-256-GCM без таблиц, проверка постоянного времени); к кодеку не подключено (кодека MOP нет)
LingoЧастичноправописание (ru_RU, en), переносы, словарное деление тайского/лаосского/кхмерского/бирманского (meridian-segment), нормализация NFC/NFD готовы; грамматики, тезауруса, интерфейса нет
ShellЧастичноплатформенный слой (Cocoa, X11, Win32), компоненты MDS, окно Write; с вечера 04.10 — буфер обмена, меню macOS, печать, свои кнопки окна, подсказки, анимации, системные шрифты для редких письменностей, дерево доступности на macOS, IME на macOS и Linux (XIM); нет IME на Windows, доступности на Windows/Linux, Wayland-клиента
License · IDЧастичнокрейт лицензий + два сервиса онлайн; нет клиентского крейта meridian-id, диалогов, CRL, офлайн-активации
Broker · Script · Sync · Print · Assist · UpdateНеттолько в спецификациях
СервисыЧастичноlicense-service и id-service на meridian-api.24oros.ru; billing, portal, update, cloud, telemetry — нет

4. Как работает сейчас

Единственный живой путь — от docx до пикселей в окне Write. Всё в нём — собственный код (кроме крейтов криптографии и сервисов, классы 0–1 политики лицензий).

Своя оболочка (ui/) meridian-platformокно, ввод: Cocoa · X11 · Win32 meridian-uiкомпоненты MDS, текст, иконки, фокус meridian-write — окно Writeлента, холст, навигация, палитра, «Открыть» нет правки, IME,буфера, печати meridian-ffi · C ABI v0.3: open, render, PDF, outline Ядро (kernel/crates) — всё своё codec-ooxmlчтение docxarchive (ZIP) · xml367/390, 0 паник text-modelразделы, абзацы,таблицы, стилибез правки meridian-layoutshape · font · unicode · hyphКнут–Пласс, страницы, колонки,колонтитулы, таблицы, списки meridian-renderraster · image (PNG/JPEG)1,6 мс на страницуSSIM ≥ 0,95: 20,3 % meridian-pdfPDF/A-2b, подмножествашрифтов, ToUnicodeveraPDF 160/160 Отдельно от этого пути, без интерфейса: meridian-calc (формулы), meridian-spell (правописание), meridian-crypto (шифрование MOP), meridian-license (ключи и лицензии). На сервере sagr: meridian-api (license-service + id-service + PostgreSQL), moffice-lab (сравнение рендера), meridian-office (сайт документации), CI-раннер Forgejo.
Схема пути «docx → окно Write». Пунктир — то, чего в оболочке ещё нет.

Так выглядит настоящее приложение сегодня

Окно MOffice Write с документом на 35 страниц и оглавлением
Снято сейчас из собранной программы: docx на 35 страниц, оглавление из ядра слева, стили справа.
Тёмная тема своей оболочки
Тёмная тема, docx с табуляциями — страницы рисует ядро.
Палитра команд
Палитра команд ⌘⇧P / Ctrl+Shift+P — нечёткий поиск, работает.
Свой диалог Открыть
Свой диалог «Открыть» (CM-01) — одинаковый на всех ОС.
Подсказки клавиш Alt
Подсказки клавиш по Alt, работают при любой раскладке.
Linux X11
Linux X11 под Xvfb: набор в палитре латиницей и кириллицей.
Окно MOffice Sheets с выделенным диапазоном
MOffice Sheets (дорожка C, 04.10): «Бюджет 2027», формулы посчитаны ядром; выделение B2:E9 — сумма и количество внизу.
Ввод формулы в MOffice Sheets
Ввод формулы: ссылки подсвечены цветом в строке формул и рамками на сетке; щелчок по ячейке вставляет ссылку.
MOffice Sheets, тёмная тема
Тёмная тема, правка в строке формул. Кадр Linux совпадает с кадром macOS на 100 % пикселей.
Поиск в MOffice Sheets
Этап 2 (05.10): поиск ⌘/Ctrl+F по значениям и формулам, Enter — следующее совпадение, счётчик справа.
Вкладка «Данные» в MOffice Sheets
Вкладка «Данные»: сортировка текущей области (заголовок определяется сам, формулы строк сдвигаются), CSV для Excel ru-RU.
Диалог «Сохранить книгу как»
Общий диалог «Сохранить как» из meridian-ui (тот же, что у Write): фильтр xlsx, CSV виден, но недоступен.

Что в этом окне делается на самом деле: открыть docx (своим диалогом, перетаскиванием или из командной строки), листать, масштабировать, переходить по оглавлению и миниатюрам, держать несколько документов во вкладках, переключать темы, сворачивать ленту, искать команды в палитре, ходить по интерфейсу клавиатурой, а с вечера 4 октября — печатать (системный диалог через PDF ядра) и экспортировать PDF/A. Чего не делается: поставить курсор и набрать текст, выделить, отформатировать, сохранить — кнопки на ленте есть, но связаны только с видом окна.

5. Что работает и что нет — по слоям

Ядро

✓ чтение docx: стили, разделы, таблицы (объединения, рамки), списки, колонтитулы, картинки inline/anchor, фигуры VML/DrawingML
✓ вёрстка «как Word»: метрики, интерлиньяж, keepNext/keepLines, висячие строки, колонки, табуляции
✓ свой шейпер: латиница, кириллица, арабский, иврит, индийские, тайский, кхмерский, бирманский, хангыль, USE — 765 тыс. строк совпали с HarfBuzz
✓ PDF/A-2b, PNG/JPEG, ZIP/DEFLATE, XML, UAX #14/#9 (официальные тесты 100 %)
✓ формулы 497 функций, числовые форматы, ru-локаль, свой xlsx; правописание; словарное деление тайского и др.; шифрование и свои криптопримитивы; лицензии
✗ модель правки, undo, CRDT-журнал · ✗ любая запись форматов · ✗ сноски, обтекание, диаграммы, OMML, поле TOC · ✗ шрифты AAT и системные шрифты в вёрстке документа

Оболочка

✓ окно и ввод на macOS (Cocoa), Linux (X11), Windows (Win32 — собирается, но не запускалось)
✓ лента 8 вкладок с адаптивным сворачиванием, вкладки документов, холст с фоновым рендером, навигация, стили, масштаб, темы (вкл. высокий контраст), палитра, backstage, диалог «Открыть», Tab-фокус, подсказки Alt, изменение размера окна без рамки (X11)
✓ 34 теста, из них 19 сквозных «щелчками и клавишами»; кадр совпадает с Qt-прототипом по SSIM 0,97–0,996
✓ с вечера 04.10: печать и экспорт PDF, буфер обмена (macOS, Windows, X11), меню macOS, свои кнопки окна, подсказки, анимации, дерево доступности на macOS
✓ IME в полях интерфейса: macOS (NSTextInputClient, окно кандидатов), Linux (XIM, «мёртвые» клавиши)
✗ курсор и ввод текста в документ, IME на Windows · ✗ доступность на Windows/Linux · ✗ несколько окон · ✗ Wayland-клиент (сейчас через XWayland) · ✗ GPU-путь

Сервисы и коммерция

✓ license-service: активация ключом, выдача .mlic (CBOR + Ed25519), validate/deactivate
✓ id-service: регистрация, вход (Argon2id), JWT EdDSA + JWKS, refresh с ротацией
✓ стенд meridian-api.24oros.ru, сквозной тест 30/30
✗ 2FA, OAuth (Яндекс ID, VK ID…), ссылка-вход · ✗ CRL, подписанные запросы устройства, Idempotency-Key · ✗ billing (ЮKassa/CloudPayments), портал, update-service, telemetry · ✗ клиент в приложении

Инфраструктура, документы, юридическое

✓ CI на своём раннере sagr (Linux): fmt, clippy, тесты, cargo-deny, реестр лицензий, проверка макетов, сборка сайта; ночной фаззинг docx и шифрования
✓ стенды: сайт документации и макетов, лаборатория рендера, API
✓ библия, план, 12 спецификаций (≈ 17 тыс. строк), дизайн-система, форматы, лицензирование; черновики EULA, оферты, политики ПДн, проверка знака
✗ сборки и тесты на Windows/macOS в CI · ✗ эталоны рендера из Word (сейчас LibreOffice) · ✗ установщики, подпись, нотаризация · ✗ проверка юристом, заявка на товарный знак

6. Проблемы и риски, найденные при анализе

#ПроблемаПочему важноЧто сделать
1Точность рендера 20,3 % страниц SSIM ≥ 0,95 (цель M0.4 — 60 %, gate фазы 0 — 70 %, релиз 1.0 — 85 % к эталону Word)«Открывает как в Word» — главное обещание продукта (библия §1.2). Расхождения копятся: один сдвиг пагинации портит все следующие страницыпо замерам лаборатории: сноски, обтекание плавающих объектов, балансировка колонок, диаграммы-заглушки нужного размера, неравные колонки; эталоны из Word (нужно разрешение владельца на управление Word или ферма VM)
2Write не редактирует, а лента выглядит полностью рабочейдемо легко принять за готовый редактор; кнопки форматирования — Act::Noneмодель правки — первый эпик фазы 1; до неё приглушать неработающие кнопки или подписывать «только просмотр»
3Нет записи ни одного формата; кодек MOP только в спецификации; шифрование не подключенобез сохранения нет приложения; round-trip docx — критерий релиза (≥ 90 % файлов)кодек .mwx (чтение/запись) + запись docx с сохранением неизвестных частей; подключить meridian-crypto
4Windows ни разу не запускалась, macOS — только на машине разработчика, CI — только Linux«одинаково на трёх ОС» — требование библии; ошибки Win32-слоя всплывут поздномашины/раннеры Windows и macOS; дымовой запуск и снимки в CI
5IME (macOS NSTextInputClient, Linux XIM) и буфер обмена уже есть в платформе, но документ их ещё не использует; на Windows IME нет; доступность — только начало на macOSбез IME нельзя продавать в Азии, без доступности — в госсекторделать вместе с моделью правки (own-shell.md §5); UIA (Windows) и AT-SPI (Linux) — следом за macOS
6Документы отстали от решений № 39–40: README («рендер на Skia», «tiny-skia, harfrust»), комментарии в Cargo.toml (skia-safe, rustybuzz), библия §4 (Skia), план (инженеры Qt, Squish, лицензия Qt, спайки Skia↔QRhi), макеты oss.html (метки IronCalc, krilla, harfrust)новые участники и сессии будут опираться на устаревшееодна правка-синхронизация документов (зона B) + переработка oss.html
7Календарь плана условный: старт 11.01.2027, команда 16 → 73 человек, 2 660 чел.-мес.; фактически фаза 0 сделана двумя сессиями за деньдаты и бюджет в плане не отражают реальный темп и составвести план по критериям выхода фаз, а календарь пересчитать после первой вехи фазы 1 (модель правки + сохранение)
8Qt-прототип shell/ ещё в репозитории; в корне лежит служебный aqtinstall.logлишний код и зависимость от Qt в рецептах justудалить после фиксации паритета (решение № 39); убрать лог из git
9Тест эталона IronCalc падает в release-сборкемелочь, но cargo test --release красныйпоправить ожидание в эталоне или собирать эталон только в debug
10Шрифты: по решению № 43 в комплект добавлены Caladea (= Cambria), Gelasio (= Georgia), курсивы Carlito, Liberation Mono Bold/Italic — высота строки по метрикам оригиналов, как в Word; PT и Noto ещё нет; AAT и системные шрифты в вёрстке документа не используютсяэталон LibreOffice на Mac считает строку Caladea иначе, чем Word с настоящим Cambria, — поэтому SSIM к LibreOffice почти не изменился (0,699 → 0,694)эталоны из Word (№ 42) — нужен запуск в сессии A; добавить PT Sans/Serif и Noto
11Всё живёт на одном сервере sagr; внешний вход — через HAProxy на VPS; диск GX10 занят на 96 %единая точка отказа для CI, стендов и APIрезервные копии стендов и БД API, второй раннер
12Юридическое: продукт переименован в MOffice (знак MERIDIAN занят для ПО в США); беглый поиск конфликтов «MOffice» не нашёл, но есть риск смешения с «МойОфис/MyOffice» и «MS Office»; документы — черновикиимя нужно закрепить до публичной бетыпоиск поверенного по ФИПС и WIPO (классы 9/42), заявка на знак; затем этап 2 переименования (ключи, URN, домены)

7. План работ по фазам

Порядок фаз и состав — из библии (§7) и плана docs/08-roadmap.md; содержание шагов пересобрано с учётом того, что уже сделано, и того, что всё пишется своим кодом. Трудоёмкость — ориентир плана (пиковая численность × длительность фазы), реальный темп сессий выше — поэтому важнее критерии готовности. У каждой фазы — ссылки на экраны живого прототипа, которые она делает настоящими.

0612182430364248 мес. 0 Основаниесделано 4.10.2026 (остаток — gate) 1 Write + Hub→ 1.0 2 Sheets→ 1.5 3 Slides, Draw→ 2.0 4 Paint, PDF, Math→ 2.5 5 Notes, Mail, Base, Forms→ 3.0 6 Облако, совместная→ 3.5 7 Экосистема→ 4.0
Фазы по месяцам от старта (из библии). Фаза 0 уже выполнена по объёму; остальные полосы — плановые длительности при команде из плана, их стоит пересчитать по фактическому темпу после первой вехи фазы 1.
0.9

Закрытие основания (gate фазы 0)

сейчас · 2–4 недели · ≈ 3–5 чел.-мес.

Довести то, что фаза 0 обещала, но не достигла, и выровнять документы под решения № 39–40.

  1. Точность рендера до ≥ 60 %, затем 70 % (сессия A): сноски и концевые сноски, обтекание плавающих объектов, балансировка колонок перед разделом «на текущей странице», неравные колонки, заглушки диаграмм/SmartArt по размеру, поле TOC. Мерить в лаборатории после каждого шага.
  2. Эталоны из Word: разовое разрешение владельца на управление Word или 1–2 VM с Microsoft 365 — иначе метрика смещена к LibreOffice.
  3. Три ОС в CI: запуск на Windows (дымовой тест, снимки), раннер macOS; матрица в .forgejo/workflows.
  4. Синхронизация документов (сессия B): README, комментарии Cargo.toml, библия §4 (рендер — свой CPU-растр), план (без Qt, без Squish), oss.html; удалить aqtinstall.log; починить тест эталона в release.
  5. ADR по фактически принятым решениям (свой растр без Skia, свой шейпер, процессная модель) — вместо спайков Skia↔QRhi из плана.
  6. Решение о паритете и удаление Qt-прототипа shell/.

Готово, когда: ≥ 70 % страниц SSIM ≥ 0,95 на 100 docx; зелёный CI на Linux/Windows/macOS; документы не противоречат коду.

1

Ядро и Write 1.0 + Hub

по плану 9 мес. · ≈ 290 чел.-мес. · релиз 1.0

Превратить просмотрщик в текстовый процессор и выпустить первый продаваемый продукт на трёх ОС.

  1. 1.1 Модель правки: операционная модель (каждая правка — операция с идентификатором, совместима с будущим CRDT-журналом), транзакции, undo/redo с группировкой; курсор, выделение (слово/абзац/столбец), ввод с клавиатуры, IME (NSTextInputClient, IMM32/TSF, XIM), буфер обмена (текст, HTML, RTF, фрагмент docx, PNG). Подключить кнопки ленты к командам, мини-панель выделения.
  2. 1.2 Сохранение: кодек .mwx 1.0 (чтение/запись, XSD/RELAX NG), запись docx с round-trip и сохранением неизвестных частей, шифрование паролем через meridian-crypto; затем odt, rtf, txt/md/html, doc (чтение), epub/fb2.
  3. 1.3 Вёрстка «как Word» до 85 %: автоширина таблиц, обтекание (6 режимов), сноски, секции с разной ориентацией, compat-режимы, биди/CJK, показ формул OMML и диаграмм из docx (только отображение).
  4. 1.4 Рецензирование и ссылки: исправления и комментарии в модели, оглавление/поля/закладки/перекрёстные ссылки, поиск и замена (regex, формат), сравнение документов (P0, решение № 32).
  5. 1.5 Печать и экспорт: печать через PDF ядра и системные диалоги и экспорт PDF/A из окна — уже сделаны 04.10; осталось своё окно печати с предпросмотром и параметрами, параметры экспорта, PNG/SVG страниц, PDF/UA-теги.
  6. 1.6 Hub и брокер: процесс meridian-broker (единственный экземпляр, общий буфер, недавние, очередь печати), окно Hub, шаблоны, «Параметры», восстановление после сбоя (журнал каждые 2 с).
  7. 1.7 Платформа: доступность — мост NSAccessibility начат 04.10, дальше UIA (Windows) и AT-SPI (Linux); несколько окон, режимы плотности, Wayland, правописание в фоне (движок готов), автозамена. Меню macOS и буфер обмена — уже есть.
  8. 1.8 Коммерческий контур: клиент meridian-id (вход, 2FA, OAuth Яндекс ID/VK ID), активация ключом и офлайн, пробный период, замки на функциях, CRL; billing-service (ЮKassa, CloudPayments, чеки 54-ФЗ), портал, update-service, установщики (MSIX/MSI, DMG с нотаризацией, Flatpak/AppImage/deb/rpm), подпись.
  9. 1.9 Качество и выпуск: корпус до 10 000, снимочные тесты ночью, фаззинг 24/7, бета «MOffice Insiders», локализация ru/en, справка.

Готово, когда (из плана): ≥ 99 % docx/doc/odt/rtf корпуса открываются; ≥ 85 % страниц SSIM ≥ 0,95 к Word; round-trip docx ≥ 90 %; ввод ≤ 16 мс p95; 100 % P0 Write и Hub; тест-покупки в РФ проходят; подписанные установщики на трёх ОС.

2

Sheets 1.5

по плану 10 мес. · ≈ 180 чел.-мес. · релиз 1.5

Ядро формул уже есть — фаза начинается с сетки и форматов, а не с вычислителя.

  1. Окно Sheets на meridian-ui — этап 1 сделан 04.10, этап 2 — 05.10 (дорожка C): сетка, строка формул, поле имени, выделение, листы, ввод с пересчётом, форматы, отмена, буфер, xlsx; маркер заполнения и серии, Ctrl+D/R, копирование формул со сдвигом ссылок, сортировка, поиск, CSV, автоширина, F4, диалог «Открыть / Сохранить как». Дальше: стили ячеек и вставка/удаление строк (API книг v0.5 — A), закрепление областей, автофильтр.
  2. Свой кодек xlsx — сделан (A: чтение и запись, 99,94 % формул корпуса = Excel); дальше xls, ods, csv; кэш значений формул в .msx.
  3. Формулы: 497 из 518, числовые форматы, TEXT и русская локаль — сделаны (A); дальше — остаток каталога, инкрементальный и многопоточный пересчёт (ADR-A1).
  4. MOffice Chart (20 типов, общий для всех приложений) — по docs/algorithms/chart-engine.md.
  5. Сводные таблицы, условное форматирование, автофильтр и сортировка, импорт CSV, разметка страницы и печать, скрипты.

Готово, когда: 100 % P0 из docs/apps/sheets.md; xlsx корпуса открываются без потерь; пересчёт 100 тыс. формул быстрее Excel на эталонной машине.

3

Slides и Draw 2.0 + Business «стартовый»

по плану 10 мес. · ≈ 220 чел.-мес. · релиз 2.0
  1. MOffice Scene — общая сцена фигур (prstGeom, заливки/обводки, группы, коннекторы) для Write, Sheets, Slides, Draw, Notes, Forms; MOffice Diagram (аналог SmartArt) с автораскладкой.
  2. Slides: модель слайдов, образцы и макеты, темы, анимации и переходы, сортировщик и разделы, показ и режим докладчика на втором экране, кодек pptx/odp; экспорт видео — P1 (2.1).
  3. Draw: трафареты .mvs, коннекторы с маршрутизацией, слои и страницы, данные фигур и автораскладка, кодеки vsdx/svg/odg, экспорт PDF/PNG/SVG.
  4. Business «стартовый»: консоль администратора v1, SSO OIDC, Education.
4

Paint, PDF, Math 2.5

по плану 10 мес. · ≈ 200 чел.-мес. · релиз 2.5
  1. Paint: слои и режимы наложения, кисти (порт libmypaint уже проверен побитно в спайке), выделения и трансформации, фильтры (по образцу Pinta, свой код), снимок экрана, форматы png/jpg/webp/gif/tiff/ora/psd(базово).
  2. PDF: свой растеризатор чужих PDF (по образцу hayro, решение № 40), вкладки, поиск, аннотации, заполнение форм, упорядочивание страниц, подписи PAdES и шифрование, преобразование в Write/Sheets, OCR (языки по требованию).
  3. Math: раскладка формул (по образцу typst, свой код), визуальный и LaTeX/UnicodeMath ввод, встраивание во все приложения, MathML/OMML, озвучивание; редактирование формул в Free с 2.5.
  4. MOffice Color (ICC) для Paint, PDF и печати.
5

Notes, Mail, Base, Forms 3.0

по плану 12 мес. · ≈ 310 чел.-мес. · релиз 3.0
  1. Notes: книжки/разделы/страницы, свободный холст, рукописный ввод, поиск с OCR, импорт Evernote и OneNote (своя реализация [MS-ONESTORE], 4–7 чел.-мес.), виртуальный принтер.
  2. Mail: IMAP/SMTP/POP3, CalDAV/CardDAV, календарь, контакты, задачи, правила, PST/MSG; Exchange/Graph — Business+.
  3. Base: .mbx на SQLite (SQLCipher), конструкторы таблиц/запросов/форм/отчётов, выражения на meridian-calc, подключения к PostgreSQL/MySQL/MS SQL, импорт accdb/mdb.
  4. Forms: конструктор, логика ветвления, сбор ответов офлайн/PDF/почта, ответы в Sheets; веб-сбор — в 3.5.
6

Облако и совместная работа 3.5

по плану 12 мес. · ≈ 290 чел.-мес.
  1. CRDT-журналы (заложены с фазы 1) → совместное редактирование между десктопными клиентами; cloud-service (хранилище, общий доступ, версии), свой сервер и on-prem.
  2. Enterprise: консоль v2, SAML/SCIM, плавающие и объёмные лицензии, on-prem сервер лицензий, веб-сбор Forms.
7

Экосистема 4.0

по плану 12 мес. · ≈ 340 чел.-мес.

Магазин скриптов и шаблонов, MOffice Assist (локальные модели или облако), Publisher и Plan (для них сначала нужны спецификации и макеты — сейчас их нет), веб-просмотрщик — только по решению владельца.

8. Ближайшие 2 недели — по порядку

#ЗадачаКтоРезультат
1Сноски, обтекание, балансировка колонок, заглушки диаграмм в вёрсткеASSIM ≥ 0,95 на 40–60 % страниц (лаборатория)
2Операционная модель текста: вставка/удаление/формат как операции, undo/redoAтесты модели; FFI v0.4 с командами правки
3Курсор, выделение и ввод в холсте Write поверх FFI v0.4; IME на macOS первымBв окне можно набрать и стереть текст
4Кодек .mwx (чтение/запись) по spec/formats/ + шифрованиеAсохранить → открыть без потерь
5Подключить готовое: правописание (подчёркивание), статистика, переход по странице (экспорт PDF и печать уже подключены 04.10)Bещё три кнопки начинают работать
6Windows: первый запуск, дымовой тест; раннер macOSBCI на трёх ОС
7Синхронизация документов с решениями № 39–40, переработка oss.htmlBдокументы = код
7аSheets, этап 3: стили ячеек (шрифт, заливка, границы, выравнивание) и вставка/удаление строк и столбцов — после API книг v0.5 (запрос A); закрепление областей и автофильтр — своими силами. Этап 2 (серии, сортировка, поиск, CSV, диалог) сделан 05.10Cокно Sheets — к P0 фазы 2
8Решения владельца приняты 04.10: эталоны из Word разрешены, шрифты-данные в комплект разрешены, имя — MOffice. Дальше: эталоны Word для 100 docx (A), шрифты Caladea/Gelasio/PT/Noto (A + B), переименование этапа 1 (A и B — свои зоны)A, Bчестная метрика к Word; документы и интерфейс под новым именем

9. Живой прототип — как устроен

Живой прототип — все экраны всех приложений в одном окне, сделанном по дизайн-системе MDS. В отличие от статичных макетов, здесь всё нажимается: в Write правится текст и работают стили, списки, таблицы, исправления, слияние; в Sheets считаются формулы; в Slides идёт показ; в Draw тянутся коннекторы; в Paint рисуется кисть; в Mail двигаются события календаря и т. д.

10. Все экраны и их состояние

Всего экранов: 103 — Работает в коде: 3 Частично: 16 Только макет: 84

ПриложениеЭкранНазваниеСостояние в кодеФазаСсылки
ОбщиеCM-01Диалог «Открыть»Работает в кодеФаза 0 — сделанооткрыть · макет
ОбщиеCM-02«Сохранить как» с выбором формата и проверкой совместимостиТолько макетФаза 1 · I05 (E1.4 кодеки записи)открыть · макет
ОбщиеCM-03ПечатьЧастичноФаза 1 · I05 (E1.3)открыть · макет
ОбщиеCM-04Экспорт в PDFЧастичноФаза 1 · I05 (E1.3)открыть · макет
ОбщиеCM-05Поделиться и совместная работаТолько макетФаза 6 · облако и совместная работа (3.5)открыть · макет
ОбщиеCM-06Командная палитра (⌘⇧P)Работает в кодеФаза 0 — сделанооткрыть · макет
ОбщиеCM-07Панель правописания и грамматикиЧастичноФаза 1 · I04–I06 (E1.7 Lingo)открыть · макет
ОбщиеCM-08Восстановление после сбоя и обновлениеТолько макетФаза 1 · I05–I08 (E1.5, E1.12)открыть · макет
ОбщиеCM-09Окно «О программе» и диагностикаТолько макетФаза 1 · I07открыть · макет
АккаунтAC-01Вход в MOffice IDЧастичноФаза 1 · I03–I05 (E1.10)открыть · макет
АккаунтAC-02Двухфакторная проверкаТолько макетФаза 1 · I05 (E1.10)открыть · макет
АккаунтAC-03Активация ключомЧастичноФаза 1 · I04 (E1.10)открыть · макет
АккаунтAC-04Офлайн-активацияТолько макетФаза 6 · Enterprise (вечные Home/Pro — фаза 1)открыть · макет
АккаунтAC-05Параметры → Облако и аккаунтТолько макетФаза 1 · I05–I07 (E1.10)открыть · макет
АккаунтAC-06Пробный период и замок на функцииЧастичноФаза 1 · I03 (пробный Pro), I05 (замки)открыть · макет
АккаунтAC-07Состояния лицензииЧастичноФаза 1 · I05–I07 (E1.10)открыть · макет
АккаунтAC-08Консоль администратора организации (веб)Только макетФаза 3 · консоль v1 (2.0); v2 — фаза 6открыть · макет
АккаунтAC-09Портал: тарифы и покупка (веб)Только макетФаза 1 · I05–I07 (E1.11)открыть · макет
АккаунтAC-10Плавающая лицензия EnterpriseТолько макетФаза 6 · Enterprise (3.5)открыть · макет
HubHUB-01Главный экран HubТолько макетФаза 1 · I03–I05 (E1.6)открыть · макет
HubHUB-02Галерея шаблоновТолько макетФаза 1 · I07 (E1.15)открыть · макет
HubHUB-03Параметры пакетаТолько макетФаза 1 · I07открыть · макет
HubHUB-04Первый запуск и аккаунтТолько макетФаза 1 · I03открыть · макет
WriteWR-01Главное окноЧастичноФаза 1 · I03открыть · макет
WriteWR-02Backstage «Файл → Открыть»Работает в кодеФаза 0 — сделанооткрыть · макет
WriteWR-03РецензированиеТолько макетФаза 1 · I06открыть · макет
WriteWR-04Навигация и поискЧастичноФаза 1 · I06открыть · макет
WriteWR-05Таблица: контекстные вкладки и свойстваЧастичноФаза 1 · I04открыть · макет
WriteWR-06Макет страницы и колонтитулыЧастичноФаза 1 · I04открыть · макет
WriteWR-07Компактный режим и режим «Фокус»ЧастичноФаза 1 · I06открыть · макет
WriteWR-08Вставка: диаграмма, формула, оглавлениеТолько макетФаза 1 (показ) · фазы 2–4 (правка)открыть · макет
WriteWR-09Слияние (рассылки)Только макетP1 · релизы 1.1–1.6открыть · макет
WriteWR-10Сравнение документов и версииТолько макетФаза 1 · P0 (решение № 32)открыть · макет
SheetsSH-01Главное окноЧастичноФаза 2 · релиз 1.5открыть · макет
SheetsSH-02Ввод формулыЧастичноФаза 2 · релиз 1.5открыть · макет
SheetsSH-03ДиаграммыТолько макетФаза 2 · релиз 1.5открыть · макет
SheetsSH-04Сводная таблицаТолько макетФаза 2 · релиз 1.5открыть · макет
SheetsSH-05Условное форматированиеТолько макетФаза 2 · релиз 1.5открыть · макет
SheetsSH-06Диалог «Формат ячеек»ЧастичноФаза 2 · релиз 1.5открыть · макет
SheetsSH-07Данные: автофильтр и импорт CSVЧастичноФаза 2 · релиз 1.5открыть · макет
SheetsSH-08Разметка страницы и печатьТолько макетФаза 2 · релиз 1.5открыть · макет
SheetsSH-09Скрипты и редактор MOffice ScriptТолько макетФаза 1–2 · Script API 1.0 в 1.6открыть · макет
SlidesSL-01Обычный видТолько макетФаза 3 · релиз 2.0открыть · макет
SlidesSL-02Дизайн: темы и идеи оформленияТолько макетФаза 3 · релиз 2.0открыть · макет
SlidesSL-03АнимацииТолько макетФаза 3 · релиз 2.0открыть · макет
SlidesSL-04ПереходыТолько макетФаза 3 · релиз 2.0открыть · макет
SlidesSL-05Сортировщик слайдов и разделыТолько макетФаза 3 · релиз 2.0открыть · макет
SlidesSL-06Режим докладчикаТолько макетФаза 3 · релиз 2.0открыть · макет
SlidesSL-07Образец слайдовТолько макетФаза 3 · релиз 2.0открыть · макет
SlidesSL-08Вставка схемыТолько макетФаза 3 · релиз 2.0открыть · макет
DrawDR-01Главное окноТолько макетФаза 3 · релиз 2.0открыть · макет
DrawDR-02Коннекторы и форматТолько макетФаза 3 · релиз 2.0открыть · макет
DrawDR-03Слои и страницыТолько макетФаза 3 · релиз 2.0открыть · макет
DrawDR-04Данные фигур и автораскладкаТолько макетФаза 3 · релиз 2.0открыть · макет
DrawDR-05ЭкспортТолько макетФаза 3 · релиз 2.0 (.vsd, .dxf — P1 · 2.1)открыть · макет
PaintPT-01Главное окноТолько макетФаза 4 · релиз 2.5открыть · макет
PaintPT-02КистьТолько макетФаза 4 · релиз 2.5открыть · макет
PaintPT-03Трансформация выделенияТолько макетФаза 4 · релиз 2.5открыть · макет
PaintPT-04Галерея фильтровТолько макетФаза 4 · релиз 2.5открыть · макет
PaintPT-05Новое изображение и размерТолько макетФаза 4 · релиз 2.5открыть · макет
PaintPT-06Снимок экранаТолько макетФаза 4 · релиз 2.5открыть · макет
PDFPD-01Просмотр и аннотацииТолько макетФаза 4 · релиз 2.5открыть · макет
PDFPD-02Заполнить и подписатьТолько макетФаза 4 · релиз 2.5открыть · макет
PDFPD-03Упорядочить страницыТолько макетФаза 4 · релиз 2.5открыть · макет
PDFPD-04Преобразование и OCRТолько макетФаза 4 · релиз 2.5открыть · макет
PDFPD-05Защита и подписьТолько макетФаза 4 · релиз 2.5открыть · макет
MathMT-01Формула в WriteТолько макетФаза 4 · релиз 2.5 (в Free — правка с 2.5; показ OMML в Write — фаза 1)открыть · макет
MathMT-02Отдельное окно MathТолько макетФаза 4 · релиз 2.5 (в Free — правка с 2.5)открыть · макет
NotesNT-01Главное окноТолько макетФаза 5 · релиз 3.0открыть · макет
NotesNT-02Рисование и рукописный вводТолько макетФаза 5 · релиз 3.0открыть · макет
NotesNT-03Поиск и тегиТолько макетФаза 5 · релиз 3.0открыть · макет
NotesNT-04Импорт и вырезкиТолько макетФаза 5 · релиз 3.0открыть · макет
NotesNT-05Общая книжкаТолько макетФаза 6 · релиз 3.5открыть · макет
MailML-01ПочтаТолько макетФаза 5 · релиз 3.0открыть · макет
MailML-02Новое письмоТолько макетФаза 5 · релиз 3.0открыть · макет
MailML-03Календарь (неделя)Только макетФаза 5 · релиз 3.0открыть · макет
MailML-04Событие (встреча)Только макетФаза 5 · релиз 3.0открыть · макет
MailML-05КонтактыТолько макетФаза 5 · релиз 3.0открыть · макет
MailML-06ЗадачиТолько макетФаза 5 · релиз 3.0открыть · макет
MailML-07Учётная запись и правилаТолько макетФаза 5 · релиз 3.0 · Exchange/Graph — Business+, EWS — P1 «3.1»открыть · макет
BaseBS-01Таблица (режим таблицы)Только макетФаза 5 · релиз 3.0 · Pro; ввод данных — Home (BaseRuntime)открыть · макет
BaseBS-02Конструктор таблицыТолько макетФаза 5 · релиз 3.0 · Proоткрыть · макет
BaseBS-03Запрос (конструктор QBE и SQL)Только макетФаза 5 · релиз 3.0 · Proоткрыть · макет
BaseBS-04Конструктор формыТолько макетФаза 5 · релиз 3.0 · Pro; формы в работе — Home (BaseRuntime)открыть · макет
BaseBS-05ОтчётТолько макетФаза 5 · релиз 3.0 · Proоткрыть · макет
BaseBS-06Схема данных и внешние подключенияТолько макетФаза 5 · релиз 3.0 · Pro (MySQL, MS SQL, ODBC — P1)открыть · макет
FormsFM-01Конструктор формыТолько макетФаза 5 · релиз 3.0открыть · макет
FormsFM-02Логика ветвленияТолько макетФаза 5 · релиз 3.0открыть · макет
FormsFM-03ОтветыТолько макетФаза 5 · релиз 3.0открыть · макет
FormsFM-04Предпросмотр и доступТолько макетФаза 5 · релиз 3.0 · веб-сбор — Фаза 6 · 3.5, Pro+открыть · макет
OSSOS-01Карта сборкиТолько макетФазы 0–7 · состав продуктамакет
OSSOS-02О программе → Лицензии открытого ПОТолько макетФаза 1 · окно «О программе» (CM-09)макет
OSSOS-03Write: правописание, переносы, диктовка, сравнениеТолько макетФаза 1 · Writeмакет
OSSOS-04Sheets на ядре IronCalcТолько макетФаза 2 · Sheetsмакет
OSSOS-05Sheets: данные и поиск решенияТолько макетФаза 2 · Sheets (P1)макет
OSSOS-06Paint: кисти и эффектыТолько макетФаза 4 · Paintмакет
OSSOS-07Draw: трафареты и автораскладкаТолько макетФаза 3 · Drawмакет
OSSOS-08PDF: распознавание и преобразованиеТолько макетФаза 4 · PDFмакет
OSSOS-09Math: формула и озвучиваниеТолько макетФаза 4 · Mathмакет
OSSOS-10Mail: календарь и безопасностьТолько макетФаза 5 · Mailмакет
OSSOS-11Hub: облака, обновления, отчёт о сбоеТолько макетФаза 1 · Hub (облака — фаза 6)макет
OSSOS-12MOffice ID и консоль администратораТолько макетФазы 1–6 · аккаунтмакет
OSSOS-13Скрипты и SBOMТолько макетФаза 1 · скрипты (E1.9)макет

11. Источники

MOffice · правообладатель Орос А. М. · анализ и план — 2026-10-04 · прототип и отчёт: plan/ в репозитории