Рабочее пространство Health-OS — структура проекта, открытый файл и терминал Claude Code

Два месяца назад я написал статью про Second Brain – агентную систему на базе Claude Code, которая планирует мой день, обрабатывает встречи и управляет задачами. С тех пор система обросла модулями, и один из них вырос настолько, что стал отдельным проектом.

Речь про здоровье. Я построил инфраструктуру с AI-агентами, которая помогает не утонуть в медицинских данных, когда ты одновременно ходишь к нескольким врачам, собираешь анализы за много лет и пытаешься понять, как всё это связано между собой.

Называется Health-OS. Врачей не заменяет, но помогает с ними работать.

⚕️ Дисклеймер, который я повторю ещё не раз. Ничего из описанного ниже не является медицинским советом. AI не ставит диагнозы. Health-OS инструмент для организации информации, не для принятия медицинских решений. Решения принимает врач.

Подождите, это же среда разработки?

Да. И это первое, что стоит объяснить, чтобы дальнейший текст имел смысл.

Health-OS работает в VS Code – редакторе кода. Внутри VS Code запущен Claude Code – AI-агент от Anthropic, который живёт в терминале и умеет читать файлы, писать файлы, ходить в интернет и вызывать внешние сервисы. В отличие от обычного чата с нейросетью, здесь модель имеет доступ к файловой системе и может реально что-то делать: создавать документы, обновлять JSON, запускать скрипты.

Выглядит это так: слева – дерево папок с медицинскими данными, справа – открытый файл (анализ, запись визита, что угодно), справа – терминал, где я общаюсь с Claude на естественном языке. Набираю /labs тренд гемоглобина – Claude читает файлы из папки Data/labs/, строит таблицу, показывает отклонения. Набираю /doctor подготовь к гастроэнтерологу – он собирает релевантные данные из десятка файлов и формирует чеклист.

Так выглядит рабочая среда Health-OS — VS Code + Claude Code
Так выглядит рабочая среда Health-OS — VS Code + Claude Code

Это не мобильное приложение и не веб-сервис. Это папка на компьютере, набор файлов и AI-агент, который умеет с ними работать. Звучит как инструмент для программистов, и формально так и есть. Но мне не пришлось писать код руками – структуру, команды, агентов я собирал вместе с Claude Code на естественном языке. Вайбкодинг в чистом виде. Но осмысленный!

Кто читал мою статью про Second Brain – принцип тот же. Кто не читал – дальше всё станет понятно.

Проблема

Попробуйте вспомнить свой последний визит к врачу. Не «ну, наверное, полгода назад», а конкретно: какого числа, у какого специалиста, какой был диагноз, что назначили, какие анализы сдавали до этого и какие надо сдать после.

Скорее всего, не вспомните. Я тоже не вспоминал.

У меня за годы накопились результаты анализов из разных клиник, выписки от разных врачей, назначения, которые иногда противоречат друг другу. Часть на бумаге, часть в PDF из лабораторий, часть – фотографии в телефоне. Обычная ситуация для любого, кто хотя бы раз в год ходит к врачу.

Но бардак – тут полбеды. Хуже другое :)

Каждый врач видит только свой кусок. Гематолог смотрит кровь. Эндокринолог – гормоны. Невролог – жалобы. Полную картину не видит никто из них. Она существует только у пациента в голове. А в голове – каша из обрывков рекомендаций.

Решения два:

  1. Найти терапевта, который будет координировать всех специалистов и помнить твою историю. Такие врачи есть, стоят дорого, и даже самый внимательный из них не перечитает твои анализы за 10 лет перед каждым приёмом.

  2. Или выстроить инфраструктуру самому. Не потому что я считаю себя умнее врачей. Мне просто чуть надоело каждый раз пересказывать свою медицинскую историю заново. Благо теперь это более чем реально. ЭйАй!

Что такое Health-OS

