본문으로 건너뛰기
cccskills
무료GitHub에 공개

social-daily

Единый вход публикации контент-фабрики на все живые площадки: Facebook, X, Telegram-каналы, Threads, Instagram. Публикую САМ. Триггеры: /social-daily, /autopost, /postall, постить везде, разгреби очередь постинга, прогони автопостинг, постим следующий, поставь в отложку, что в очереди постинга, next social post. НЕ путать: /fb-post /x-post /tg-post = точечная дверь под один пост.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md20.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

/social-daily — автопостинг на FB + Threads + Instagram

⛔ ЛИЧНОСТЬ БРАУЗЕРА (канон 30.08.2026). Chrome профиля Default на хабе = личность Антона (claude.ai там под [рабочий аккаунт], всегда). Робот здесь ЧИТАЕТ и действует, но НЕ ТРОГАЕТ ЛОГИНЫ: ни logout, ни смены аккаунта, ни «самолечения входа», ни инжекта кук. Увидел «не тот аккаунт» → доложи и работай из робо-профиля (_chrome_profile_a2, Firefox-профили). Канон: reglament-hab-brauzernye-lichnosti-bb-i-roboty.

Зачем. Раньше у каждой площадки была своя лесенка: у FB — движок-селектор, у Threads — проза внутри scheduled-задачи, у Instagram — ничего. Очереди рассинхронились и обе замёрзли 14.07 молча: трекер перестали пополнять, селектор честно видел ноль, лейн стоял 16 дней при живом производстве в канале. Один контракт + одна очередь + один счётчик темпа убирают этот класс.

Жёсткие правила (не обходить)

  • ⭐ ПУБЛИКУЮ САМ. Гейт [коллега] снят приказом Антона 06.08.2026 («гейт [коллега] снят»), окно апрува = 0 часов с 05.08. Правило Антона 11.08.2026 дословно: «если за 24ч [коллега] не дала ОК — ты постишь сам». То есть ОК не ждём вообще; если материал почему-то отправлен ей на просмотр — таймер 24 часа, потом публикую без него. ⛔ «Набил в композер и жду клика» = провал прогона: человек в СЕРЕДИНЕ конвейера — баг архитектуры ([[human-is-the-bottleneck]]).
  • Что осталось выше меня (это НЕ отменено): paused в registry/limits.json — аварийный стоп-кран площадки у [коллега] и Антона · Tier-2 (деньги, юр.обязательства, секреты 3-м лицам) · приватность (private ⛔ наружу, personal — обобщённо) · матрица форматов platform_rules.json · slop_gate FAIL = переписать сейчас · IP-гейт §7.2. Увидел BLOCKED by registry — это работающий стоп-кран, а не сбой: не обходить.
  • ⭐ ОДНА ДВЕРЬ. Перед отправкой спросить pub_registry.can_post(<платформа>), после — записать факт в registry/pub_ledger.jsonl. Постинг мимо реестра = баг: замер 11.08.2026 — TG/X/FB публиковали десятками, а pub_ledger стоял с 10.08 и день-леджер честно показывал «FB 0 · X 0». Слепой прибор врёт в обе стороны.
  • §7.2 IP-гейт. Постинг FB/Threads/Instagram — с постоянного IP (хаб). Селектор проверяет узел сам: gate.mode == "block" → не постим отсюда, шлём задачу разрешённому узлу текстом по шине.
  • Темп режет fb_guard, не глазомер. guard.ok == false → стоп, назвать слот. Один ledger на все площадки — второй счётчик не заводить.
  • Голос — готовый текст Антона, не переписываем и не выдумываем. Нет тела — нет поста.
  • Один текст дважды не постим. Селектор берёт только незапощенное; вручную его не обходить. Перед FB-постом сверить реальную стену (трекер — не истина о стене, дубли 10.07 и 12.07).

Шаг 0-бис. ⭐ ТРОЙКА ДНЯ — сперва проверь её (приказ Антона 23.08.2026)

