{
  "registryVersion": "1.0",
  "updatedAt": "2026-07-15T21:09:14.869Z",
  "templates": [
    {
      "id": "tpl_daily_database_backup",
      "name": "Daily Database Backup",
      "description": "Back up a PostgreSQL database on a schedule with pg_dump.",
      "category": "backup",
      "tags": [
        "windows",
        "backup",
        "database",
        "postgres"
      ],
      "core": true,
      "runtime": "executable",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/tpl_daily_database_backup.json",
      "sha256": "3a8caeca781b4fe3690ea76520ec68604e376e3ab93cdc7037ea8f032c490d90"
    },
    {
      "id": "tpl_morning_news_digest",
      "name": "Morning News Digest",
      "description": "Summarize top stories from your news sources into a daily digest.",
      "category": "ai-agent",
      "tags": [
        "ai",
        "digest",
        "news"
      ],
      "runtime": "ai-prompt",
      "os": "cross-platform",
      "compatibleTargets": [
        "claude-code",
        "chatgpt"
      ],
      "path": "templates/tpl_morning_news_digest.json",
      "sha256": "92a941072262d05c4e3f964ec126b82684d3ed4fb5aa6d28564dec41cf1ca1ee"
    },
    {
      "id": "tpl_weekly_system_cleanup",
      "name": "Weekly System Cleanup",
      "description": "Delete temporary files on a schedule to reclaim disk space.",
      "category": "cleanup",
      "tags": [
        "windows",
        "cleanup",
        "disk"
      ],
      "core": true,
      "runtime": "batch",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/tpl_weekly_system_cleanup.json",
      "sha256": "311c4a7525377ee116eed57779e3a2efe4461af374c94c763c35dd3c010ea151"
    },
    {
      "id": "tpl_github_pr_triage",
      "name": "GitHub PR Triage",
      "description": "Triage new pull requests in a repo and label them by content.",
      "category": "dev-workflow",
      "tags": [
        "ai",
        "github",
        "dev"
      ],
      "runtime": "ai-prompt",
      "os": "cross-platform",
      "compatibleTargets": [
        "claude-code"
      ],
      "path": "templates/tpl_github_pr_triage.json",
      "sha256": "1d2365682dd091eaf4b825e441d493b86883fb13d68f8581b70cae2e03ad06ef"
    },
    {
      "id": "dev-git-fetch-prune",
      "name": "Git Fetch & Prune",
      "description": "Keep a local repository fresh: fetch all remotes and prune deleted remote branches.",
      "category": "dev-workflow",
      "tags": [
        "dev",
        "git",
        "sync",
        "hygiene"
      ],
      "core": true,
      "runtime": "executable",
      "os": "cross-platform",
      "compatibleTargets": [
        "windows",
        "macos"
      ],
      "path": "templates/dev-git-fetch-prune.json",
      "sha256": "28519f8d5499ac384b9c347cb585099e650ccf89a6d90c84fa5c19030aff9db0"
    },
    {
      "id": "dev-git-maintenance",
      "name": "Git Repo Maintenance",
      "description": "Run git maintenance (gc, commit-graph, prefetch) to keep a large repository fast.",
      "category": "dev-workflow",
      "tags": [
        "dev",
        "git",
        "hygiene"
      ],
      "runtime": "executable",
      "os": "cross-platform",
      "compatibleTargets": [
        "windows",
        "macos"
      ],
      "path": "templates/dev-git-maintenance.json",
      "sha256": "87f36dc866f5f8a5c4263fa6b78af868d429cc3eb4214d78bdbff6f70ed06281"
    },
    {
      "id": "dev-git-autocommit-push",
      "name": "Git Auto-Commit & Push",
      "description": "Snapshot a working repository on a schedule: stage everything, commit, and push.",
      "category": "dev-workflow",
      "tags": [
        "dev",
        "git",
        "backup"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/dev-git-autocommit-push.json",
      "sha256": "5fb5d1c129bc1a81c39d29fcaf5b158065d07f6e960d2d917161b6b9025e1d82"
    },
    {
      "id": "dev-npm-outdated-check",
      "name": "Dependency Update Check (npm)",
      "description": "Write an npm outdated report for a project on a schedule.",
      "category": "dev-workflow",
      "tags": [
        "dev",
        "node",
        "npm",
        "dependencies"
      ],
      "runtime": "node",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/dev-npm-outdated-check.json",
      "sha256": "c16e2ebf9f5382bc0b3721449ab89b30ce5c082b69d5a02b38f835998619b499"
    },
    {
      "id": "dev-npm-nightly-build",
      "name": "Nightly Build (npm)",
      "description": "Run an npm script (build, lint, …) for a project every night and capture the log.",
      "category": "dev-workflow",
      "tags": [
        "dev",
        "node",
        "npm",
        "build",
        "ci"
      ],
      "runtime": "node",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/dev-npm-nightly-build.json",
      "sha256": "be85379842ba85e3b5292bbca6c4240b1f74cc63b161cb922cac7ad255a77eed"
    },
    {
      "id": "dev-npm-test-run",
      "name": "Scheduled Test Run (npm)",
      "description": "Run a project test suite on a schedule and capture the log; a red run means failing tests.",
      "category": "dev-workflow",
      "tags": [
        "dev",
        "node",
        "npm",
        "test",
        "ci"
      ],
      "runtime": "node",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/dev-npm-test-run.json",
      "sha256": "4727faa48d5d435410324b4b86129e2091b3b7b0d2ca5900f908449c80135f7e"
    },
    {
      "id": "dev-dotnet-build",
      "name": ".NET Build",
      "description": "Build a .NET project or solution with the dotnet CLI on a schedule.",
      "category": "dev-workflow",
      "tags": [
        "dev",
        "dotnet",
        "build",
        "ci"
      ],
      "runtime": "executable",
      "os": "cross-platform",
      "compatibleTargets": [
        "windows",
        "macos"
      ],
      "path": "templates/dev-dotnet-build.json",
      "sha256": "5ffc26e53b68130e515fffab4068eacd2b5203529d625d1b83df833cd6e60a6d"
    },
    {
      "id": "dev-docker-prune",
      "name": "Docker Cleanup (prune)",
      "description": "Reclaim disk space by pruning unused Docker containers, networks, and images.",
      "category": "cleanup",
      "tags": [
        "dev",
        "docker",
        "cleanup",
        "disk"
      ],
      "runtime": "executable",
      "os": "cross-platform",
      "compatibleTargets": [
        "windows",
        "macos"
      ],
      "path": "templates/dev-docker-prune.json",
      "sha256": "132f1094a1379674ee54852b059c111561efdb91943755fa84206c616a240bed"
    },
    {
      "id": "dev-docker-compose-up",
      "name": "Docker Compose Self-Heal",
      "description": "Re-run docker compose up on an interval so a dev stack restarts itself if it stops (the pattern TaskHub uses for its own stack).",
      "category": "monitoring",
      "tags": [
        "dev",
        "docker",
        "self-heal",
        "monitoring"
      ],
      "runtime": "executable",
      "os": "cross-platform",
      "compatibleTargets": [
        "windows",
        "macos"
      ],
      "path": "templates/dev-docker-compose-up.json",
      "sha256": "fc1ac426f5e1b2bce4c9f2f3d66704dc2565548f7a8e230f267beeb03195d09b"
    },
    {
      "id": "ai-claude-headless-run",
      "name": "Claude Code Headless Run",
      "description": "Run the Claude Code CLI unattended against a repo on a schedule with a fixed prompt. Non-interactive (`-p`), fenced by `--permission-mode dontAsk`, scoped to the tools you list, output captured to a log.",
      "category": "ai-agent",
      "tags": [
        "ai",
        "llm",
        "cli",
        "agents",
        "claude-code"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/ai-claude-headless-run.json",
      "sha256": "d126357d247cf27ae852682e97938443aff9734cfb59632c73aaf95b43021eb8"
    },
    {
      "id": "ai-claude-repo-digest",
      "name": "Claude Code Repo Digest",
      "description": "A read-only Claude Code run that summarizes a repository into a Markdown digest on a schedule (e.g. weekly). Tools are locked to read/search only; the printed digest is written to a report file.",
      "category": "ai-agent",
      "tags": [
        "ai",
        "llm",
        "cli",
        "agents",
        "claude-code",
        "report"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/ai-claude-repo-digest.json",
      "sha256": "35b1dcb1091b4df884727dc604c5a395de0def4fd72983fee25f94e32a790273"
    },
    {
      "id": "ai-claude-autofix-commit",
      "name": "Claude Code Auto-Fix & Commit",
      "description": "Higher-trust: let Claude Code edit a repo and commit on a schedule. Still fenced by `--permission-mode dontAsk` — only the edit/git tools you list are pre-approved. Scope `--allowedTools` narrowly and review the log/commits.",
      "category": "ai-agent",
      "tags": [
        "ai",
        "llm",
        "cli",
        "agents",
        "claude-code",
        "git"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/ai-claude-autofix-commit.json",
      "sha256": "e22e94f33a6fc00fe797214d6b216f74508f101670689b8905e3e9826f01b26e"
    },
    {
      "id": "ai-claude-log-cleanup",
      "name": "Claude Code Log Cleanup",
      "description": "Housekeeping companion for the scheduled Claude runs: delete run logs/digests older than a cutoff so they do not pile up. Read-nothing, deletes only matching files in one folder.",
      "category": "cleanup",
      "tags": [
        "ai",
        "cli",
        "agents",
        "cleanup",
        "logs"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/ai-claude-log-cleanup.json",
      "sha256": "cd1549251e631f30594eb86c000bb49a52d8a197a76b72c9b5020021cde731ae"
    },
    {
      "id": "ai-codex-headless-run",
      "name": "Codex Headless Run",
      "description": "Run Codex CLI non-interactively against a repo on a schedule with a fixed prompt. Uses `codex exec`, no approval prompts, an explicit sandbox, an ephemeral session, and captured output.",
      "category": "ai-agent",
      "tags": [
        "ai",
        "llm",
        "cli",
        "agents",
        "codex"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/ai-codex-headless-run.json",
      "sha256": "5f5ee5422a6ac145c8a1189f63a9745aae37d1b670d362a9ab906f6625bc2168"
    },
    {
      "id": "ai-codex-repo-digest",
      "name": "Codex Repo Digest",
      "description": "A read-only Codex run that summarizes a repository into a Markdown digest on a schedule. The final digest and full run stream are captured separately.",
      "category": "ai-agent",
      "tags": [
        "ai",
        "llm",
        "cli",
        "agents",
        "codex",
        "report"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/ai-codex-repo-digest.json",
      "sha256": "31be0c1ab595e5f149293ff10ea902ba680bb939e4d8fd6681e72d1920912cb9"
    },
    {
      "id": "ai-codex-autofix-workspace",
      "name": "Codex Auto-Fix Workspace",
      "description": "Higher-trust: let Codex edit a repository on a schedule. Runs non-interactively with no approval prompts but stays inside the workspace-write sandbox; review the diff and logs before pushing.",
      "category": "ai-agent",
      "tags": [
        "ai",
        "llm",
        "cli",
        "agents",
        "codex",
        "git"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/ai-codex-autofix-workspace.json",
      "sha256": "267af80d4e84f106eb1da8537878d69e348c8e80d07275a57c81eefc25556e89"
    },
    {
      "id": "tpl_starter_powershell_script",
      "name": "PowerShell Script",
      "description": "Run a .ps1 PowerShell script file on a schedule.",
      "category": "other",
      "tags": [
        "windows",
        "script",
        "powershell"
      ],
      "isStarter": true,
      "core": true,
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/tpl_starter_powershell_script.json",
      "sha256": "3773946cded1c0dd1b058431f86ae5ed7efd30131fcd868b28d75abf390f25e2"
    },
    {
      "id": "tpl_starter_powershell_inline",
      "name": "PowerShell Inline Command",
      "description": "Run an inline PowerShell command without a script file.",
      "category": "other",
      "tags": [
        "windows",
        "powershell"
      ],
      "isStarter": true,
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/tpl_starter_powershell_inline.json",
      "sha256": "9248c361d3bdc0aa1cfa827d736cd144082900b2ad71c6b04d147781d1c15cf8"
    },
    {
      "id": "tpl_starter_batch_script",
      "name": "Batch / CMD Script",
      "description": "Run a .bat or .cmd batch file via cmd.exe.",
      "category": "other",
      "tags": [
        "windows",
        "batch",
        "script"
      ],
      "isStarter": true,
      "runtime": "batch",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/tpl_starter_batch_script.json",
      "sha256": "24bb19410009a290de2558ab711e8b2f194a78b0aa0e06c627a87fdaa0788fe3"
    },
    {
      "id": "tpl_starter_python_windows",
      "name": "Python Script (Windows)",
      "description": "Run a Python script with the Windows python interpreter.",
      "category": "other",
      "tags": [
        "windows",
        "python",
        "script"
      ],
      "isStarter": true,
      "runtime": "python",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/tpl_starter_python_windows.json",
      "sha256": "a13794278d933a44e16148f68d24a447d59146d5b7676953ad7dbc1444c10b74"
    },
    {
      "id": "tpl_starter_node_windows",
      "name": "Node.js Script (Windows)",
      "description": "Run a Node.js script with node on Windows.",
      "category": "other",
      "tags": [
        "windows",
        "node",
        "script"
      ],
      "isStarter": true,
      "runtime": "node",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/tpl_starter_node_windows.json",
      "sha256": "12c7561b172e9b676013f56bb9d1b996d06419be65cc9b27cb2d2a19b51388a4"
    },
    {
      "id": "tpl_starter_run_exe",
      "name": "Run a Program / .exe",
      "description": "Launch an executable or binary directly on a schedule.",
      "category": "other",
      "tags": [
        "windows",
        "executable"
      ],
      "isStarter": true,
      "runtime": "executable",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/tpl_starter_run_exe.json",
      "sha256": "bf5f5d31224fa113133c1d43e0c4f41f218d20f50978603a27ed79fb6fac2777"
    },
    {
      "id": "tpl_starter_webhook_windows",
      "name": "Webhook / HTTP Ping (Windows)",
      "description": "Call a URL on a schedule using Invoke-WebRequest.",
      "category": "monitoring",
      "tags": [
        "windows",
        "http",
        "monitoring",
        "webhook"
      ],
      "isStarter": true,
      "core": true,
      "runtime": "http",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/tpl_starter_webhook_windows.json",
      "sha256": "b17c8e2308c14cfce4ea557c9df0dbde8d43a77c4ebce1c02a912f1af16abf7a"
    },
    {
      "id": "tpl_starter_vbscript",
      "name": "VBScript (legacy)",
      "description": "Run a legacy .vbs script via cscript.",
      "category": "other",
      "tags": [
        "windows",
        "vbscript",
        "legacy"
      ],
      "isStarter": true,
      "runtime": "vbscript",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/tpl_starter_vbscript.json",
      "sha256": "1a62b41f530859b301d8c03bde0ba7bc21dd921e63ec4d8da6f78d330f89b460"
    },
    {
      "id": "tpl_starter_zsh_script",
      "name": "Shell Script (zsh)",
      "description": "Run a shell script with zsh, the macOS default shell.",
      "category": "other",
      "tags": [
        "macos",
        "shell",
        "zsh"
      ],
      "isStarter": true,
      "runtime": "zsh",
      "os": "macos",
      "compatibleTargets": [
        "macos"
      ],
      "path": "templates/tpl_starter_zsh_script.json",
      "sha256": "5305ba1bc79d995474f957558f40d746e384392d2bde26718f9cda7a068007ff"
    },
    {
      "id": "tpl_starter_bash_script",
      "name": "Shell Script (bash)",
      "description": "Run a shell script with bash on macOS or Linux.",
      "category": "other",
      "tags": [
        "macos",
        "shell",
        "bash"
      ],
      "isStarter": true,
      "runtime": "bash",
      "os": "macos",
      "compatibleTargets": [
        "macos"
      ],
      "path": "templates/tpl_starter_bash_script.json",
      "sha256": "0254eecbf16e6f64066b6bbcbfcd95f3f98c24e011db8561fbcc6460e4dc872c"
    },
    {
      "id": "tpl_starter_python_macos",
      "name": "Python Script (macOS)",
      "description": "Run a Python script with python3 on macOS.",
      "category": "other",
      "tags": [
        "macos",
        "python",
        "script"
      ],
      "isStarter": true,
      "runtime": "python",
      "os": "macos",
      "compatibleTargets": [
        "macos"
      ],
      "path": "templates/tpl_starter_python_macos.json",
      "sha256": "90016cbd3dac864b93c7d02cc9ebd7f211e9fba182f39720680b474d93c4db87"
    },
    {
      "id": "tpl_starter_node_macos",
      "name": "Node.js Script (macOS)",
      "description": "Run a Node.js script with node on macOS.",
      "category": "other",
      "tags": [
        "macos",
        "node",
        "script"
      ],
      "isStarter": true,
      "runtime": "node",
      "os": "macos",
      "compatibleTargets": [
        "macos"
      ],
      "path": "templates/tpl_starter_node_macos.json",
      "sha256": "ea8f25872b2c5eef6835500cb26f38359f7404cefba5f2bbd2791c30aab17256"
    },
    {
      "id": "tpl_starter_applescript",
      "name": "AppleScript",
      "description": "Run an AppleScript file via osascript.",
      "category": "other",
      "tags": [
        "macos",
        "applescript"
      ],
      "isStarter": true,
      "runtime": "applescript",
      "os": "macos",
      "compatibleTargets": [
        "macos"
      ],
      "path": "templates/tpl_starter_applescript.json",
      "sha256": "513d60a532f49367a9982cd120c89c4b167114bc514786963dc920dc2fdeeb59"
    },
    {
      "id": "tpl_starter_shell_inline_macos",
      "name": "Inline Shell Command (macOS)",
      "description": "Run an inline shell command via zsh.",
      "category": "other",
      "tags": [
        "macos",
        "shell"
      ],
      "isStarter": true,
      "runtime": "zsh",
      "os": "macos",
      "compatibleTargets": [
        "macos"
      ],
      "path": "templates/tpl_starter_shell_inline_macos.json",
      "sha256": "209c1cc617c5955072d23925a8afbaaa3cf9db006bafba54f1275f7d29782281"
    },
    {
      "id": "tpl_starter_webhook_macos",
      "name": "Webhook / HTTP Ping (macOS)",
      "description": "Call a URL on a schedule using curl.",
      "category": "monitoring",
      "tags": [
        "macos",
        "http",
        "monitoring",
        "webhook"
      ],
      "isStarter": true,
      "runtime": "http",
      "os": "macos",
      "compatibleTargets": [
        "macos"
      ],
      "path": "templates/tpl_starter_webhook_macos.json",
      "sha256": "af76f249b81a7cf1760a3bebbf809571e655d8b84c2920c873bee460c5c2cb04"
    },
    {
      "id": "tpl_starter_python_cross",
      "name": "Python Script (cross-platform)",
      "description": "Run a Python script on Windows or macOS (interpreter resolved at apply-time).",
      "category": "other",
      "tags": [
        "python",
        "script"
      ],
      "isStarter": true,
      "runtime": "python",
      "os": "cross-platform",
      "compatibleTargets": [
        "windows",
        "macos"
      ],
      "path": "templates/tpl_starter_python_cross.json",
      "sha256": "974e335c08d6b4549c0bec6a2ab583183a39e96948f1811e13909ffa61bc623c"
    },
    {
      "id": "tpl_starter_node_cross",
      "name": "Node.js Script (cross-platform)",
      "description": "Run a Node.js script on Windows or macOS.",
      "category": "other",
      "tags": [
        "node",
        "script"
      ],
      "isStarter": true,
      "runtime": "node",
      "os": "cross-platform",
      "compatibleTargets": [
        "windows",
        "macos"
      ],
      "path": "templates/tpl_starter_node_cross.json",
      "sha256": "d981191ea2a9666d5e094caeae3e0b6cd5f052cae4f25357f715f699869af9d3"
    },
    {
      "id": "tpl_starter_git_sync",
      "name": "Git Pull / Repo Sync",
      "description": "Pull the latest commits for a local git repository on a schedule.",
      "category": "dev-workflow",
      "tags": [
        "git",
        "dev",
        "sync"
      ],
      "isStarter": true,
      "runtime": "bash",
      "os": "cross-platform",
      "compatibleTargets": [
        "windows",
        "macos"
      ],
      "path": "templates/tpl_starter_git_sync.json",
      "sha256": "c9b8b852df519b47da41b3c7beb9f6bd922f2547f0d88e4e6e68de2195f013b5"
    },
    {
      "id": "tpl_starter_claude_routine",
      "name": "Claude Code Routine",
      "description": "Run a natural-language Claude Code routine on a schedule.",
      "category": "ai-agent",
      "tags": [
        "ai",
        "claude-code"
      ],
      "isStarter": true,
      "runtime": "ai-prompt",
      "os": "cross-platform",
      "compatibleTargets": [
        "claude-code"
      ],
      "path": "templates/tpl_starter_claude_routine.json",
      "sha256": "0d7f60ce3de459cb5538916ff62c6c1811e93a3fc4b92d734d90bb0510fd94d2"
    },
    {
      "id": "tpl_starter_chatgpt_link",
      "name": "ChatGPT Automation (link)",
      "description": "Quick-link to create a ChatGPT automation (no public API — opens native UI).",
      "category": "ai-agent",
      "tags": [
        "ai",
        "chatgpt"
      ],
      "isStarter": true,
      "runtime": "ai-prompt",
      "os": "cross-platform",
      "compatibleTargets": [
        "chatgpt"
      ],
      "path": "templates/tpl_starter_chatgpt_link.json",
      "sha256": "3caddc239f013473c087e17609e10ece1316a1a66f5e80ab507e8b87803d4560"
    },
    {
      "id": "bkp-folder-zip",
      "name": "Backup Folder to Zip",
      "description": "Compress a folder into a .zip archive on a schedule.",
      "category": "backup",
      "tags": [
        "backup",
        "windows",
        "archive",
        "zip"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/bkp-folder-zip.json",
      "sha256": "5da8d98f732b1d097dbe583c4da9011b7cda17d24ef87d49425af757ed7528d0"
    },
    {
      "id": "bkp-robocopy-mirror",
      "name": "Mirror Folder (robocopy)",
      "description": "Mirror a directory to a backup location with robocopy /MIR.",
      "category": "backup",
      "tags": [
        "backup",
        "windows",
        "robocopy",
        "sync"
      ],
      "runtime": "executable",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/bkp-robocopy-mirror.json",
      "sha256": "43c17825048df6380dcae6cb6872a2f4ca6230f12075d1d296459566c11b4b74"
    },
    {
      "id": "cln-old-files",
      "name": "Delete Files Older Than N Days",
      "description": "Prune files in a folder that are older than a cutoff, to reclaim disk.",
      "category": "cleanup",
      "tags": [
        "cleanup",
        "windows",
        "disk",
        "logs"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/cln-old-files.json",
      "sha256": "4cc20a5c17da110a2ba345a0314914842fb0f3d241d0c24ae0bcd81557ae4160"
    },
    {
      "id": "cln-recycle-bin",
      "name": "Empty Recycle Bin",
      "description": "Empty the Windows Recycle Bin on a schedule.",
      "category": "cleanup",
      "tags": [
        "cleanup",
        "windows",
        "disk"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/cln-recycle-bin.json",
      "sha256": "ac1f853e4383e2cafc31d07dbd85ff5c910183be64329612a39ed5f8731be8a9"
    },
    {
      "id": "sys-restart-service",
      "name": "Restart a Windows Service",
      "description": "Restart a Windows service on a schedule (e.g. to recover a flaky one).",
      "category": "system",
      "tags": [
        "system",
        "windows",
        "service"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/sys-restart-service.json",
      "sha256": "aae50bf104c77b048ef2fe3946af0da61064be4ab0e51ef5cb02c4c95acc7fbc"
    },
    {
      "id": "sys-flush-dns",
      "name": "Flush DNS Cache",
      "description": "Clear the Windows DNS resolver cache.",
      "category": "system",
      "tags": [
        "system",
        "windows",
        "network",
        "dns"
      ],
      "runtime": "executable",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/sys-flush-dns.json",
      "sha256": "744ea019fa1a8404561fd29694147bd8719ba6f4f283c4f97f7329aad2904ee3"
    },
    {
      "id": "sys-update-scan",
      "name": "Trigger Windows Update Scan",
      "description": "Kick off a Windows Update detection scan on a schedule.",
      "category": "system",
      "tags": [
        "system",
        "windows",
        "updates"
      ],
      "runtime": "executable",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/sys-update-scan.json",
      "sha256": "945e57f469d30cabf1fc1b9b5a42b6cf99accec389f2957144baf821cbe861f2"
    },
    {
      "id": "sys-battery-report",
      "name": "Generate Battery Report",
      "description": "Write a laptop battery health report to an HTML file.",
      "category": "system",
      "tags": [
        "system",
        "windows",
        "power",
        "report"
      ],
      "runtime": "executable",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/sys-battery-report.json",
      "sha256": "ab4c0c8cd7f9e60f15209ee314fd016d5d4744cb3cc3b076457d580f2a903e9e"
    },
    {
      "id": "mon-disk-report",
      "name": "Log Disk Usage",
      "description": "Append free/used disk space for every drive to a log file.",
      "category": "monitoring",
      "tags": [
        "monitoring",
        "windows",
        "disk",
        "report"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/mon-disk-report.json",
      "sha256": "b4158f6a3fd6699aa1f8cb0a534fa4ab7aa004d59f47a83262d123c83ecd7ca8"
    },
    {
      "id": "mon-ping-host",
      "name": "Ping Host & Log",
      "description": "Check whether a host is reachable and append the result to a log.",
      "category": "monitoring",
      "tags": [
        "monitoring",
        "windows",
        "network",
        "uptime"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/mon-ping-host.json",
      "sha256": "545974d695a6b031c3fe2edb56e2d85a4390b58fde28f1b38a8148f179043bd5"
    },
    {
      "id": "mon-service-health",
      "name": "Log Service Status",
      "description": "Record whether a Windows service is running, on an interval.",
      "category": "monitoring",
      "tags": [
        "monitoring",
        "windows",
        "service",
        "health"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/mon-service-health.json",
      "sha256": "9b005c3b62f46cd7a367f60e4aac7a8eb61fad9a57f8ca430960e270086c1ff1"
    },
    {
      "id": "data-export-eventlog",
      "name": "Export Windows Event Log",
      "description": "Archive a Windows event log (System, Application, …) to an .evtx file.",
      "category": "data-sync",
      "tags": [
        "data",
        "windows",
        "eventlog",
        "archive"
      ],
      "runtime": "executable",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/data-export-eventlog.json",
      "sha256": "f6e92d052273ff823a6651e768bd13ad2aacf246e43c844b4618c09d37f2ec5f"
    },
    {
      "id": "data-rclone-sync",
      "name": "Sync Folder to Cloud (rclone)",
      "description": "Sync a local folder to a configured rclone remote (S3, Drive, B2, …).",
      "category": "data-sync",
      "tags": [
        "data",
        "sync",
        "cloud",
        "rclone",
        "backup"
      ],
      "runtime": "executable",
      "os": "cross-platform",
      "compatibleTargets": [
        "windows",
        "macos"
      ],
      "path": "templates/data-rclone-sync.json",
      "sha256": "c768ed3420b9267f28c37a3d802fd9af2509f423777dee43016a444cbed5710b"
    },
    {
      "id": "ntf-discord-heartbeat",
      "name": "Discord Webhook Message",
      "description": "Post a scheduled message to a Discord channel via a webhook.",
      "category": "notification",
      "tags": [
        "notification",
        "windows",
        "discord",
        "webhook"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/ntf-discord-heartbeat.json",
      "sha256": "c4bccd8d47a1450de7017cb4c8b89e94657006f1fea3e49ef76a81ff7acac39f"
    },
    {
      "id": "ntf-log-heartbeat",
      "name": "Heartbeat to Log File",
      "description": "Append a timestamped line to a log — a simple \"am I still scheduled?\" check.",
      "category": "notification",
      "tags": [
        "notification",
        "windows",
        "heartbeat",
        "logs"
      ],
      "runtime": "powershell",
      "os": "windows",
      "compatibleTargets": [
        "windows"
      ],
      "path": "templates/ntf-log-heartbeat.json",
      "sha256": "1bb767472b0cbf03a8df7c392bc23360e618eabd27e940c016a0ee94b669486a"
    }
  ]
}