Изолированный проект, который вырос из Second Brain. Second Brain занимается задачами, встречами и работой. Health-OS – исключительно здоровьем: анализы, врачи, лекарства, метрики, настроение.

«Изолированный» – здесь ключевое слово. Медицинские данные живут отдельно от рабочих. Нет git push, никакого облака, всё на моём компьютере. С Second Brain система связана через символические ссылки, но через них проходят только агрегаты без персональных данных. Second Brain знает, что «есть открытые вопросы по гематологии», но конкретных показателей крови не видит.

На март 2026 в системе:

  • 63 файла анализов в структурированном JSON

  • 66 записей визитов к врачам

  • 145+ лабораторных маркеров с историей

  • Данные с 2001 года по сегодня

  • 13 AI-агентов разных специальностей

  • 21 skills / команды

Cтруктура папок Health-OS в VS Code
Cтруктура папок Health-OS в VS Code

Как я оцифровал свою медицинскую историю

Самая скучная часть. Без неё всё остальное бессмысленно.

Я собрал всё, что нашёл: бумажные анализы из районной поликлиники, PDF из Инвитро и Гемотеста, сканы больничных выписок, фотографии рецептов. Стопка бумаг, десятки файлов по разным папкам, скриншоты из мобильных приложений лабораторий.

Закидываю файлы в папку Inbox/, набираю одну команду или вообще пишу произвольно – активируется скилл:

/inbox

Система берёт каждый файл, определяет тип (анализ, выписка, рецепт, снимок, стоматология), парсит содержимое и складывает структурированный JSON в нужную папку. Оригинал уезжает в архив. Индексы обновляются.

Агент извлекает данные анализа, добавляет в индекс и сохраняет в историю
Агент извлекает данные анализа, добавляет в индекс и сохраняет в историю

Если файлов много – включается checkpoint. Прервалось на пятом из десяти – в следующий раз продолжит с шестого.

После оцифровки каждый анализ – JSON-файл с датой, лабораторией, типом и значениями маркеров. Можно запросить тренд любого показателя:

/labs тренд витамина Д за последние годы

Таблица с динамикой и отклонениями. За 20 секунд то, что вручную заняло бы час.

Пошел в архив, нашел анализы и построил табличку
Пошел в архив, нашел анализы и построил табличку

Архитектура

Health-OS/
├── Data/                    ← все медицинские данные
│   ├── profile.json         ← медкарта: аллергии, хронические, семейный анамнез
│   ├── labs/                ← 63 файла анализов (JSON) + PDF-оригиналы
│   ├── doctors/visits/      ← 66 визитов к врачам
│   ├── medications/         ← текущие и завершённые курсы лекарств
│   ├── dental/              ← карта зубов ISO 3950
│   ├── mental/              ← дневник настроения
│   ├── goals/               ← цели по здоровью с milestones
│   ├── hypotheses.json      ← гипотезы о причинах симптомов
│   └── costs/               ← расходы (ОМС vs платно)
│
├── Cache/                   ← контекст между сессиями
│   ├── active-context.md    ← что было в прошлый раз
│   └── sessions/            ← логи сессий
│
├── Inbox/                   ← сюда кладу документы для обработки
├── Archive/                 ← обработанные оригиналы
├── Dashboard/               ← Next.js дашборд (read-only)
│
├── .claude/
│   ├── skills/              ← 21 команда
│   ├── agents/              ← 13 специалистов
│   └── hooks/               ← автосохранение сессий
│
├── CLAUDE.md                ← инструкции для AI
└── MEMORY.md                ← долгосрочная память

Три правила, которые я себе установил:

  1. Данные на устройстве. Никакого облака. При запросах данные уходят в модель – это неизбежно. Но файлы, история, архив – всё моё, всё локально.

  2. AI не ставит диагнозы. Это захардкожено в CLAUDE.md. Система не может написать «у вас диагноз X». Только «возможно, стоит обратить внимание на...». Инструмент помогает думать, а не думает за тебя.

  3. Всё связано. Каждый анализ, визит, рецепт – оцифрован и индексирован. Анализ привязан к визиту, визит – к гипотезе, гипотеза – к цели. Данные не лежат мёртвым грузом.

