internal/skills/defaults/scheduled-task/SKILL.md
Create scheduled tasks for recurring or one-time automated execution. Use when users want to set up tasks that run automatically at specified times (daily, weekly, monthly, cron, or one-time).
npx skillsauth add 91zgaoge/memoh-x scheduled-taskInstall 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.
Use this skill when users want to:
Confirm the following with the user (if not provided):
One-time execution (at):
{ "type": "at", "datetime": "2026-03-15T09:00:00" }
Cron expression (cron) — 5-field format: minute hour day month weekday
{ "type": "cron", "expression": "0 9 * * *" }
Common cron examples:
| Expression | Meaning |
|--------|------|
| 0 9 * * * | Every day at 9:00 AM |
| 0 8 * * 1 | Every Monday at 8:00 AM |
| 0 9 * * 1-5 | Weekdays at 9:00 AM |
| 0 0 1 * * | First day of month at midnight |
| */30 * * * * | Every 30 minutes |
| 0 * * * * | Every hour on the hour |
| 0 9,18 * * * | Every day at 9:00 AM and 6:00 PM |
Use the backend API to create scheduled tasks. The API endpoint should support the following payload structure:
{
"name": "Task name",
"schedule": { "type": "cron", "expression": "0 9 * * *" },
"prompt": "Detailed instructions Claude will execute when task runs...",
"workingDirectory": "/path/to/project",
"description": "Optional detailed description",
"systemPrompt": "Optional custom system prompt",
"executionMode": "auto",
"expiresAt": "2026-12-31",
"notifyPlatforms": ["dingtalk", "feishu", "telegram", "discord"],
"enabled": true
}
| Field | Required | Description |
|------|------|------|
| name | ✅ | Short task name |
| prompt | ✅ | Instructions Claude receives when task runs (should be clear and complete) |
| schedule | ✅ | Schedule configuration (see types above) |
| workingDirectory | ❌ | Execution directory (defaults to empty) |
| description | ❌ | Detailed description (defaults to empty) |
| systemPrompt | ❌ | Custom system prompt (defaults to empty) |
| executionMode | ❌ | "auto" / "local" / "sandbox" (defaults to "local") |
| expiresAt | ❌ | Expiration date "YYYY-MM-DD" (defaults to null, no expiration) |
| notifyPlatforms | ❌ | Notification platform array: ["dingtalk","feishu","telegram","discord"] (defaults to []) |
| enabled | ❌ | Whether to enable immediately (defaults to true) |
API returns JSON response:
{ "success": true, "task": { "id": "...", "name": "...", ... } }{ "success": false, "error": "error message" }Confirm the following with the user:
Critical: Timezone Awareness: The system has a configured timezone (e.g., 'Asia/Shanghai'). ALWAYS get current time in THIS timezone for calculations. Using wrong timezone will cause schedules to fire at wrong times.
One-time vs Recurring Tasks: This is CRITICAL - ask yourself: does the user want this to happen once or repeatedly?
0 17 DD MM *, AND set max_calls: 10 17 * * *, do NOT set max_callsNatural language time conversion: When users specify times like "下午5点/5 PM", "明天上午9点", "5分钟后", "this afternoon":
TZ=Asia/Shanghai date or Node.js with timezone)0 17 * * * (no max_calls)0 17 DD MM * + max_calls: 1MM HH * * * + max_calls: 1Creation timing: For short-delay one-time tasks (e.g., "in 1 minute"), create the task immediately before performing any time-consuming operations. Don't fetch data or summarize content before creating the task.
Prompt boundaries: The prompt should describe "what to do when the task triggers", not pre-execute the task and embed static results. Example: write "Fetch yesterday's AI news and send summary" instead of fetching news first and embedding the list in the prompt.
Get current time (cross-platform):
node -e 'const d=new Date();const p=n=>String(n).padStart(2,"0");console.log(`${d.getFullYear()}-${p(d.getMonth()+1)}-${p(d.getDate())}T${p(d.getHours())}:${p(d.getMinutes())}:${p(d.getSeconds())}`)'
Auto-execution: Scheduled tasks run with auto-approve enabled for all tool calls (no manual approval needed)
Independent execution: The prompt is the only instruction Claude receives when the task runs independently, so write it clearly and completely
Auto-disable: Tasks that fail 5 consecutive times are automatically disabled
One-time tasks: Tasks with type: "at" are automatically disabled after execution
Execution sessions: Each execution creates a new session (with "[Scheduled]" prefix in title), viewable in the session list
development
FastAPI best practices and conventions. Use when working with FastAPI APIs and Pydantic models for them. Keeps FastAPI code clean and up to date with the latest features and patterns, updated with new versions. Write new code or refactor and update old code.
development
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. USE THIS SKILL for ALL spreadsheet files including .xls (Excel 97-2003), .xlsx, .xlsm, .csv, .tsv. Use for: (1) Reading or analyzing spreadsheet data, (2) Creating new spreadsheets with formulas and formatting, (3) Modifying existing spreadsheets while preserving formulas, (4) Data analysis and visualization, (5) Recalculating formulas. IMPORTANT: For .xls files (legacy Excel format), you MUST use this skill - do NOT attempt to read them directly as they are binary files.
tools
--- name: wrenai-query description: WrenAI natural language to SQL query tool. IMPORTANT: Use exec tool to run the script directly, DO NOT implement the logic yourself. --- # WrenAI Query Tool ## ⚠️ CRITICAL INSTRUCTIONS FOR AI AGENTS **YOU MUST FOLLOW THESE INSTRUCTIONS EXACTLY. DO NOT DEVIATE.** ### When User Asks for Database Query **USE THE EXEC TOOL. RUN THIS EXACT COMMAND:** ```bash sh "/data/.skills/wrenai-query/scripts/wrenai" "user's natural language query here" pg ``` **DO NOT:*
tools
Automated web application testing using browser automation. Use when asked to test a web app, verify UI behavior, check for regressions, or automate browser interactions such as clicking, form filling, navigation, and screenshot capture.