The Jerusalem PostIsrael kills senior Hamas terrorist behind series of deadly 2000s West Bank attacksCNN TürkHusiler stratejik Muha liman kentini ele geçirdiESPN DeportesManchester United se adelanta al Sabah en su regreso a la ChampionsPunchPolice seek more vehicles, equipment to fight crime in KwaraESPNPassan's early MLB free agency intelוואלהגבר כבן 50 נפצע באירוע אלימות בטייבה - מצבו אנושRTP Desporto18h30 A forma de Prestianni e o “efeito” PalhinhaVarietyTom Hardy Reunites With Helen Mirren at ‘Mobland’ Premiere as Guy Ritchie Says: ‘It’s Been Nothing Other Than a Pleasure to Work With These Monsters of Creativity’SözcüEv sahibini ve eşini öldüren kiracının evinden cephanelik çıktıSky TG24Venezia 83, Be Brave: il docufilm “full AI” su Renzo Rosso
The Daily Newsstand · Free, Always
Thursday, September 10, 2026

Второе мнение: как я вайбкодил тренажёр для родов, готовясь стать отцом

Translate

Когда жена была на седьмом месяце, мы пошли на курс подготовки к родам. Никакой готовой методологии там прямо не декларировали — но, слушая лекции, я заметил паттерн в том, как лектор разбирал кейсы. По сути, каждый разбор сводился к одной и той же схеме: что предлагает врач → в каком состоянии мать и ребёнок → какие последствия у отказа или откладывания вмешательства. По каждой комбинации этих факторов лектор предлагал то или иное действие.

Мне стало интересно, откуда растёт эта схема, и я сделал небольшой деск-ресерч. Оказалось, что это не изобретение конкретного лектора, а отражение метода ПРАН и в целом международных стандартов информированного согласия в родах:

- Польза — зачем это именно мне сейчас?

- Риски — какие риски у вмешательства?

- Альтернатива — есть ли другой способ?

- Ничего — что будет, если подождать?

Дальше сработала чисто инженерная деформация: я решил систематизировать эту логику в виде графа — просто чтобы разложить по полочкам, какая комбинация «предложение врача + состояние + риск ожидания» к какому действию ведёт. Из этого графа родилась идея справочника.

А трансформация справочника в тренажёр случилась благодаря жене — она заметила, что кейсы по структуре один в один похожи на билеты на экзамене по вождению: ситуация → варианты действий → разбор, почему один вариант верный, а другой нет. Так родилась идея тренажёра: не просто справочная информация, а симулятор, где надо принять решение и получить разбор.

Я «обучил» его на открытых источниках (клинические протоколы, международные гайдлайны) и материалах курса. (за доступ и разрешение на транскрипцию отдельное спасибо Кристине) Так за несколько вечеров вырос Second Opinion— мобильное веб-приложение, полностью навайбкоженное в Claude Code.

Что получилось

Три инструмента, которые открываются в браузере:

1. Справочник (akusher_prod_v5.html) — тот самый граф в интерактивном виде, на случай если нужно быстро найти что-то прямо в родах: 11 сценариев с маркерами-чеклистами, таймер безводного периода, счётчик схваток, дыхательный тренажёр, шкала нормы КТГ, словарик терминов. Входная точка каждого сценария — не симптом, а предложение врача: именно с этой фразы начинается реальная развилка в палате, так что и в приложении сценарий стартует с неё.

2. Тренажёр (trainer.html) — симулятор для подготовки до родов: 35 клинических ситуаций, где нужно решить — подождать или согласиться на вмешательство.

3. Учебник (textbook.html) — интерактивный конспект курса, 41 урок с квизами.

Важное решение, которое я принял осознанно, собирая тренажёр: сценарии сбалансированы — в 17 случаях правильный ответ «подождать», в 18 — «согласиться». Легко было бы сделать тренажёр в духе «врачи всегда что-то впаривают, отказывайся от всего» — но это ровно та установка, которая вредит в реальных родах не меньше, чем слепое доверие. Я хотел натренировать не рефлекс отказа, а рефлекс вопроса. Вот как выглядит один сценарий изнутри:

{

id: 23, topic: 'Крупный плод', title: 'Кесарево из‑за «крупного ребёнка»',

variants: [{

doctor: '“По УЗИ ребёнок крупный — около 3800 граммов. Лучше сделать кесарево.”',

facts: [

{ icon: '👶', text: 'Оценка веса по УЗИ: ~3800 г (погрешность ±500 г)' },

{ icon: '🤰', text: 'Таз нормальных размеров, нет диабета' },

{ icon: '💓', text: 'КТГ в норме' }

],

correct: 'wait',

feedback: {

wait: { correct: true, text: 'Оценка веса по УЗИ имеет погрешность ±500 г. Кесарево по весу обсуждается при >4500 г.' },

act: { correct: false, text: 'УЗИ‑оценка неточна. Нет диабета, таз нормальный — показаний нет.' }

},

pran: ['Какова точность оценки веса по УЗИ?', 'При каком весе действительно показано кесарево?']

}]

}

Этот конкретный сценарий ещё аукнется в статье — держите его в голове.