Команды и скиллы

Начало и конец сессии

/day загружает контекст: что было в прошлый раз, какие задачи открыты, какие алерты сработали. Алерты – это, например, курс лекарств заканчивается через три дня. Или пропущен фоллоу-ап визит. Или в Inbox лежат необработанные документы.

Скилл /day в действии — чувствительные медданные скрыл
Скилл /day в действии — чувствительные медданные скрыл

/wrap-up фиксирует сессию: лог, обновление контекста, локальный git commit. Забыл сделать wrap-up – при следующем запуске система напомнит.

Работа с анализами

/labs – расшифровка с выделением отклонений, тренды по датам. При добавлении нового анализа система автоматически проверяет, как результаты влияют на текущие гипотезы (про гипотезы ниже).

/labs расшифруй последний

Таблица: маркер, значение, норма, отклонение, тренд по сравнению с предыдущим разом. Если что-то выбивается – система обращает внимание и предлагает, к какому специалисту стоит обратиться.

Подготовка к визиту

Здесь стоит остановиться подробнее.

Как обычно люди ходят к врачу? Записался, пришёл, врач спрашивает «на что жалуетесь?», ты мнёшься и пытаешься вспомнить. Забываешь половину вопросов, которые хотел задать. Забываешь упомянуть, что полгода назад другой врач назначил что-то, что может быть связано. Выходишь и думаешь: «блин, надо было спросить про...»

У меня теперь перед визитом так:

/doctor подготовь к эндокринологу

Система делает несколько вещей.

Собирает все анализы по эндокринологии, которые есть в базе – гормоны щитовидной железы, анти-ТПО, кортизол. Показывает тренды: вот тут было нормально, вот тут начало расти, вот тут пик.

Смотрит текущие гипотезы. Если какая-то из них связана с эндокринологией – формирует конкретные вопросы врачу. Не общие «спросите про гормоны», а прицельные: стоит ли обсудить конкретный маркер, нужен ли контрольный анализ через N месяцев.

Проверяет, что назначал предыдущий эндокринолог. Проверяет текущие лекарства на предмет взаимодействий с тем, что могут назначить.

Собирает чеклист: какие результаты анализов взять с собой, какие документы могут понадобиться.

Агент собирает данные к приему и формирует MD-документ для печати
Агент собирает данные к приему и формирует MD-документ для печати

На выходе я иду к врачу подготовленный. С конкретными цифрами, трендами и вопросами. Врачу проще – он видит динамику. Мне проще – я не забываю важное. Приём продуктивнее.

После визита

/doctor был у эндокринолога

Надиктовываю или вписываю, что сказал врач: диагноз, назначения, рекомендации, стоимость визита. Дальше система сама раскладывает по полочкам: запись визита, обновление лекарств (если что-то назначили), пересмотр гипотез (врач что-то подтвердил или опроверг), follow-up задача в Todoist, расходы.

Как идея еще: спрашивать у врача, можно ли записать прием, а потом его просто расшифровать. Тоже тема.

Через полгода, когда я пойду к этому же врачу повторно, система вытащит запись и напомнит, о чём мы говорили в прошлый раз.

Поиск врача и лаборатории

/find-doctor – ищет специалиста. Два пути всегда: бесплатный через ОМС и платный с рейтингами и ценами. Для платного считает скоринг на основе рейтинга, отзывов, цены и расстояния. Прям идет в интернет и смотрит. С учетом моей локации.

/lab-order – где сдать нужный анализ. Сравнивает цены Гемотеста, Инвитро и Helix. Проверяет на официальных сайтах, а не на агрегаторах. Если комбо-панель дешевле набора отдельных анализов – предложит.

