Marketing Foundation
Compact two-skill starter: clarify positioning and choose a lead magnet. Use Marketing Launch for the broader eight-skill go-to-market workflow.
The tunnel uses the same cards as the catalogue. Browse only as deep as needed — or load a broad bundle immediately.
SEO, Sales, Agents or another broad area → one bundle call → work.
Read-only access to published skills. Default 8, maximum 10 skills / 120,000 characters.
Compact two-skill starter: clarify positioning and choose a lead magnet. Use Marketing Launch for the broader eight-skill go-to-market workflow.
Build an evidence-led marketing plan from ICP and competition through positioning, campaigns, growth and measurement.
Diagnose architecture and context, plan agent-team responsibilities, then organize project context and session handoffs. Memory and cost-runtime reviews remain outside this pack.
Review the journey from landing page and lead capture through registration, first value and transparent upgrades.
Plan a campaign, draft its channel content and review the work against actual brand guidance.
Prioritize an editorial roadmap and plan how to launch and distribute it across suitable channels.
Understand customer needs, compare competitors and plan a community around real member value.
Choose a relevant lead magnet, then draft a permission-based nurture journey with entry, suppression and exit rules.
Define the API contract, then plan how to observe its latency, failures and retries. Guidance and checklist; no production changes.
Profile a dataset, choose and interpret statistical methods, then validate calculations and conclusions before sharing.
Define the target account, prioritize buying signals, plan a human LinkedIn engagement routine and prepare evidence-led responses to buyer concerns.
Plan bounded scheduled agent runs with stop conditions and oversight.
--- name: agent-self-scheduling description: "Schedule AI agent runs with cron, loops, or external clocks while avoiding unsafe tight autonomous timers." category: agent-orchestration risk: critical source: community source_repo: davidondrej/skills source_type: community date_added: "2026-07-07" author: davidondrej tags: [agents, scheduling, automation, cron] tools: [claude, codex] license: "MIT" license_source: "https://github.com/davidondrej/skills/blob/main/LICENSE" --- # Agent Self-Scheduling ## When to Use - Use when the user asks for recurring, scheduled, heartbeat, or looped agent work. - Use when you need to choose between cron, external schedulers, hooks, or built-in agent scheduling. First question: does the agent have a built-in scheduler (Hermes → Camp B), or do you own the clock (everything else → Camp A)? Universal floor: cron is 1 minute minimum (5-field expr, no seconds) — every camp. For sub-minute you MUST use a `while ...; sleep N; done` loop, a TS extension, or an event hook. Never put an LLM on a tight timer. ## Camp A — one-shot agents, you own the clock These run once and exit (amnesiac unless resumed). Schedule them externally. ```bash claude -p "PROMPT" --output-format json --allowedTools "Read,Edit,Bash" # Claude Code codex exec --json "PROMPT" # Codex pi run "PROMPT" # Pi ``` Wrap in a clock: ```bash # 1. cron (>= 1 min floor) */10 * * * * cd /path/to/project && pi run "check X and report" >> ~/agent.log 2>&1 # 2. systemd timer (Linux, survives reboot, better logging) — OnUnitActiveSec=10min # 3. dumb loop (sub-minute, or no cron available) while true; do pi run "check X"; sleep 30; done ``` Gotchas (each breaks unattended runs if ignored): - **Permissions hang forever.** Pass `--allowedTools` (Claude) or sandbox/auto-approve flags (Codex), or the run blocks on a prompt. - **Use JSON output** (`--output-format json` / `--json`) so the wrapper parses results deterministically. - **Runs are amnesiac.** Resume (`codex exec resume --last`) or persist state to a file the next run reads. Pi has NO built-in scheduler/loop/heartbeat by design — external clock only (or a TS extension for agent-side timers). ### cmux — orchestration only, NO scheduler cmux has no timer/watch/cron. Three ways to loop it: orchestrator-driven (`send` → `sleep` → `read-screen` on your own clock), a dumb while-sleep wrapper, or — preferred — event-driven via `cmux notify` + OSC terminal hooks, which is cheaper and more responsive than polling. `read-screen` is non-interruptive, safe to poll. If a loop checks another agent, send the user a one-line status each check: what the agent is doing, on track or not. (Claude Code may prefill a predicted next user message after finishing — that's Claude, not the user.) ## Camp B — Hermes built-in scheduler Hermes' gateway ticks every 60s and runs due jobs in fresh isolated sessions. State-check first: ```bash hermes gateway install # user-level ( --system to survive reboot) hermes cron create "every 1h" "summarize new emails and report" --skill himalaya hermes cron create "0 9 * * *" "post daily standup" # cron expr hermes cron create "30m" "one-shot reminder in 30 min" # one-shot delay ``` Hermes-unique: **zero-token mode** (run a script, deliver stdout verbatim — use for watchdogs), **chaining** (`context_from` pipes one job's output into the next), **self-terminating loops**, and **loop safety** (scheduled sessions cannot create more cron jobs — don't schedule from inside a scheduled job). Each run is a fresh session: the prompt must carry all context. ## Heartbeat pattern One fast recurring tick gates many slower per-task checks: the tick reads a task list + per-task `last_run` timestamps and only acts on tasks that are due. In Hermes use a recurring job (zero-token mode when nothing's due); in Camp A use a while-sleep loop. Define active-hours, and stay silent when nothing is due — no empty noise. ## Verify it fires (before reporting success) 1. Camp A: log file grows after one interval, or run the wrapped command once by hand → clean JSON, exit 0. 2. Camp B: `hermes cron list` shows the job + sane `next_run`; trigger a run-now to confirm delivery. 3. Confirm permission/sandbox flags are present — the #1 silent failure is a hung permission prompt. 4. Heartbeats: confirm a nothing-due tick stays silent. ## Limitations - Adapted from `davidondrej/skills`; verify local paths, tools, credentials, and agent features before acting. - For commands, remote access, scheduling, browser automation, or file-changing workflows, get explicit user approval and confirm the target environment first.
Plan bounded scheduled agent runs with stop conditions and oversight.
The complete original guidance with attribution and declared limits.
Clarify the evidence and task scope, then use the source guidance within actual authorization.
Task cadence, resource limits, owner, stop conditions and actual scheduler.
Original frontmatter declares MIT; its notice and named author are preserved. Referenced runtimes, scripts, integrations and sibling skills are not bundled or installed. Brief obvious-danger screening only; no functional test or comprehensive safety certification. Loading this text authorizes no external action.
Use Agent Self-Scheduling for [TASK]. Clarify Task cadence, resource limits, owner, stop conditions and actual scheduler. Identify evidence gaps and missing dependencies. Do not claim results, approval or execution without evidence.
Treating this attributed guidance as installed software, professional certification or authorization for external actions.
German routing and delivery limits. Original attribution: davidondrej. Original frontmatter declares MIT; its notice and named author are preserved. Referenced runtimes, scripts, integrations and sibling skills are not bundled or installed. Brief obvious-danger screening only; no functional test or comprehensive safety certification. Loading this text authorizes no external action.
MIT License Copyright (c) 2026 Pawel Huryn Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copy the text below, then paste it into your chat.