Модуль ИД (id-builder) — постройка Этапы 0–6 + ретро-учёт
Ретроспективный work-log. Соответствует записям ID-2026-05-21-001..006 и
ID-2026-05-22-001..003 в expenses.yaml. Модуль исполнительной документации —
третий сервис платформы ProfitVill (id.profitvill.ru, порт 3030), Express 5 +
Vite/React + Tailwind v4, общая БД bablo-postgres (схема id.*).
Что сделано
Этап 0 (2ч) — ID-2026-05-21-001
- Разведка платформы (bablo, ks2builder): SSO, общая БД, MinIO, BYOK-ключи
- Правка документов модуля под реальную архитектуру VPS
Этап 1 (4ч) — ID-2026-05-21-002
- Модель данных: 18 таблиц схемы
id.*в bablo-postgres - Миграции 000_register_product, 001_init, 002_seed, 003_add_parent_position, 004 (типы Леса/Демонтаж)
- Переиспользование public.* (organization/project/counterparty/user_account), без дублирования
Этап 2 (4ч) — ID-2026-05-21-003
- Парсер КС-2 (формат Smeta.RU / Госкомстат №100)
- Приёмка на реальных файлах: 319 работ + 496 материалов (parent-связи 100%), вентиляция 240 работ
Этап 3 (4ч) — ID-2026-05-21-004
- UI импорта КС-2: Express API + Vite/React фронт (4 страницы), визард upload→preview→commit
- Матчинг контрагентов, транзакционный импорт
Этап 4 (3ч) — ID-2026-05-21-005
- Разметка позиций: 3 состояния, автоподсказка типа акта по разделу, bulk с уважением фильтра, автосейв
Инфраструктура (1ч) — ID-2026-05-21-006
- id.profitvill.ru по HTTPS (Let’s Encrypt), SSO Руслана (org Атмапром, owner)
- NPM proxy host без задевания соседних хостов
Этап 6 (4ч) — ID-2026-05-22-001
- Встроенный шаблон АОСР: HTML→Playwright/Chromium→PDF (не xlsx)
- Миграции 005 (construction_name + ogrn/address), 006 (act_template html + placeholders)
- Воспроизведение образца Руслана (Школа в Капотне)
Этап 6.1 (3ч) — ID-2026-05-22-002
- Миграции 007 (act_type_signer_role + два композитных FK: применимость роли к типу + неизменяемость типа), 008 (legal_basis_effective_date)
- Дословные captions формы 344/пр Прил.3 (сверено с офиц. текстом, Минюст N 73652), форма-faithful шаблон
- АОСР закрыт архитектором
Этап 5 — Шаги 1–2 (3ч) — ID-2026-05-22-003
- Шаг 1: CRUD подписантов (id.person), org-scoped, RESTRICT→409
- Шаг 2: транзакционный CRUD контрагентов (public.counterparty + id.counterparty_detail), дедуп по ИНН, обогащение Bablo-следа явным выбором (код на ревью)
Решения
- HTML→PDF вместо xlsx для встроенного шаблона (точный контроль вёрстки и дословности формы)
- Captions актов — дословно из приказа, не парафраз (заказчик сверяет символ-в-символ)
- Критичные инварианты держим механизмом БД (композитные FK), не дисциплиной
- ИД пишет в public.counterparty только строки, схему не трогает (владеет Drizzle Bablo)
Что дальше
- Этап 5 (справочники: разделы ИД, сертификаты, схемы), затем Этап 7 (создание актов)
- Учёт по ID вести в том же формате: запись
ID-+ work-log за сессию
Расход часов
28 часов roman = 117 600 ₽ (ставка 4200 ₽/час, на 30% ниже среднерыночной).
Записи в expenses.yaml — ID-2026-05-21-001..006 и ID-2026-05-22-001..003
(добавлены вручную как ретроспектива дочернего продукта, по образцу ks2builder).