- Anthropic vừa mở Routines trong research preview (14/04/2026).
- Bind trigger GitHub "issue.opened" vào một routine, Claude đọc code, dán label, tìm duplicate, assign owner, rồi post summary sang Slack — tất cả chạy trên cloud của Anthropic, laptop bạn đóng cũng kệ.
TL;DR
Claude Code Routines ra research preview ngày 14/04/2026. Mỗi routine = prompt + repo + connectors + trigger, chạy tự động trên hạ tầng cloud của Anthropic. Ba loại trigger: Schedule, API HTTP POST, và GitHub events — bao gồm issues.opened, issue_comment, pull_request, release, v.v. Tweet của Noah Zweben (Anthropic) chỉ ra cú dùng ngon nhất cho OSS maintainer và team engineer nhỏ: bất cứ khi nào ai đó mở issue mới, Claude tự triage — đọc code, dán label từ label set có sẵn, check duplicate, assign owner, báo Slack.

Có gì mới
Trước Routines, muốn automate Claude Code kiểu lặp lại là phải tự dựng cron, tự host, tự wire MCP server. Anthropic giờ đóng gói hết vào một config duy nhất:
- Prompt — Claude làm gì mỗi lần chạy
- Repo(s) — codebase được clone fresh mỗi run
- Connectors — Slack, Linear, GitHub, Datadog, Sentry... kế thừa từ setup Claude Code sẵn có
- Trigger — Schedule / API / GitHub event (có thể combo nhiều trigger cho cùng 1 routine)
Mỗi event GitHub fire → một session Claude Code cloud mới, chạy tự trị, không cần bạn approve giữa chừng.
Vì sao đáng quan tâm
Với indie hacker và OSS maintainer, thứ giết năng suất không phải viết code — mà là sáng thứ Hai mở GitHub thấy 40 issue cuối tuần, chưa label, chưa assign, chưa biết có phải duplicate không. Script kiểu keyword match chết vì nó không hiểu code. Claude đọc được body issue, crawl repo để biết file nào bị ảnh hưởng, gọi gh search issues để tìm trùng, và quyết định label dựa trên ngữ cảnh thật.
Tweet của Noah Zweben nói thẳng: "Trigger Routines whenever a GitHub Issue is created. Great for auto-triage usecases." Không phải marketing — nó là một endpoint kỹ thuật cụ thể, đã có trong docs và trong command triage-issue.md open-source của chính Anthropic.
Sự thật kỹ thuật
| Property | Value |
|---|---|
| Launch | 14/04/2026, research preview |
| Plans | Pro, Max, Team, Enterprise (không có Free) |
| Daily run cap | Pro 5 · Max 15 · Team/Enterprise 25 |
| Min schedule interval | 1 giờ (sub-hourly cron bị reject) |
| GitHub hourly cap | Per-routine + per-account, event vượt cap bị drop, không queue |
| Session model | Mỗi event = session fresh, không share state |
| Branch push | Default chỉ push được vào claude/* — mở rộng phải bật tay |
| API endpoint | POST /v1/claude_code/routines/{id}/fire |
| API beta header | experimental-cc-routine-2026-04-01 |
| Identity | Commit, PR, Slack msg xuất hiện dưới GitHub/Slack user của bạn — không phải bot |
Supported GitHub events: pull_request, pull_request_review, review_comment, push, release, issue, issue_comment, commit_comment, discussion, check_run, workflow_run, merge_queue, repository_dispatch. Với PR còn filter thêm theo author, title, body, base/head branch, labels, draft state, merged state, from-fork.
Auto-triage playbook (từ chính code Anthropic)
Command triage-issue.md Anthropic open-source trong repo anthropics/claude-code là cái gần nhất với "canonical prompt". Flow:
- Fetch label set từ repo qua
gh label list— KHÔNG tự chế label mới - Validate scope — issue này có thuộc sản phẩm/repo này không? Nếu không, gán
invalidvà dừng - Dán category labels: bug / enhancement / question / docs + technical-area labels
- Check duplicate —
gh search issuesvới query từ issue body - Dán lifecycle labels:
needs-repro(bug thiếu step reproduce),needs-info(thiếu version/env) — auto-close sau 7 ngày nếu không ai reply - On
issue_commentevent: nếu user cung cấp info còn thiếu, tự động removeneeds-repro/stale - Rewrite title mơ hồ thành actionable
- Assign owner theo CODEOWNERS + file nào được mention trong issue
- Flag security-sensitive cho người review
- Post Slack summary: tổng, breakdown theo label, cái gì cần human attention
So sánh với công cụ khác
| Tool | Runs on | Min interval | Webhook | AI judgment | Deterministic |
|---|---|---|---|---|---|
| Routines | Anthropic cloud | 1 giờ | ✅ GitHub | ✅ | ❌ |
| Desktop tasks | Máy bạn | 1 phút | ❌ | ✅ | ❌ |
| /loop | Máy bạn (session mở) | 1 phút | ❌ | ✅ | ❌ |
| GitHub Actions | GitHub runners | Bất kỳ | ✅ | ❌ | ✅ |
| Cron/n8n/Zapier | Infra của bạn | Bất kỳ | ✅ | ❌ | ✅ |
Rule thực tế: mechanical job (build, test, deploy, data sync) → Actions/cron. Judgment-heavy job (triage, review, alert interpretation) → Routines. Combo ngon: cron collect facts, Routines interpret.
Use case thực tế
- OSS maintainer zero-inbox: Monday 9am đã có queue gọn, label đầy đủ, duplicate đã đóng
- Backlog grooming hàng đêm: schedule 23:00 + issue.opened hybrid
- Alert triage: Sentry/Datadog POST vào
/fireendpoint kèm stack trace → Claude correlate với commits gần đây → mở draft PR fix - PR review kiểu nội bộ:
pull_request.opened+ filteris_draft=false→ Claude apply checklist team bạn - Deploy verification: CD gọi API sau deploy → Claude smoke check + go/no-go trong release channel
- Library port tự động:
pull_request.closed.mergedở SDK gốc → Claude port sang SDK ngôn ngữ khác
Giới hạn & gotcha
- Research preview — behavior, limit, API surface có thể đổi. Không build mission-critical pipeline lên nó chưa.
- ZDR incompatible — code bị clone lên cloud Anthropic, không phù hợp team có chính sách zero-data-retention.
- Non-determinism — cùng prompt, khác output. Giải pháp: structured output (JSON, checklist), policy draft-PR-first, allowlist label + path.
- Setup trap —
/web-setupchỉ cho phép clone, phải install Claude GitHub App riêng mới nhận webhook. - Regex gotcha — operator
matches regextest toàn field, không phải substring. Muốn match "hotfix" bất cứ đâu trong title: dùng.*hotfix.*hoặc đổi sang operatorcontains. - API text payload là plain string — gửi JSON vào field
textthì Claude đọc như chuỗi, không parse. Viết prose ("Alert ID 123 fired in prod"), đừng tống raw JSON. - Bearer token hiện đúng 1 lần — mất là phải regenerate.
- Hourly cap drop event — filter hẹp lại, nếu không repo busy sẽ ăn hết quota.
- Identity risk — mọi action ký tên bạn. Scope repo + connector theo least privilege.
What's next
Anthropic nói rõ kế hoạch mở rộng webhook trigger vượt ngoài GitHub — chưa confirm timeline. API surface có thể đổi behind các dated beta header mới, nhưng hai version trước sẽ được bảo đảm hoạt động để caller có thời gian migrate. Trong nội bộ research preview, kỳ vọng Anthropic sẽ tinh chỉnh daily cap, cải thiện observability/logging, và có thể mở tính năng team-shared routines (hiện tại routine thuộc individual account).
Nếu bạn đã dùng Claude Code hàng ngày và đang maintain repo có issue/PR traffic thật, đây là thời điểm để thử. Bắt đầu bằng một routine duy nhất — backlog grooming hàng đêm — trước khi wire thêm. Validate output vài vòng trước khi cho nó động vào PR production.
Nguồn: Anthropic blog, Claude Code docs, triage-issue.md trong anthropics/claude-code, tweet Noah Zweben.

