Slack-Driven Development: Chat một câu, Claude Code tự tạo PR
Biến tin nhắn Slack thành pull request tự động với Claude Code. Giảm 60-80% thời gian từ ý tưởng đến triển khai, bảo toàn 100% ngữ cảnh quyết định kỹ thuật.
Định nghĩa
Slack-Driven Development (SDD) là phương pháp phát triển phần mềm trong đó tin nhắn Slack trở thành giao diện chính để tạo pull request — Claude Code "lắng nghe" conversation trong Slack workspace thông qua MCP server, tự động sinh code, commit và đẩy lên repository mà không cần developer chuyển ngữ cảnh sang IDE hay ticket system.
Giải thích chi tiết
Tại sao cần SDD?
Việc phải chuyển đổi liên tục giữa Slack và IDE là "kẻ giết chết" năng suất của developer remote. Quyết định kỹ thuật thường được thảo luận trong Slack threads nhưng bị chìm nghỉm ở đó vì developer phải: copy ý tưởng từ Slack, paste vào Jira/Linear để tạo ticket, mở IDE để nhớ lại ngữ cảnh, implement rồi quên mất lý do tại sao lại chọn giải pháp đó. SDD loại bỏ bước trung gian bằng cách biến Slack trực tiếp thành "specification interface" cho Claude Code.
Kiến trúc kỹ thuật
Hệ thống hoạt động qua 5 giai đoạn liên tục:
Kết nối: Thiết lập MCP Slack server hoặc webhook để Claude Code đọc/ghi tin nhắn trong workspace. Bot được thêm vào các channel kỹ thuật như #dev, #backend, hoặc #urgent-bugs với quyền đọc thread history và post message.
Trigger: Khi mention @Claude trong thread kèm yêu cầu tự nhiên (ví dụ: "fix the auth bug we discussed yesterday"), bot kích hoạt session mới hoặc resume session cũ đã lưu trong memory.
Context ingestion: Claude Code pull toàn bộ thread history bao gồm decision points, context từ ngày hôm trước, và các file reference trong conversation, kết hợp với code context qua MCP kết nối đến GitHub hoặc GitLab.
Planning Mode: Claude tự động tạo implementation plan từ natural language — xác định files cần sửa, dependencies, test cases cần cập nhật. Plan được post ngược lại Slack dưới dạng thread reply để team review (thường qua emoji reaction 👍 để approve).
Execution: Sau khi approve, Claude chuyển sang auto mode hoặc acceptEdits mode để: generate code changes, commit với conventional commits như feat:, fix:, refactor:, push branch mới (ví dụ: claude/slack-auth-fix-2025), tạo PR với description tự động link ngược lại Slack thread, và post link PR về đúng thread Slack để context không bị mất.
Bảo mật và Permission
SDD không phải là "auto-coding nguy hiểm". Best practice sử dụng Claude's /plan mode — AI generate plan, human approve trong thread bằng emoji reaction hoặc reply "go", rồi mới execute. Permission mode plan hoặc acceptEdits đảm bảo không có code nào được merge mà không qua review. Với các tác vụ nhạy cảm như thay đổi database schema hoặc API keys, hệ thống yêu cầu PreToolUse hook để chặn lệnh nguy hiểm trước khi chạy.
Ví dụ thực tế
Hotfix từ báo cáo lỗi trong channel bugs
Tình huống: Buổi trưa, nhân viên CSKH post ảnh lỗi trong channel #bugs với caption: "Khách báo lỗi thanh toán Momo qua VietQR, mã đơn hàng không hiển thị trong confirmation". Lead developer mention @Claude:
@Claude Fix VietQR payment not showing order_id in Momo confirmation.
Context: đơn hàng #VN12345, happened 10:30AM today.
Check momo-webhook.ts và vietqr-handler.js.
Don't forget update tests.Quy trình:
- Claude đọc thread, pull log từ Sentry qua MCP integration
- Tìm file
momo-webhook.tsvàvietqr-handler.jstrong codebase, kiểm trapayment-confirmation.tsx - Post plan vào thread: "Plan: 1) Add order_id validation in vietqr-handler.js line 45, 2) Update response payload in momo-webhook.ts, 3) Add test case for VietQR edge case. Est: 15 mins"
- Dev reply 👍 hoặc "sửa điểm 2 thành throw BadRequest thay vì null"
- Claude execute: tạo branch
claude/fix-vietqr-orderid, commit 3 lần cho code, test, và docs, push, tạo PR #234 với link đến Slack thread - Post link PR vào thread: "PR ready: github.com/org/repo/pull/234"
Thời gian: Từ báo cáo bug đến PR sẵn sàng review: 8 phút thay vì 45 phút (không cần context switching, không cần viết ticket).
Refactor nhỏ từ technical discussion
Tình huống: Trong thread thảo luận về performance báo cáo doanh thu Shopee, senior dev comment: "Nên chuyển cái query này sang dùng index composite trên bảng transactions, nhưng đừng đổi schema migration". Junior dev mention @Claude để tạo PR thử nghiệm.
Workflow kỹ thuật:
# Claude tự động thực hiện trong background
git worktree add ../shopee-query-optimize -b claude/index-refactor
cd ../shopee-query-optimize
# Tìm query trong models/transaction.js
# Thêm index composite cho updated_at + status
# Chạy test local qua MCP command
# Tạo PR với benchmark so sánh trước/sauClaude sẽ tạo git worktree mới để tránh ảnh hưởng branch main, thực hiện refactor, và post kết quả benchmark vào Slack thread để senior dev review trước khi merge.
Tạo feature từ product requirement
Tình huống: Product manager mô tả feature trong #product: "Thêm tính năng export báo cáo tháng sang CSV cho admin dashboard. Chỉ cần đơn giản: nút export, query 30 ngày gần nhất từ bảng orders, format CSV chuẩn có cột tổng tiền VAT."
Workflow:
@Claude Implement admin CSV export for last 30 days.
Requirements: button in admin dashboard, query optimized,
use existing auth middleware, include VAT calculation.Claude thực hiện:
- Tạo plan với 4 phases: UI button (React), API endpoint (Node.js), query optimization (PostgreSQL), CSV formatting
- Post plan vào thread, tag product-manager để confirm scope
- Sau approve, spawn subagents: 1 agent cho UI, 1 agent cho API, 1 agent cho query
- Merge results, tạo PR với video demo (tự generate bằng Playwright MCP)
- Link PR trong thread kèm thông tin: "Cần review phần query optimization và VAT calculation"
Ứng dụng
Team Remote-first / Async-first: Distributed teams ở Việt Nam (Momo, Grab, Shopee), Singapore, US có thể "handoff" context qua Slack mà không cần standup meeting. Quyết định kỹ thuật được capture 100% trong git history thay vì lost in chat.
Tech Lead / Senior Engineers: Giảm bottleneck ở senior dev. Thay vì phải viết chi tiết ticket cho junior, senior chỉ cần mô tả intent trong Slack, Claude tạo PR skeleton với test cases, junior chỉ cần review và polish.
Startup MVP Development: Founder non-technical mô tả feature trong Slack, Claude tạo PR trong vòng phút. Founder xem demo trên preview deployment (Vercel/Netlify), feedback trực tiếp trong thread, Claude iterate liên tục không cần họp.
DevOps và SRE:
Incident response: Alert từ PagerDuty vào Slack, SRE mention @Claude investigate and patch — Claude tạo hotfix PR ngay trong incident channel, giảm MTTR (Mean Time To Recovery) đáng kể cho hệ thống thanh toán hoặc giao hàng.
So sánh
| Tiêu chí | Slack-Driven Development | Traditional Ticket-Driven | Ad-hoc AI Coding |
|---|---|---|---|
| Context Preservation | 100% — bidirectional link Slack↔Git | 40-60% — context lost trong translation | 20-30% — context trong chat riêng lẻ |
| Thời gian Idea→PR | 5-15 phút | 2-6 giờ (viết spec, assign, pickup) | 30-60 phút (copy-paste, setup) |
| Tính chính xác Spec | Natural language, cần verification | Structured, precise nhưng chậm | Chaos, không có audit trail |
| Security & Governance | Có (plan mode, hooks, manual approve) | Có (approval workflows) | Thấp (dễ bị hallucination) |
| Phù hợp | Hotfix, quick features, refactoring nhỏ | Large features, complex architecture | Prototype cá nhân |
Kết luận: SDD không thay thế ticket system cho features phức tạp cần architecture design sâu, nhưng là "fast lane" cho 70% công việc hàng ngày của dev team — những task đủ nhỏ để không cần Jira nhưng đủ quan trọng để cần audit trail trong git.
Bài viết liên quan
Cùng cụm (pro-automation):
- Tự động Code Review với /loop và GitHub Actions — Tự động chạy review khi PR được tạo từ Slack
- Tích hợp Claude Code vào CI/CD pipeline — Kết nối SDD với GitHub Actions để auto-test PR sinh ra từ Slack
- Di chuyển Legacy Code: Strangler Fig Pattern với Claude — Dùng SDD để thay thế từng phần legacy một cách tự động
Đọc tiếp:
- MCP Slack: Đọc tin nhắn, post updates, tự động hoá — Cấu hình MCP server để Claude đọc/ghi Slack nâng cao
- Hooks là gì? 25 events và 4 loại hook — Dùng hooks để chặn lệnh nguy hiểm trong SDD workflow
- Auto Mode: Để Claude tự quyết định quyền — Bật auto mode cho SDD workflow tin cậy cao
Tích hợp Claude Code vào CI/CD: Từ 'chatbot' thành 'cổng kiểm soát' tự động
Biến Claude Code thành công cụ phân tích tự động trong pipeline CI/CD với Print Mode — kiểm soát chất lượng code từ commit đầu tiên mà không cần chờ duyệt thủ công.
Di chuyển Legacy Code với Claude Code: Strangler Fig Pattern
Cách dùng Claude Code tái cấu trúc hệ thống cũ bằng Strangler Fig Pattern — tự động phân tích code legacy, chuyển đổi từng phần và xóa code cũ an toàn không cần downtime.