Каждый день наружу обязаны уйти три поста за ПРЕДЫДУЩИЙ день: 🏆 итог дня · 💥 факап дня · ❓ боль дня. Канон: reglament-ezhednevnaya-troyka-postov-itog-fakap-bol, память daily-ask-and-fail-lanes.

python [путь владельца] build --day <вчера>
  • Полосы пусты при живых кормушках → полоса молчит честно. exit 1 / блок «🔴 КОРМУШКА СЛОМАНА» → чинить источник, не постить.
  • Публикует [коллега]; Антон правит, не успел за 24ч — публикуем как есть, человека дольше суток не ждём.
  • ⛔ @ClawRus — не публикуем вообще · ⚠️ @ClawEng — не чаще 1 поста в сутки (limits.json, темп-гейт вернёт блокер сам).
  • После публикации отметить полосу: daily_community.py consumed --day D --lane win|fail|ask --note "...".

Шаг 0. Что вообще в очереди (0 токенов)

python3 ~/.claude/scripts/social_next_pending.py --board

Печатает по всем площадкам: сколько опубликовано, сколько в очереди, и поимённо все блокеры. Дальше идём только по площадке со статусом ГОТОВ.

Шаг 1. Взять следующий

python3 ~/.claude/scripts/social_next_pending.py --platform fb
python3 ~/.claude/scripts/social_next_pending.py --platform threads
python3 ~/.claude/scripts/social_next_pending.py --platform instagram

Читаем: can_post, blockers[], gate, guard, next.

  • can_post == false → стоп, доложить блокеры словами. Не обходить.
  • gate.mode == "warn" → постим, но карв-аут упоминаем в отчёте (узел формально не по канону).

Шаг 2. Тело поста — по лейнам

⭐ Перед набивкой любого лейна — ИСТОРИЯ, НЕ ТЕЗИС (anton 02.09.2026, голосом hub:6094; канон reglament-vsegda-rasskazyvay-istoriyu-storytelling, память [[storytelling-always-package-as-story]], гейт /taste-check P34): у тела поста есть герой · реальная ситуация · перелом · вывод. Голое наблюдение без контекста и жаргон без бытовой аналогии («упала рутина», «протух Python») → переписать: планка читателя — не-инженер, ELI5. ⭐ Пре-тест (anton 03.09): сюжет = ЖИВОЙ ЧЕЛОВЕК и эмоции (неудачи·страдания·деньги·стыд·камбэк), железо — декорация; «герой — инфраструктура» = переписать через человека. Каркас поста 60–120 слов = ABT («и…, НО…, ПОЭТОМУ…»); факап дня = расследование со ставкой (сцена → неверная гипотеза → улика → причина → что изменили), не исповедь; приёмка = чек-лист 10 вопросов в разделе «Чек-лист приёмки» $OBSIDIAN_VAULT\03-Insights\Operations\reglament-vsegda-rasskazyvay-istoriyu-storytelling.md. ⛔ Упаковка ≠ право менять слова Антона (§9.7) и раздувать объём (§9.4).

FB (body_source: channel): telegram MCP, аккаунт [рабочий аккаунт], get_message_context chat_id=[аккаунт] message_id={next.channel_msg} context_size=0. Тело = весь текст до разделителя ---. 1-й коммент собрать из next.links:

📖 Лонгрид для людей (EN): {longread_en}
🤖 Версия для машин (devlog): {devlog}
Что будет дальше — подпишитесь: t.me/ClawRus
Написать напрямую двум кофаундерам: WhatsApp +1 341 222 9178

Threads (body_source: bank): текст уже готов — next.text из банка _Dashboards/Threads-Posts-Bank.md. Лимит 500 знаков (next.over_limit подскажет). Стиль: без длинных тире, без буквы «ё» (пишем «е»), эмодзи 0-1, без хэштегов, живо, вопрос/CTA в конце. Осталось [ ] меньше двух → сперва пополнить банк: прочитать свежие посты [аккаунт], разбить идею на standalone-микро-посты ~150 знаков, дописать секцией со статусом [ ]. Не дублировать уже помеченное [x].