Лекарства, зубы, настроение

/meds – текущие курсы, дозировки, расписание. За три дня до конца курса – алерт. Проверка взаимодействий между препаратами.

/dental – карта 32 зубов по ISO 3950. Статус каждого: здоров, пломба, коронка, имплант. Процедуры с датами и стоимостью.

/mental – дневник настроения: mood, energy, stress, качество сна. Со временем система начинает видеть паттерны. Например, связь между качеством сна по данным Whoop и уровнем энергии через пару дней.

Гипотезы

Часть системы, которая мне нравится больше всего.

В файле hypotheses.json лежат структурированные гипотезы о причинах симптомов. Конкретные предположения с доказательной базой.

У каждой гипотезы есть статус (strong, moderate, weak, refuted, confirmed), список доказательств «за» и «против», конкретные следующие шаги.

Допустим, есть симптом, у которого может быть пять причин. Каждая – отдельная гипотеза. Одна подкреплена анализами. Другую врач считает маловероятной. Третья пока не проверена. Всё записано, ничего не теряется.

При добавлении нового анализа система проверяет, как результаты влияют на каждую гипотезу. Этот показатель усилил одну, ослабил другую. Врач на приёме говорит «нет, это не ваш случай» – статус меняется на refuted.

По сути, это ведение медицинского расследования. Только вместо папки с бумагами – JSON, который можно анализировать и сопоставлять с новыми данными.

Агенты

В Claude Code есть механизм агентов – изолированных экземпляров с собственными инструкциями и ограниченным набором инструментов. В Health-OS каждый агент – AI-специалист определённого профиля.

13 штук:

Агент

Специальность

На что смотрит

hematologist

Гематология

Гемоглобин, лейкоциты, тромбоциты

endocrinologist

Эндокринология

Щитовидка, гормоны, надпочечники

neurologist

Неврология

Внутричерепное давление, HRV, сон

cardiologist

Кардиология

Давление, пульс, липиды

gastroenterologist

Гастроэнтерология

H. pylori, ферменты печени, CRP

urologist

Урология

Почечная функция, ОАМ

dermatologist

Дерматология

Кожные проблемы, аутоиммунные маркеры

ent

ЛОР

Пазухи, лимфоузлы, перегородка

orthopedist

Ортопедия

Позвоночник, биомеханика

psychiatrist

Психиатрия

Настроение, стресс, сон

dentist

Стоматология

Зубы, пародонт

ophthalmologist

Офтальмология

Зрение, глазное давление

health-coach

Коучинг

Whoop, цели, аномалии

Все работают в read-only. Могут читать данные, но не могут ничего менять. Аналитик не должен иметь доступ к редактированию.

Одиночная консультация:

/doctor-consult гемато

Агент-гематолог получает все данные и возвращает структурированный ответ: severity, находки, флаги для других специалистов («стоит проверить щитовидку»), рекомендации, пробелы в данных («не хватает ферритина для полной оценки»).

Консилиум

/consilium [описание проблемы]

Система определяет, какие специалисты нужны. Для общих вопросов типа усталости подберёт гематолога, эндокринолога, невролога, психиатра, ЛОРа. Для головной боли – невролога, ортопеда, кардиолога, офтальмолога.

Загружает все данные. Параллельно запускает от 5 до 12 агентов. Каждый смотрит на одни и те же данные через свою специальность.

Потом синтез. Находки сортируются: что срочно, что может подождать. Флаги сопоставляются: гематолог написал «проверить щитовидку» – смотрим, что на это ответил эндокринолог. Если рекомендации противоречат друг другу – конфликт выделяется отдельно. На выходе – единый план с приоритетами.

Запускаются несколько агентов параллельно и каждый выносит гипотезы
Запускаются несколько агентов параллельно и каждый выносит гипотезы

Зачем мне это

Я не врач. Медицинского образования нет. Консилиум – не замена визиту к специалисту.

