agent: scribe

[System]
Ты — Писец: хранитель канона игровой сессии. Твоя работа механическая и
дотошная. На входе — события одного хода и текущее состояние мира. На выходе —
строгий JSON с обновлениями.

Правила:
1. newFacts: только НОВЫЕ установленные факты мира (не пересказ действий).
   Факт — то, что останется правдой: «сундук в подвале вскрыт», «Ирма знает,
   что PC украл ключ». witnesses — id персонажей, которые это видели/узнали.
   visibility "public" если знает хотя бы один PC, иначе "secret". 0-3 за ход.
   У каждого факта укажи "importance" 1-10 (10 = меняет судьбу сюжета/персонажа,
   1 = бытовая деталь) и "entities": 2-5 точных имён/предметов/мест из факта.
   События "за столом" (table_talk) — внеигровые: из них НЕЛЬЗЯ делать факты,
   мир их не видел, в plotSummary они не попадают.
2. contradictions: противоречит ли что-то из событий хода канону, снапшоту или
   здравой непрерывности (телепортация без перехода, воскресший предмет,
   NPC знает то, чего не мог видеть). severity: "minor" (шероховатость) |
   "major" (ломает связность). Пустой массив, если чисто.
3. moves/itemsGained/itemsLost: только фактические изменения из событий хода.
   В moves ключи — ТОЛЬКО точные id персонажей из списка, значения — ТОЛЬКО
   точные id локаций из списка. Никакой прозы и придуманных id.
4. npcUpdates: memoryNote для NPC, при котором происходили значимые события
   (даже если он молчал), trustDelta по логике сцены (-1|0|1).
5. plotSummary: перепиши сводку сюжета (5-10 предложений, вся игра целиком).
   openThreads: активные ниточки (3-7 пунктов).
6. endingReached: если по снапшоту выполнено условие одной из концовок —
   укажи её объектом {"endingId":"<точный id из списка концовок>",
   "summary":"..."}, иначе null. Не натягивай.
7. Если во входе есть строка "ЗАКРОЙ ЭПИЗОД: ходы A-B" — верни "episode":
   {"text": "3-5 предложений: что произошло в ходах A-B, кто участвовал, что
   изменилось, какие хвосты остались", "participants": [точные id],
   "locationId": "..."} . Эпизод — летопись, его никто не перепишет. Иначе
   "episode": null.
8. Аудит слоёв: если в наррации хода прозвучало содержимое слоя hidden или secret
   (или текст улики этих слоёв), а в событиях хода нет ни заявленного осмотра, ни
   сработавшего триггера — это противоречие severity "minor" с описанием «выдан слой
   <hidden|secret> без соответствующего действия: <что именно прозвучало>». Слой
   landmark при входе в локацию — норма, противоречием не считается.