Instagram (body_source: card, needs_image: true): лента не принимает пост без картинки. Рендерим карточку:

python3 ~/.claude/scripts/social_card.py --text "<тело>" --kicker "<тема>" --footer "<дата>" --out ~/Downloads/ig_card.png

Откажет с цифрами, если текст не влезает → сократить или разбить на карусель (несколько карточек). Подпись поста — тот же текст (до 2200 знаков).

Шаг 3. НАБИТЬ И ОПУБЛИКОВАТЬ

Chrome — живой залогиненный (claude-in-chrome), не headless. Не залогинен → это блок для человека, логин/2FA не трогаем.

  • FB: поле «What's on your mind, Anton?» → модалка Create post → клик в текст → type тело (в композере Enter = перенос строки, безопасно).

  • Threads: поле «What's new?» → модалка New thread → проверить, что активен antondzi → type. ⚠️ Грабли: первый клик часто сдвигает layout и теряет фокус — кликнуть второй раз и скрином убедиться, что текст лёг. Кнопка Post уезжает вниз после ввода — кликать по актуальной координате со скрина, не по памяти.

  • Instagram: Create → Post → загрузить PNG → Next → подпись.

  • X ([аккаунт]): вкладка x.com, сверить залогиненный handle по реестру, композер «What's happening», ≤280 знаков на твит (длиннее — тред через reply на свой твит). Темп: _shared/social_guard.py check x.

  • Telegram-каналы: не через браузер, а через MCP telegram аккаунтом [рабочий аккаунт] (send_message по id из 00-System\Channels-Registry.md). Матрица форматов: лонгрид целиком в канал ⛔ — только тизер + ссылка.

Всегда: скриншот (save_to_disk:true) — доказательство, что набито именно то.

Шаг 4. ⭐ Публиковать сейчас или положить в ОТЛОЖКУ

Человека не ждём (правило выше). Решение принимаю сам по темпу и времени суток:

  • Сейчас — если дневной кап не выбран и материал привязан ко дню (факап дня, вопрос дня, свежая веха).
  • В отложку — если постов за сегодня уже много, стоит глубокая ночь по аудитории, или разгребаю накопленный бэклог пачкой (тогда размазываю по дням, а не вываливаю стеной).

FB умеет нативную отложку — проверено вживую 11.08.2026 (профиль Антона профессиональный, Content Library доступна): facebook.com/professional_dashboard/content/content_library/ → вкладки Published · Scheduled · Drafts, плюс раздел Planner (календарь). Планировать можно двумя путями: (а) в композере поста кнопка Create → Schedule post и выбор даты/времени; (б) из Content Library → Create. Проверить результат — вкладка ?filter=SCHEDULED: запланированное видно строкой «Scheduled • <дата, время>». ⚠️ Отложка = тоже публикация: она так же считается темпом и так же пишется в pub_ledger (событие scheduled с полем времени), иначе тот же класс слепого прибора. X, Threads, Instagram нативной отложки под нашей рельсой не имеют — там либо сейчас, либо оставить в очереди с явной причиной.

Шаг 5. Публикация

  1. Опубликовать (FB: Next → Post settings → Post; при отложке — Schedule).
  2. Скрин-подтверждение («Just now» / тост «Posted»).
  3. Записать темп: python3 ~/.claude/scripts/fb_guard.py record post --platform <fb|threads|instagram> (для FB --platform можно опустить).
  4. Забрать пермалинк: FB — клик «Comment», URL из таба; Threads — профиль [аккаунт], клик по таймстампу верхнего поста; IG — клик по посту в профиле.
  5. FB: 1-й коммент (печатать построчно, между строк shift+Return, отправить синей стрелкой — в комменте Enter = отправка) + селф-лайк.

Шаг 6. Реестр + трекер СРАЗУ + шина

