{"slug": "how-i-turned-slack-into-an-ai-teammate-that-opens-pull-requests", "title": "How I Turned Slack Into an AI Teammate That Opens Pull Requests", "summary": "A developer built Slack2PR, an AI coding teammate that turns Slack messages into GitHub pull requests. The tool uses Hexabot, Google Gemini, OpenCode, and TanStack AI Sandboxes to automate the software development lifecycle from requirements gathering to testing and PR creation.", "body_md": "*This is a submission for Weekend Challenge: Passion Edition*\n\nWhile talking about AI workflow automation, someone asked me a simple question:\n\n“Are you using it yourself?”\n\nThat question stayed with me.\n\nMy passion is software engineering, so for the DEV Weekend Challenge, I decided to automate a small part of the work I do every day: turning an idea or bug report into a pull request.\n\nI built **Slack2PR**, an AI coding teammate accessible directly from Slack.\n\nYou mention the bot, describe what you need, and it can:\n\nSlack2PR also distinguishes between three types of requests:\n\nIt was to explore what happens when an AI agent becomes part of the development workflow instead of being limited to a separate chat window.\n\nMention it in Slack like a teammate, describe a feature or a bug, and it plans, codes, tests, and opens a pull request on GitHub.\n\nSlack2PR is a [Hexabot](https://hexabot.ai) app that automates the software development lifecycle end to end: a Slack message triggers an agentic workflow that interviews you about requirements, breaks the work into components, implements them one by one inside a sandboxed clone of your repository, writes unit tests, and replies in the thread with a PR link. It exists to answer the question every Hexabot engineer eventually gets asked: *\"Are you using it yourself?\"* — yes, even to build Hexabot.\n\n```\nSlack message\n    │\n    ▼\nSlack channel (hexabot-channel-slack)\n    │\n    ▼\nSlack2PR workflow ── classify intent\n    │\n    ├─ develop  → requirements interview → plan components → implement each\n    │             in a loop → write unit tests → open\n```\n\n…The project combines several tools, each responsible for a different part of the workflow.\n\n**Hexabot** handles the conversational workflow and connects the agent to Slack. The workflow is defined in YAML and manages intent classification, requirements interviews, loops, memory, approval steps, and status updates.\n\n**Google Gemini** is used for intent classification, summarizing requirements, and powering the coding tasks in the demo.\n\n**OpenCode** acts as the coding harness. The implementation is also compatible with Claude Code, Codex, and Grok Build through interchangeable TanStack AI adapters.\n\n**TanStack AI Sandboxes** provide an isolated Docker workspace. Each Slack thread receives a cloned copy of the target repository, and the same sandbox is reused throughout planning, implementation, testing, and delivery.\n\nFinally, **Git and the GitHub CLI** are configured inside the sandbox so the agent can create a branch, commit its work, push it, and open a pull request without exposing credentials in its prompts.\n\nOne important design decision was to keep the workflow in control. The agent does not receive one giant prompt asking it to do everything. Instead, the workflow divides the job into explicit stages:\n\n```\nSlack request\n    ↓\nClassify intent\n    ↓\nGather requirements\n    ↓\nPlan components\n    ↓\nImplement each component\n    ↓\nWrite and run tests\n    ↓\nOpen a GitHub pull request\n```\n\nThis makes the process easier to observe, constrain, and improve.\n\nBest Use of Google AI", "url": "https://wpnews.pro/news/how-i-turned-slack-into-an-ai-teammate-that-opens-pull-requests", "canonical_source": "https://dev.to/marrouchi/how-i-turned-slack-into-an-ai-teammate-that-opens-pull-requests-b4p", "published_at": "2026-07-11 10:22:36+00:00", "updated_at": "2026-07-11 10:43:55.049050+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-infrastructure", "generative-ai", "natural-language-processing"], "entities": ["Slack2PR", "Hexabot", "Google Gemini", "OpenCode", "TanStack AI Sandboxes", "GitHub", "Claude Code", "Codex"], "alternates": {"html": "https://wpnews.pro/news/how-i-turned-slack-into-an-ai-teammate-that-opens-pull-requests", "markdown": "https://wpnews.pro/news/how-i-turned-slack-into-an-ai-teammate-that-opens-pull-requests.md", "text": "https://wpnews.pro/news/how-i-turned-slack-into-an-ai-teammate-that-opens-pull-requests.txt", "jsonld": "https://wpnews.pro/news/how-i-turned-slack-into-an-ai-teammate-that-opens-pull-requests.jsonld"}}