skills/daily-digest/SKILL.md
Daily Digest — Chief-of-Staff role consolidates the six top-managers into one Telegram message to the Commander, instead of six. Implements the protocol from agent-proactivity.md.
npx skillsauth add razbakov/skills skills/daily-digestInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Chief-of-Staff orchestrates the daily digest: collects review-ready slots from the top-manager agents, consolidates into one message, sends to the Commander via Telegram, saves to sessions.
Implements ~/Projects/ikigai-team/rules/agent-proactivity.md. Read that for the
philosophy (cadence triggers, review-ready threshold, focus signal, digest discipline).
This skill is the executable contract.
/daily-digest.Read these from the project's CLAUDE.md and agent files:
.claude/agents/<name>.md. The Chief-of-Staff role is
whichever agent has "Daily Digest Protocol" in their file..bin/telegram-send.py --agent <chief>).ops/focus.md. Read most-recent entry.ops/sessions/. Save digest there.If any of these are missing, halt and tell the user what's needed — do not guess.
open / clear / absent,
treat as no-focus.For each participating manager:
Daily digest slot — <date> (<dow>)
Focus: <current focus or "open">
Per your Cadence section, scan your domain and reply with ONE of:
- A review-ready slot (≤ 5 lines) in the format from agent-protocols.md:
Why: <KR>
What: <one or two lines>
Media: <link · screenshot · doc>
Asking: <decision>. Default: <action> by <time> unless objection.
- "nothing to surface" if no decision/outcome/drift to report
Reply by <deadline, typically T-15 min before send>.
Suppression gate — check this FIRST. If every collected slot is "nothing to surface"
(including "no reply") — i.e. no manager reported a pending decision, a delivered outcome,
or a drift — then there is nothing review-ready. Do NOT send anything to Telegram.
Skip straight to Phase 4, record the silent cycle, and exit. A digest that is only
"nothing to surface" lines is exactly the noise this protocol exists to prevent
(agent-proactivity.md: "a daily silent cycle is a healthy cycle"). Only proceed to
formatting and sending when at least one slot carries real review-ready content.
Format the digest:
Daily digest — <date> · focus: <current focus or "open">
<Chief role> (<role-tag>): <slot>
<Manager 1> (<role-tag>): <slot>
<Manager 2> (<role-tag>): <slot>
...
Send via the project's documented sender (e.g., .bin/telegram-send.py --agent <chief> --file <digest-file>).
Save to <sessions-dir>/<date>-daily-digest.md. Include:
The cycle is always logged, even when nothing is sent — silence is recorded, not invisible.
After send, watch for Commander replies. Parse per agent-proactivity.md:
ok / ship it / yes → consent now, route to originating managerno / change X / do Y instead → revise request, route to originating managerpause / hold → mark the open ask paused, log to sessionsfocus: <theme> → append to ops/focus.md with timestampIf the Commander replies to a specific slot only, route that decision to that manager without disturbing other open asks (their time-boxes age normally).
This skill handles the routine daily flow only. Out-of-cycle event triggers (urgent items: prod incident, festival contact mid-day, partnership emergency) bypass the digest — the originating manager sends directly. Do NOT include those in the digest after the fact; they had their own thread.
Putting the protocol in a skill (instead of inline prose in the Chief's agent file) makes the flow:
/daily-digest invocation runs the same path as crontools
--- name: handoff description: Get an agent past a browser/UI wall it can't (or must not) cross on its own — a login-gated dashboard, a CAPTCHA, a 2FA prompt, an API that keeps rejecting the write, or an irreversible click that policy says a human must make. This skill is an ESCALATION LADDER, not a first move: it tells you to try the automated browser surfaces FIRST (Chrome-in-Claude, computer-use, an autonomous browser sub-agent) and only fall back to the Handoff app — a wrapper browser that h
documentation
Summarize one or more YouTube videos from their links. Use this whenever the user pastes a youtube.com or youtu.be URL (or several) and wants to know what it's about — phrasings like "summarize to telegram", "tldr these videos", "what do these say", "summary of this talk", or just dropping links with no instruction at all. Fetches each video's real transcript via yt-dlp (not the page text, which never contains the transcript), cleans the captions, and writes a per-video summary. Default delivery is Telegram; honor any other surface the user names ("to my notes", "just here in chat", "email it"). Trigger even when the user only pastes bare links — bare YouTube links almost always mean "tell me what's in these".
development
Seed a new or empty Instagram account with a 9-post grid (3×3) so the profile looks established the moment a new visitor lands. Designed for festivals, new businesses, product launches, conferences, communities — any time an empty IG profile would hurt conversion from external traffic (QR scans, flyer drops, cross-promo). Generates assets via /image-from-gemini (per content-publishing rules — never HTML), writes captions with hashtag sets, and outputs a posting order + cadence plan. Trigger generously: phrases like '9 posts for instagram', 'fill my IG', 'starter grid', 'launch grid', 'instagram seed', '9-post grid', 'IG account not to look empty', 'first instagram posts', 'feed bootstrap', '3x3 grid', 'instagram launch content'. Even if the user mentions only one piece (just the images, just the captions, just the order), use this skill — the grid only works as an integrated bundle.
testing
Translate one English blog post into multiple target languages via parallel sub-agents, preserving frontmatter conventions, hero image, and brand voice. Use when the user shares a published English post URL or markdown path and says 'translate it', 'add other languages', 'publish in DE/ES/RU/UK', 'translate to 5 languages', or asks for localized versions of a specific post.