From a64a06c23c2fc7745ae7df84b13f060fb4e97fd7 Mon Sep 17 00:00:00 2001 From: tofarr Date: Fri, 22 May 2026 16:34:22 -0600 Subject: [PATCH 1/2] Add github-repo-monitor and slack-channel-monitor to automation catalog Adds two new proven workflow entries to the automations catalog, sourced from the existing github-repo-monitor and slack-channel-monitor skills in this repo. - github-repo-monitor: watches a GitHub repo for @OpenHands mentions in issue/PR comments, starts a conversation, and posts the reply back. popularityRank: 98, estimatedSetupMinutes: 5. - slack-channel-monitor: watches Slack channels for @openhands mentions, starts a conversation with message context, and replies in the thread. popularityRank: 92, estimatedSetupMinutes: 7. Co-authored-by: openhands --- automations/catalog/github-repo-monitor.json | 11 +++++++++++ automations/catalog/slack-channel-monitor.json | 11 +++++++++++ automations/index.js | 4 ++++ 3 files changed, 26 insertions(+) create mode 100644 automations/catalog/github-repo-monitor.json create mode 100644 automations/catalog/slack-channel-monitor.json diff --git a/automations/catalog/github-repo-monitor.json b/automations/catalog/github-repo-monitor.json new file mode 100644 index 00000000..cf4f7d71 --- /dev/null +++ b/automations/catalog/github-repo-monitor.json @@ -0,0 +1,11 @@ +{ + "id": "github-repo-monitor", + "name": "GitHub repository monitor", + "category": "Developer tools", + "description": "Watch a repository for @OpenHands mentions in issues and PR comments, start a conversation, and post the agent's reply back to GitHub.", + "requiredMcpIds": [], + "popularityRank": 98, + "estimatedSetupMinutes": 5, + "prompt": "Set up a GitHub repository monitor automation that polls a repository for comments containing a trigger phrase (default: @OpenHands) and starts an OpenHands conversation in response, then posts the agent's reply back to GitHub. Walk me through the setup.", + "exampleImplementation": "Trigger: cron, every minute (configurable)\nRequired secret: GITHUB_TOKEN\n\n1. Poll GitHub for new issue and PR comments since the last run.\n2. Match comments containing the trigger phrase (case-insensitive, default: @OpenHands).\n3. Post an acknowledgment comment with a link to the new OpenHands conversation.\n4. Forward follow-up replies in the same thread to the running conversation.\n5. Post the agent's final response back to GitHub when the conversation completes." +} diff --git a/automations/catalog/slack-channel-monitor.json b/automations/catalog/slack-channel-monitor.json new file mode 100644 index 00000000..488789ad --- /dev/null +++ b/automations/catalog/slack-channel-monitor.json @@ -0,0 +1,11 @@ +{ + "id": "slack-channel-monitor", + "name": "Slack channel monitor", + "category": "Team communication", + "description": "Watch Slack channels for @openhands mentions, open a conversation with the message context, and reply in the thread when the agent finishes.", + "requiredMcpIds": [], + "popularityRank": 92, + "estimatedSetupMinutes": 7, + "prompt": "Set up a Slack channel monitor automation that polls Slack channels for messages containing a trigger phrase (default: @openhands) and starts an OpenHands conversation in response, then posts the agent's reply back to the Slack thread. Walk me through the setup — ask me which channels to monitor and what trigger phrase to use.", + "exampleImplementation": "Trigger: cron, every minute\nRequired secret: SLACK_BOT_TOKEN or SLACK_USER_TOKEN\n\n1. Poll up to 10 configured Slack channels for new messages since the last run.\n2. Match messages containing the trigger phrase (default: @openhands).\n3. React with 👀 and start an OpenHands conversation with the message and recent channel context.\n4. Post a thread reply with a link to the conversation.\n5. Forward subsequent thread replies to the running conversation and post the agent's response when done." +} diff --git a/automations/index.js b/automations/index.js index aa7a413b..4c9ab120 100644 --- a/automations/index.js +++ b/automations/index.js @@ -1,12 +1,16 @@ import github_pr_reviewer from "./catalog/github-pr-reviewer.json" with { type: "json" }; +import github_repo_monitor from "./catalog/github-repo-monitor.json" with { type: "json" }; import slack_standup_digest from "./catalog/slack-standup-digest.json" with { type: "json" }; +import slack_channel_monitor from "./catalog/slack-channel-monitor.json" with { type: "json" }; import linear_triage_assistant from "./catalog/linear-triage-assistant.json" with { type: "json" }; import research_brief_writer from "./catalog/research-brief-writer.json" with { type: "json" }; import incident_retrospective_drafter from "./catalog/incident-retrospective-drafter.json" with { type: "json" }; export const AUTOMATION_CATALOG = [ github_pr_reviewer, + github_repo_monitor, slack_standup_digest, + slack_channel_monitor, linear_triage_assistant, research_brief_writer, incident_retrospective_drafter, From e7f0e03794d60fae9e80c7bba3a032821542a012 Mon Sep 17 00:00:00 2001 From: tofarr Date: Fri, 22 May 2026 17:20:16 -0600 Subject: [PATCH 2/2] Fix: add requiredMcpIds to new automation catalog entries The test_catalogs.py suite asserts every automation must reference at least one known MCP. Set the correct IDs for both new entries: - github-repo-monitor -> ["github"] - slack-channel-monitor -> ["slack"] Co-authored-by: openhands --- automations/catalog/github-repo-monitor.json | 2 +- automations/catalog/slack-channel-monitor.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/automations/catalog/github-repo-monitor.json b/automations/catalog/github-repo-monitor.json index cf4f7d71..9ceeb819 100644 --- a/automations/catalog/github-repo-monitor.json +++ b/automations/catalog/github-repo-monitor.json @@ -3,7 +3,7 @@ "name": "GitHub repository monitor", "category": "Developer tools", "description": "Watch a repository for @OpenHands mentions in issues and PR comments, start a conversation, and post the agent's reply back to GitHub.", - "requiredMcpIds": [], + "requiredMcpIds": ["github"], "popularityRank": 98, "estimatedSetupMinutes": 5, "prompt": "Set up a GitHub repository monitor automation that polls a repository for comments containing a trigger phrase (default: @OpenHands) and starts an OpenHands conversation in response, then posts the agent's reply back to GitHub. Walk me through the setup.", diff --git a/automations/catalog/slack-channel-monitor.json b/automations/catalog/slack-channel-monitor.json index 488789ad..86ed4559 100644 --- a/automations/catalog/slack-channel-monitor.json +++ b/automations/catalog/slack-channel-monitor.json @@ -3,7 +3,7 @@ "name": "Slack channel monitor", "category": "Team communication", "description": "Watch Slack channels for @openhands mentions, open a conversation with the message context, and reply in the thread when the agent finishes.", - "requiredMcpIds": [], + "requiredMcpIds": ["slack"], "popularityRank": 92, "estimatedSetupMinutes": 7, "prompt": "Set up a Slack channel monitor automation that polls Slack channels for messages containing a trigger phrase (default: @openhands) and starts an OpenHands conversation in response, then posts the agent's reply back to the Slack thread. Walk me through the setup — ask me which channels to monitor and what trigger phrase to use.",