Пролог

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

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

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

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

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

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

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

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

Я «обучил» его на открытых источниках (клинические протоколы, международные гайдлайны) и материалах курса. (за доступ и разрешение на транскрипцию отдельное спасибо Кристине) Так за несколько вечеров вырос 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 граммов оказались решающими, потому что накладывались на механическое препятствие, а не существовали сами по себе. Тренажёр не ошибся — ошибиться там было негде, это два разных сценария. Но он честно научил главному: цифра сама по себе ничего не решает, решает совокупность факторов, и вопрос всегда один и тот же — «какая польза именно сейчас для матери и ребенка».

Итог

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

Репозиторий открыт. Если у вас или ваших близких скоро роды — форкайте, дополняйте своими сценариями, собирайте свой APK. Это не медицинское устройство и не замена врачу — это просто структура для разговора с ним. Иногда эта структура приводит к выводу «ждать». А иногда — как в нашем случае — к однозначному «делать, не откладывая». Тренажёр одинаково хорошо готовит к обоим исходам, и, кажется, это единственное, что от него вообще требовалось.