Agent Skills › siddsachar/row-bot › task_automation

task_automation

GitHub

指导用户设计自动化工作流,包括定时任务、提醒及消息流转。涵盖工作流类型、提示词编写技巧、变量使用及多步骤协作模式,旨在实现高效自主的后台任务执行。

bundled_skills/task_automation/SKILL.md siddsachar/row-bot

Trigger Scenarios

设置自动化流程 创建定期工作流 安排定时任务 设定提醒

Install

npx skills add siddsachar/row-bot --skill task_automation -g -y
More Options

Non-standard path

npx skills add https://github.com/siddsachar/row-bot/tree/main/bundled_skills/task_automation -g -y

Use without installing

npx skills use siddsachar/row-bot@task_automation

指定 Agent (Claude Code)

npx skills add siddsachar/row-bot --skill task_automation -a claude-code -g -y

安装 repo 全部 skill

npx skills add siddsachar/row-bot --all -g -y

预览 repo 内 skill

npx skills add siddsachar/row-bot --list

SKILL.md

Frontmatter
{
    "icon": "⚙️",
    "name": "task_automation",
    "tags": [
        "automation",
        "productivity"
    ],
    "author": "Row-Bot",
    "version": "4.2",
    "activation": {
        "phrases": [
            "recurring task",
            "scheduled task",
            "every monday",
            "automate this",
            "reminder workflow"
        ],
        "examples": [
            "Help me set up a recurring task every Monday"
        ],
        "keywords": [
            "recurring",
            "schedule",
            "scheduled",
            "task",
            "workflow",
            "monday",
            "reminder"
        ],
        "negative_phrases": [
            "meeting notes",
            "human tone"
        ]
    },
    "description": "Design effective automated workflows using scheduled tasks, clear messages, and delivery channels.",
    "display_name": "Task Automation",
    "enabled_by_default": true
}

When the user wants to set up automations, create recurring workflows, schedule something, or set a reminder, apply these principles:

How Workflows Work

A workflow is a chat that runs on its own. Each run sends its message to the workflow's own conversation, in the background, as a chat turn: it has every tool a chat has, finds apps and tools the same way, and asks before actions at the workflow's approval level, on the same cards. Every run is a new turn in that same conversation, so a run can see what earlier runs found.

Each workflow also keeps short notes between runs. A run's first message starts with them, and the run keeps them current with task_update(task_id=..., notes=...) before it ends: what it checked and when, ids it will need again, what's left. So a run doesn't check again what an earlier one already did.

There are three kinds:

  • Message workflows — usually one message, sometimes a few. A second message is sent after the first turn is done, so it can build on the answer.
  • Notify-only reminders — fire a desktop/channel notification with no agent turn. Use for simple reminders and timers.
  • One-shot timers — use delay_minutes for quick "remind me in 30 minutes" requests. These delete themselves after firing.

Writing The Message

  1. Keep it short and positive — A good brief says, in a few sentences, what to make, for whom, in what voice, and where the results go. Say what to do; a list of what not to do makes results timid and long. "Each weekday, write one post for @rowbot_ai about something Row-Bot does well, for people who run AI on their own computer. Friendly and concrete, in the voice of the account's best posts. Attach a real screenshot when it shows the point. Post it."

  2. Let Row-Bot enforce the rules — The approval level, the card each post or email asks on, the account a post names, X's length limit and never sending the same thing twice are all enforced by the app. Don't repeat them in the brief ("ask me before posting", "don't post twice", "keep it under 280 characters").

  3. Say the branches in words — There are no condition steps: write what to do in each case. "Check my calendar for tomorrow. If there are no events, just say 'Clear schedule tomorrow.' Otherwise list them with times and highlight any conflicts."

  4. Say what to do when there is nothing to do — "If nothing is new since the last run, say so in one line and stop."

  5. Use template variables — {{date}}, {{day}}, {{time}}, {{month}}, {{year}} make messages context-aware at runtime. "Summarise news for {{date}}" produces different results each day.

  6. Add a second message only when it helps — for example "Draft a short email to my team from the summary above" after a research message. Most workflows need one.

When to Use One Workflow vs. Several

  1. One workflow when the work belongs together — research that searches, reads sources and writes a brief is one message.
  2. Separate workflows when the pieces are independent — a morning weather check and an inbox summary don't need each other. Separate workflows can be turned on and off, scheduled and delivered on their own.

Handing Work On

  • Send, don't search — when one workflow's result is another's input (a trends brief for a publisher), the first ends with conversation_send to the second workflow's conversation, by name. It arrives as a message from that conversation and starts a turn there; never leave a result for the next one to search for.
  • Share pictures, clips and voice lines through Library › Media — media_find finds them by words, kind or tag, media_tag tags them ("x post", "launch"), and media_bring copies one into the conversation or workflow that needs it.
  • Real screenshots and clips — a sandbox is a second Row-Bot on made-up data. Open it in Row-Bot's browser, then take a browser_screenshot, or browser_record a few steps and mark beats, and make the clip with video, recording=rec-…. Never film or capture the person's own Row-Bot.

Scheduling

  1. Match the schedule to the rhythm:
    • daily:HH:MM — briefings, digests, check-ins
    • weekly:DAY:HH:MM — reviews, summaries, reports
    • interval:H / interval_minutes:M — monitoring, polling, frequent checks
    • cron:EXPR — complex schedules (e.g. cron:0 9 * * mon-fri for weekdays only)

