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

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

КАНОН-ХВОСТ (последние факты):
[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)
[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)

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

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

ЗА СТОЛОМ (вне игры):
- [ход 92 | важность 3] Так, девчонки, я чувствую, как дерево под руками начинает гнить — ещё пара секунд, и я здесь останусь навсегда. Мара, если ключ у тебя, рвите когти к выходу прямо сейчас, не оглядывайтесь, я буду следом!
- [ход 94 | важность 3] Мара, хватай ключ, я снова влетаю в него — в этот раз намертво прижму к столу, чтобы он не дернулся! Гром, не жди ни секунды, как только увидишь, что мы двинулись, прыгай к чертям, иначе нас накроет обеих.
- [ход 97 | важность 3] Мара, прыгай в шлюз, я следом — Вара, хватай её за руку, если что! Весло в топку, оно свое отслужило, рвем когти, пока эта тварь нас не упаковала в свои списки.
- [ход 97 | важность 3] Мара, ключ у тебя — теперь прыгай в шлюз, пока Счётовод не закрыл проход! Гром, бросай своё весло, оно сейчас только тянет нас на дно, уходим вместе!
- [ход 98 | важность 3] Мара, не смей слушать этого старого хрыча, просто открывай ящики, а я проконтролирую, чтобы Счётовод их завизировал! Гром, если он не начнёт читать по-хорошему, ломай ему пальцы, нам нужно закрыть этот реестр прямо сейчас, пока нас самих не вписали в должники.
- [ход 98 | важность 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

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

text: Старик Шелк вынужден начать чтение реестров под угрозой физической расправы со стороны Грома Рида и Мары Солёной.

visibility: public

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

entities:
shelk-gray
pc-grom-reed
mara-salt
Речной Счётовод

pc-vara-quill: lock-ossuary

pc-grom-reed: lock-ossuary

mara-salt: lock-ossuary

shelk-gray: lock-ossuary

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

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

openThreads: Речной Счётовод ожидает завершения чтения реестров Шелка для заключения нового договора.

openThreads: Вара Квилл должна проконтролировать исправление записей, чтобы избежать гнева реки из-за печати поручителя.

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

openThreads: Гром Рид истощен и находится на грани потери сознания из-за травм и потери памяти.

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


kind: event


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