diff --git a/automations/catalog/github-repo-monitor.json b/automations/catalog/github-repo-monitor.json new file mode 100644 index 00000000..9ceeb819 --- /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": ["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.", + "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..86ed4559 --- /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": ["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.", + "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,