Skip to content
cccskills
FreePublished on GitHub

elephant

Eat the elephant one bite at a time: turn a large list-shaped job into a finite routine that chews a small batch every night, detects when it is done, switches itself off and reports. Triggers: /elephant, eat the elephant, split into bites, make it a routine, ten a day, backfill everything.

The English summary is being prepared. Showing the original description.

Works withTelegram
See how to install

Files included (1)

  • SKILL.md17.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

🐘 Слон — большая работа как конечная рутина

Зачем это существует

Приказ Антона 23.08.2026, голосом, дважды: «рутина может съесть слона за 100 или за 1000 присестов, потихонечку… поняла, что задачу выполнила — выключилась и сказала».

Повод был конкретный: он месяц руками вытаскивал тысячи своих YouTube-видео и получил бан от площадки. Та же работа по 12 штук за ночь не банится вообще и не требует его присутствия ни разу.

До 23.08 у нас было ~49 app-рутин и ~160 OS-рутин, и все до одной бесконечные — крон по расписанию, живут вечно, конца не предусмотрено. Класса «рутина с концом» не существовало, поэтому большие списочные работы делались героическими сессиями, которые выдыхались на середине.

Движок: $USERPROFILE/.claude/scripts/elephant.py (0 LLM, чистый SQLite). Этот скилл — решение «слон или нет» и рецепт сборки.


Шаг 1. Судить: слон это или нет

Тут скилл зарабатывает своё существование. Соблазн ответить «да» на всё крупное — главная ошибка, потому что слон, натравленный не на ту работу, режет её на куски, каждый из которых бессмыслен без остальных.

Различай две разные крупности:

что этопризнаклечение
ШИРОКАЯN одинаковых кусков, N велико«список из 2241 видео»🐘 слон
ГЛУБОКАЯодна трудная вещь«спроектировать архитектуру», «написать лонгрид», «провести переговоры»👤 сессия или разбивка на параллельные сессии (CLAUDE.md §9.2 ②)

Слон ест только ШИРОКОЕ. Размер сам по себе ничего не решает.

Признаки ЗА (нужно ≥2, причём первый обязателен)

  1. Список однотипных кусков, и он длинный — десятки, сотни, тысячи. Куски взаимозаменяемы: кусок №700 обрабатывается так же, как №3.
  2. Кусок механический — его делает код или узкий вызов, а не размышление и не разговор.
  3. Список сам не кончится — он пополняется (история браузера, новые диалоги) либо просто огромен.
  4. ⭐ Работа спотыкается о живое препятствие — участие Антона, лимиты вендора, баны площадки, ночные окна. Это признак-фаворит: Антон назвал его первым, и он сильнее размера. Именно он превращает «героическую сессию на месяц» в спокойную рутину.

Стоп-признаки — при любом ОДНОМ слона НЕ заводим

  • 🚫 Есть срок. Слон медленный ПО ЗАМЫСЛУ (мы нарочно спим между кусками, чтобы не ловить бан). Дедлайн → обычная сессия, слон не успеет.
  • 🚫 Куски зависят друг от друга. Нельзя сделать кусок №50, не держа в голове №49 → это глубокая работа, слон её искалечит.
  • 🚫 Каждый кусок требует суждения, вкуса или переписки с человеком. Это не капельница, а разбивка на параллельные человеко-сессии.
  • 🚫 Список короче ~20. Одна сессия съест за раз; конвейер ради трёх гвоздей — нарушение АК-47.

Что сказать по итогам

Вердикт одной строкой, всегда явный:

  • 🐘 слон — плюс какие признаки сошлись;
  • ♾ бесконечная рутина — конца нет по природе (синк флота, сбор входящих). Это тоже рутина, но без --quota и без самовыключения;
  • 👤 не слон — назвать, какой стоп-признак сработал, и предложить правильное лечение. Честное «не слон» — это успех скилла, а не отказ.

Шаг 2. Назвать потребителя ДО стройки

Правило Connect: у слона обязан быть тот, кто съест результат. Слон, чей выход никто не читает, — это 186 дней работы в мусор.

Ответь письменно, до первой команды:

  • кто потребитель — RAG-индекс, дашборд, CRM-поле, конкретный человек;
  • как поймём, что результат потребляется — метрика, а не надежда;
  • что произойдёт, когда слон доест — куда уходит финальный доклад.

Нет ответа → не заводить. Это гейт §3.5 «внедряю только критичное сейчас».


Шаг 3. Собрать очередь (сырьё)

Собери список кусков в JSONL — по строке на кусок, с устойчивым ключом (video_id, chat_id, путь к файлу).

Ключ обязан быть стабильным между прогонами. Если ключ — это порядковый номер или что-то, что меняется при пересборке, слон будет жевать одно и то же и никогда не кончится.