Сначала реестр — это одна дверь наружу, а не отчётность. В [путь владельца] дописать строку по факту: {"event": "posted"|"scheduled", "id": "<id материала>", "platform": "<fb_wall|x_en|tg_paloaltoairu|threads|...>", "url": "<пермалинк>", "title": "<коротко>", "at": "<ГГГГ-ММ-ДДTЧЧ:ММ>"} (для scheduled — at = время публикации, плюс "scheduled_from" = сейчас). Не записал — считай, что не постил: день-леджер и все дашборды читают именно этот файл.

Дальше не копить пачкой — писать статус в тот момент, когда забрал пермалинк.

cp <трекер> <трекер>.bak-$(date +%Y%m%d-%H%M%S)     # бэкап перед правкой

Правим строку {row_id} в _Dashboards/content-distribution-tracker.html (живой файл в волте, не в браузере): status:'✅ Запощен', url:'<пермалинк>', date:'<сегодня>', note += «✅ выложил Claude ({оператор}); источник {откуда тело}». Threads дополнительно: в банке [ ] → [x] + ✅DD.MM → <пермалинк>.

python3 ~/.claude/scripts/bus_send.py ALL "✅ {площадка}: пост {N} выложен → {url}. Обновил {row_id}. ХАБУ: при перепечке трекера не затирай статус."

Шаг 7. Доклад одной строкой

«✅ {площадка} пост {N} — опубликован + коммент + трекер. Сегодня N/{кап}. Следующий: {что} в слот ~{время}.»


Стоп-краны

  • Любой варнинг площадки (checkpoint, «слишком часто», подтверждение личности) → немедленно стоп, не ретраить, доложить.
  • gate.mode == "block" → отсюда не постим. Задачу — на разрешённый узел по шине.
  • Текст не влезает в карточку IG → не обрезать молча, сократить или карусель.
  • Логин/пароль/2FA не трогаем.

Инструменты

ЧтоГде
Селектор очереди + нода-гейт~/.claude/scripts/social_next_pending.py
Конфиг площадок (узлы, капы, стиль)~/.claude/social_targets.json
Счётчик темпа (один на все площадки)~/.claude/scripts/fb_guard.py
Текст → PNG для Instagram~/.claude/scripts/social_card.py
Тесты~/.claude/scripts/_test_social_autopost.py
Паспорт детали00-System/Social-Autopost-Passport.md

Связанное

fb-daily (скилл удалён, поглощён этим) — прежний одно-площадочный предок (его селектор fb_next_pending.py теперь шим над общим движком, контракт не менялся). /fb-post — разовый постинг конкретного текста. /fb-reply — комменты. /content-mine — пополнение воронки.

Открытый вопрос к Антону

Канон §7.2 (16.07) требует постить FB/Threads только с хаба (постоянный IP), а живые рутины fb-daily-poster и threads-daily-poster заведены раньше (08–09.07) на [машина флота]. Сейчас узел пускается по карв-ауту с пометкой. Решение Антона: мигрировать оба лейна на хаб или узаконить карв-аут в каноне. Instagram как новый лейн заведён сразу по канону — только хаб.

Анти-слоп гейт (anton 14.08)

Любой ИИ-написанный текст наружу из этого скилла перед отправкой - финальный проход /ai-slop (ban-лист + ритм). Исключения ровно три: текст с плашкой Майкрофта (§3.3) · машиночитаемое (GitHub/техдока/dev-log/journey-machine) · текст, написанный Антоном руками. Канон: reglament-posty-ot-lica-antona-tolko-cherez-ai-slop.

<!--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.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

03

무료

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tonydzi/second-brain-starter-kit122026년 10월 20일 업데이트

1

무료

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".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tonydzi/second-brain-starter-kit122026년 10월 20일 업데이트

agenda

무료

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".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tonydzi/second-brain-starter-kit122026년 10월 20일 업데이트

ai-slop

무료

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tonydzi/second-brain-starter-kit122026년 10월 20일 업데이트

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".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tonydzi/second-brain-starter-kit122026년 10월 20일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

tonydzi/second-brain-starter-kit122026년 10월 20일 업데이트

tonydzi의 스킬 모두 보기

이 스킬의 문제 신고