Wiki — связный слой медкарты
SkillDocs & knowledgeWiki layer for the medical record: entity pages with links, contradiction, orphan and broken-link detection, graph. Triggers: «wiki», «вики», «граф связей», «собери вики», «проверь вики», «противоречия», «что не связано»
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Wiki — связный слой медкарты skill
What this skill tells your AI
The instructions your AI receives, as published by alxyrgin/health-os in .claude/skills/wiki/SKILL.md and read by ahel’s review.
Профиль. До чтения и записи определи активный профиль по
.claude/shared/profile-resolution.md. Личные страницы живут вData/profiles/<активный>/wiki/, общие — вData/wiki/.
Назначение
JSON-файлы Data/ хранят значения: маркеры, даты, дозировки. Они точны,
но между собой не связаны. Wiki хранит связи и суждения: почему этот
маркер важен, какая гипотеза его объясняет, кто из врачей что сказал и где
два утверждения противоречат друг другу.
Метод: LLM Wiki Андрея Карпаты, адаптированный под медкарту. Ключевое отличие от исходного метода — числа не переносятся в markdown. У Карпаты источники неструктурированы, поэтому markdown-страница есть шаг вперёд. Здесь значения уже лежат в JSON, на них построены тренды, графики и проверка целостности. Страница ссылается на запись, а не копирует её.
Копия неизбежно разъезжается с оригиналом. Это ровно та ошибка, которую система уже проходила с промптами специалистов, где хранилась копия медкарты: она устаревала и заставляла агента утверждать опровергнутое.
Типы страниц
Личные — Data/profiles/<id>/wiki/
| Каталог | Что описывает |
|---|---|
condition/ | Состояние или диагноз: течение, чем подтверждено, что влияет |
hypothesis/ | Гипотеза о первопричине: за, против, чем проверить |
symptom/ | Жалоба: когда началась, с чем совпадает, что усиливает |
doctor/ | Врач: зона, визиты, назначения, что осталось невыполненным |
synthesis/ | Разбор: отчёт консилиума, сопоставление, вывод по теме |
Общие — Data/wiki/
| Каталог | Что описывает |
|---|---|
source/ | Источник литературы: руководство, исследование, с URL |
marker/ | Справка по маркеру: что означает, чем регулируется, что искажает |
Общие не привязаны к человеку: литература и физиология маркера одинаковы для всех. Исследование, найденное для одного члена семьи, работает на всех.
Формат страницы
---
type: condition
title: Железодефицит без анемии
slug: iron-deficiency-no-anemia
status: suspected # active · suspected · resolved · refuted
created: 2026-03-20
updated: 2026-08-06
sources: # пути к записям-первоисточникам, БЕЗ копирования значений
- labs/2026-03-15_cbc.json
- doctors/visits/2026-03-20_hematologist.md
---
Ферритин снижается третий замер подряд при нормальном гемоглобине —
см. [[marker/ferritin]]. Клинически проявляется как [[symptom/fatigue]].
Конкурирующее объяснение — [[hypothesis/thyroid-subclinical]]; различает их
трансферрин и растворимые рецепторы.
Гематолог на приёме склонился к дефициту — [[doctor/hematologist]].
Основание: [[source/bsg-iron-deficiency]].
Правила формата:
- Числовые значения на страницу не переносятся. Пишется «снижается третий
замер подряд», а не «23 → 19 → 16». Значения читаются из
sources[] sources[]— пути относительно корня профиля (для общих страниц — относительноData/)- Связи —
[[тип/slug]]в теле. Обратные ссылки не хранятся: они вычисляются, и хранимая копия разъехалась бы slug— латиница, цифры, дефис. Совпадает с именем файла без.md- Значение с двоеточием берётся в кавычки.
title: Разбор: причины усталостиломает YAML, и страница теряет заголовок, статус и источники — при этом выглядит как страница, у которой их просто нет. Правильно:title: "Разбор. Причины усталости"
Режимы
build — первичная сборка
Разовая операция при первом запуске. Читает Data/ активного профиля и
создаёт стартовый набор страниц:
- Из
hypotheses.json— страница на каждую гипотезу, со статусом и ссылками на анализы изevidence_for/evidence_against - Из
profile.json→chronic_conditions— страница на состояние - Из
current_complaints— страница на симптом - Из
doctors/contacts.jsonи индекса визитов — страница на врача - Из
consilium/— synthesis-страница на отчёт - Из индекса анализов — не создаёт страниц. Анализ сам по себе не сущность, он источник. Страница появляется у того, что анализ объясняет
Затем — проход связывания: найти упоминания между страницами и проставить
[[ссылки]]. И lint.
Сказать, сколько создано и что осталось несвязанным.
sync — после новых данных
Вызывается из /inbox, /doctor, /labs и /consilium после записи, либо
вручную. Не создаёт всё заново, а встраивает новое в существующее:
- Прочитать, что появилось с последней синхронизации
- Определить, каких сущностей оно касается
- Обновить затронутые страницы: течение, статус,
sources[],updated - Завести страницы для того, что упомянуто, но своей страницы не имеет
- Отметить, если новое противоречит написанному ранее — не переписывать молча, а показать оба утверждения
- Записать строку в
Data/profiles/<id>/wiki/_log.md
Формат журнала — разбираемый:
## [2026-08-06] sync | Анализы Гемотест 15.03
Затронуто страниц: 4 · создано: 1 · противоречий: 1
lint — здоровье wiki
Главный режим. То, ради чего слой существует.
| Проверка | Что ищет | Почему важно |
|---|---|---|
| Противоречия | Два утверждения, которые не могут быть верны одновременно | Врач А сказал одно, врач Б другое; гипотеза утверждает «стабилен», анализ показывает падение |
| Сиротки | Страница, на которую никто не ссылается | Анализ загружен и не интерпретирован; гипотеза без next_step; назначение врача, о котором забыли |
| Битые ссылки | [[x]], где страницы x нет | Препарат назван в протоколе визита, но отсутствует в medications/; диагноз упомянут без своей страницы |
| Устаревшее | updated страницы старше самого свежего файла из её sources[] | Пришёл новый анализ, а вывод на странице остался от прошлого |
| Недостающие связи | Страницы с общим источником, между которыми нет ссылки | Две гипотезы опираются на один анализ и не знают друг о друге |
Вывод — рабочий список, а не украшение:
⚠ Противоречия (2)
[[condition/iron-deficiency]] «ферритин стабилен»
↔ labs/2026-03-15_cbc.json показывает третье снижение подряд
Разрешить: обновить страницу либо объяснить расхождение
○ Сиротки (4)
[[hypothesis/b12-deficiency]] — нет входящих ссылок и next_step
✗ Битые ссылки (1)
[[medication/magnesium-citrate]] ← упомянут в doctor/therapist
Противоречие не разрешается автоматически. Показать оба утверждения и предложить, что их рассудит. Молчаливая правка уничтожает информацию: расхождение между источниками — это и есть находка.
graph — данные для дашборда
Граф не кешируется в файл: дашборд разбирает страницы при запросе. Кеш разъехался бы со страницами, а мы и так боремся с копиями.
Режим существует, чтобы показать статистику текстом: узлов по типам, рёбер, самые связанные и самые одинокие страницы.
Когда wiki вредна
Слой, который забыли обновить, хуже его отсутствия: он выглядит достоверным и читается как актуальный вывод.
Поэтому:
lintобязателен в/wrap-up- На каждой странице видна дата
updatedи списокsources[] - Страница, чей источник свежее её самой, помечается устаревшей до того, как её прочитают
- Утверждение без источника в
sources[]— дефект страницы, а не стиль
Правила
- Числа не копируются на страницы. Только ссылка на запись
- Обратные ссылки вычисляются, а не хранятся
- Противоречия показываются, а не сглаживаются
- Личные страницы не ссылаются на страницы другого профиля. Общие — источники и справка по маркерам — доступны всем
- Каждое клиническое утверждение — с уровнем доказательности по
.claude/shared/evidence-base.md - Страница-источник создаётся только с проверяемым URL: выдуманная ссылка в wiki опаснее, чем в ответе, — она остаётся и цитируется потом
slugв имени файла и во frontmatter совпадают- Критерий завершения:
lintотработал, противоречия показаны,_log.mdдополнен
⚕️ Информация носит справочный характер. Для принятия решений о лечении обратитесь к врачу.
Signals
- GitHub stars
- 38
- Forks
- 6
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
wiki-alxyrgin- Source
- github.com/alxyrgin/health-os