Він заклав → ми кажемо (без AI)
826 → 785
годин розробки, усі три аркуші, варіант 2 переліків
ОНІКС-ІВА · ризик-модуль · години розробника
Ми незалежно перерахували кожен рядок колонки Development під той самий профіль, який заявив автор: middle, знає код, без AI, code review і тести входять у години. Потім перевірили на історії git, скільки часу він реально витрачав на схожі задачі.
Він заклав → ми кажемо (без AI)
826 → 785
годин розробки, усі три аркуші, варіант 2 переліків
Різниця
+5 %
у межах похибки — оцінка реалістична
Прогноз, якщо працює з AI
425–635 год
як він працює зараз: AI у 93 % його комітів
Таблиця 1 · по аркушах
«Ми кажемо» — найімовірніша незалежна оцінка; поруч діапазон від оптимістичної до песимістичної. Сюди ж додано роботи, які потрібні за вимогами, але яких немає в його рядках.
| Аркуш | Він заклав | Ми кажемо | Наш діапазон | Він − ми | Вердикт |
|---|---|---|---|---|---|
| Ризиковість | 576,5 | 566 | 398–806 | +10,5 | реалістично |
| Логіка співставлення | 114 | 101 | 67–150 | +13 | трохи завищено, +13 % |
| Офшори+Території, варіант 1 | 170,5 | 142,5 | 101–205 | +28 | завищено, +20 % |
| Офшори+Території, варіант 2 | 135,5 | 118 | 82–171 | +17,5 | трохи завищено, +15 % |
| Офшори+Території, варіант 3 | 102,5 | 101 | 69–148 | +1,5 | реалістично |
C74) не включає блок «Інфраструктура» (8 год): правильна сума 576,5, а не 568,5. Коментар до суми каже «автотести в опціях, тестування не входить», але автотестів серед опцій немає, а QA рахується окремою колонкою — коментар застарів.Таблиця 2 · він заклав / ми кажемо
Рядки, де ми розходимося на 3 години і більше, від «заклав забагато» до «забув». Мінус — у нього зайве, плюс — бракує.
| Аркуш · рядок | Задача | Він заклав | Ми кажемо | Різниця | Чому |
|---|---|---|---|---|---|
| Ризиковість · 13 | Виправлення запитів YouScore за розд. 6 Змін | 28 | 19 | −9 | Двокрокові запити до YouScore вже працюють для 8 джерел; нових запитів лише 5. |
| Логіка · 3 | Пошук у РНБО і ДФМ: точний збіг за РНОКПП / паспортом, нечіткий пошук ПІБ (Вагнер–Фішер, trigram, Soundex / Metaphone),… | 28 | 20 | −8 | Soundex і Metaphone створені для англійської і для кирилиці не працюють; достатньо trigram + Вагнер–Фішер. Ще ≈ 2 год дублюють нормалізацію з аркуша переліків. |
| Офшори, в.2 · 31 | Парсер ТОТ | 20 | 13 | −7 | У переліку ТОТ (графа 5) уже є код населеного пункту за КАТОТТГ — ієрархію з назв відновлювати не треба. |
| Ризиковість · 50 | Filament: колонка й фільтри строку перегляду, картка «прострочено / ≤ 30 днів», блок у картці клієнта | 10 | 6 | −4 | Картка «≤ 30 днів» понад вимоги: у змінах прямо сказано, що нагадувань наперед не роблять. |
| Ризиковість · 66 | Рефакторинг: KepSigner (detached / attached) з CompanySignatureService, читання сертифіката | 9 | 5 | −4 | Метод підпису довільним ключем уже є в сервісі підпису компанії — рефакторинг зводиться до виділення класу. |
| Логіка · 13 | Латиниця для кириличних записів, передача збігів у розрахунок, збереження попередніх звірок і рішень, «раніше спростова… | 8 | 4 | −4 | Транслітерацію вже оцінено в аркуші переліків, «раніше спростовано» — у «Ризиковості», рядок 28. |
| Офшори, в.2 · 30 | Нормалізатори | 14 | 10 | −4 | Назви населених пунктів нормалізувати не треба: у переліку ТОТ є код КАТОТТГ. Лишаються транслітерація і РНОКПП / паспорт. |
| Офшори, в.2 · 43 | Імпорт КАТОТТГ | 10 | 6 | −4 | У кожному рядку кодифікатора КАТОТТГ уже є коди всіх рівнів — денормалізувати майже нічого. |
| Ризиковість · 22 | Вкладка «Оцінка ризику»: картки, таблиця факторів (попередній і остаточний бал), модалки, журнал, історія прогонів, сир… | 32 | 29 | −3 | Каркас сторінки береться з наявної вкладки YouScore; нові лише таблиця факторів, два підсумки і журнал. |
| Ризиковість · 24 | Журнал змін факторів, записи незмінні | 9 | 6 | −3 | Показ журналу вже рахується у вкладці (рядок 22); тут лишається таблиця із забороною змін. |
| Ризиковість · 25 | Статус «Ручна перевірка» + блокування «Підписати анкету» і «Верифікувати» + банер із причиною | 12 | 9 | −3 | Статус перевірки клієнта вже закладено в рядках 10 і 16; тут лишаються блокування і банер. |
| Ризиковість · 33 | Модель Висновку, номер А-33/1, версії, статуси, PG sequence | 12 | 9 | −3 | Модель, статуси, нумерація і тести — 8–10 год; 12 год — верхня межа. |
| Ризиковість · 41 | Фільтр «Висновки до підтвердження» і масова дія «Підтвердити» | 7 | 4 | −3 | Масове «Підтвердити» вимоги прямо виключають («нового вигляду черги не робимо»); потрібен лише фільтр. |
| Ризиковість · 46 | «Звернення за послугою» → «потрібна актуалізація» + сповіщення | 10 | 7 | −3 | Замовлень на купівлю чи продаж у кабінеті немає, тож це «звернення» система не бачить — лише ручна позначка. |
| Ризиковість · 67 | PersonalSignatureService і журнал спроб підпису | 10 | 7 | −3 | Журнал спроб частково вже рахується в рядку 38 (засвідчення Висновку). |
| Логіка · 8 | Звірка з усіма переліками в прогоні перевірки, перетворення збігів на 7.4 / 7.5 / 8.2 і підказку 8.8, поле «обставина» | 14 | 11 | −3 | Підключення переліків до перевірки вже є в «Ризиковості» (рядок 17), поле «обставина» — у рядку 34. |
| Офшори, в.2 · 29 | Міграції й моделі | 12 | 9 | −3 | 6–7 однотипних таблиць і два розширення PostgreSQL — 1–1,5 дня. |
| Офшори, в.2 · 45 | Інтеграція ТОТ у клієнта | 7,5 | 4,5 | −3 | Пошук населеного пункту в переліку і перерахунок для клієнтів дублюють рядок 6 «Логіки співставлення». |
| Ризиковість · немає | КЕП: налаштування бібліотеки підпису під АЦСК особистих ключів підписантів | 0 | 3 | +3 | Пропущено в оцінці |
| Офшори, в.2 · немає | Відкат до попередньої версії переліку (без нього помилковий файл виправляється лише поштучно) | 0 | 3 | +3 | Пропущено в оцінці |
| Ризиковість · 15 | Решта детекторів (2.x, 3.x, 4.x, 5.x, 6.x, 7.x, 10.x), парсер РНБО, PEP за expireDate і деклараціями | 45,5 | 50 | +4,5 | 31 автоматичний детектор — 45,5 год впритул; найризиковіші судові справи (роль клієнта) і чинний / історичний PEP. |
| Логіка · немає | Зведення санкцій РНБО і терористів з YouScore та власних переліків в один фактор; обробка збігу з зоною бойових дій | 0 | 5 | +5 | Пропущено в оцінці |
| Ризиковість · 48 | Імпорт з Depend: перевірка всіх імпортованих ФО з throttle, попередження про кількість запитів, прогрес, дата імпорту я… | 12 | 18 | +6 | Імпорт зараз синхронний, у файлі депозитарію немає паспорта й дати народження; ≈ 3 000 клієнтів × ≈ 19 платних запитів YouScore з обмеженням швидкості. |
| Ризиковість · немає | Додаток 1: тестові відповіді YouScore для перевірки системи, розпізнавання неоднозначних збігів, автоматичні «нульові» фактори | 0 | 12 | +12 | Пропущено в оцінці |
| Ризиковість · немає | Ручний перегляд: працівник сам встановлює фінальний рівень, дія «Завершити перегляд», прибрати наявний довільний бал 0–100, скорочення строку перегляду, дата останнього звернення | 0 | 14,5 | +14,5 | Пропущено в оцінці |
Розгорніть аркуш, щоб побачити кожен рядок оцінки з нашою цифрою і поясненням.
| Аркуш · рядок | Задача | Він заклав | Ми кажемо | Різниця | Чому |
|---|---|---|---|---|---|
| Ризиковість · 4 | Черга risk, окремий воркер у docker-compose (dev і prod) | 2 | 2,5 | +0,5 | Новий сервіс у двох compose-файлах, onQueue('risk'), окремий retry_after для ризик-черги, правка compose на prod-сервері, queue:restart у CI |
| Ризиковість · 5 | Scheduler: сервіс schedule:work у docker-compose | 2 | 1,5 | −0,5 | Той самий шаблон, що й у рядку 4. |
| Ризиковість · 6 | Сповіщення адмінам у БД: таблиця notifications, databaseNotifications(), клас RiskNotification | 4 | 4 | 0 | Міграція, ->databaseNotifications() з polling у панелі, базовий клас, вибір отримувачів (без ролей: усі адміни, див. |
| Ризиковість · 10 | Enum-и і міграції: прогони, індикатори 0/1, знімок Дії, оцінки й фактори, compliance_status, анулювання старих результа… | 16 | 16 | 0 | 5–6 таблиць з моделями й фабриками (≈ 9 год), 6–8 enum-ів (≈ 3 год), анулювання старих даних (≈ 2 год), конфіг і тести (≈ 2 год) |
| Ризиковість · 11 | Довідник 106 факторів (enum RiskFactor) і тест відповідності Д1 | 8 | 7 | −1 | Переважно введення даних: 106 довгих назв дослівно. |
| Ризиковість · 12 | Прогони: StartRiskCheck, FetchYouScoreSourceJob (batch, ретраї), RunDetectorsJob, реєстр детекторів, стан «перевірку не… | 22 | 22 | 0 | Batch-оркестрація (≈ 6 год), job на одне джерело з неблокуючим polling через release() (≈ 5 год), реєстр детекторів із залежностями (1.6 і 11.3 залежать від PEP-детектора) (≈ 4 год), «не виконано» і повтор невдалих (≈ 3… |
| Ризиковість · 13 | Виправлення запитів YouScore за розд. 6 Змін | 28 | 19 | −9 | Двокрокові запити до YouScore вже працюють для 8 джерел; нових запитів лише 5. |
| Ризиковість · 14 | Знімок Дії і детектори 1.6, 11.2, 11.3, 1.8, 1.9, 11.1 | 14 | 16 | +2 | Знімок і hook (≈ 3 год). |
| Ризиковість · 15 | Решта детекторів (2.x, 3.x, 4.x, 5.x, 6.x, 7.x, 10.x), парсер РНБО, PEP за expireDate і деклараціями | 45,5 | 50 | +4,5 | 31 автоматичний детектор — 45,5 год впритул; найризиковіші судові справи (роль клієнта) і чинний / історичний PEP. |
| Ризиковість · 16 | RiskCalculator (тригери, PEP-max, 3 фактори по 8–10, попередній і остаточний бал), AssessmentBuilder, ComplianceStatusS… | 23 | 24 | +1 | Калькулятор і правила (≈ 8 год), причини перегляду й зупинки відкриття (≈ 3 год), Builder (≈ 4 год), статус клієнта (≈ 3 год), табличні тести на прикладах (≈ 6 год). |
| Ризиковість · 17 | Автозапуск після підпису анкети, класи DB-сповіщень, legacy-поля clients, точки розширення для блоків 1–2, навігаційна… | 7 | 6,5 | −0,5 | Hook (≈ 1.5 год), 2–3 класи сповіщень (≈ 2 год), синхронізація legacy-полів і прибирання старого PDF RiskAssessmentReportService з прогону (≈ 1.5 год), решта (≈ 1.5 год). |
| Ризиковість · 18 | Позначка «дані джерела не оновлюються» (4.2, 7.3) | 1 | 1 | 0 | Розумна інженерна річ: впливає на «надійне джерело» для автопідтвердження (Шкала 4.2). |
| Ризиковість · 22 | Вкладка «Оцінка ризику»: картки, таблиця факторів (попередній і остаточний бал), модалки, журнал, історія прогонів, сир… | 32 | 29 | −3 | Каркас сторінки береться з наявної вкладки YouScore; нові лише таблиця факторів, два підсумки і журнал. |
| Ризиковість · 23 | Дії над фактором: підтвердити, спростувати, перекваліфікувати, скасувати, додати з довідника + перерахунок | 21 | 20 | −1 | доменний сервіс на 5 дій із переходами станів 6 год, модалки Filament з підставою й джерелами 5 год, інтеграція з перерахунком і позначкою «змінено» для розд. |
| Ризиковість · 24 | Журнал змін факторів, записи незмінні | 9 | 6 | −3 | Показ журналу вже рахується у вкладці (рядок 22); тут лишається таблиця із забороною змін. |
| Ризиковість · 25 | Статус «Ручна перевірка» + блокування «Підписати анкету» і «Верифікувати» + банер із причиною | 12 | 9 | −3 | Статус перевірки клієнта вже закладено в рядках 10 і 16; тут лишаються блокування і банер. |
| Ризиковість · 26 | Колонка й фільтр «Статус перевірки» у списку | 5 | 3,5 | −1,5 | badge-колонка, SelectFilter і тест за готовим патерном |
| Ризиковість · 27 | Фактор 1.8: дії «отримано / перевірено / повернути», сповіщення про завантаження | 7 | 7 | 0 | потік запиту документа готовий, нові тут лише стан 1.8 і його вплив на блокування, три дії й подія завантаження. |
| Ризиковість · 28 | Повторна перевірка поверх старих рішень: попередження, автоскасування, автоперекваліфікація | 18 | 18 | 0 | Деталі в п. |
| Ризиковість · 29 | Нейтральне повідомлення клієнту в кабінеті (API + фронт) | 5 | 3 | −2 | нейтральний стан у кабінеті вже є. |
| Ризиковість · 33 | Модель Висновку, номер А-33/1, версії, статуси, PG sequence | 12 | 9 | −3 | Модель, статуси, нумерація і тести — 8–10 год; 12 год — верхня межа. |
| Ризиковість · 34 | ConclusionBuilder: автозаповнення розділів 1–8 | 21 | 22 | +1 | Найбільше логіки тут: три автоматичні підстави перегляду, зокрема «інше: високий рівень за сумою балів»; поле «безумовний правовий наслідок» із трьома станами (мапінг факторів 7.2/7.4/7.5/5.x/3.5/8.x плюс неоднозначні з… |
| Ризиковість · 35 | Розділи 7–8: рекомендація, заходи, «потрібен Директор», вибір 1 з 5 шаблонів | 14 | 12 | −2 | Матриця умов для шаблонів 1–5, зокрема одне речення в шаблоні 3; «встановити» чи «продовжити» залежно від підстави оцінки; правило історичного PEP. |
| Ризиковість · 36 | Сторінка Висновку з формами (редагування розд. 2, 3, 5, 7, 8) і вкладка «Висновки» | 30 | 32 | +2 | Рядок не згадує розділи 1 і 6, хоча Д2:145 прямо каже, що в розділі 6 «ручні зміни вносяться у погоджений спосіб»: це «інше» в підставі фінального рівня і рівень, який ставить працівник. |
| Ризиковість · 37 | PDF Д2 за формою від 06.10 (чекбокси, таблиця розд. 4, динамічні рядки) | 16 | 16 | 0 | Розклад: view-model або presenter ~3 год, Blade-шаблон 9 розділів ~6-7 год, розриви сторінок у DomPDF для високих рядків розділу 4 ~2-3 год, звірка з формою клієнта і правки ~2 год, тести рендеру ~1-2 год. |
| Ризиковість · 38 | Засвідчення: «Підтвердити» або КЕП, вибір підписанта, журнал, знімок і hash, незмінність | 14 | 12 | −2 | Запис «підтверджено» з ID, номером, версією і ID запису журналу; заморожений знімок, PDF і sha256; guard незмінності; переходи після засвідчення (у Д3, у плановий перегляд). |
| Ризиковість · 39 | Нова версія після повернення (копія → v2, повторна перевірка), returned / superseded, історія | 12 | 10 | −2 | Копіювання стану, повторний прогін (сам прогін уже є в C12), прив'язка рішення про повернення до версії v1, перегляд засвідченої версії з історії |
| Ризиковість · 40 | Постмодерація: вплив Висновку на статус перевірки | 7 | 6 | −1 | Статус або прапорець і переходи. |
| Ризиковість · 41 | Фільтр «Висновки до підтвердження» і масова дія «Підтвердити» | 7 | 4 | −3 | Масове «Підтвердити» вимоги прямо виключають («нового вигляду черги не робимо»); потрібен лише фільтр. |
| Ризиковість · 45 | Поля строку перегляду, ReviewScheduleService: 5, 3 або 1 рік від дати засвідчення Висновку | 8 | 6 | −2 | 2–3 поля, сервіс, «не застосовується» для неприйнятно високого, виклик після засвідчення (рядок 38) і після імпорту (рядок 48), тести на межі дат за прикладом 19 |
| Ризиковість · 46 | «Звернення за послугою» → «потрібна актуалізація» + сповіщення | 10 | 7 | −3 | Замовлень на купівлю чи продаж у кабінеті немає, тож це «звернення» система не бачить — лише ручна позначка. |
| Ризиковість · 47 | Меню запуску перевірки з причинами + причина в розд. 1 Висновку | 5 | 4 | −1 | форма з причиною, передача в прогін (рядок 12) і у Висновок (рядок 34) |
| Ризиковість · 48 | Імпорт з Depend: перевірка всіх імпортованих ФО з throttle, попередження про кількість запитів, прогрес, дата імпорту я… | 12 | 18 | +6 | Імпорт зараз синхронний, у файлі депозитарію немає паспорта й дати народження; ≈ 3 000 клієнтів × ≈ 19 платних запитів YouScore з обмеженням швидкості. |
| Ризиковість · 49 | Щоденні задачі scheduler: «прострочено плановий перегляд», «минув рік від expireDate PEP» + DB-сповіщення | 3,5 | 3,5 | 0 | 2 команди, розклад, сповіщення, тести з travelTo. |
| Ризиковість · 50 | Filament: колонка й фільтри строку перегляду, картка «прострочено / ≤ 30 днів», блок у картці клієнта | 10 | 6 | −4 | Картка «≤ 30 днів» понад вимоги: у змінах прямо сказано, що нагадувань наперед не роблять. |
| Ризиковість · 54 | Модель рішення, «Рішення № N за Висновком А-…/v», незмінність підписаного | 7 | 7 | 0 | Номер присвоюють лише підписаному рішенню (Д3:78), а PDF для підпису вже має містити номер. |
| Ризиковість · 55 | Створення після засвідчення Висновку з усіма підставами; анулювання чернетки при новій версії | 7 | 6 | −1 | Подія «Висновок засвідчено», перенесення підстав (кілька одразу), заборона створювати рішення без підстав, новий Д3 після повторної перевірки |
| Ризиковість · 56 | 8 шаблонів обґрунтувань (№7 у редакції 06.10) з підстановками | 10 | 9 | −1 | 8 текстів; правило факторів ОР §10 (включати підтверджені, додані й остаточний код перекваліфікованих, не включати спростовані й скасовані); плейсхолдери, які заповнює людина (4–6: підстава; 7: що отримати і строк; 8: у… |
| Ризиковість · 57 | Сторінка рішення: одне рішення, умовні поля, заборона дозволу при НВ, журнал, вкладка | 17 | 17 | 0 | Синхронної дати рядок прямо не згадує (+1 год, усередині M). |
| Ризиковість · 58 | PDF Д3 | 7 | 6 | −1 | Форма проста: 6 підстав, 8 рішень, абзац меж, таблиця з 4 рядків |
| Ризиковість · 59 | Підпис КЕП Директора (без печатки), наслідки рішення, сповіщення | 10 | 11 | +1 | Сам підпис дублює C66-C69, тут лише виклик. |
| Ризиковість · 60 | Автопідпис анкети компанією після дозволу Директора | 6,5 | 6 | −0,5 | Треба винести companySignDocument із трейту в сервіс (зараз він знає про UI, :620-625, :785-797) і викликати з job. |
| Ризиковість · 61 | Автопідпис для клієнтів без Директора і черга «Очікує рахунку» | 5 | 5 | 0 | Залежить від ctx п.10, як і C60. |
| Ризиковість · 65 | Профілі підписантів: міграції, сидер, enum | 2,5 | 3 | +0,5 | Таблиця з ПІБ, посадою, роллю підписанта, РНОКПП для звірки з сертифікатом і user_id. |
| Ризиковість · 66 | Рефакторинг: KepSigner (detached / attached) з CompanySignatureService, читання сертифіката | 9 | 5 | −4 | Метод підпису довільним ключем уже є в сервісі підпису компанії — рефакторинг зводиться до виділення класу. |
| Ризиковість · 67 | PersonalSignatureService і журнал спроб підпису | 10 | 7 | −3 | Журнал спроб частково вже рахується в рядку 38 (засвідчення Висновку). |
| Ризиковість · 68 | Прийом ключа під час підпису: тимчасові файли, перевірка сертифіката, тексти помилок IIT | 10 | 9 | −1 | Тимчасовий файл із видаленням у finally; формати Key-6.dat / .jks / .pfx (ctx п.18); для Key-6.dat потрібен окремий сертифікат або CMP; переклад кодів помилок IIT. |
| Ризиковість · 69 | Filament: спільна модалка підпису (Д2 і Д3), вибір підписанта, статус, історія спроб | 10 | 8 | −2 | Перетинається з C38 («вибір підписанта») |
| Ризиковість · 70 | Ручна перевірка на тестовому ключі АЦСК ІІТ і на ключах підписантів | 2,5 | 5 | +2,5 | Перевірка на реальних ключах підписантів потребує окремої сесії з ними; налаштування позначки часу вже давало дефекти. |
| Ризиковість · немає | Додаток 1: тестові відповіді YouScore для перевірки системи, розпізнавання неоднозначних збігів, автоматичні «нульові» фактори | 0 | 12 | +12 | Пропущено в оцінці |
| Ризиковість · немає | Ручний перегляд: працівник сам встановлює фінальний рівень, дія «Завершити перегляд», прибрати наявний довільний бал 0–100, скорочення строку перегляду, дата останнього звернення | 0 | 14,5 | +14,5 | Пропущено в оцінці |
| Ризиковість · немає | КЕП: налаштування бібліотеки підпису під АЦСК особистих ключів підписантів | 0 | 3 | +3 | Пропущено в оцінці |
| Разом | 576,5 | 566 | −10,5 |
| Аркуш · рядок | Задача | Він заклав | Ми кажемо | Різниця | Чому |
|---|---|---|---|---|---|
| Логіка · 2 | Таблиці звірок і збігів з версією переліку, алгоритму й порогів, налаштування порогів, довідники вердиктів | 4 | 5 | +1 | Міграції, моделі й enum займуть 2–3 год. |
| Логіка · 3 | Пошук у РНБО і ДФМ: точний збіг за РНОКПП / паспортом, нечіткий пошук ПІБ (Вагнер–Фішер, trigram, Soundex / Metaphone),… | 28 | 20 | −8 | Soundex і Metaphone створені для англійської і для кирилиці не працюють; достатньо trigram + Вагнер–Фішер. Ще ≈ 2 год дублюють нормалізацію з аркуша переліків. |
| Логіка · 4 | Підбір порогів на ~60 парах + таблиця хибних спрацювань і пропусків | 6 | 5 | −1 | Рядок 4 говорить про «~60 пар», а рядок 5 про «19 контрольних пар». |
| Логіка · 5 | Unit-тести алгоритму: Вагнер–Фішер, пошук осіб (19 пар), пошук країн | 8 | 6 | −2 | Development і так включає тести, тому окремий рядок допустимий. |
| Логіка · 6 | Звірка адреси з ТОТ і зонами бойових дій: НП за КАТОТТГ через Укрпошту, пошук НП і громади в переліку, «перевірку не ви… | 11 | 9 | −2 | Нинішня позначка дає хибні спрацювання для всіх, хто живе в м. |
| Логіка · 7 | Звірка країн клієнта (податкове резидентство, країна проживання) з переліком офшорів: розбір вільного тексту, синоніми,… | 4 | 5 | +1 | Потрібен довідник країн з українськими, англійськими й російськими назвами та синонімами, а також мапінг 143-2011-р на ISO. |
| Логіка · 8 | Звірка з усіма переліками в прогоні перевірки, перетворення збігів на 7.4 / 7.5 / 8.2 і підказку 8.8, поле «обставина» | 14 | 11 | −3 | Підключення переліків до перевірки вже є в «Ризиковості» (рядок 17), поле «обставина» — у рядку 34. |
| Логіка · 9 | Автоповтор звірки всіх чинних клієнтів після оновлення переліку, без YouScore, лише новий або змінений збіг на перегляд… | 15 | 14 | −1 | Тут слухач події, пакетна обробка ~3 000 клієнтів, ідемпотентність, відсіювання вже відомих збігів, підсумок і сповіщення. |
| Логіка · 10 | Блок «Перевірки за переліками» в картці, історія, ручне уточнення НП, повтор | 12 | 10 | −2 | Секція Filament, таблиця історії, модалка вибору НП з КАТОТТГ і дія «повторити». |
| Логіка · 11 | Запуск на проді: первинна звірка всіх клієнтів за 4 переліками, поетапне ввімкнення, перевірка логіки ТОТ | 2 | 3 | +1 | Під час першого прогону на 3 тис. |
| Логіка · 12 | Технічний опис методики для комплаєнс-документа + демонстрація на реальних звірках | 2 | 4 | +2 | Опис методу для регулятора — пряма вимога; 2 год замало навіть для статичного документа. |
| Логіка · 13 | Латиниця для кириличних записів, передача збігів у розрахунок, збереження попередніх звірок і рішень, «раніше спростова… | 8 | 4 | −4 | Транслітерацію вже оцінено в аркуші переліків, «раніше спростовано» — у «Ризиковості», рядок 28. |
| Логіка · немає | Зведення санкцій РНБО і терористів з YouScore та власних переліків в один фактор; обробка збігу з зоною бойових дій | 0 | 5 | +5 | Пропущено в оцінці |
| Разом | 114 | 101 | −13 |
| Аркуш · рядок | Задача | Він заклав | Ми кажемо | Різниця | Чому |
|---|---|---|---|---|---|
| Офшори, в.1 · 4 | Спайк джерел | 6 | 6 | 0 | Потрібен: джерела розходяться (розділ 4), а zakon.rada, drs.nsdc і fiu.gov.ua не віддають сторінки автоматичним запитам (у мене 403 або обрив TLS). |
| Офшори, в.1 · 5 | Міграції, моделі, enum, pg_trgm, GIN, aliases_normalized | 12 | 9 | −3 | 6–7 однотипних таблиць і два розширення PostgreSQL — 1–1,5 дня. |
| Офшори, в.1 · 6 | NameNormalizer + IdentifierNormalizer, транслітерація КМУ-2010 | 14 | 10 | −4 | Назви населених пунктів нормалізувати не треба: у переліку ТОТ є код КАТОТТГ. Лишаються транслітерація і РНОКПП / паспорт. |
| Офшори, в.1 · 7 | Парсер наказу ТОТ (htm z0380-25) | 22 | 14 | −8 | У переліку ТОТ (графа 5) уже є код населеного пункту за КАТОТТГ — ієрархію з назв відновлювати не треба. |
| Офшори, в.1 · 8 | Імпорт РНБО (фізособи, чинні й скасовані) + превʼю з правкою | 12 | 11 | −1 | +4 год проти ОТ!32 за превʼю з правкою виправдано. |
| Офшори, в.1 · 9 | Масовий імпорт ДФМ CSV/XLSX | 8 | 7 | −1 | Ризик формату: Держфінмоніторинг історично публікує перелік як PDF і, ймовірно, XML, а не CSV чи XLSX (розділ 4.3) |
| Офшори, в.1 · 10 | Diff-перегляд і версіонування ДФМ | 6 | 4 | −2 | Якщо зробити порівняння версій з рядка 15 спільним, для переліку терористів лишається лише адаптер. |
| Офшори, в.1 · 11 | Filament CRUD для ДФМ | 5 | 4 | −1 | Стандартний ресурс Filament 4 |
| Офшори, в.1 · 12 | Ресурс «Санкції РНБО»: список, пошук, завантаження | 4 | 4 | 0 | реалістично |
| Офшори, в.1 · 13 | РНБО: ручне додавання і редагування, кожна зміна стає версією | 4 | 4 | 0 | реалістично |
| Офшори, в.1 · 14 | Застосування версії + подія WatchlistVersionApplied, статистика, повторний файл, конфлікт, поріг вилучення | 8 | 7 | −1 | Ключова точка для повторної звірки: слухач сидить у ЛС!9, тому дублювання немає. |
| Офшори, в.1 · 15 | Превʼю й diff ТОТ (вкладки «Додано / Вилучено / Змінено»), правка, виключення рядків, історія версій, ресурс «Імпорти п… | 22 | 18 | −4 | Шаблон попереднього перегляду вже є в імпорті клієнтів. |
| Офшори, в.1 · 16 | Ресурс «Окуповані території / БД»: список, пошук, перегляд, завантаження | 8 | 6 | −2 | Стандартний ресурс адмінки; сторінка завантаження повторює рядок 15. |
| Офшори, в.1 · 17 | Точкове ручне виправлення ТОТ (вибір НП з КАТОТТГ) | 4 | 4 | 0 | Пошуковий Select по ~30 тис. |
| Офшори, в.1 · 18 | Ресурс «Офшорні зони»: CRUD + сидер 143-2011-р | 4 | 5 | +1 | Немає версії й події для повторної перевірки клієнтів після оновлення офшорів, хоча приклад 17 у вимогах її вимагає. |
| Офшори, в.1 · 19 | Великі файли: php.ini / Livewire / nginx до 50 МБ, retry_after, стан «Розбір не завершився» | 1 | 3 | +2 | Ліміти зараз 20 МБ у PHP, 12 МБ у Livewire, 128 МБ пам'яті воркера — підняти й читати КАТОТТГ частинами. |
| Офшори, в.1 · 20 | Імпорт КАТОТТГ (katottg:import, upsert, денормалізація кодів) | 10 | 6 | −4 | У кожному рядку кодифікатора КАТОТТГ уже є коди всіх рівнів — денормалізувати майже нічого. |
| Офшори, в.1 · 21 | Завантаження КАТОТТГ в адмінці | 3 | 3 | 0 | Перевикористовує ОТ!20 |
| Офшори, в.1 · 22 | Інтеграція ТОТ у клієнта: Крим і Севастополь з Дії, OccupiedTerritoryLookup, fallback під прапором, команда перерахунку | 7,5 | 4,5 | −3 | Пошук населеного пункту в переліку і перерахунок для клієнтів дублюють рядок 6 «Логіки співставлення». |
| Офшори, в.1 · 23 | Права доступу | 0 | 0 | 0 | Ролі — питання до клієнта; автор свідомо поставив 0, ми теж не рахуємо. |
| Офшори, в.1 · 24 | Unit-тести | 10 | 10 | 0 | Фікстури реального htm, превʼю і diff, імпорти, нормалізатори |
| Офшори, в.1 · немає | Пошук населеного пункту в переліку ТОТ: дубль з «Логікою співставлення» зняли в обох аркушах, повертаємо в один | 0 | 3 | +3 | Пропущено в оцінці |
| Разом | 170,5 | 142,5 | −28 |
| Аркуш · рядок | Задача | Він заклав | Ми кажемо | Різниця | Чому |
|---|---|---|---|---|---|
| Офшори, в.2 · 28 | Спайк джерел | 6 | 6 | 0 | реалістично |
| Офшори, в.2 · 29 | Міграції й моделі | 12 | 9 | −3 | 6–7 однотипних таблиць і два розширення PostgreSQL — 1–1,5 дня. |
| Офшори, в.2 · 30 | Нормалізатори | 14 | 10 | −4 | Назви населених пунктів нормалізувати не треба: у переліку ТОТ є код КАТОТТГ. Лишаються транслітерація і РНОКПП / паспорт. |
| Офшори, в.2 · 31 | Парсер ТОТ | 20 | 13 | −7 | У переліку ТОТ (графа 5) уже є код населеного пункту за КАТОТТГ — ієрархію з назв відновлювати не треба. |
| Офшори, в.2 · 32 | Імпорт РНБО без превʼю | 8 | 7 | −1 | Ризик двох файлів, як у ОТ!8 |
| Офшори, в.2 · 33 | Імпорт ДФМ | 8 | 7 | −1 | Ризик формату XML |
| Офшори, в.2 · 34 | Версіонування ДФМ через entry_hash | 1 | 1,5 | +0,5 | реалістично |
| Офшори, в.2 · 35 | CRUD ДФМ | 5 | 4 | −1 | реалістично |
| Офшори, в.2 · 36 | Ресурс РНБО | 4 | 4 | 0 | реалістично |
| Офшори, в.2 · 37 | Ручна правка РНБО | 4 | 4 | 0 | реалістично |
| Офшори, в.2 · 38 | Застосування версії + подія | 8 | 7 | −1 | Без превʼю це єдиний захист від поганого файлу. |
| Офшори, в.2 · 39 | Ресурс ТОТ: список, пошук, завантаження | 8 | 6 | −2 | Стандартний ресурс адмінки; сторінка завантаження повторює рядок 15. |
| Офшори, в.2 · 40 | Ручне виправлення ТОТ | 4 | 4 | 0 | У варіанті 2 це єдиний спосіб виправити помилку парсера, причому по одному рядку |
| Офшори, в.2 · 41 | Офшори CRUD + сидер | 4 | 5 | +1 | Немає версії й події для повторної перевірки клієнтів після оновлення офшорів, хоча приклад 17 у вимогах її вимагає. |
| Офшори, в.2 · 42 | Інфраструктура великих файлів | 1 | 3 | +2 | Ліміти зараз 20 МБ у PHP, 12 МБ у Livewire, 128 МБ пам'яті воркера — підняти й читати КАТОТТГ частинами. |
| Офшори, в.2 · 43 | Імпорт КАТОТТГ | 10 | 6 | −4 | У кожному рядку кодифікатора КАТОТТГ уже є коди всіх рівнів — денормалізувати майже нічого. |
| Офшори, в.2 · 44 | Завантаження КАТОТТГ в адмінці | 3 | 3 | 0 | реалістично |
| Офшори, в.2 · 45 | Інтеграція ТОТ у клієнта | 7,5 | 4,5 | −3 | Пошук населеного пункту в переліку і перерахунок для клієнтів дублюють рядок 6 «Логіки співставлення». |
| Офшори, в.2 · 47 | Unit-тести | 8 | 8 | 0 | реалістично |
| Офшори, в.2 · немає | Пошук населеного пункту в переліку ТОТ: дубль з «Логікою співставлення» зняли в обох аркушах, повертаємо в один | 0 | 3 | +3 | Пропущено в оцінці |
| Офшори, в.2 · немає | Відкат до попередньої версії переліку (без нього помилковий файл виправляється лише поштучно) | 0 | 3 | +3 | Пропущено в оцінці |
| Разом | 135,5 | 118 | −17,5 |
| Аркуш · рядок | Задача | Він заклав | Ми кажемо | Різниця | Чому |
|---|---|---|---|---|---|
| Офшори, в.3 · 51 | Спайк РНБО, ДФМ, КАТОТТГ (без наказу ТОТ) | 4 | 4 | 0 | реалістично |
| Офшори, в.3 · 52 | Міграції й моделі | 10 | 8 | −2 | 6–7 однотипних таблиць і два розширення PostgreSQL — 1–1,5 дня. |
| Офшори, в.3 · 53 | Нормалізатори | 10 | 8 | −2 | Назви населених пунктів нормалізувати не треба: у переліку ТОТ є код КАТОТТГ. Лишаються транслітерація і РНОКПП / паспорт. |
| Офшори, в.3 · 54 | Ресурс ТОТ: ручна форма (НП з КАТОТТГ, категорія, дати), список, пошук | 10 | 10 | 0 | 10 год вистачає лише тоді, коли форма дозволяє обрати громаду або район цілком (масове додавання всіх НП). |
| Офшори, в.3 · 55 | Імпорт РНБО | 8 | 7 | −1 | реалістично |
| Офшори, в.3 · 56 | Імпорт ДФМ | 8 | 7 | −1 | реалістично |
| Офшори, в.3 · 57 | entry_hash ДФМ | 1 | 1,5 | +0,5 | реалістично |
| Офшори, в.3 · 58 | CRUD ДФМ | 5 | 4 | −1 | реалістично |
| Офшори, в.3 · 59 | Ресурс РНБО | 4 | 4 | 0 | реалістично |
| Офшори, в.3 · 60 | Ручна правка РНБО | 4 | 4 | 0 | реалістично |
| Офшори, в.3 · 61 | Застосування версії + подія | 8 | 6 | −2 | Для ТОТ у цьому варіанті файлу немає; конфлікт версій і поріг вилучення потрібні лише для РНБО і ДФМ. |
| Офшори, в.3 · 62 | Офшори CRUD + сидер | 4 | 5 | +1 | Немає версії й події для повторної перевірки клієнтів після оновлення офшорів, хоча приклад 17 у вимогах її вимагає. |
| Офшори, в.3 · 63 | Інфраструктура великих файлів | 1 | 2 | +1 | Ліміти зараз 20 МБ у PHP, 12 МБ у Livewire, 128 МБ пам'яті воркера — підняти й читати КАТОТТГ частинами. |
| Офшори, в.3 · 64 | Імпорт КАТОТТГ | 10 | 6 | −4 | У кожному рядку кодифікатора КАТОТТГ уже є коди всіх рівнів — денормалізувати майже нічого. |
| Офшори, в.3 · 65 | Завантаження КАТОТТГ в адмінці | 3 | 3 | 0 | реалістично |
| Офшори, в.3 · 66 | Інтеграція ТОТ у клієнта | 7,5 | 4,5 | −3 | Пошук населеного пункту в переліку і перерахунок для клієнтів дублюють рядок 6 «Логіки співставлення». |
| Офшори, в.3 · 68 | Unit-тести | 5 | 6 | +1 | трохи занижено ~1 |
| Офшори, в.3 · немає | Пошук населеного пункту в переліку ТОТ: дубль з «Логікою співставлення» зняли в обох аркушах, повертаємо в один | 0 | 3 | +3 | Пропущено в оцінці |
| Офшори, в.3 · немає | Стартове наповнення переліку ТОТ: масовий вибір громади або разовий конвертер (інакше тисячі рядків вручну) | 0 | 8 | +8 | Пропущено в оцінці |
| Разом | 102,5 | 101 | −1,5 |
Таблиця 3 · прогноз з AI
Автор пише код разом із Claude: трейлер Co-Authored-By: Claude є в 534 з 575 його комітів, від другого коміту в листопаді 2025. Ми взяли 8 вже зроблених на цьому проєкті задач, схожих на нові, і порівняли, скільки він реально на них витратив, з тим, скільки оцінка закладає на таку саму роботу. У середньому оцінка вдвічі більша за факт: K ≈ 1,9–2,2.
| Аркуш | Він заклав (без AI) | Ми кажемо (без AI) | Прогноз з AI | Від його оцінки | Чому такий K |
|---|---|---|---|---|---|
| Ризиковість | 576,5 | 566 | 260–385 | 45–67 % | K 1,5–2,2: великі блоки логіки й екранів; на аналогах запас 2,3–3,1×, але нові вимоги складніші, тому K взято нижче |
| Логіка співставлення | 114 | 101 | 75–115 | 66–101 % | K 1,0–1,5: дрібні інтеграційні рядки; на аналогах запас 0,8–1,75× |
| Офшори+Території, варіант 1 | 170,5 | 142,5 | 115–170 | 67–100 % | K 1,0–1,5: імпорти й довідники; на аналогах запас 0,8–1,75× |
| Офшори+Території, варіант 2 | 135,5 | 118 | 90–135 | 66–100 % | K 1,0–1,5: те саме |
| Офшори+Території, варіант 3 | 102,5 | 101 | 70–100 | 68–98 % | K 1,0–1,5: те саме |
Це не облік часу: години на минулі задачі відновлено з часу комітів, похибка велика, довіра низька–середня. Але напрям однозначний: у великих блоках «Ризиковості» запас відносно його реального темпу 2–3×, а в рядках переліків і звірки його майже немає.
Запас фактично покриває переробки: 37 % його годин в історії — виправлення, а за п'ять тижнів вимоги змінились так, що оцінка виросла з 443 до 568,5 год. Якщо планувати за темпом з AI, запас на зміни (+20–30 %) треба закласти явно.
Таблиця 4 · оптимізація «Ризиковості» з AI
Пройдіть з Віталієм кожен рядок: у правому стовпці — питання, яке варто йому поставити. Якщо він обґрунтує свою цифру — лишайте її.
| Рядок | Що це за робота | Віталій заклав | З AI | Різниця | Що спитати у Віталія |
|---|---|---|---|---|---|
| Інфраструктура | |||||
| 4 | Окремий обробник для перевірок клієнтів | 2 | 3 | +1 | Чи врахував запуск обробника і на тестовому, і на робочому сервері? |
| 5 | Автоматичний щоденний запуск задач (позначки про прострочений плановий перегляд і PEP) | 2 | 2 | 0 | Це те саме налаштування, що й у рядку 4. 2 год вистачить? |
| 6 | Сповіщення працівникам в адмінці | 4 | 2 | −2 | Сповіщення в адмінці — готова функція. Чому 4 год, а не 2? |
| Інфраструктура, разом | 8 | 7 | −1 | ||
| Додаток 1 — автоматичний розрахунок | |||||
| 10 | Структура даних для перевірок | 16 | 9 | −7 | Це однотипні таблиці. З AI 9 год вистачить? |
| 11 | Усі 106 факторів з Додатка 1 із системними кодами, балами й статусами тригерів | 8 | 4 | −4 | Це перенесення 106 факторів з Додатка 1. Чому 8 год? |
| 12 | Запуск перевірки клієнта по всіх джерелах | 22 | 15,5 | −6,5 | Обсяг ок. З AI 15–16 год реально? |
| 13 | Переналаштування запитів до YouScore під нові вимоги до даних (розділ 6 змін від 06.10) | 28 | 17 | −11 | 8 з 13 запитів до YouScore вже працюють. Чому 28 год на решту 5? |
| 14 | Автоматична звірка анкети з даними Дії та YouScore (ПІБ, документ, адреса) | 14 | 11 | −3 | Чи врахував, що дані з Дії зараз ніде окремо не зберігаються? |
| 15 | Автоматичне визначення решти факторів за відповідями YouScore | 45,5 | 45 | −0,5 | 31 фактор з YouScore, відповіді не такі, як у документації. 45 год точно вистачить? |
| 16 | Розрахунок балів і рівня ризику за Шкалою оцінки | 23 | 17 | −6 | Правила розрахунку чітко описані в документах. З AI 17 год реально? |
| 17 | Перевірка стартує сама після підпису анкети клієнтом | 7 | 4,5 | −2,5 | Це дрібна обв'язка. Чому 7 год? |
| 18 | Для факторів 4.2 і 7.3 дані в YouScore більше не оновлюються | 1 | 0,5 | −0,5 | Ок. |
| немає | Додаток 1: тестові відповіді YouScore для перевірки системи, розпізнавання неоднозначних збігів, автоматичні «нульові»… | 0 | 8,5 | +8,5 | Як тестувальник перевірить знайдені ризики без тестових відповідей YouScore? Додаємо? |
| Додаток 1 — автоматичний розрахунок, разом | 164,5 | 132 | −32,5 | ||
| Ручний перегляд | |||||
| 22 | Головний екран працівника по клієнту | 32 | 16 | −16 | Основа екрана вже є (вкладка YouScore). Чому 32 год? |
| 23 | Працівник підтверджує, спростовує, змінює або додає фактор зі списку з підставою; бал і рівень ризику перераховуються а… | 21 | 14 | −7 | Це однотипні кнопки дій. З AI 14 год реально? |
| 24 | Хто, коли і що змінив у факторах, з підставою | 9 | 3,5 | −5,5 | Показ журналу вже в рядку 22. Що тут ще на 9 год? |
| 25 | Поки клієнт на ручній перевірці, анкету не можна підписати, а клієнта — верифікувати; працівник бачить причину | 12 | 6,5 | −5,5 | Статус «Ручна перевірка» вже в рядках 10 і 16. Що тут ще на 12 год? |
| 26 | Щоб швидко знайти всіх клієнтів, які чекають ручної перевірки | 5 | 2 | −3 | Одна колонка й фільтр. Чому 5 год? |
| 27 | Якщо в Дії немає адреси, рахунок не відкривається, поки працівник не отримає й не перевірить документи про місце прожив… | 7 | 5 | −2 | Запит документів у клієнта вже є. Що тут нове на 7 год? |
| 28 | При повторній перевірці працівник бачить свої попередні рішення (наприклад, «раніше спростовано»), а фактори, яких біль… | 18 | 12,5 | −5,5 | Як система зрозуміє, що фактор той самий, що й минулого разу? Годин вистачить? |
| 29 | Клієнт бачить у кабінеті, що триває додаткова перевірка, без її причин | 5 | 1,5 | −3,5 | Кабінет уже показує «очікуйте». Чому 5 год на текст? |
| немає | Ручний перегляд: працівник сам встановлює фінальний рівень, дія «Завершити перегляд», прибрати наявний довільний бал 0–… | 0 | 10 | +10 | Шкала вимагає ручний фінальний рівень і кнопку «Завершити перегляд». Де це в оцінці? |
| Ручний перегляд, разом | 109 | 71 | −38 | ||
| Додаток 2 — Висновок | |||||
| 33 | Висновок має номер (А-33/1) і версії (А-33/2 після доопрацювання), статуси й наскрізну нумерацію | 12 | 5 | −7 | Номер і версії Висновку. Чому 12 год, а не 8–9? |
| 34 | Висновок формується одразу після перевірки, розділи 1–8 заповнюються з результатів автоматично | 21 | 15,5 | −5,5 | Обсяг ок. З AI 15 год реально? |
| 35 | Система сама пропонує рекомендацію, заходи й необхідність рішення Директора та обирає один із 5 шаблонів | 14 | 8,5 | −5,5 | Тексти шаблонів — готова таблиця з документа клієнта. Чому 14 год? |
| 36 | Працівник переглядає Висновок і редагує дозволені розділи прямо в адмінці | 30 | 17,5 | −12,5 | Чи врахував редагування розділів 1 і 6? І з AI 17–18 год реально? |
| 37 | Висновок у PDF за формою Додатка 2 від 06.10 — для засвідчення, зберігання і надання перевіряючому | 16 | 9 | −7 | PDF система вже генерує (анкета, звіт ризику). З AI 9 год реально? |
| 38 | Працівник засвідчує Висновок кнопкою або КЕП; засвідчену версію змінити вже не можна | 14 | 8,5 | −5,5 | Вибір підписанта й журнал є ще в рядках 67 і 69. Чи не пораховано двічі? |
| 39 | Коли Директор повертає Висновок на доопрацювання, створюється нова версія з повторною перевіркою; засвідчена версія лиш… | 12 | 7 | −5 | Повторна перевірка вже в рядку 12. Що тут на 12 год? |
| 40 | При середньому ризику лише за сумою балів рахунок відкривається одразу, а працівник підтверджує Висновок пізніше | 7 | 4 | −3 | Один статус. Чому 7 год? |
| 41 | Список усіх Висновків, що чекають підтвердження, і підтвердження тих, що без змін, однією дією | 7 | 2 | −5 | Кнопку «підтвердити всі» клієнт не просив. Прибираємо, лишаємо лише фільтр? |
| Додаток 2 — Висновок, разом | 133 | 77 | −56 | ||
| Плановий перегляд | |||||
| 45 | Строк наступного планового перегляду клієнта | 8 | 4 | −4 | Дата перегляду — просте обчислення. Чому 8 год? |
| 46 | Якщо клієнт понад рік не звертався, при наступному зверненні (анкета, довідка / виписка, купівля / продаж ЦП) система п… | 10 | 5 | −5 | Купівлю й продаж клієнт у кабінеті не замовляє. Що тоді тут робимо на 10 год? |
| 47 | Працівник запускає повторну перевірку з вибором причини, і причина потрапляє у Висновок | 5 | 2 | −3 | Вікно вибору причини. Чому 5 год? |
| 48 | Перевірка клієнтів, імпортованих з Депенду | 12 | 16 | +4 | Чи врахував: у файлі немає паспортів і дат народження, а це ~57 тис. платних запитів до YouScore? |
| 49 | Щодня система позначає клієнтів з простроченим плановим переглядом і тих, у кого минув рік після завершення статусу PEP… | 3,5 | 2,5 | −1 | Ок. |
| 50 | Працівник бачить, у кого прострочено або наближається плановий перегляд, і може відфільтрувати таких клієнтів | 10 | 3,5 | −6,5 | Картку «≤ 30 днів» клієнт не просив. Прибираємо? |
| Плановий перегляд, разом | 48,5 | 33 | −15,5 | ||
| Додаток 3 — рішення Директора | |||||
| 54 | Рішення Директора має номер, прив'язаний до Висновку; підписане рішення змінити не можна | 7 | 4 | −3 | Обсяг ок. З AI 4 год? |
| 55 | Рішення створюється автоматично, щойно засвідчено Висновок, з усіма підставами з нього | 7 | 4 | −3 | Чому 7 год на автоматичне створення рішення? |
| 56 | 8 типових текстів з документа «Обґрунтування рішень Директора»; обґрунтування формується з них автоматично з даними клі… | 10 | 5 | −5 | 8 готових текстів з документа клієнта. Чому 10 год? |
| 57 | Директор обирає одне рішення; дозвіл заборонено при неприйнятно високому ризику | 17 | 9,5 | −7,5 | Екран за зразком. З AI 9–10 год реально? |
| 58 | Рішення Директора в PDF за формою Додатка 3 | 7 | 3,5 | −3,5 | Після PDF Висновку це майже копія. Чому 7 год? |
| 59 | Директор підписує рішення своїм КЕП; після підпису система сама виконує наслідки рішення і сповіщає працівників | 10 | 10 | 0 | Чи врахував перевірку наслідків, коли рішення блокує рахунок? |
| 60 | Після дозволу Директора анкета підписується від компанії автоматично, і відкриття рахунку продовжується без ручного кро… | 6,5 | 5,5 | −1 | Підпис від компанії вже є. Ок. |
| 61 | Якщо рішення Директора не потрібне (низький або середній ризик лише за сумою), анкета підписується автоматично — клієнт… | 5 | 3,5 | −1,5 | Ок, але залежить від того, як клієнт вирішить відкривати рахунок. |
| Додаток 3 — рішення Директора, разом | 69,5 | 45 | −24,5 | ||
| КЕП-підпис | |||||
| 65 | Висновок і рішення підписує конкретна особа своїм КЕП (відповідальна працівниця Д.Б | 2,5 | 1,5 | −1 | Ок. |
| 66 | Наявний підпис документів КЕП компанії переробляється так, щоб ним можна було підписувати й особистими ключами | 9 | 4,5 | −4,5 | Підпис будь-яким ключем уже є. Чому 9 год на переробку? |
| 67 | Підпис документа особистим КЕП і журнал усіх спроб підпису, зокрема невдалих | 10 | 6,5 | −3,5 | Журнал спроб частково вже в рядку 38. Чому 10 год? |
| 68 | Ключ завантажується лише на момент підпису й одразу видаляється | 10 | 8 | −2 | Ок, з ключами AI мало допоможе. |
| 69 | Одне вікно підпису для Висновку й рішення Директора | 10 | 4,5 | −5,5 | Вибір підписанта вже в рядку 38. Чому 10 год? |
| 70 | Перевірка підпису на тестовому ключі та на реальних ключах підписантів перед запуском | 2,5 | 6,5 | +4 | 2,5 год на перевірку з обома підписантами на їхніх ключах — вистачить? |
| немає | КЕП: налаштування бібліотеки підпису під АЦСК особистих ключів підписантів | 0 | 4 | +4 | Ключі підписантів від якого АЦСК? Якщо не від того, під який налаштована система, — додаємо налаштування? |
| КЕП-підпис, разом | 44 | 35,5 | −8,5 | ||
| Ризиковість, разом | 576,5 | 400,5 | −176 | ||
Для кожного рядка беремо обсяг без AI, ділимо на прискорення для типу роботи і множимо на 1,26 — час поза Claude (розібратися в задачі, перевірити результат, дзвінки). Прискорення взято з уже зроблених на цьому проєкті схожих задач, коефіцієнт 1,26 — з логів Віталія за вересень.
| Тип роботи | Віталій заклав | Обсяг без AI | Прискорення | З AI | Підстава |
|---|---|---|---|---|---|
| екрани, PDF, типовий код | 213,5 | 190,5 | ×2,3 | 105,5 | картка клієнта K 2,3; PDF-шаблони K 3,1 |
| бізнес-логіка і процеси | 225,5 | 238,5 | ×1,8 | 167 | погодження змін даних K 2,5; YouScore і розрахунок ризику K 3,1, знижено через складність нових правил |
| зовнішні інтеграції | 131 | 125 | ×1,4 | 112,5 | КЕП компанії K 2,0; імпорт, ТОТ, Укрпошта K 0,8–1,75 |
| інфраструктура і ручні перевірки | 6,5 | 12 | ×1 | 15,5 | AI не прискорює налаштування оточення і перевірку на реальних ключах |
Як рахували
Кожен рядок колонки Development перевірено проти вимог клієнта від 06.10.2026 і коду платформи: що вже зроблено і перевикористовується, що нове, що дублюється з іншим рядком. Для кожного рядка — оптимістична, найімовірніша і песимістична оцінка під профіль «middle без AI». Підсумки пораховано скриптом із рядків, без ручних округлень.
Аналоги з історії git: інтеграція YouScore і старий розрахунок ризику, картка клієнта в адмінці, PDF-шаблони, КЕП-підпис компанії, погодження змін даних, імпорт клієнтів, позначка окупованих територій, визначення індексу через Укрпошту. Сумарно оцінка закладає на такий обсяг 244 год, а фактично пішло ≈ 108.
Лише робота розробника. QA, керування проєктом, приймання клієнтом і відкриті питання до клієнта в цій версії звіту не розглядаються.