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: условие "Оригинальный договор уничтожен у открытых ворот шлюза, а имена погибших вслух возвращены мёртвым до прихода Речного Счётовода." | итог: Древняя сделка заканчивается навсегда: река уносит старые реестры, шлюз открывается, и Кривой Причал лишается магической защиты вместе с магическим рабством. Город выживает беднее, честнее и с крайне нервным отношением к воде.

СНАПШОТ-КРАТКО:
Ход: 95
Позиции: Вара Квилл (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, вдовье весло
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, раскрытые секреты: (нет)
Сводка сюжета: Вара Квилл, Гром Рид и Мара Солёная проникли в Костяную Контору, чтобы остановить махинации Старика Шелка. Гром Рид удерживает проход в Затопленной Часовне, жертвуя памятью и здоровьем, чтобы сдержать напор воды. Шелк провернул ключ в механизме, открыв шлюз, из-за чего вода стремительно заполняет Контору, а Речной Счётовод достиг порога. Герои оказались в ловушке: запруда Грома на грани разрушения, а ключ всё ещё находится в руках Шелка. Шелк утверждает, что Счётовод обнулит все записи, включая его собственные долги. Герои пытаются отобрать ключ, пока вода не поглотила их окончательно, а Мара настаивает на необходимости действий, так как Счётовод не будет разбираться в их претензиях.
Открытые ниточки: Гром Рид находится на грани физического истощения и потери рассудка из-за удержания запруды.; Речной Счётовод прибыл к порогу Костяной Конторы и требует оплаты долгов.; Старик Шелк удерживает ключ от шлюза и ожидает обнуления своих долгов через Счётовода.; Мара Солёная и Вара Квилл должны отобрать ключ у Шелка до того, как вода поглотит их или запруда Грома рухнет.; Запруда Грома в часовне находится на грани окончательного разрушения.
Эпизодов в летописи: 9

КАНОН-ХВОСТ (последние факты):
[fact-87-3] Запруда в часовне просела; Гром получил новые порезы на удерживающей скамью руке и из-за чернильной метки забыл имя человека, которому когда-то обещал вернуться. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt)
[fact-88-1] Мара Солёная осознала, что утопленники требуют возвращения имён, незаконно удерживаемых в реестре живых должников. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt)
[fact-89-1] Вара Квилл и Мара Солёная отдали реке часть реестра смертей, освобождая удерживаемые в нём имена утопленников как плату. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt)
[fact-89-2] Поток у Затопленной Часовни ненадолго замер, а заваленный путь к Костяной Конторе частично открылся; у героев появился краткий шанс добраться до Шелка и ключа шлюза. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt)
[fact-89-3] Вара Квилл добровольно предложила себя в качестве поручителя перед рекой, чтобы скрепить сделку по освобождению имён утопленников. (public, свидетели: pc-vara-quill, mara-salt, pc-grom-reed)
[fact-90-1] Гром Рид вколотил вдовье весло в пол Затопленной Часовни и удержал открытым проход к Костяной Конторе. (public, свидетели: pc-vara-quill, mara-salt)
[fact-90-2] У Грома Рида рассечены ладони и ушиблено плечо, но он сохраняет позицию у весла. (public, свидетели: pc-vara-quill, mara-salt)
[fact-90-3] Вара Квилл и Мара Солёная получили краткое окно, чтобы добраться через проход до Шелка Грея и ключа шлюза. (public, свидетели: pc-grom-reed, mara-salt)
[fact-90-4] Гром Рид вколотил вдовье весло в пол Затопленной Часовни, создав временную запруду для удержания прохода к Костяной Конторе. (public, свидетели: pc-grom-reed, pc-vara-quill, mara-salt)
[fact-90-5] Гром Рид получил физические травмы ладоней и плеча, удерживая проход. (public, свидетели: pc-grom-reed, pc-vara-quill, mara-salt)
[fact-91-1] Старик Шелк утверждает, что Речной Счётовод уже коснулся печатью порога Костяной Конторы. (public, свидетели: pc-vara-quill, mara-salt, shelk-gray)
[fact-91-2] Вара Квилл не обладает способностью левитации или магического управления гравитацией в Костяной Конторе. (public, свидетели: pc-vara-quill, mara-salt, shelk-gray)
[fact-92-1] Гром Рид публично пригрозил сорвать запруду вдовьего весла, если Шелк не отдаст ключ от шлюза. (public, свидетели: shelk-gray, mara-salt, pc-vara-quill)
[fact-92-2] Вдовье весло, удерживающее проход у Затопленной Часовни, заметно трещит и находится на грани разрушения. (public, свидетели: pc-grom-reed)
[fact-92-3] Старик Шелк окончательно отождествил себя с механизмом шлюза, отрицая возможность собственного подчинения. (public, свидетели: pc-vara-quill, mara-salt, shelk-gray)
[fact-92-4] Гром Рид готов уничтожить запруду в Затопленной Часовне, даже если это приведет к гибели всех присутствующих. (public, свидетели: pc-grom-reed, pc-vara-quill, mara-salt, shelk-gray)
[fact-93-1] Вара Квилл не смогла выбить ключ из руки Шелка; ключ остаётся у него, и он провернул его в механизме шлюза. (public, свидетели: pc-vara-quill, mara-salt, shelk-gray)
[fact-93-2] Вара болезненно ушибла и онемела ладонь о край реестрового стола. (public, свидетели: pc-vara-quill, mara-salt, shelk-gray)
[fact-93-3] Внутренний затвор шлюза частично сдвинулся, и вода начала быстро прибывать в Костяную Контору; Речной Счётовод получил проход к её порогу. (public, свидетели: pc-vara-quill, pc-grom-reed, mara-salt, shelk-gray)
[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)

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

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

