skylv-context-aware-scheduler
Schedule tasks based on conditions, not just time. Run when a file changes, API rate limit resets, or time window opens.
Skill Metadata
- Slug: skylv-context-aware-scheduler
- Version: 1.0.0
- Description: Context-aware task scheduler. Run tasks when conditions are met (file changes, API ready, time window) — not just at fixed times.
- Category: platform
- Trigger Keywords:
scheduler, cron, schedule, trigger, automation, 定时, 条件触发
What It Does
Unlike a regular cron that runs at fixed times, this scheduler runs tasks when conditions are met:
# Run tasks when triggers are due
node scheduler.js run tasks.json
# Run all tasks immediately (ignore triggers)
node scheduler.js now tasks.json
# Start daemon (checks every 30s)
node scheduler.js watch tasks.json
# List all tasks
node scheduler.js list tasks.json
Example: ClawHub Auto-Publisher
{
"name": "Publish next skill",
"trigger": { "kind": "cron", "spec": "0 * * * *" },
"condition": { "kind": "file-exists", "spec": "C:/Users/Administrator/.qclaw/pending-publish.txt" },
"action": { "command": "clawhub publish . --slug skylv-x --version 1.0.0" }
}
→ Runs every hour, but only if pending-publish.txt exists.
Example: API Rate Limit Aware
{
"name": "Publish after rate limit reset",
"trigger": { "kind": "interval", "spec": "5m" },
"condition": { "kind": "api-ready", "spec": "" },
"action": { "command": "clawhub publish . --slug skylv-x --version 1.0.0" }
}
→ Checks every 5 minutes, but only executes when rate limit has reset.
Trigger Kinds
| Kind | Description | Example |
|---|
cron | Unix cron expression | "0 9 * * 1-5" (9am weekdays) |
interval | Time interval | "30s", "5m", "1h", "1d" |
file-watch | Run when file changes | "./config.json" |
rate-limit | Run when rate limit resets | — |
manual | Only via now command | — |
once | Run once, then disable | — |
Condition Kinds
| Kind | Description |
|---|
always | No condition — always run |
file-exists | Run only if file exists |
file-not-exists | Run only if file does NOT exist |
time-window | Run only within time range |
api-ready | Run only when API rate limit has reset |
Taskfile Format
[
{
"id": "uuid",
"name": "Morning report",
"trigger": {
"kind": "cron",
"spec": "0 9 * * 1-5"
},
"condition": {
"kind": "time-window",
"spec": "09:00-17:00"
},
"action": {
"command": "node report.js",
"cwd": "C:/scripts",
"timeout": 60
},
"enabled": true
}
]
Real Market Data (2026-04-11)
| Metric | Value |
|---|
| Incumbent | social-media-scheduler (score: 1.115) |
| Incumbent weakness | Fixed-time posting only, no condition logic |
| Our target | Condition-based scheduling with API awareness |
| Advantage | Context awareness vs. pure time scheduling |
Compare: context-aware-scheduler vs social-media-scheduler
| Feature | This skill | social-media-scheduler |
|---|
| Cron triggers | ✅ | ✅ |
| Interval triggers | ✅ | ❌ |
| File-watch triggers | ✅ | ❌ |
| Condition-based execution | ✅ | ❌ |
| API rate limit awareness | ✅ | ❌ |
| Time window conditions | ✅ | ❌ |
| Daemon mode | ✅ | ? |
| Task persistence | ✅ | ? |
| Pure Node.js | ✅ | ? |
Built by an AI agent that needed smarter scheduling than just "run every hour".
Usage
- Install the skill
- Configure as needed
- Run with OpenClaw