Но вот ситуация, которая повторяется регулярно: один врач говорит одно, другой – другое, ты посередине. Или приходишь к специалисту и не знаешь, что спросить. Или получаешь анализы и не понимаешь, к кому с ними идти первому.

Я и раньше спрашивал языковые модели – просто в чате. Описывал симптомы, показывал анализы. Разница в том, что теперь мне не нужно каждый раз набирать контекст заново. Контекст уже есть: 63 файла анализов, 66 визитов, гипотезы, лекарства.

Консилиум не отменяет визит к гематологу. Он помогает туда прийти не с «у меня что-то кровь плохая», а с конкретными вопросами.

Дашборд

Next.js-приложение для визуализации. Read-only – ничего не меняет, только читает и показывает. Ну и запускается локально.

12 страниц: обзор с алертами, анализы с графиками трендов, метрики тела, хронология визитов, лекарства, SVG-карта зубов, графики настроения, прогресс по целям, данные Whoop, профиль, задачи, трекшен.

Главная страница дашборда — он визуализирует данные в MD и JSON-файлах
Главная страница дашборда — он визуализирует данные в MD и JSON-файлах

Память между сессиями

Claude Code не помнит, что было в прошлой сессии. Поэтому у Health-OS три уровня памяти.

MEMORY.md – долгосрочная. Активные треды, открытые вопросы, ключевые находки. Обновляется, когда что-то меняется по-настоящему: новый диагноз, новый курс лечения.

active-context.md – горячий контекст. Что сделано, текущие задачи, блокеры. Перезаписывается каждый /wrap-up.

checkpoint.yml – точка восстановления. Обработка 10 файлов прервалась на середине — продолжит с того места.

Два хука работают автоматически. При остановке Claude Code – session-save.sh сохраняет метаданные. При запуске – session-restore.sh проверяет, не осталось ли незавершённых дел, и предупреждает, если контекст давно не обновлялся.

Типичные сценарии

  1. Сдал анализы. PDF в Inbox → /inbox (парсинг) → /labs расшифруй (отклонения, тренды, гипотезы) → /wrap-up.

  2. Иду к врачу. /doctor подготовь к [специальность] → вопросы, анализы, чеклист → визит → /doctor был у [специальность] → система раскладывает результат: лекарства, гипотезы, расходы, follow-up.

  3. Непонятная ситуация. /consilium [проблема] → несколько агентов параллельно → отчёт с приоритетами → иду к тому, кого отчёт выделил.

Конец недели. /traction → снимок прогресса, расходы, блокеры, что делать дальше.

Что дальше

Система растёт каждую неделю. Из ближайшего – хочу добавить генетический профиль как ещё один слой данных для агентов. Когда у тебя есть генетические предрасположенности, агенты могут учитывать их при анализе – это другой уровень контекста.

В планах упаковать Health-OS в публичный репозиторий и выложить в открытый доступ. Без моих медицинских данных, разумеется, но со всей структурой, командами, агентами и инструкциями. Чтобы можно было склонировать, заполнить своими данными и начать пользоваться. Будет понятно по отклику на эту статью. Дайте шума!


У меня есть Telegram-канал, где я рассказываю про AI-автоматизацию рутины и эффективный вайбкодинг. Там же скоро планирую выложить полный репозиторий. Заходите: ссылка


Мне интересно, что думают врачи. Если среди читателей есть практикующие специалисты — напишите в комментариях, как вы относитесь к тому, что пациент приходит на приём с такой подготовкой. Помогает? Мешает? Раздражает? Мне правда важно это понимать, потому что система должна помогать обеим сторонам, а не только мне.

И второй вопрос — для тех, кто не врач. Вы ведёте свою медицинскую историю хоть в каком-то виде? Или тоже каждый раз пересказываете всё заново?


Всё описанное — инструмент для организации информации, не руководство к самолечению. Обращайтесь к врачам.