Как это вайбкодилось

Весь стек — чистые HTML/CSS/JS, без сборки и зависимостей. Можно было собать агента с RAG скажете вы, тогда вариативность и полнота ответов была бы выше, но это не лень, а осознанное требование: справочник должен открыться в браузере телефона в палате роддома без вайфая, одним двойным тапом по файлу.

Git-лог честно показывает, что это не был один вечер вдохновения, а последовательность итераций:

```

18 июня — Initial commit: add app and README

18 июня — Add interactive decision-making trainer (7 сценариев)

19 июня — Add inline glossary tooltips for medical terms

26 июня — Expand trainer to 35 balanced scenarios (17 wait / 18 act)

06 июля — Simplify decision trainer to 2 choices; add breathing, positions, CTG tools

06 июля — Reorganize UI for usability: navigation, accessibility, touch targets

06 июля — Add interactive textbook: 41-lesson course companion with quizzes

06 июля — Add local search across справочник и учебник

06 июля — Make Android app fully self-contained

```

Первый граф на 7 сценариев был совсем черновым. Дальше — тренажёр разросся до 35 кейсов, добавил глоссарий по наведению на термин, полнотекстовый поиск сразу по 13 разделам справочника и 41 уроку учебника (индекс учебника зашит прямо в страницу, чтобы работать офлайн). Все эти внедрения были результатами коридорок в перерывах на самих курсах.

Мне было важно, чтобы справочник был доступен офлайн, а навигация — нативной, а не «сайтом в браузере». Поэтому я обернул всё в Android WebView (Kotlin, minSdk 24) и настроил GitHub Actions, чтобы каждый пуш в main собирал APK и клал его в артефакты билда. Ни бэкенда, ни аналитики, ни единого байта, уходящего с телефона — все данные только в памяти браузера. Для такой темы это было принципиально.

Вайбкодинг тут раскрылся ровно так, как и должен: я не писал ни строчки JS вручную, зато провёл, наверное, вдвое больше времени, формулируя сценарии — вычитывая протоколы, сверяясь с открытыми источниками, споря с самим собой, что в кейсе правильный ответ, а что миф. Инструмент печатал код, я формулировал медицинскую и логическую суть.

Это, честно говоря, самая черновая из версий, которую можно докручивать бесконечно — но вполне жизнеспособный MVP, который мы успели опробовать не в теории.

А потом наступила ночь родов

Тренажёр — это тренажёр. Он не предсказывает, что случится именно с вами. У жены были долгие, но слабые схватки — раскрытие дошло до полного, а сила схваток не росла. Врач сначала предложил немного окситоцина — логично, стандартный первый шаг при слабости родовой деятельности. Схватки от него не участились.

Дальше выяснилось то, чего ни один из 35 сценариев тренажёра не описывает буквально: ребёнок встал неправильно. Смена позы, отдых — ничего не помогало. Ситуацию прояснило неожиданное везение: у нас на руках было МРТ таза, сделанное заранее, и по нему стало видно, что путь перекрывает копчик.

Мы задали вопросы по ПРАН — не потому что тренажёр научил именно этому диагнозу (такого сценария там просто нет), а потому что за несколько недель формулировки въелись в рефлекс: «какая польза именно сейчас», «что если подождать ещё». Ответы были однозначными: механическое препятствие, отдых уже пробовали, дальнейшее ожидание не решает проблему, а увеличивает риски. Согласились на кесарево — и не пожалели ни секунды. Ребёнок родился на 500 граммов тяжелее, чем показывало УЗИ — при таком раскладе он реально мог просто застрять в родовых путях.

Вот и та самая ирония со сценарием №23 из кода выше: там «правильный ответ» — не бояться кесарева из-за возможной ошибки УЗИ в ±500 г и не соглашаться на операцию просто «на всякий случай». В нашем случае реальность попала ровно в эту же цифру погрешности — но с другим знаком: 500 граммов оказались решающими, потому что накладывались на механическое препятствие, а не существовали сами по себе. Тренажёр не ошибся — ошибиться там было негде, это два разных сценария. Но он честно научил главному: цифра сама по себе ничего не решает, решает совокупность факторов, и вопрос всегда один и тот же — «какая польза именно сейчас для матери и ребенка».

Итог

Сын родился месяц назад. Растёт, как говорится, не по дням, а по часам — в буквальном смысле богатырь. Роды прошли не так, как мечталось на курсе (максимально естественно), но именно понимание происходящего — а не слепое согласие или слепое сопротивление — позволило нам принять решение спокойно и осознанно, а не в панике.

Репозиторий открыт: [github.com/aleksskuga/second-opinion](https://github.com/aleksskuga/second-opinion). Если у вас или ваших близких скоро роды — форкайте, дополняйте своими сценариями, собирайте свой APK. Это не медицинское устройство и не замена врачу — это просто структура для разговора с ним. Иногда эта структура приводит к выводу «ждать». А иногда — как в нашем случае — к однозначному «делать, не откладывая». Тренажёр одинаково хорошо готовит к обоим исходам, и, кажется, это единственное, что от него вообще требовалось.

View the original on Хабр

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.