Automation Dedup Guard

Automation

WorkBuddy 自动化任务去重守护。当用户的自动化任务出现重复时自动检测并清理。触发场景:自动化任务重复、任务列表膨胀、需要清理重复任务。支持 Windows/macOS/Linux,纯 Python 标准库,零依赖。

Install

openclaw skills install automation-dedup-guard

Automation Dedup Guard

Overview

WorkBuddy 的自动化任务系统没有防重机制,每次新会话创建同名任务时不会检查是否已存在,导致同名任务不断累积。本 Skill 提供一个一键去重脚本,自动检测并清理重复的自动化任务,每组同名任务只保留最新创建的版本。

When to Use

  • 用户反馈自动化任务"重复出现"、"越来越多"、"一堆重复的"
  • 需要检查或清理 WorkBuddy 自动化数据库中的冗余任务
  • 想要配置定期自动去重守护

Core Script

scripts/automation_dedup_guard.py is the main executable.

Usage

# Safe preview (dry-run, no deletions)
python scripts/automation_dedup_guard.py --dry-run

# Execute cleanup
python scripts/automation_dedup_guard.py

# Specify custom database path
python scripts/automation_dedup_guard.py --db /custom/path/automations.db

# Verbose mode for debugging
python scripts/automation_dedup_guard.py --dry-run -v

Exit Codes

  • 0 — No duplicates found, all clean
  • 1 — Duplicates detected (after cleanup, still returns 1 if any were found)

Database Auto-Detection

The script automatically locates the WorkBuddy automations database:

PrioritySourceNotes
1--db CLI argumentManual override
2WORKBUDDY_DB_PATH env varFor advanced users
3OS default pathAuto-detected

Default paths by OS:

  • Windows: %APPDATA%\WorkBuddy\automations\automations.db
  • macOS: ~/Library/Application Support/WorkBuddy/automations\automations.db
  • Linux: ~/.config/WorkBuddy\automations\automations.db

Dedup Strategy

  1. Group by name: Tasks with the same name field are considered duplicates
  2. Keep newest: Within each group, the task with the latest created_at is preserved
  3. Cascade delete: Associated automation_runs records are also cleaned up
  4. No backup: Deletions are permanent (back up the DB file manually if needed)

Setup as Recurring Automation

To run automatically, register it as a WorkBuddy automation:

  • Name: Automation Dedup Guard
  • Schedule: Weekly (e.g., FREQ=WEEKLY;BYDAY=MO;BYHOUR=8;BYMINUTE=55)
  • Prompt:
    Run the dedup guard script: python [path-to]/scripts/automation_dedup_guard.py
    If output contains "[OK]" — no action needed.
    If output contains "[!]" — duplicates were auto-cleaned, confirm the count.
    If script errors — log the error, no other action.
    

Requirements

  • Python 3.6+
  • No third-party dependencies (stdlib only: sqlite3, sys, os, datetime, collections)