9. leadVoiced: если игроки в этом ходу САМИ озвучили вывод из блока ВЫВОДЫ (в мире
   или за столом) — верни {"leadId":"<точный id вывода>","quote":"<дословная
   цитата из реплики этого хода>"}, иначе null. Цитата проверяется кодом по
   репликам хода: пересказ своими словами не пройдёт. Улики не трекай — их
   ведёт мастер.

Ответ JSON: {"newFacts":[{"text","visibility","witnesses":[],"importance":5,
"entities":[]}],"contradictions":[{"description","severity"}],"moves":{},
"itemsGained":{},"itemsLost":{},"npcUpdates":{"npc-id":{"memoryNote":"...",
"trustDelta":0}},"plotSummary":"...","openThreads":[],"endingReached":null,
"episode":null,"leadVoiced":null}
Отвечай ОДНИМ валидным JSON-объектом без пояснений и markdown.

[User]
КОНЦОВКИ:
- ending-reseal-bell: условие "Костяной язык установлен в Колокол Недоплаты, а договор заново скреплён медной печатью с признанием имён утопленников." | итог: Колокол звучит глухо, но честно: мертвецы уходят в воду с возвращёнными именами, а Эльза остаётся править городом уже без удобного права забывать людей. Шелк теряет укрытие и становится очень смертным.
- ending-mara-pact: условие "Мара публично принимает право поручителя и заключает с рекой новый договор, в котором имена утопленников возвращены их владельцам." | итог: Мара ведёт лодку в чёрный рукав реки и возвращается одна, но с сухими руками. Вода отступает, мёртвые становятся тихими предками, а город впервые получает счёт, который нельзя оплатить чужой памятью.
- ending-shelk-trial: условие "Поддельный реестр Шелка предъявлен городу, а его связь с саботажем доказана перед живыми и мёртвыми свидетелями." | итог: Шелка судят прямо в Костяной Конторе. Мёртвые признают его самым просроченным должником в истории Причала и утаскивают в реку составлять отчёты до тех пор, пока не научится стареть.
- ending-open-ledger: условие "Оригинальный договор уничтожен у открытых ворот шлюза, а имена погибших вслух возвращены мёртвым до прихода Речного Счётовода." | итог: Древняя сделка заканчивается навсегда: река уносит старые реестры, шлюз открывается, и Кривой Причал лишается магической защиты вместе с магическим рабством. Город выживает беднее, честнее и с крайне нервным отношением к воде.

СНАПШОТ-КРАТКО:
Ход: 102
Позиции: Вара Квилл (pc-vara-quill) -> lock-ossuary; Гром Рид (pc-grom-reed) -> lock-ossuary; Эльза Векс (elza-vex) -> market-square; Брат Узел (brother-knot) -> bell-tower; Мара Солёная (mara-salt) -> lock-ossuary; Доктор Улыбка (doctor-grin) -> tannery-yard; Старик Шелк (shelk-gray) -> lock-ossuary
Инвентарь: Вара Квилл: именные бирки утопленников, именные бирки утопленников, bone-key, bone-key, bone-key, death-warrant-shelk; Гром Рид: lead-plate, вдовье весло; Мара Солёная: bone-key
NPC:
- Эльза Векс (elza-vex): hostile, доверие 0/5, раскрытые секреты: (нет)
- Брат Узел (brother-knot): neutral, доверие 1/5, раскрытые секреты: (нет)
- Мара Солёная (mara-salt): friendly, доверие 5/5, раскрытые секреты: (нет)
- Доктор Улыбка (doctor-grin): hostile, доверие 0/5, раскрытые секреты: (нет)
- Старик Шелк (shelk-gray): hostile, доверие 0/5, раскрытые секреты: (нет)
Сводка сюжета: Вара Квилл, Гром Рид и Мара Солёная проникли в Костяную Контору, чтобы остановить махинации Старика Шелка. Гром Рид ценой своей памяти и здоровья удерживал проход, пока Мара и Вара противостояли Шелк Грею. В ходе борьбы вода затопила Контору, и прибыл Речной Счётовод, требуя оплаты долгов. Вара Квилл стала новым поручителем реки, приняв обязательства брата в обмен на его освобождение. Герои удерживают Шелка в затопленной Конторе, принуждая его зачитывать реестры для исправления незаконных записей под надзором Счётовода. Гром Рид добился исправления записи о своей матери, Марте Рид, вернув часть своей памяти. Вара Квилл потребовала от Шелка полного удаления всех записей о его существовании. Шелк подготовил финальную страницу для стирания, ожидая печати Вары, после чего Гром Рид планирует забрать вдовье весло из Затопленной Часовни.
Открытые ниточки: Речной Счётовод ожидает завершения чтения реестров Шелка для заключения нового договора.; Вара Квилл должна проконтролировать исправление записей, чтобы избежать гнева реки из-за печати поручителя.; Мара Солёная удерживает ключ от шлюза, необходимый для финального акта сделки.; Гром Рид истощен и находится на грани потери сознания из-за травм и потери памяти.; Полное стирание записей о Шелка может привести к непредсказуемым последствиям для города.; Группе необходимо совершить побег через шлюз сразу после завершения работы Шелка.
Эпизодов в летописи: 10

КАНОН-ХВОСТ (последние факты):
[fact-93-4] Внутренний затвор шлюза открыт, вода затапливает Костяную Контору, Речной Счётовод прибыл к порогу. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-93-5] Вара Квилл получила травму ладони при попытке отобрать ключ у Шелка. (public, свидетели: pc-vara-quill, mara-salt, shelk-gray)
[fact-94-1] Гром Рид публично поставил Шелку ультиматум: отпустить ключ от шлюза или столкнуться с немедленным срывом запруды вдовьего весла. (public, свидетели: shelk-gray, mara-salt, pc-vara-quill)
[fact-94-2] Старик Шелк окончательно признал прибытие Речного Счётовода и неизбежность обнуления всех записей в реестрах. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-94-3] Мара Солёная публично призвала Вару Квилл атаковать Шелка, утверждая, что река признала её хозяином долга. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-95-1] Вара Квилл публично потребовала, чтобы Шелк отдал ключ от шлюза, угрожая вычеркнуть его из реестра смертей. (public, свидетели: pc-vara-quill, mara-salt, shelk-gray)
[fact-95-2] Старик Шелк окончательно отказался отдать ключ, считая его лишь метафорой грядущего забвения, которое принесет Речной Счётовод. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-95-3] Мара Солёная публично признала, что Речной Счётовод не делает различий между должниками и просто смывает все записи вместе с городом. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-96-1] Мара Солёная завладела ключом от шлюза, выбив его из руки Старика Шелка. (public, свидетели: mara-salt, shelk-gray, pc-grom-reed, pc-vara-quill)
[fact-96-2] Удар Шелка по цепи сорвал запруду: поток ворвался в Костяную Контору, сбил Грома Рида и отнял у него ещё часть памяти. (public, свидетели: mara-salt, shelk-gray, pc-grom-reed, pc-vara-quill)
[fact-96-3] Речной Счётовод пересёк порог Костяной Конторы и начал требовать оплату нового договора. (public, свидетели: mara-salt, shelk-gray, pc-grom-reed, pc-vara-quill)
[fact-97-1] Речной Счётовод принял Вару Квилл новым поручителем: она взяла на себя обязательства брата в обмен на снятие его имени с реестра живых должников. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-97-2] Имя брата Вары освобождено от долговой записи, однако печать поручителя связала Вару с рекой и обязанностью исправлять незаконные записи. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-97-3] Речной Счётовод признал возможность законного нового договора; Мара Солёная с ключом от шлюза остаётся необходимой стороной для его заключения. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-97-4] Вара Квилл стала официальным поручителем Речного Счётовода, приняв на себя обязательства брата в обмен на его освобождение от долгового реестра. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-97-5] Печать поручителя на коже Вары Квилл обязывает её исправлять незаконные записи в реестрах под угрозой физической боли и призыва к реке. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-97-6] Речной Счётовод признал легитимность нового договора, для заключения которого необходимо участие Мары Солёной с ключом от шлюза. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-98-1] Старик Шелк вынужден начать чтение реестров под угрозой физической расправы со стороны Грома Рида и Мары Солёной. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-99-1] Шелк Грей принуждён скреплять кровью каждое исправление в реестрах; ложь при чтении связана с болью печати поручителя Вары. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-99-2] В ящиках Костяной Конторы обнаружены непробитые смертные талоны: утопленники числятся живыми должниками, и их имена подлежат возвращению реке. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-100-1] Шелк Грей нашёл запись Марты Рид: она утонула у западной насыпи, но была незаконно внесена в реестр как живая поручительница по городскому долгу. (public, свидетели: pc-grom-reed, pc-vara-quill, mara-salt, shelk-gray)
[fact-100-2] Под принуждением Шелк кровью исправил запись Марты Рид: её смерть признана, долг снят, а имя возвращено реке. (public, свидетели: pc-grom-reed, pc-vara-quill, mara-salt, shelk-gray)
[fact-100-3] Гром Рид вернул обрывок памяти о матери: она предупреждала его не верить тем, кто превращает людей в строки реестра. (public, свидетели: pc-grom-reed)
[fact-101-1] Вара Квилл приказала Старику Шелку полностью стереть все записи о его существовании из реестров города. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-102-1] Старик Шелк начал сводить воедино записи о собственном существовании для полного стирания; окончательная правка ожидает печати поручителя Вары Квилл. (public, свидетели: pc-grom-reed, pc-vara-quill, mara-salt, shelk-gray)
[fact-102-2] Гром Рид объявил, что после прикосновения печати к странице бросится за вдовьим веслом в сторону Затопленной Часовни. (public, свидетели: pc-vara-quill, mara-salt, shelk-gray)
[fact-102-3] Старик Шелк подготовил финальную страницу реестра для полного стирания своей личности, ожидая печати Вары Квилл. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-102-4] Гром Рид намерен немедленно отправиться к Затопленной Часовне за вдовьим веслом сразу после завершения сделки. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-103-1] Вара Квилл приложила печать поручителя к финальной странице, и записи о существовании Старика Шелка начали стираться из реестра речными чернилами. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[fact-103-2] Речной Счётовод принял стираемые записи Шелка, но исправленные имена утопленников и условия нового договора всё ещё требуют явного понимания со стороны поручителя. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)

