{
  "id": "routine-health-check",
  "slug": "routine-health-check",
  "name": "Routine Health Check",
  "tagline": "Catches the scheduled task that quietly broke.",
  "description": "A daily check of every routine: failed, missed, duplicate or stale runs and disconnected apps, reported only when something's wrong.",
  "category": "For bots",
  "platforms": [
    "Grok Bot",
    "Muse",
    "Dots"
  ],
  "schedule": "Daily, 6:00 AM",
  "outputType": "report",
  "previewImage": "previews/routine-health-check.png",
  "installSteps": {
    "grokBot": {
      "label": "Grok Bot",
      "status": "verified",
      "steps": [
        "Copy skills/routine-health-check/SKILL.md (the whole file, including the --- header).",
        "Open a one-to-one chat with your Grok Bot and paste the prompt below, with the file where it says.",
        "Try it once now: \"Run Routine Health Check.\"",
        "The routine shows in the Bot's info pane (click the Bot's name in the chat header) under Routines, where you can pause or edit it."
      ],
      "prompt": "Save the following as a skill called \"Routine Health Check\". Then create a routine called \"Daily routine health check\" that runs it every day at 6:00 AM and posts the result here. Before the first run, ask me the setup questions in the skill and remember my answers.\n\n<paste SKILL.md here>",
      "note": "Skills and routines are saved by asking the Bot; no settings to dig through.",
      "promptFull": "Save the following as a skill called \"Routine Health Check\". Then create a routine called \"Daily routine health check\" that runs it every day at 6:00 AM and posts the result here. Before the first run, ask me the setup questions in the skill and remember my answers.\n\n---\nname: routine-health-check\ndescription: Use daily, or when the person asks whether their scheduled tasks are working. Reviews every routine or scheduled task the bot runs, finds runs that failed, stopped, went quiet, ran twice, or started producing empty or stale output, and reports only the problems with a suggested fix for each.\nmetadata:\n  id: routine-health-check\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Routine Health Check\n\n## What it does\n\nWatches the watchers. A bot can run a dozen scheduled tasks, such as a morning paper, price alerts, and inbox digests, and one can quietly break: a connector disconnects, a site starts blocking it, or a task posts the same thing every day. This check finds those problems early and tells the person only when something's wrong.\n\n## When to use\n\n- On a daily schedule, or when the person asks \"are my routines working?\".\n\n## Requires\n\nAccess to the bot's own list of routines or scheduled tasks, with their run history or last output.\n\n## Schedule\n\nDefault: daily at 6:00 AM, before the morning routines run. It stays silent when everything is healthy.\n\n## Inputs\n\n| Setting | Default | Notes |\n|---|---|---|\n| `quiet_threshold` | 2 missed runs | How many missed runs count as \"went quiet\". |\n| `stale_check` | on | Flags output identical to the last 3 runs. |\n| `report_healthy` | weekly | A one-line \"all 7 routines healthy\" every Monday. |\n\n## Steps\n\n1. **List** every routine with its schedule, its last run, and its result.\n2. **Find problems:**\n   - failed runs and their errors;\n   - missed runs (no run when one was due);\n   - duplicate runs;\n   - empty, error-filled, or identical output;\n   - a disconnected connector that a routine needs.\n3. **Diagnose** each problem in one line, for example \"the calendar connector needs to sign in again\" or \"the store blocks automated reads\".\n4. **Suggest a fix:** reconnect, change the time, pause, or merge duplicates. Apply it only with the person's OK.\n5. **Report** only the problems. Stay silent on healthy days, except for the weekly summary.\n\n## Output format\n\n```markdown\n**Routine check \u00b7 {date}:** 2 of 7 need attention\n- **Inbox Digest:** failed the last 2 runs. Email connector needs you to sign in again.\n- **Price Drop Watcher:** same output 4 days running. One store is blocking reads; drop that item?\n```\n\n## Edge cases\n\n- **A routine was paused on purpose:** don't flag it.\n- **A one-off reminder that has already run:** suggest deleting it.\n\n## Boundaries\n\n- Never delete or change a routine without the person's OK.\n- Never re-authorize a connector on the person's behalf."
    },
    "muse": {
      "label": "Muse",
      "status": "partially-verified",
      "steps": [
        "Copy skills/routine-health-check/SKILL.md.",
        "Open Muse and paste the prompt below with the file where it says.",
        "Try it: \"Run Routine Health Check.\" Muse has no skill install for outside skills, so it follows the pasted instructions.",
        "Ask Muse to make it a recurring task every day at 6:00 AM. It then shows under the Assistant icon > Upcoming.",
        "Muse Code (developer CLI): unzip downloads/routine-health-check.zip, run `muse skills validate ./routine-health-check` then `muse skills install ./routine-health-check --scope user`. Optional: add the BotPlaza connector (https://botplaza.lol/api/mcp) under mcpServers in ~/.config/muse/settings.json."
      ],
      "sourceUrl": "https://www.meta.com/help/superintelligence/1484325780075655/",
      "note": "Recurring tasks and Muse Code skill install are documented by Meta. Installing outside skills in the Muse app is not.",
      "prompt": "Here are instructions for a task called \"Routine Health Check\". Follow them whenever I say \"Run Routine Health Check\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>\n\nIf you can save this as a skill, please do.",
      "promptFull": "Here are instructions for a task called \"Routine Health Check\". Follow them whenever I say \"Run Routine Health Check\". Ask me the setup questions first and remember my answers.\n\n---\nname: routine-health-check\ndescription: Use daily, or when the person asks whether their scheduled tasks are working. Reviews every routine or scheduled task the bot runs, finds runs that failed, stopped, went quiet, ran twice, or started producing empty or stale output, and reports only the problems with a suggested fix for each.\nmetadata:\n  id: routine-health-check\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Routine Health Check\n\n## What it does\n\nWatches the watchers. A bot can run a dozen scheduled tasks, such as a morning paper, price alerts, and inbox digests, and one can quietly break: a connector disconnects, a site starts blocking it, or a task posts the same thing every day. This check finds those problems early and tells the person only when something's wrong.\n\n## When to use\n\n- On a daily schedule, or when the person asks \"are my routines working?\".\n\n## Requires\n\nAccess to the bot's own list of routines or scheduled tasks, with their run history or last output.\n\n## Schedule\n\nDefault: daily at 6:00 AM, before the morning routines run. It stays silent when everything is healthy.\n\n## Inputs\n\n| Setting | Default | Notes |\n|---|---|---|\n| `quiet_threshold` | 2 missed runs | How many missed runs count as \"went quiet\". |\n| `stale_check` | on | Flags output identical to the last 3 runs. |\n| `report_healthy` | weekly | A one-line \"all 7 routines healthy\" every Monday. |\n\n## Steps\n\n1. **List** every routine with its schedule, its last run, and its result.\n2. **Find problems:**\n   - failed runs and their errors;\n   - missed runs (no run when one was due);\n   - duplicate runs;\n   - empty, error-filled, or identical output;\n   - a disconnected connector that a routine needs.\n3. **Diagnose** each problem in one line, for example \"the calendar connector needs to sign in again\" or \"the store blocks automated reads\".\n4. **Suggest a fix:** reconnect, change the time, pause, or merge duplicates. Apply it only with the person's OK.\n5. **Report** only the problems. Stay silent on healthy days, except for the weekly summary.\n\n## Output format\n\n```markdown\n**Routine check \u00b7 {date}:** 2 of 7 need attention\n- **Inbox Digest:** failed the last 2 runs. Email connector needs you to sign in again.\n- **Price Drop Watcher:** same output 4 days running. One store is blocking reads; drop that item?\n```\n\n## Edge cases\n\n- **A routine was paused on purpose:** don't flag it.\n- **A one-off reminder that has already run:** suggest deleting it.\n\n## Boundaries\n\n- Never delete or change a routine without the person's OK.\n- Never re-authorize a connector on the person's behalf.\n\nIf you can save this as a skill, please do."
    },
    "dots": {
      "label": "Dots",
      "status": "partially-verified",
      "steps": [
        "Copy skills/routine-health-check/SKILL.md.",
        "Paste the prompt below into your dot's conversation in ChatGPT, with the file where it says.",
        "Wait for the dot to confirm the schedule, time zone and end date.",
        "Optional: in ChatGPT, Plugins > + > Add custom MCP server with https://botplaza.lol/api/mcp (no authentication). Dots can use installed plugins, but OpenAI hasn't said whether that includes custom ones.",
        "Business, Enterprise, Healthcare and Edu workspaces can also upload downloads/routine-health-check.zip under Plugins > Skills > Create > Upload from your computer."
      ],
      "sourceUrl": "https://learn.chatgpt.com/docs/dots",
      "note": "Dots are available on ChatGPT Pro, Business Premium and Enterprise, and are still rolling out. Pasting instructions in and scheduled check-ins are documented.",
      "prompt": "Here are instructions for a task called \"Routine Health Check\". Take this on as an ongoing responsibility and follow them whenever I say \"Run Routine Health Check\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>\n\nCheck in every day at 6:00 AM Eastern time for the next 3 months, and confirm the schedule back to me.",
      "promptFull": "Here are instructions for a task called \"Routine Health Check\". Take this on as an ongoing responsibility and follow them whenever I say \"Run Routine Health Check\". Ask me the setup questions first and remember my answers.\n\n---\nname: routine-health-check\ndescription: Use daily, or when the person asks whether their scheduled tasks are working. Reviews every routine or scheduled task the bot runs, finds runs that failed, stopped, went quiet, ran twice, or started producing empty or stale output, and reports only the problems with a suggested fix for each.\nmetadata:\n  id: routine-health-check\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Routine Health Check\n\n## What it does\n\nWatches the watchers. A bot can run a dozen scheduled tasks, such as a morning paper, price alerts, and inbox digests, and one can quietly break: a connector disconnects, a site starts blocking it, or a task posts the same thing every day. This check finds those problems early and tells the person only when something's wrong.\n\n## When to use\n\n- On a daily schedule, or when the person asks \"are my routines working?\".\n\n## Requires\n\nAccess to the bot's own list of routines or scheduled tasks, with their run history or last output.\n\n## Schedule\n\nDefault: daily at 6:00 AM, before the morning routines run. It stays silent when everything is healthy.\n\n## Inputs\n\n| Setting | Default | Notes |\n|---|---|---|\n| `quiet_threshold` | 2 missed runs | How many missed runs count as \"went quiet\". |\n| `stale_check` | on | Flags output identical to the last 3 runs. |\n| `report_healthy` | weekly | A one-line \"all 7 routines healthy\" every Monday. |\n\n## Steps\n\n1. **List** every routine with its schedule, its last run, and its result.\n2. **Find problems:**\n   - failed runs and their errors;\n   - missed runs (no run when one was due);\n   - duplicate runs;\n   - empty, error-filled, or identical output;\n   - a disconnected connector that a routine needs.\n3. **Diagnose** each problem in one line, for example \"the calendar connector needs to sign in again\" or \"the store blocks automated reads\".\n4. **Suggest a fix:** reconnect, change the time, pause, or merge duplicates. Apply it only with the person's OK.\n5. **Report** only the problems. Stay silent on healthy days, except for the weekly summary.\n\n## Output format\n\n```markdown\n**Routine check \u00b7 {date}:** 2 of 7 need attention\n- **Inbox Digest:** failed the last 2 runs. Email connector needs you to sign in again.\n- **Price Drop Watcher:** same output 4 days running. One store is blocking reads; drop that item?\n```\n\n## Edge cases\n\n- **A routine was paused on purpose:** don't flag it.\n- **A one-off reminder that has already run:** suggest deleting it.\n\n## Boundaries\n\n- Never delete or change a routine without the person's OK.\n- Never re-authorize a connector on the person's behalf.\n\nCheck in every day at 6:00 AM Eastern time for the next 3 months, and confirm the schedule back to me."
    },
    "chatgpt": {
      "label": "ChatGPT",
      "status": "unverified",
      "verified": false,
      "steps": [
        "Download https://botplaza.lol/downloads/routine-health-check.zip (don't unzip).",
        "ChatGPT sidebar \u2192 Plugins \u2192 Skills tab \u2192 Create \u2192 Upload from your computer.",
        "Wait for the scan; if it says Needs Review, read it and approve.",
        "Use it with @routine-health-check or just ask.",
        "Ask ChatGPT to set a scheduled task that runs @routine-health-check at this cadence: every day at 6:00 AM. Set the time in your own time zone."
      ],
      "sourceUrl": "https://help.openai.com/en/articles/20001066-skills-in-chatgpt",
      "note": "Business, Enterprise, Edu and Healthcare plans only. Other plans fall back to pasting the prompt.",
      "prompt": "Here are instructions for a task called \"Routine Health Check\". Follow them whenever I say \"Run Routine Health Check\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>",
      "promptFull": "Here are instructions for a task called \"Routine Health Check\". Follow them whenever I say \"Run Routine Health Check\". Ask me the setup questions first and remember my answers.\n\n---\nname: routine-health-check\ndescription: Use daily, or when the person asks whether their scheduled tasks are working. Reviews every routine or scheduled task the bot runs, finds runs that failed, stopped, went quiet, ran twice, or started producing empty or stale output, and reports only the problems with a suggested fix for each.\nmetadata:\n  id: routine-health-check\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Routine Health Check\n\n## What it does\n\nWatches the watchers. A bot can run a dozen scheduled tasks, such as a morning paper, price alerts, and inbox digests, and one can quietly break: a connector disconnects, a site starts blocking it, or a task posts the same thing every day. This check finds those problems early and tells the person only when something's wrong.\n\n## When to use\n\n- On a daily schedule, or when the person asks \"are my routines working?\".\n\n## Requires\n\nAccess to the bot's own list of routines or scheduled tasks, with their run history or last output.\n\n## Schedule\n\nDefault: daily at 6:00 AM, before the morning routines run. It stays silent when everything is healthy.\n\n## Inputs\n\n| Setting | Default | Notes |\n|---|---|---|\n| `quiet_threshold` | 2 missed runs | How many missed runs count as \"went quiet\". |\n| `stale_check` | on | Flags output identical to the last 3 runs. |\n| `report_healthy` | weekly | A one-line \"all 7 routines healthy\" every Monday. |\n\n## Steps\n\n1. **List** every routine with its schedule, its last run, and its result.\n2. **Find problems:**\n   - failed runs and their errors;\n   - missed runs (no run when one was due);\n   - duplicate runs;\n   - empty, error-filled, or identical output;\n   - a disconnected connector that a routine needs.\n3. **Diagnose** each problem in one line, for example \"the calendar connector needs to sign in again\" or \"the store blocks automated reads\".\n4. **Suggest a fix:** reconnect, change the time, pause, or merge duplicates. Apply it only with the person's OK.\n5. **Report** only the problems. Stay silent on healthy days, except for the weekly summary.\n\n## Output format\n\n```markdown\n**Routine check \u00b7 {date}:** 2 of 7 need attention\n- **Inbox Digest:** failed the last 2 runs. Email connector needs you to sign in again.\n- **Price Drop Watcher:** same output 4 days running. One store is blocking reads; drop that item?\n```\n\n## Edge cases\n\n- **A routine was paused on purpose:** don't flag it.\n- **A one-off reminder that has already run:** suggest deleting it.\n\n## Boundaries\n\n- Never delete or change a routine without the person's OK.\n- Never re-authorize a connector on the person's behalf."
    },
    "gemini": {
      "label": "Gemini",
      "status": "unverified",
      "verified": false,
      "steps": [
        "gemini.google.com \u2192 Customize \u2192 Skills \u2192 Create \u2192 Upload \u2192 pick the SKILL.md at https://botplaza.lol/skills/routine-health-check.md (or https://botplaza.lol/downloads/routine-health-check.zip).",
        "Review, then Create.",
        "Use it with /routine-health-check."
      ],
      "sourceUrl": "https://support.google.com/gemini/answer/17094296",
      "note": "Personal accounts 18+. Workspace users must recreate the skill in Workspace Studio.",
      "prompt": "Here are instructions for a task called \"Routine Health Check\". Follow them whenever I say \"Run Routine Health Check\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>",
      "promptFull": "Here are instructions for a task called \"Routine Health Check\". Follow them whenever I say \"Run Routine Health Check\". Ask me the setup questions first and remember my answers.\n\n---\nname: routine-health-check\ndescription: Use daily, or when the person asks whether their scheduled tasks are working. Reviews every routine or scheduled task the bot runs, finds runs that failed, stopped, went quiet, ran twice, or started producing empty or stale output, and reports only the problems with a suggested fix for each.\nmetadata:\n  id: routine-health-check\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Routine Health Check\n\n## What it does\n\nWatches the watchers. A bot can run a dozen scheduled tasks, such as a morning paper, price alerts, and inbox digests, and one can quietly break: a connector disconnects, a site starts blocking it, or a task posts the same thing every day. This check finds those problems early and tells the person only when something's wrong.\n\n## When to use\n\n- On a daily schedule, or when the person asks \"are my routines working?\".\n\n## Requires\n\nAccess to the bot's own list of routines or scheduled tasks, with their run history or last output.\n\n## Schedule\n\nDefault: daily at 6:00 AM, before the morning routines run. It stays silent when everything is healthy.\n\n## Inputs\n\n| Setting | Default | Notes |\n|---|---|---|\n| `quiet_threshold` | 2 missed runs | How many missed runs count as \"went quiet\". |\n| `stale_check` | on | Flags output identical to the last 3 runs. |\n| `report_healthy` | weekly | A one-line \"all 7 routines healthy\" every Monday. |\n\n## Steps\n\n1. **List** every routine with its schedule, its last run, and its result.\n2. **Find problems:**\n   - failed runs and their errors;\n   - missed runs (no run when one was due);\n   - duplicate runs;\n   - empty, error-filled, or identical output;\n   - a disconnected connector that a routine needs.\n3. **Diagnose** each problem in one line, for example \"the calendar connector needs to sign in again\" or \"the store blocks automated reads\".\n4. **Suggest a fix:** reconnect, change the time, pause, or merge duplicates. Apply it only with the person's OK.\n5. **Report** only the problems. Stay silent on healthy days, except for the weekly summary.\n\n## Output format\n\n```markdown\n**Routine check \u00b7 {date}:** 2 of 7 need attention\n- **Inbox Digest:** failed the last 2 runs. Email connector needs you to sign in again.\n- **Price Drop Watcher:** same output 4 days running. One store is blocking reads; drop that item?\n```\n\n## Edge cases\n\n- **A routine was paused on purpose:** don't flag it.\n- **A one-off reminder that has already run:** suggest deleting it.\n\n## Boundaries\n\n- Never delete or change a routine without the person's OK.\n- Never re-authorize a connector on the person's behalf."
    },
    "cli": {
      "label": "Skills CLI",
      "status": "verified",
      "steps": [
        "All agents: `npx skills add https://botplaza.lol --skill routine-health-check` (add `-a claude-code`, `-a codex`, or `-a cursor` to choose one).",
        "Claude Code marketplace: `/plugin marketplace add https://botplaza.lol/.claude-plugin/marketplace.json` then `/plugin install routine-health-check@botplaza`.",
        "Fallback, Claude Code: `curl -fsSL https://botplaza.lol/downloads/routine-health-check.zip -o s.zip && unzip s.zip -d ~/.claude/skills/`.",
        "Fallback, Codex and other .agents readers: `curl -fsSL https://botplaza.lol/downloads/routine-health-check.zip -o s.zip && unzip s.zip -d ~/.agents/skills/`.",
        "Fallback, Cursor project: `curl -fsSL https://botplaza.lol/downloads/routine-health-check.zip -o s.zip && unzip s.zip -d .cursor/skills/`."
      ],
      "sourceUrl": "https://www.skills.sh/docs",
      "note": "The skills CLI reads /.well-known/agent-skills/index.json and installs each SKILL.md. The zip fallback uses the existing downloads/<slug>.zip folder layout.",
      "prompt": "npx skills add https://botplaza.lol --skill routine-health-check",
      "promptFull": "npx skills add https://botplaza.lol --skill routine-health-check"
    }
  },
  "author": "BotPlaza",
  "tags": [
    "routines",
    "monitoring",
    "maintenance",
    "daily"
  ],
  "featured": false,
  "longDescription": "Routine Health Check watches the watchers. It reviews each scheduled task's recent runs, spots failures, silence, duplicates and repeated output, diagnoses the cause in one line, and suggests a fix. It stays silent on healthy days.",
  "customization": [
    {
      "key": "weekly",
      "label": "Weekly all-clear",
      "type": "boolean",
      "question": "Send a one-line all-clear each Monday?",
      "default": true
    }
  ],
  "whatYouGet": [
    "Only the broken routines",
    "A one-line cause for each",
    "A suggested fix",
    "Silence when all is well"
  ],
  "dataSources": [
    {
      "name": "The bot's routine list and run history",
      "required": true
    }
  ],
  "setupTime": "1 minute",
  "sampleOutput": "samples/routine-health-check.md",
  "skillFile": "skills/routine-health-check/SKILL.md",
  "version": "1.0.0",
  "license": "",
  "previewAlt": "A status board of scheduled routines, most green and two flagged amber with a one-line fix each.",
  "writesOrSends": "Read-only; changes routines only after your OK.",
  "audience": "bots",
  "setup": [
    {
      "key": "weekly",
      "question": "Send a one-line all-clear each Monday?",
      "type": "boolean",
      "default": true
    }
  ],
  "safety": {
    "dataAccess": [
      "The bot's own routines and their run history"
    ],
    "writesOrSends": "Read-only; changes routines only after your OK.",
    "estCost": "Low: one quick run a day (~30 a month); silent when everything is healthy.",
    "costLevel": "light",
    "warnings": [
      "It changes, pauses or deletes routines only after your OK."
    ]
  },
  "checked": {
    "instructionOnly": true,
    "scripts": false,
    "runtimeFetch": false,
    "sha256": "280c2aca99d073b6be6c4ec9716a299d4f21452bc9ce9e427a1c6143d9d26bc7",
    "checkedOn": "2026-10-31"
  },
  "urls": {
    "page": "https://botplaza.lol/skills/routine-health-check/",
    "markdown": "https://botplaza.lol/skills/routine-health-check.md",
    "skillMd": "https://botplaza.lol/skills/routine-health-check/SKILL.md",
    "json": "https://botplaza.lol/skills/routine-health-check.json",
    "zip": "https://botplaza.lol/downloads/routine-health-check.zip",
    "mcp": "https://botplaza.lol/api/mcp"
  }
}