«Рутина может съесть слона за 100 или за 1000 присестов, потихонечку. Поняла, что задачу выполнила — выключилась и сказала». — Антон, 23.08, голосом
Все до одной — бесконечные: крон по расписанию, конца не предусмотрено. Класса «рутина, которая доедает задачу и выключается» у нас не существовало. Поэтому большие списочные работы делались одной героической сессией — месяц ручного вытаскивания YouTube-видео и бан от площадки.
Рутина YT-Transcript-Trickle-Hub крутилась ежечасно с 5 августа. Логи писали бодрое «RUN DONE +3 ok».
| что считали | цифра | вывод |
|---|---|---|
| прогонов с 05.08 | 453 | расписание работало исправно |
| строк в файле результатов | 39 | из ~1 100 ожидаемых |
| счётчик «уже сделано» в последнем прогоне | 33 | за 19 суток вырос с 3 до 33 |
| цель | 2 016 видео | 1,6 % за 19 суток → конца нет в принципе |
Корень: журнал прогресса лежал в синкаемой папке _machine-bus\_transit\ и непрерывно затирался. Рутина каждый час честно бралась за одни и те же первые куски. Прибор при этом врал: логи рапортовали успех.
Урок, записанный в канон: журнал слона живёт строго локально, вне синка. CLAUDE.md §4.5-бис
elephant.pynew | завести слона: список, квота на прогон, имя OS-задачи |
feed | скормить работу (идемпотентно, дубли не плодятся) |
next | выдать порцию на сейчас |
mark | отметить кусок: сделан / пропущен / упал |
tick | сердце: конец → гасит OS-задачу + доклад; затык → статус ЗАСТРЯЛ + доклад |
status | прогресс, осталось, ETA одной таблицей |
0 LLM-токенов, только стандартная библиотека. Тест _test_elephant.py: 10 проверок, все зелёные — включая «доел → выключился» и «упавший кусок выбывает после 3 попыток, иначе слон не кончится никогда».
| ГОТОВО | очередь пуста → статус done → задача Windows выключена самой рутиной → сообщение в TG-03 со счётом |
| ЗАСТРЯЛ | 5 прогонов подряд без единого куска → статус blocked + сообщение. Не выключается: сама не выберется, нужен разбор |
| ЖУЁТ | нормальный ход. Молчит, если не просили докладывать — сторож, который всё ок, молчит |
| слон | очередь | темп | прогресс на 22:55 | когда доест |
|---|---|---|---|---|
| yt-watch-history история YouTube-просмотров Антона |
2 238 видео | 12 за прогон, 7 прогонов в ночь ~84 видео в сутки, 20 с между видео |
20 сделано, 16 с транскриптом | ~27 суток против «месяц вручную и бан» |
Откуда очередь: лайки 2 016 · база истории браузера 362 · Takeout Chrome 271 · живой профиль Chrome 139 · пилотная база 78 → 2 238 уникальных после дедупа.
Что собирается по каждому видео: ссылка, название, описание, канал, дата загрузки, длительность, просмотры, теги, категории, транскрипт с языком. Видео удалили — заметка всё равно пишется по названию и ссылке со статусом unavailable: факт «Антон это смотрел» не пропадает.
Куда ложится: 05-Resources\YT-Watch-History\<год>\<video_id>.md, отдельно от его мыслей, с жёсткой пометкой в каждой заметке: voice: not-anton · signal: anton-watched · layer: evidence. Это чужой голос; сигнал Антона — сам выбор посмотреть.
Две половины в одном прогоне: конечная (ретро-очередь, кончится и выключится) + бесконечная (добор свежих просмотров из живого Chrome).
| дыра | что это значит | чей шаг |
|---|---|---|
| База 15-летней истории на 64 496 событий отсутствует на диске | она описана в памяти от 11.07, но файла нет. Сейчас очередь собрана только из локальных остатков — это не 10 лет, это то, что уцелело | нужен свежий Google Takeout (YouTube → history). Логин с 2FA — шаг с руками Антона, скилл /takeout-pull |
Старую задачу YT-Transcript-Trickle-Hub не удалось выключить | Access is denied — создана под другими правами. Заглушена через свой .cmd: теперь пишет надгробие и выходит, вреда не делает | один заход из админского окна:schtasks /Change /TN "YT-Transcript-Trickle-Hub" /DISABLE |
| Классификация 943 файлов задач «канает на рутину / не канает» не сделана | автоскан дал мусор: большие числа в файлах оказались размерами и ID, а не списками работ. Выдавать это за анализ нельзя | это сам по себе слон — заводится тем же движком, если скажешь |
| кандидат | размер | почему слон, а не сессия |
|---|---|---|
Транскрипты 49 каналов из YT-konspekty | ~2 000 видео, лежат сырыми с 12.06 | уже на диске, но не размечены и не подняты в RAG — работа списочная и конечная |
| Острова графа волта | 4 044 острова, 46 000 ссылок на проверку | висит с 15.07 как «vault-audit-fixes», ровно тот случай, что спотыкается месяцами |
| Facebook: лента, сообщения, комментарии | не измерено | твой пример из голосовой; такой же ретро + ежедневный добор |
| История браузера целиком | 33 562 визита | соседний слой того же класса: что читал, а не что смотрел |
| Классификация 943 задач | 943 файла | ответ на твой же вопрос «какие канают на рутину» — забавно, но это тоже слон |
python ~/.claude/scripts/elephant.py status — все слоны одной таблицей: прогресс, осталось, ETA.
python E:\Obsidian\_imports\youtube-history\yt_drip.py report — что накоплено по YouTube.
Соседи: _Dashboards\Fleet-Routines.html (кто из флота что крутит) · _Dashboards\Task-Backlog.html (реестр задач) · заметка раздела 05-Resources\YT-Watch-History\_YT-Watch-History-MOC.md