Собирай ретроспективу целиком сразу — это дешёвая часть, и она даёт честное число кусков, то есть честную ETA. Ежедневный добор свежего — отдельная, бесконечная половина (см. Шаг 6).


Шаг 4. Завести слона и накормить

python "$USERPROFILE/.claude/scripts/elephant.py" new <slug> \
  --title "<человеческое название>" \
  --quota <кусков за прогон> \
  --os-task "<ИмяЗадачиWindows>" \
  --vault-note "<папка/заметка потребителя>"

python "$USERPROFILE/.claude/scripts/elephant.py" feed <slug> \
  --jsonl <путь к очереди> --key-field <имя поля ключа>

--os-task — это имя задачи планировщика, которую слон сам выключит, когда доест. Без него он не умеет закончиться и превращается в бесконечную рутину.

Подбирая --quota, считай вслух: кусков ÷ (quota × прогонов за ночь) = дней. Если получается больше пары месяцев — либо поднимай quota, либо честно скажи Антону, что работа растянется до такой-то даты, и пусть решает он.


Шаг 5. Рабочий скрипт: ровно четыре движения

На каждом прогоне:

next --n <quota>   →   работа над куском   →   mark --key K --state ok|fail|skip   →   tick --ok N --fail M
  • tick — сердце. Он считает прогресс, ловит конец (todo == 0 → статус done → выключает OS-задачу → доклад в TG-03) и ловит затык (5 прогонов подряд без единого куска → blocked + доклад, но задачу НЕ выключает — это беда, а не финиш).
  • Кусок, упавший 3 раза, выбывает из очереди. Без этого слон не кончится никогда: одна битая ссылка держит рутину вечно.
  • stop / resume — приостановить и вернуть слона, не теряя прогресса.

Скрипт обязан честно падать. Если elephant next вернул не то, что ждали, — выходи ненулевым кодом и пробрасывай его наружу (в .cmd — через %ERRORLEVEL%). Иначе получится прибор, который врёт зелёным.


Шаг 6. Две половины в одном прогоне (если список пополняется)

Часто работа состоит из конечной ретро-очереди и бесконечного добора свежего:

python worker.py harvest --fresh-only   # бесконечная половина: добрать новое
python worker.py run --n 12             # конечная половина: порция ретро-очереди

Конечная половина кончится и выключит себя; бесконечная останется. Так и задумано — скажи это Антону прямо, чтобы «слон доел, а задача всё ещё в планировщике» не выглядело поломкой.


Шаг 7. Грабли, оплаченные кровью

Каждая строка ниже — реальный замер, а не осторожность.

  • ⛔ Журнал прогресса НИКОГДА не кладём в синкаемую папку. Замер 23.08: предшественник YT-Transcript-Trickle-Hub держал журнал в [шина]\_transit\ — 453 прогона за 19 суток дали 39 строк. Синк непрерывно затирал файл, рутина 19 суток жевала одни и те же первые куски, а логи бодро писали «RUN DONE +3 ok». Дом журнала — строго локальный: %LOCALAPPDATA%\claude-elephants\.
  • ⛔ Зелёный код возврата ≠ работа сделана. Замер 26.08: строка слона пропала из реестра, yt_drip.py глотал exit 2, .cmd не пробрасывал ERRORLEVEL — задача трое суток отдавала LastTaskResult=0, не сделав ничего. Проверяй таблицу runs, а не код возврата.
  • ⛔ Порция обязана отдавать РАЗНЫЕ незанятые куски. Замер 27.08: первый прогон съел 12, каждый следующий по 1, сумма прогонов 21 при 14 готовых кусках → часть выдач повторные. Это тот же почерк, что убил предшественника. Поставь красный тест на «next --n N возвращает N разных кусков, ни один из которых не взят».
  • ⛔ Не суди слона по первой ночи. Смотри status через сутки и сверяй фактический темп с обещанным. Расхождение — это поломка, а не «ну оно медленно».
  • ⚠️ Старая задача-предшественник может остаться жить. Перед заведением нового слона проверь, не крутится ли ещё прежняя рутина по той же работе, и погаси её (иногда нужно админское окно Антона).

Шаг 8. Канарейка и доклад

Перед тем как отдать слона в ночь, прогони один полный цикл руками и покажи результат: next → работа → mark → tick, затем status. Один зелёный цикл дешевле недели тихого простоя.

Доложи Антону коротко:

  • вердикт (🐘 / ♾ / 👤) и по каким признакам;
  • сколько кусков, сколько за прогон, к какой дате доест;
  • кто потребитель результата;
  • что произойдёт, когда доест.

Дашборд по §2.4 строй, если фактов больше одного экрана; elephant.py status уже даёт таблицу — не дублируй её стеной текста.


Когда этот скилл обязан сработать САМ

Канон — reglament-dolguyu-rabotu-srazu-sudim-na-rutinu (anton 10.09.2026, голосом): вердикт выносится НА ВХОДЕ, пока работа идёт, а не на разборе в конце.