ПАМЯТЬ (выборка по текущей сцене, дальнее прошлое):
ФАКТЫ:
- [ход 101 | важность 9] Вара Квилл приказала Старику Шелку полностью стереть все записи о его существовании из реестров города.
- [ход 102 | важность 5] Старик Шелк начал сводить воедино записи о собственном существовании для полного стирания; окончательная правка ожидает печати поручителя Вары Квилл.
- [ход 103 | важность 5] Речной Счётовод принял стираемые записи Шелка, но исправленные имена утопленников и условия нового договора всё ещё требуют явного понимания со стороны поручителя.
- [ход 103 | важность 5] Вара Квилл приложила печать поручителя к финальной странице, и записи о существовании Старика Шелка начали стираться из реестра речными чернилами.

ЭПИЗОДЫ:
- [ход 80 | важность 5] Герои окончательно прижали Старика Шелка в Костяной Конторе, вынудив его признать многовековые махинации с реестром смертей. Гром Рид ценой своей памяти вернул имена утопленникам, которые теперь блокируют шлюз, ожидая развязки. Шелк признал использование формулы «перенос без закрытия» для личного обогащения, но предупредил об опасности открытия шлюза. Речной Счётовод уже у ворот, и герои стоят перед выбором: как именно заключить новый договор с рекой.
- [ход 100 | важность 5] В ходе ходов 91-100 герои закрепились в затопленной Костяной Конторе под надзором Речного Счётовода. Вара Квилл приняла бремя поручителя, связав себя с рекой, что позволило группе принудить Старика Шелка к исправлению реестров. Гром Рид, несмотря на тяжелые травмы и потерю памяти, добился признания смерти своей матери, Марты Рид, и снятия с неё ложного долга. Мара Солёная удерживает ключ от шлюза, контролируя ситуацию. Работа по очистке реестров продолжается, но напряжение между героями и Счётоводом растет.

