Initial commit with translated description
This commit is contained in:
147
SKILL.md
Normal file
147
SKILL.md
Normal file
@@ -0,0 +1,147 @@
|
||||
---
|
||||
name: task-status
|
||||
description: "为长时间运行的任务在聊天中发送简短状态描述。"
|
||||
---
|
||||
|
||||
# Task Status Skill
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Manual Status Updates
|
||||
```bash
|
||||
python scripts/send_status.py "Starting data fetch..." "progress" "step1"
|
||||
python scripts/send_status.py "Processing complete" "success" "final"
|
||||
python scripts/send_status.py "Error: Missing API key" "error" "auth"
|
||||
```
|
||||
|
||||
### Automatic Periodic Monitoring (Every 5 seconds)
|
||||
```bash
|
||||
# Start monitoring a long-running task
|
||||
python scripts/monitor_task.py start "My Long Task" "processing"
|
||||
|
||||
# Monitor will send "Still working..." updates every 5 seconds
|
||||
# When task completes, report final status
|
||||
python scripts/monitor_task.py stop "My Long Task" "success" "Completed successfully!"
|
||||
```
|
||||
|
||||
## Status Types
|
||||
|
||||
- **progress**: Ongoing work (shows 🔄 or ->)
|
||||
- **success**: Task complete (shows ✅ or OK)
|
||||
- **error**: Failed task (shows ❌ or !)
|
||||
- **warning**: Issue but continuing (shows ⚠️ or ?)
|
||||
|
||||
## Periodic Monitoring
|
||||
|
||||
The `monitor_task.py` script provides automatic updates:
|
||||
|
||||
### Starting Monitor
|
||||
```bash
|
||||
python scripts/monitor_task.py start "<task_name>" "<status_type>" [--interval <seconds>]
|
||||
```
|
||||
|
||||
- Automatically sends "Still working..." updates every 5 seconds
|
||||
- Runs in background until stopped
|
||||
- Can be customized with different intervals
|
||||
|
||||
### Stopping Monitor
|
||||
```bash
|
||||
python scripts/monitor_task.py stop "<task_name>" "<final_status>" "<final_message>"
|
||||
```
|
||||
|
||||
### Example: Long File Processing
|
||||
```bash
|
||||
# Start monitoring
|
||||
python scripts/monitor_task.py start "video_processing" "progress"
|
||||
|
||||
# ... long processing happens here ...
|
||||
|
||||
# Stop with final status
|
||||
python scripts/monitor_task.py stop "video_processing" "success" "Processing complete!"
|
||||
```
|
||||
|
||||
## Manual Updates (Quick Status)
|
||||
|
||||
For single status updates without monitoring:
|
||||
|
||||
```bash
|
||||
python scripts/send_status.py "Still fetching data..." "progress" "fetch"
|
||||
python scripts/send_status.py "Processing records: 250/1000" "progress" "process"
|
||||
python scripts/send_status.py "Complete! 3 files ready" "success" "final"
|
||||
python scripts/send_status.py "Error: Connection timeout" "error" "api"
|
||||
```
|
||||
|
||||
## When to Use Each Method
|
||||
|
||||
### Use Manual Updates When:
|
||||
- Task is short (under 30 seconds)
|
||||
- You want control over when updates are sent
|
||||
- Task has discrete, meaningful milestones
|
||||
|
||||
### Use Periodic Monitoring When:
|
||||
- Task is long-running (over 1 minute)
|
||||
- You want consistent "heartbeat" updates every 5 seconds
|
||||
- Task has long periods of quiet work
|
||||
- You want to reassure user that work is ongoing
|
||||
|
||||
## Message Guidelines
|
||||
|
||||
Keep status messages under 140 characters. Examples:
|
||||
|
||||
- **Progress**: "Still fetching data..." or "Processing records: 250/1000"
|
||||
- **Success**: "Complete! 3 files ready" or "Task finished successfully"
|
||||
- **Error**: "Error: Connection timeout" or "Failed: Missing API key"
|
||||
- **Warning**: "Continuing despite timeout" or "Partial success: 5/10 files"
|
||||
|
||||
## Advanced Usage
|
||||
|
||||
### With Additional Details
|
||||
```bash
|
||||
python scripts/send_status.py "Uploading..." "progress" "upload" --details "File: report.pdf (2.4MB)"
|
||||
```
|
||||
|
||||
### Different Intervals
|
||||
```bash
|
||||
python scripts/monitor_task.py start "data_sync" "progress" --interval 10
|
||||
```
|
||||
|
||||
### Importing for Python Scripts
|
||||
```python
|
||||
from send_status import send_status
|
||||
|
||||
def long_task():
|
||||
send_status("Starting...", "progress", "step1")
|
||||
# ... work
|
||||
send_status("Step complete", "success", "step1")
|
||||
```
|
||||
|
||||
## Automation with Clawdbot Cron
|
||||
|
||||
For scheduled tasks, use Clawdbot's cron feature:
|
||||
|
||||
```python
|
||||
# In a script or session
|
||||
from cron import add
|
||||
|
||||
# Every 5 seconds, check status
|
||||
job = {
|
||||
"text": "Check status update",
|
||||
"interval": "5s",
|
||||
"enabled": True
|
||||
}
|
||||
add(job)
|
||||
```
|
||||
|
||||
This allows status updates even when you're not actively watching.
|
||||
|
||||
## Installation
|
||||
|
||||
To use this skill, copy the `task-status` folder into your Clawdbot skills directory:
|
||||
|
||||
```
|
||||
C:\Users\Luffy\AppData\Roaming\npm\node_modules\clawdbot\skills\task-status
|
||||
```
|
||||
|
||||
Or add it to your workspace and reference it from `AGENTS.md` or `TOOLS.md`.
|
||||
|
||||
Once installed, the skill will be available for any task where you need periodic status updates.
|
||||
Reference in New Issue
Block a user