Delivery & Notification

  1. Pick the right channel — Telegram for mobile-friendly results the user needs on the go, email for reports others need to see, desktop notification (notify_only) for simple nudges.
  2. Ask before defaulting — Don't assume a delivery channel. Ask how the user wants to receive results. Some automations are better read on demand in the app.
  3. Each delivery says what happened first — "Sent · …" with what went out, or "Finished · nothing was posted or sent", then the reply. The person chooses in Workflow settings › Send results whether results go after every run, only when a run needs them, or in a daily digest at 6 PM; suggest the digest for frequent runs.

Approval Levels

Every workflow has an approval level (approval_mode), as a chat does:

  • block (default) — reads only; actions are refused. Safest for automated runs.
  • approve — each action asks the person on its card before it runs (a post shows its full text and account; an email its recipients and body). The run waits until they answer.
  • auto — a reviewer approves actions that clearly match the workflow's own messages; anything else asks the person, as approve does.
  • Hands-off (full) runs every action without asking. Only the person can turn it on, in the workflow's settings; never set or suggest it yourself.

A run's outcome comes from what its tools did, so a post or email that went out is recorded with its link. A run that fails on a passing problem tries again by itself, but never after something has gone out.

Other Settings

  1. Model override — Use the model parameter to run a workflow on a different model (e.g. a heavier model for complex research, a lighter one for quick checks).
  2. Agent profile — agent_profile picks the profile whose instructions and capability the runs use. Profiles list no tools.

Maintenance

  1. Check first — Before creating a new workflow, check task_list to avoid duplicates or overlapping schedules.
  2. Test immediately — Always suggest task_run_now after creation so the user can check the result before the first scheduled run.
  3. Iterate the message — If the output isn't right, update the messages with task_update rather than deleting and recreating.

Monitoring / Polling

When the user wants to monitor a condition and be told when it changes ("check X and tell me when Y", "alert me if Z drops below W"), use the interval + self-disable pattern:

  1. Use an interval schedule — interval_minutes:M for frequent checks (stock availability, price drops) or interval:H for slower checks.

  2. Write a conditional message — It should:

    • Check the condition (e.g. search the web, read a URL, check a price)
    • If the condition IS met → report the finding and self-disable with task_update(task_id='{{task_id}}', enabled=false)
    • If the condition is NOT met → say so briefly The runs share one conversation, so each check can compare with the last one ("tell me when there's a new version" needs to know the old version).
  3. Template: polling message pattern —

    Search for [condition]. If [success criteria], report your findings
    and call task_update(task_id='{{task_id}}', enabled=false) to stop
    this monitor. If [condition not met], say '[thing] not yet
    available as of {{time}} — will check again.'
    
  4. Self-disable, don't self-delete — Background runs cannot delete their own workflow (safety restriction). Use task_update(enabled=false) instead. The user can re-enable, delete, or leave the disabled workflow.

Version History

  • aea3219 Current 2026-11-02 23:13

    重构为基于聊天轮次的工作流模型,引入运行间笔记机制;优化提示词编写规范,强调正向指令与模板变量;移除工具列表限制,完善媒体传递与沙盒功能说明。

  • edc0ac0 2026-07-24 22:29

Same Skill Collection

bundled_skills/brain_dump/SKILL.md
bundled_skills/claude_code_delegation/SKILL.md
bundled_skills/daily_briefing/SKILL.md
bundled_skills/data_analyst/SKILL.md
bundled_skills/deep_research/SKILL.md
bundled_skills/design_creator/SKILL.md
bundled_skills/developer_coding/SKILL.md
bundled_skills/developer_custom_tools/SKILL.md
bundled_skills/developer_pr_prep/SKILL.md
bundled_skills/developer_review/SKILL.md
bundled_skills/humanizer/SKILL.md
bundled_skills/knowledge_base/SKILL.md
bundled_skills/making_pages/SKILL.md
bundled_skills/meeting_notes/SKILL.md
bundled_skills/proactive_agent/SKILL.md
bundled_skills/self_reflection/SKILL.md
bundled_skills/web_navigator/SKILL.md
tool_guides/agents_guide/SKILL.md
tool_guides/calendar_guide/SKILL.md
tool_guides/chart_guide/SKILL.md
tool_guides/custom_tool_builder_guide/SKILL.md
tool_guides/designer_guide/SKILL.md
tool_guides/developer_guide/SKILL.md
tool_guides/email_guide/SKILL.md
tool_guides/file_delivery_guide/SKILL.md
tool_guides/filesystem_guide/SKILL.md
tool_guides/math_guide/SKILL.md
tool_guides/pages_guide/SKILL.md
tool_guides/row_bot_status_guide/SKILL.md
tool_guides/shell_guide/SKILL.md
tool_guides/updater_guide/SKILL.md
tool_guides/video_editing_guide/SKILL.md
tool_guides/video_guide/SKILL.md
tool_guides/vision_guide/SKILL.md
tool_guides/workflow_guide/SKILL.md
tool_guides/x_guide/SKILL.md
tool_guides/browser_guide/SKILL.md
tool_guides/goal_guide/SKILL.md
tool_guides/mcp_guide/SKILL.md
tool_guides/telegram_guide/SKILL.md
tool_guides/tracker_guide/SKILL.md
tool_guides/weather_guide/SKILL.md
tool_guides/wiki_guide/SKILL.md

Metadata

Files
0
Version
aea3219
Hash
5c7c6243
Indexed
2026-07-24 22:29

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-11-03 13:15
浙ICP备14020137号-1