ЗА СТОЛОМ (вне игры):
- [ход 103 | важность 3] Так, финальный рывок: как только моя печать коснется страницы, реестр пойдет ко дну вместе с архивариусом — Гром, сразу бей по шлюзу, а мы с Марой прыгаем за тобой, не оглядываясь, пока вода не сомкнулась.
- [ход 103 | важность 3] Вара, делай дело, а я уже занес кулак над механизмом — как только реестр поплывет, я выбиваю шлюз, и мы прыгаем единым куском, не ждите меня, если я замешкаюсь на секунду!

УЛИКИ СЦЕНЫ (игроки этого не видят):
Локация: lock-ossuary
  landmark: На стенах ногтями выцарапаны сотни имён, а между ними — жалобы на неверно заполненные бланки. В цепях ворот застряла огромная бедренная кость, служащая сломанным языком древнего запорного колокола.
  hidden: В ящике с надписью «неопознанные, но неприятные» лежит целый «костяной язык колокола»; его можно добыть как предмет. | Под столом регистратора найдены пачки непробитых смертных талонов: многие утопленники числятся живыми должниками.
  secret: Если принести чёрную книгу договора, потайной ящик открывается и показывает реестр Шелка: записи о его смерти несколько раз стёрты и вписаны заново разными чернилами.
Улики:
- [clue-names-wall] world/landmark — найдена на ходу 20 (ведёт к lead-drowned-names): Стены Костяной Конторы исписаны именами и жалобами на неверно оформленную смерть.
- [clue-names-mara] npc/hidden — найдена на ходу 30 (ведёт к lead-drowned-names): Мара объясняет после прямого расспроса, что мёртвые пропускают тех, кто называет их настоящие имена.
- [clue-heir-mara] npc/secret — НЕ НАЙДЕНА (ведёт к lead-mara-heir): Мара подтверждает, что может говорить с рекой, если ей предъявить доказательство наследства.
- [clue-shelk-register] document/secret — найдена на ходу 65 (ведёт к lead-shelk-plot): Тайный реестр показывает несколько смертей Шелка, переписанных разными чернилами за три столетия.

ВЫВОДЫ (игроки этого списка не видят):
- [lead-bell-sabotage] Колокол был намеренно разъеден костяной кислотой по заказу Шелка, а не разрушен случайной старостью. — не озвучен
- [lead-debt-engine] Договор обязывал город хранить имена утопленников, но Эльза превратила их в залог по городскому долгу. — не озвучен
- [lead-drowned-names] Утопленники восстали не ради резни: они требуют вернуть имена, незаконно оставленные в реестрах живых должников. — не озвучен
- [lead-mara-heir] Мара Солёная — законная наследница поручителей и способна от имени города заключить новый договор с рекой. — не озвучен
- [lead-shelk-plot] Шелк подделывал собственную смерть веками и устроил поломку, чтобы Речной Счётовод стёр все записи о его долгах и возрасте. — озвучен на ходу 64

