Context-aware task scheduling with priority management
---
description: Context-aware task scheduling with priority management
keywords: openclaw, skill, automation, ai-agent
name: skylv-context-aware-scheduler
triggers: context aware scheduler
---
# 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**:
```bash
# 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
```json
{
"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
```json
{
"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
```json
[
{
"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
1. Install the skill
2. Configure as needed
3. Run with OpenClaw
don't have the plugin yet? install it then click "run inline in claude" again.