Убрать перебор дат
Слушатель стоит у здания, и для него «в 1989 году; в декабре 1993-го; с 1995 года» — шум. Отредактируй выбранные рассказы так, чтобы они звучали как история, а не как хронология. Точные даты остаются в фактах и источниках, а в озвучиваемом тексте — только те, что нужны слушателю.
Область работы
Работай с точками, прогулкой или партией, которые назвал пользователь. Сначала сними актуальные опубликованные тексты с их идентификаторами, фактами, источниками и аудио: так делают пакеты content/<партия>/capture.mjs и captured.json. Затем найди перегруженные датами рассказы:
python3 -I .claude/skills/reduce-dates/scripts/count_dates.py content/<партия>/captured.json
Скрипт считает упоминания годов, десятилетий («1980-х»), веков и дат с месяцем. По умолчанию он помечает рассказ, где больше 4 дат на весь текст или больше 2 в одном абзаце (--max-story, --max-paragraph). Это только поиск кандидатов: читай каждый текст целиком, номера («школа № 1216») и количества («1200 мест») скрипт старается пропускать, но не всегда.
Как переписывать
Оставь одну-две опорные даты на рассказ. Обычно это год постройки или основания и год главного события, ради которого стоит остановиться. Остальные даты переведи в отношения:
- промежуток от опорной даты: «через десять лет», «спустя полвека», «через два столетия», «на следующий год»;
- приблизительная эпоха: «в конце 1980-х», «на рубеже веков», «в последние годы СССР», «после войны», «в начале XX века»;
- возраст или срок: «почти десятилетие», «шесть лет спустя», «за полтора года»;
- последовательность без чисел: «сначала…, а позже…», «вскоре», «к тому времени».
Дни и месяцы убирай, если день сам ничего не значит. Оставляй, когда он важен для истории: праздник, годовщина, совпадение с известным событием, первая дата работы, которую обыгрывает рассказ.
Не делай цепочек. Два точных года подряд в одном предложении или три в абзаце — повод переписать. Даты через точку с запятой и списки «в 1989-м — …, в 1993-м — …, в 1995-м — …» пересказывай одним действием: «реконструкция растянулась почти на десятилетие».
Считай арифметику. Каждое «через десять лет» и «спустя два столетия» сверь с точными датами из фактов. Округляй честно: 1993–2004 — это «почти десятилетие» или «больше десяти лет», а не «пятнадцать лет»; 1880-е → 1895 — «через несколько лет», а не «вскоре». Если точная дата спорная, используй степень точности источника.
Сохрани смысл и порядок. Не выбрасывай событие ради краткости: если без него история теряет поворот, переформулируй его без числа. Не добавляй новых фактов, оценок и «атмосферы». Рассказ по-прежнему должен содержать минимум 100 слов (правило скиллов remove-reference-addresses и remove-initials) и опираться на факты со ссылками на источники.
Факты не трогай. Поле facts хранит точные даты как опору проверки — оставь их. Если из абзаца ушла дата, связь абзац → факт должна сохраниться.
Пример
До (10 дат):
Варвара Морозова оплатила создание читальни в память об Иване Тургеневе. В 1884 году Московская городская дума утвердила её учреждение, а 9 февраля 1885 года пришли первые читатели. Это была первая городская публичная бесплатная читальня Москвы.
Сегодня библиотека занимает два здания в Бобровом переулке. Решение передать их для читальни приняли в 1989 году; в декабре 1993-го здания предоставили для реконструкции. С 1995 года проект готовила мастерская «Моспроекта-2» под руководством архитектора Александра Асадова.
В основе старого усадебного дома сохранились палаты конца XVII века. В 1895 году усадебный дом надстроили третьим этажом; при реставрации в 1998-м обнаружили старую кладку. Здания библиотеки открывались по очереди. Первое приняло читателей в ноябре 1998 года, а корпус со старинными палатами открылся в сентябре 2004-го.
После (2 даты):
Варвара Морозова оплатила создание читальни в память об Иване Тургеневе вскоре после смерти писателя. Первые читатели пришли сюда зимой 1885 года. Это была первая в Москве бесплатная городская читальня.
Сегодня библиотека занимает два здания в Бобровом переулке. Их передали читальне в последние годы СССР, а реконструкция по проекту мастерской «Моспроекта-2» под руководством архитектора Александра Асадова растянулась больше чем на десятилетие.
В основе старого усадебного дома сохранились палаты конца XVII века. Спустя два столетия дом надстроили третьим этажом, и только реставраторы снова добрались до старой кладки. Здания библиотеки открывались по очереди: сначала новый корпус, а через шесть лет — корпус со старинными палатами.
Проверка арифметики: Тургенев умер в 1883 году, дума утвердила читальню в 1884-м — «вскоре после смерти»; передача зданий в 1989-м — последние годы СССР; реконструкция с 1993-го до открытия второго корпуса в 2004-м — больше десяти лет; палаты конца XVII века надстроены в 1895-м — около двух столетий; корпуса открыты в 1998 и 2004 годах — через шесть лет.
Проверка и публикация
Для каждой точки перечитай итог вслух: не осталось цепочек дат, все относительные сроки сходятся с фактами, слов не меньше 100, связи абзац → факт → источник целы, название и адрес карточки не изменились. Перезапусти count_dates.py по новым текстам.
Публикуй правки партией с резервным снимком, как в пакетах content/*/apply.mjs: перед записью сверь ожидаемый идентификатор и полный текущий текст, чтобы не затереть параллельную редакцию.
Изменённый текст нужно переозвучить, и это платно. У рассказа с записью ElevenLabs v4 старый звук перестаёт совпадать с текстом. Перед партией назови пользователю точный список точек и число записей и дождись подтверждения. Озвучивай по правилам AGENTS.md: ElevenLabs v4, голос «Отголосок2», стабильный идентификатор намерения переозвучки. После готовности проверь фактические провайдер, модель и голос и длительность.
Сокращение дат укорачивает звук сильнее, чем видно по словам. Год читается как четыре-пять слов («тысяча восемьсот восемьдесят четвёртом году»), поэтому подсчёт слов это не показывает. В «Огородной слободе» 11 переписанных рассказов стали длиннее на 42 слова, а звук сократился на 37 секунд, и прогулка опустилась с 18:14 до 17:37. Если прогулка близка к порогу в 17 минут, заранее заложи запас: дополни проверенными фактами без новых дат рассказы, которые и так придётся переозвучить. Назови этот объём пользователю вместе с основной партией.