Четыре повода, любого одного достаточно: работа тянется долго · Антон сказал «занимался месяц» / «по 10 в день» / «ретроспективно вытащить всё» · вижу кучу однотипных шагов · работа спотыкается о его участие, лимиты вендора или баны.

⛔ Ждать вопроса «а это не рутина?» запрещено — этот вопрос от Антона означает, что правило уже не сработало. Автоматическую подсказку даёт хук ~/.claude/hooks/skill_suggest_hook.py, но он лишь страхует: судить обязан я.

Границы

  • Слон не отменяет Tier-2: если куски делают что-то необратимое, наружу или за деньги — это пауза и спрос Антона, сколько бы их ни было.
  • Слон не место для суждения. Если внутри куска нужен вкус или голос Антона — это сессия, а слон в лучшем случае готовит для неё сырьё.
  • Ночное окно (23:00–06:00 Лиссабон) — дом тяжёлых слонов; лёгкие могут идти чаще, если площадка не банит.

Родня

  • CLAUDE.md §4.5-бис (конечные рутины), §4.5 (повтор → рутина), §4.6 (ночное окно), §5.5 (сторож проверяет выход)
  • память finite-routines-eat-the-elephant, yt-watch-history-drip, deterministic-script-gotchas
  • /retro Шаг 4★ — ловит слонов задним числом, на разборе сессии; этот скилл ловит их на входе
<!--kit-footer-->

Like this skill? It is part of second-brain-starter-kit: the second brain we built for ourselves and run every day at Palo Alto AI Research Lab. Install the whole set with npx skills add tonydzi/second-brain-starter-kit. Everything is open source and free, so take what you need.

Flagships worth a look on their own: secondop-panel (a second opinion from a panel of external models), claude-memory-tidy (stop your agent's memory from rotting), telegram-mcp-kit (your own Telegram over MCP in about 15 minutes).

Author: Anton Dziatkovskii, Palo Alto AI Research Lab. Telegram @tonydzi - WhatsApp +1 341 222 9178 - X @Tony_Stef_

Engineers: want to test-drive this setup? Message me. I hand out free starter seeds to engineers who test and report back, and custom skill requests are welcome.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

03

Free

Run an autonomous consensus round between agent peers on several machines: they negotiate a decision over a shared channel and execute it without a human relaying messages. Use when multiple machines must agree on a change. Triggers: "/03", "work it out among yourselves", "find consensus". Wakes the human only for irreversible actions or a deadlock.

The English summary is being prepared. Showing the original description.

tonydzi/second-brain-starter-kit9Updated Oct 20, 2026

1

Free

Recover a session after a hard crash (app died, machine rebooted, context lost mid-work): replay the turn-state ledger for the last requests, files and decisions, run a green/red health ping over the system map, file sync and MCP connectors, then rebuild the previous session history for pickup. Triggers: "/1", "resume after crash", "wake".

The English summary is being prepared. Showing the original description.

tonydzi/second-brain-starter-kit9Updated Oct 20, 2026

agenda

Free

Show the operator's day: today's calendar plus what needs them personally (leads due, people awaiting a reply, deadlines), pulled from Calendar and Telegram and ranked. Read-only: sends and commits nothing. Triggers: "/agenda", "what's on today", "my agenda".

The English summary is being prepared. Showing the original description.

tonydzi/second-brain-starter-kit9Updated Oct 20, 2026

Rewrite machine-written text so it reads like a busy human wrote it: cut 50-70%, break the even rhythm, drop AI-tell words and filler, keep facts and protected terms. Use before publishing any post, reply or email drafted by a model. Triggers: /ai-slop, /slop, humanize, anti-slop, make it shorter and alive.

The English summary is being prepared. Showing the original description.

tonydzi/second-brain-starter-kit9Updated Oct 20, 2026

Decision protocol for strategic work: recall the knowledge vault, run a gap analysis, emit a deep-research prompt for external tools, then synthesize the returned reports into a decision memo. Use before any new product, feature, market, pricing, GTM or architecture call, where local recall alone is not enough. Triggers: "/alfa-search-recall-deepresearch", "alpha protocol", "R+DR".

The English summary is being prepared. Showing the original description.

tonydzi/second-brain-starter-kit9Updated Oct 20, 2026

- КРЕДИТ АВТОРУ ИДЕИ: совет из комментария (TG @ClawRus / @ClawInga, комменты под постами Антона в FB, треды и issue на… Триггеры: “/alpha-credit“, “/credit“, “кто нам это посоветовал“, “запиши совет“, “поблагодари советчиков“, “кому мы должны спасибо“, “кредит автору“, “чей это был совет“, “credit the author“

The English summary is being prepared. Showing the original description.

tonydzi/second-brain-starter-kit9Updated Oct 20, 2026

See all skills by tonydzi

Report a problem with this skill