Setup cron
Outbound sales, autopiloted.
npx -y skills add aitit-inc/leadace --skill setup-cronAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when the user asks to schedule daily-cycle, set up cron, or run daily-cycle every day. Installs an OS-level schedule (macOS LaunchAgent / Windows Task / Linux cron) for `/daily-cycle PROJECT`. Also covers the in-Claude-Code /loop alternative.
SKILL.md
7.3 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
Setup-cron - Schedule Daily Automation
Installs an OS-scheduler entry that runs /daily-cycle <project> headless on a daily schedule. One entry per project: re-running for the same project replaces its entry; entries for different projects coexist.
Before starting: Read ${CLAUDE_PLUGIN_ROOT}/references/workspace-conventions.md and follow the cross-cutting conventions there.
Prerequisites — verify, and abort with the fix if missing
- At least one project exists. None -> "Run
/leadace <your-homepage-URL>first." claudeCLI on PATH (which claude; capture the absolute path). Missing -> offer the/loopalternative.- Headless runs cannot answer permission prompts: any tool without a stored allow rule is denied, and repeated denials abort the run. The user should have run
/daily-cycleinteractively at least once from this directory, answering "always allow" for its tools; if they haven't, warn that scheduled runs may abort until they do. Never compensate with permission-bypass flags — denying un-allowed tools is the intended fail-safe. - The MCP OAuth token is reused from interactive sessions and expires after ~30 days of inactivity; scheduled runs then fail until the user signs in interactively again.
Confirm with the user
Use AskUserQuestion for enumerable choices, plain text for free-form input.
- Project:
$0if given; elselist_projects— exactly one -> use it, several -> ask. - Method: the OS scheduler matching
uname -s, or in-Claude-Code/loop. If/loop: print/loop 24h /daily-cycle <PROJECT_NAME>(runs only while that session stays open) and stop./schedulecloud routines cannot run LeadAce yet — plugin skills and the MCP server are not available in cloud runs. - Schedule: time (24h
HH:MM, local timezone, default09:00) and frequency (every day / weekdays only). - Model: default = omit
--modelso the run uses the user's configured model; add--model <name>only if the user names one. - Show the exact file/command about to be installed and ask "Install now / just print". On print: output the commands and stop.
Invariants of the scheduled command
Every template below must:
- run
<CLAUDE_PATH> -p "/daily-cycle <PROJECT_NAME>" --permission-mode dontAsk(plus--modelif chosen), with<CLAUDE_PATH>absolute — schedulers don't inherit shell PATH - set
CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS=10800000(3 h) — daily-cycle runs its phases as sub-agents, and headless mode otherwise cuts sub-agent waits off at 10 minutes - start in the current session's working directory (
<WORKDIR>=pwd) — plugins, MCP servers, and permission rules are discovered from the cwd, so a different start directory can silently lose the LeadAce plugin - carry
LEADACE_MCP_URLinto the entry's environment if it is set in the current session (self-host) — schedulers don't read shell rc files. Place it alongsideCLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS(plistEnvironmentVariables/ cron line prefix /.cmdset); omit entirely when unset - embed
<PROJECT_SLUG>in every named artifact — scheduler label/task name, plist/wrapper file, crontab tag, log files — so schedules for several projects coexist and replace/remove operations touch only their own project - append stdout/stderr to a log file in the user's home
Templates
Substitute <HH>, <MM>, <PROJECT_NAME>, <PROJECT_SLUG>, <CLAUDE_PATH>, <WORKDIR>, <HOME>.
<PROJECT_SLUG> = the project name lowercased, with every character outside [a-z0-9] replaced by - (collapse runs, trim leading/trailing -).
macOS — <HOME>/Library/LaunchAgents/ai.leadace.daily-cycle.<PROJECT_SLUG>.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>ai.leadace.daily-cycle.<PROJECT_SLUG></string>
<key>ProgramArguments</key>
<array>
<string><CLAUDE_PATH></string>
<string>-p</string>
<string>/daily-cycle <PROJECT_NAME></string>
<string>--permission-mode</string>
<string>dontAsk</string>
</array>
<key>WorkingDirectory</key>
<string><WORKDIR></string>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key><integer><HH></integer>
<key>Minute</key><integer><MM></integer>
</dict>
<key>StandardOutPath</key>
<string><HOME>/Library/Logs/leadace-daily-cycle.<PROJECT_SLUG>.log</string>
<key>StandardErrorPath</key>
<string><HOME>/Library/Logs/leadace-daily-cycle.<PROJECT_SLUG>.err.log</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin</string>
<key>CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS</key>
<string>10800000</string>
</dict>
</dict>
</plist>
Weekdays only: make StartCalendarInterval an array of five dicts, each also containing <key>Weekday</key><integer>N</integer> for N in 1-5.
Write the plist with the Write tool (heredoc escaping is error-prone), then install:
mkdir -p ~/Library/LaunchAgents
launchctl unload ~/Library/LaunchAgents/ai.leadace.daily-cycle.<PROJECT_SLUG>.plist 2>/dev/null
launchctl load ~/Library/LaunchAgents/ai.leadace.daily-cycle.<PROJECT_SLUG>.plist
Linux — user crontab
<MM> <HH> * * * cd <WORKDIR> && CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS=10800000 <CLAUDE_PATH> -p "/daily-cycle <PROJECT_NAME>" --permission-mode dontAsk >> <HOME>/.leadace-daily-cycle.<PROJECT_SLUG>.log 2>&1 # leadace-daily-cycle-<PROJECT_SLUG>
Weekdays only: <MM> <HH> * * 1-5. Install by replacing any existing line with the same tag:
( crontab -l 2>/dev/null | grep -v "# leadace-daily-cycle-<PROJECT_SLUG>" ; echo '<the line above>' ) | crontab -
Windows — Task Scheduler
Write <HOME>\leadace-daily-cycle-<PROJECT_SLUG>.cmd (a wrapper file sidesteps /TR quoting limits):
@echo off
cd /d <WORKDIR>
set CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS=10800000
"<CLAUDE_PATH>" -p "/daily-cycle <PROJECT_NAME>" --permission-mode dontAsk >> "%USERPROFILE%\leadace-daily-cycle-<PROJECT_SLUG>.log" 2>&1
schtasks /Create /TN LeadAceDailyCycle-<PROJECT_SLUG> /SC DAILY /ST <HH>:<MM> /TR "\"<HOME>\leadace-daily-cycle-<PROJECT_SLUG>.cmd\"" /F
Weekdays only: /SC WEEKLY /D MON,TUE,WED,THU,FRI.
Verify, then report
Verification (on failure: show the raw output and stop without claiming success):
- macOS:
launchctl list | grep ai.leadace.daily-cycle.<PROJECT_SLUG> - Linux:
crontab -l | grep leadace-daily-cycle-<PROJECT_SLUG> - Windows:
schtasks /Query /TN LeadAceDailyCycle-<PROJECT_SLUG>
Report: the schedule (time, frequency, project), the installed file/task, the log path, how to remove it (macOS: launchctl unload <plist> && rm <plist> / Linux: crontab -l | grep -v "# leadace-daily-cycle-<PROJECT_SLUG>" | crontab - / Windows: schtasks /Delete /TN LeadAceDailyCycle-<PROJECT_SLUG> /F), and the ~30-day OAuth reminder from Prerequisites.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most project setup skills give in ~1.9k tokens
Counted across 999 of the 1,637 authors here whose files we hold, read 2026-08-07
- Ask one question at a timein 29 of 999, across 28 files
- Detect the package manager from lockfilesin 28 of 999, across 9 files
- Present findings to the userin 26 of 999, across 5 files
- Explore current repo statein 24 of 999, across 3 files
- Update the agent skills block in place if it existsin 24 of 999, across 3 files
- Install husky lint-staged and prettierin 23 of 999, across 4 files
- Create the lintstagedrc filein 22 of 999, across 3 files
- Commit all changed filesin 22 of 999, across 3 files
- Run lint-staged to verify it worksin 22 of 999, across 3 files
- Create the husky pre-commit filein 21 of 999, across 2 files
- Create a prettierrc file if missingin 21 of 999, across 2 files
- Initialize huskyin 21 of 999, across 2 files
Said here and by no other author read
- read workspace conventions first
- offer the loop alternative if cli is missing
- warn if daily-cycle was not run interactively first
- use AskUserQuestion for enumerable choices
- select os scheduler using uname
- stop and print if user chooses print
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.