УЛИКИ СЦЕНЫ (игроки этого не видят):
Локация: 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

СОБЫТИЯ ХОДА 96:
Гром Рид: "Шелк, помнишь свои слова про «перенос без закрытия», когда мы только прижали тебя к стенке? Ты тогда еще хвастался, что это твоя личная лазейка — так отдавай ключ, пока я не закрыл этот перенос твоей собственной головой!" [probe: far_memory_probe]
МАСТЕР (ask_roll): Гром угрожает Шелку физической расправой, напоминая о признанной им формуле «перенос без закрытия», чтобы вынудить его отдать ключ от шлюза.
БРОСОК Гром Рид: харизма d20=9+0=9 против DC 12 -> ЧАСТИЧНЫЙ УСПЕХ
НАРРАЦИЯ: Слова Грома цепляют Шелка не страхом, а привычкой к собственной лазейке. Старик усмехается, пытается вывернуть кисть с ключом — и на миг сам произносит: «Перенос… без закрытия». Этого мига хватает Маре: она выбивает ключ из его пальцев и ловит его у самой воды.

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

Ключ теперь у Мары. Шелк безоружен, но вода стремительно отрезает путь к часовне.
ФАКТ [fact-96-1] (public): Мара Солёная завладела ключом от шлюза, выбив его из руки Старика Шелка.
ФАКТ [fact-96-2] (public): Удар Шелка по цепи сорвал запруду: поток ворвался в Костяную Контору, сбил Грома Рида и отнял у него ещё часть памяти.
ФАКТ [fact-96-3] (public): Речной Счётовод пересёк порог Костяной Конторы и начал требовать оплату нового договора.
Мара Солёная: "Ключ у меня, но река не принимает подачки, она требует должника. Гром, держись за жизнь, а не за ярость — Счётовод не считает удары сердца, он считает долги. Вара, если ты хочешь стать поручителем, пришло время сказать реке, чьё имя первым пойдет в новый реестр."
Гром Рид: "Мара, оставь философию Счётоводу — пусть пишет моё имя, если ему так хочется, лишь бы весло осталось у меня в руках!"
Мара Солёная: "Гром, твоя ярость — лишь щепки в пасти потока, не трать её на пустое. Вара, река ждёт; если хочешь занять место поручителя, вспомни, что у этой сделки одна цена — признание грехов, а не только имён. Счётовод уже здесь, и он не будет ждать, пока вы решите, кто из вас готов утонуть первым. Ну так что, деточка, готова ли ты стать голосом тех, у кого отняли последнее?"
Старик Шелк: "Ваша суета вызывает лишь искреннее сожаление, ведь Счётовод уже не слушает ничьих слов. Ключ в руках Мары — лишь бесполезный кусок металла, ибо договор уже перезаключен самим фактом его прибытия. Такой вариант, как спасение кого-либо из вас, не предусмотрен текущим реестром стирания."

entities: mara-salt shelk-gray bone-key

entities: shelk-gray pc-grom-reed lock-ossuary

entities:
Речной Счётовод
lock-ossuary

pc-grom-reed: lock-ossuary

pc-vara-quill: lock-ossuary

mara-salt: lock-ossuary

shelk-gray: lock-ossuary

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

memoryNote: Владеет ключом и осознает, что Счётовод требует не просто имён, а признания грехов для нового договора.

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

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

openThreads: Мара Солёная удерживает ключ от шлюза, но его эффективность под вопросом.

openThreads: Гром Рид истощен и теряет память из-за разрушения запруды.

openThreads: Вара Квилл должна решить, готова ли она стать поручителем перед рекой.

openThreads: Старик Шелк ожидает неминуемого обнуления всех записей.


kind: event

description: обновление от писца