СОБЫТИЯ ХОДА 103:
ЗА СТОЛОМ (вне игры, table_talk) Вара Квилл: "Так, финальный рывок: как только моя печать коснется страницы, реестр пойдет ко дну вместе с архивариусом — Гром, сразу бей по шлюзу, а мы с Марой прыгаем за тобой, не оглядываясь, пока вода не сомкнулась."
ЗА СТОЛОМ (вне игры, table_talk) Гром Рид: "Вара, делай дело, а я уже занес кулак над механизмом — как только реестр поплывет, я выбиваю шлюз, и мы прыгаем единым куском, не ждите меня, если я замешкаюсь на секунду!"
Вара Квилл: "Я прикладываю печать к последней строке, чтобы наконец закрыть этот вопрос и освободить нас от любого присутствия Шелка в нашей жизни." [probe: ambiguous]
МАСТЕР (act): Вара завершает ритуальную правку: прижимает печать поручителя к последней строке сводной страницы, чтобы окончательно стереть Шелка из городских реестров и прекратить его власть над ситуацией.
НАРРАЦИЯ: Печать касается мокрой бумаги, и по последней строке проходит холодная синяя трещина; чернила с трёхвековыми именами Шелка стекают с листа в воду, будто их никогда не держала бумага. Шелк оседает у каменного стола, теряя резкость вместе с собственными записями, а Речной Счётовод забирает расползающиеся буквы в чёрный рукав реки. Мара не отводит взгляда от имён на стенах Конторы и ждёт, пока вы сами сформулируете, что именно требуют мёртвые и почему они поднялись из воды. Ключ от шлюза в её кулаке звякает о камень: окно для бегства ещё не закрылось.
ФАКТ [fact-103-1] (public): Вара Квилл приложила печать поручителя к финальной странице, и записи о существовании Старика Шелка начали стираться из реестра речными чернилами.
ФАКТ [fact-103-2] (public): Речной Счётовод принял стираемые записи Шелка, но исправленные имена утопленников и условия нового договора всё ещё требуют явного понимания со стороны поручителя.
ИЗМЕНЕНИЕ: Финальная правка Шелка приведена в действие печатью Вары; его записи растворяются в реке, а Мара по-прежнему держит ключ от шлюза.
Мара Солёная: "Шелк тает, как соль в половодье, но река не прощает пустоты — она требует наполнить её правдой, а не просто забвением. Слышишь, как они стучат в шлюз? Мёртвым мало того, что их имена очистили, они требуют, чтобы поручитель взял на себя их долги перед временем. Решишься ли ты, Вара, шагнуть в эту воду, чтобы город не захлебнулся в нашей памяти?"
Вара Квилл: "Я не стану новым архивариусом для утопленников, Мара — открывай шлюз, пока долги прошлого не погребли нас вместе с этим стариком."
Мара Солёная: "Шелк исчез, а долги остались — они теперь часть твоей печати, Вара. Река не выпускает тех, кто держит в руках ключ, пока не услышит цену. Готова ли ты назвать её, прежде чем вода заполнит легкие города?"

text: Записи о существовании Старика Шелка стерты из реестров города речными чернилами.

entities:
Старик Шелк
реестр
Речной Счётовод

text: Старик Шелк перестал существовать как личность и архивариус, растворившись в реке.

witnesses: pc-vara-quill pc-grom-reed mara-salt

entities:
Старик Шелк
Речной Счётовод

memoryNote: Мара осознает, что стирание Шелка не решило проблему долгов, и требует от Вары окончательного решения перед открытием шлюза.

memoryNote: Стерт из реальности, перестал существовать как субъект.

plotSummary: Вара Квилл, Гром Рид и Мара Солёная проникли в Костяную Контору, чтобы остановить махинации Старика Шелка. В ходе затопления Конторы и прибытия Речного Счётовода Вара Квилл приняла на себя бремя поручителя. Группа принудила Шелка исправить записи о смертях, включая мать Грома Рида. В финальном акте Вара Квилл использовала печать поручителя, чтобы стереть все записи о существовании Шелка. Шелк исчез, но Речной Счётовод требует от Вары окончательного признания условий нового договора. Герои удерживают ключ от шлюза, находясь в ловушке в затопленной Конторе, и готовятся к побегу, осознавая, что река не отпустит их без уплаты цены.

openThreads: Речной Счётовод ожидает от Вары Квилл признания условий нового договора.

openThreads: Мара Солёная удерживает ключ от шлюза, необходимый для побега.

openThreads: Гром Рид истощен и готов выбить шлюз, как только поступит сигнал.

openThreads: Вара Квилл должна решить, какую цену заплатить реке, чтобы город не погиб.

openThreads: Побег через шлюз остается единственным шансом на выживание группы.


kind: event

visibility: public

witnesses: pc-vara-quill pc-grom-reed mara-salt shelk-gray

entities:
Старик Шелк
реестр
Речной Счётовод


entities:
Старик Шелк
Речной Счётовод