TROISINH
Ứng dụng nâng caoTự động hoá workflow chuyên sâu

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:

  1. Claude đọc thread, pull log từ Sentry qua MCP integration
  2. Tìm file momo-webhook.tsvietqr-handler.js trong codebase, kiểm tra payment-confirmation.tsx
  3. 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"
  4. Dev reply 👍 hoặc "sửa điểm 2 thành throw BadRequest thay vì null"
  5. 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
  6. 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/sau

Claude 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:

  1. Tạo plan với 4 phases: UI button (React), API endpoint (Node.js), query optimization (PostgreSQL), CSV formatting
  2. Post plan vào thread, tag product-manager để confirm scope
  3. Sau approve, spawn subagents: 1 agent cho UI, 1 agent cho API, 1 agent cho query
  4. Merge results, tạo PR với video demo (tự generate bằng Playwright MCP)
  5. 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 DevelopmentTraditional Ticket-DrivenAd-hoc AI Coding
Context Preservation100% — bidirectional link Slack↔Git40-60% — context lost trong translation20-30% — context trong chat riêng lẻ
Thời gian Idea→PR5-15 phút2-6 giờ (viết spec, assign, pickup)30-60 phút (copy-paste, setup)
Tính chính xác SpecNatural language, cần verificationStructured, precise nhưng chậmChaos, không có audit trail
Security & GovernanceCó (plan mode, hooks, manual approve)Có (approval workflows)Thấp (dễ bị hallucination)
Phù hợpHotfix, quick features, refactoring nhỏLarge features, complex architecturePrototype 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):

Đọc tiếp:

On this page