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.

Giao diện New routine trong Claude Code — chọn Schedule, GitHub event hoặc API trigger

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

PropertyValue
Launch14/04/2026, research preview
PlansPro, Max, Team, Enterprise (không có Free)
Daily run capPro 5 · Max 15 · Team/Enterprise 25
Min schedule interval1 giờ (sub-hourly cron bị reject)
GitHub hourly capPer-routine + per-account, event vượt cap bị drop, không queue
Session modelMỗi event = session fresh, không share state
Branch pushDefault chỉ push được vào claude/* — mở rộng phải bật tay
API endpointPOST /v1/claude_code/routines/{id}/fire
API beta headerexperimental-cc-routine-2026-04-01
IdentityCommit, 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:

  1. Fetch label set từ repo qua gh label list — KHÔNG tự chế label mới
  2. Validate scope — issue này có thuộc sản phẩm/repo này không? Nếu không, gán invalid và dừng
  3. Dán category labels: bug / enhancement / question / docs + technical-area labels
  4. Check duplicategh search issues với query từ issue body
  5. 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
  6. On issue_comment event: nếu user cung cấp info còn thiếu, tự động remove needs-repro / stale
  7. Rewrite title mơ hồ thành actionable
  8. Assign owner theo CODEOWNERS + file nào được mention trong issue
  9. Flag security-sensitive cho người review
  10. 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

ToolRuns onMin intervalWebhookAI judgmentDeterministic
RoutinesAnthropic cloud1 giờ✅ GitHub
Desktop tasksMáy bạn1 phút
/loopMáy bạn (session mở)1 phút
GitHub ActionsGitHub runnersBất kỳ
Cron/n8n/ZapierInfra của bạnBấ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 /fire endpoint 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 + filter is_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-setup chỉ cho phép clone, phải install Claude GitHub App riêng mới nhận webhook.
  • Regex gotcha — operator matches regex test 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 operator contains.
  • API text payload là plain string — gửi JSON vào field text thì 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.