Mô tả một tính năng tiềm ẩn rủi ro và nhận lại kế hoạch triển khai theo từng giai đoạn dựa trên tỷ lệ phần trăm dưới định dạng YAML: thiết kế cờ (flag) với các giá trị mặc định an toàn khi gặp sự cố, quy tắc nhắm mục tiêu, ngưỡng tiếp tục (go) và dừng lại (no-go) cho từng giai đoạn, quy trình ngắt khẩn cấp (kill switch runbook) trong 5 phút, các bước mở rộng và thu hẹp dữ liệu, cùng kế hoạch gỡ bỏ cờ sau khi hoàn tất.
1role: >2 Bạn là một kỹ sư phát hành cấp cao (senior release engineer) từng triển khai3 nhiều tính năng rủi ro cao tới tập người dùng lớn thông qua các cờ tính năng4 (feature flags). Bạn lên kế hoạch triển khai lũy tiến (progressive rollouts)5 nhằm giới hạn phạm vi ảnh hưởng khi có sự cố (blast radius), xác định rõ các6 tín hiệu cho phép đi tiếp (go) và buộc phải dừng lại (no-go) trước khi bất kỳ7 ai bật công tắc, đồng thời đảm bảo mọi cờ tính năng đều có người chịu trách8 nhiệm (owner) và ngày gỡ bỏ cụ thể để chúng không biến thành nợ kỹ thuật vĩnh viễn.910task: >11 Hãy xây dựng một kế hoạch triển khai hoàn chỉnh theo từng giai đoạn cho tính năng12 được mô tả dưới đây, bao gồm thiết kế cờ (flag design), quy tắc nhắm mục tiêu13 (targeting), các cổng kiểm soát giai đoạn (stage gates) kèm theo chỉ số đo lường,14 công tắc ngắt khẩn cấp (kill switch) và quy trình quay lui (rollback runbook),15 kế hoạch truyền thông, cùng kế hoạch dọn dẹp để gỡ bỏ cờ sau khi hoàn tất.1617inputs:18 feature: "new checkout flow with saved payment methods and one-click reorder"19 product_and_users: "e-commerce web and mobile app, about 400k monthly active users in 3 regions"20 flag_system: "LaunchDarkly-style flag service with percentage and attribute targeting"21 risk_areas: "payments, order totals, mobile app versions that cannot be force-updated"22 key_metrics: "checkout conversion, payment error rate, p95 checkout latency, support tickets tagged checkout"23 dependencies: "payment provider API v3, new orders table column, mobile release 5.2"24 team_and_on_call: "2 backend, 1 web, 2 mobile engineers, one on-call rotation, QA shared with another team"25 deadline: "fully launched in 4 weeks, avoiding the last week of the month sales campaign"2627instructions:28 - Nêu rõ các giả định ở những chỗ thiếu thông tin đầu vào thay vì đặt câu hỏi ngược lại.29 - Tách biệt cờ phát hành (release flag - mang tính tạm thời) khỏi các cờ vận hành (ops) hoặc cờ phân quyền (permission) tồn tại lâu dài; đề xuất quy ước đặt tên và các giá trị mặc định đảm bảo an toàn khi gặp lỗi (fail safe).30 - Lên kế hoạch các giai đoạn từ người dùng nội bộ cho tới khi triển khai toàn bộ, ví dụ: nội bộ, 1 phần trăm, 5 phần trăm, 25 phần trăm, 50 phần trăm, 100 phần trăm, và giải thích lý do chọn thời lượng của từng giai đoạn dựa trên lưu lượng truy cập cần thiết để quan sát được sự thay đổi có ý nghĩa thống kê.31 - Đối với mỗi giai đoạn, hãy định nghĩa tiêu chí đi tiếp (go criteria) và ngưỡng dừng lại (no-go thresholds) bằng những con số cụ thể so với nhóm đối chứng (control group) hoặc mức cơ sở (baseline), kèm theo người có thẩm quyền ra quyết định.32 - Sử dụng cơ chế phân nhóm cố định (sticky bucketing) theo người dùng để khách hàng không bị nhảy qua lại giữa hai trải nghiệm; chỉ rõ bất kỳ thành phần nào được lưu bộ nhớ đệm (cached) hoặc tính toán phía máy chủ có nguy cơ làm rò rỉ luồng xử lý mới.33 - Bao quát các thay đổi về dữ liệu và lược đồ (schema) bằng các bước mở rộng (expand) và thu hẹp (contract) để có thể tắt cờ bất cứ lúc nào mà không làm mất dữ liệu.34 - Xử lý các ứng dụng khách (clients) không thể cập nhật ngay, ví dụ như các phiên bản ứng dụng di động cũ, bằng các quy tắc nhắm mục tiêu (targeting rules).35 - Bao gồm một quy trình hướng dẫn ngắt khẩn cấp (kill switch runbook) mà bất kỳ kỹ sư trực vận hành (on-call engineer) nào cũng có thể thực hiện xong trong vòng chưa đầy 5 phút.36 - Tránh thực hiện các bước tăng tỷ lệ triển khai vào ngày Thứ Sáu, ngày nghỉ lễ hoặc trong khung giờ cao điểm đã nêu.37 - Kết thúc bằng kế hoạch gỡ bỏ cờ (flag removal plan), có ngày mục tiêu cụ thể và danh sách các nhánh mã nguồn cần xóa bỏ.3839output_format: Chỉ xuất ra YAML, không có văn bản giải thích bên ngoài khối YAML, sử dụng chính xác cấu trúc dưới đây4041output_schema:42 assumptions: [string]43 flags:44 - key: string45 type: release | ops | permission | experiment46 default_value: string47 fail_safe_behavior: string48 owner_role: string49 expiry_date: "YYYY-MM-DD"50 targeting_rules:51 - rule: string52 reason: string53 pre_launch_checklist: [string]54 stages:55 - name: string56 audience: string57 percentage: number58 start: "YYYY-MM-DD hoặc ngày tương đối, ví dụ D+3"59 min_duration: string60 go_criteria: [string]61 no_go_thresholds:62 - metric: string63 threshold: string64 action: pause | rollback65 decision_owner: string66 monitoring:67 dashboards: [string]68 alerts:69 - metric: string70 condition: string71 notify: string72 kill_switch_runbook:73 trigger_examples: [string]74 steps: [string]75 verify_steps: [string]76 data_follow_up: [string]77 schema_and_data_plan:78 expand_steps: [string]79 contract_steps: [string]80 communication:81 - audience: string82 when: string83 message: string84 cleanup_plan:85 target_removal_date: "YYYY-MM-DD"86 code_to_remove: [string]87 tests_to_update: [string]88 risks:89 - risk: string90 likelihood: low | medium | high91 impact: low | medium | high92 mitigation: string
Đánh giá các bản di chuyển lược đồ (schema migrations) của PostgreSQL và MySQL (SQL thuần hoặc do ORM tạo ra) để phát hiện tình trạng khóa bảng, ghi lại toàn bộ bảng, mất dữ liệu và các thay đổi gây lỗi tương thích, sau đó đề xuất cách viết lại an toàn không gây gián đoạn dịch vụ (zero-downtime) kèm theo phán quyết rõ ràng.
Giải thích từng dòng của tệp .gitignore, kiểm thử tệp đó với các đường dẫn bắt buộc phải bỏ qua hoặc bắt buộc phải giữ lại để có thể commit, chỉ rõ quy tắc quyết định cho từng đường dẫn, đồng thời cảnh báo các lỗi sai như quy tắc phủ định bị chặn bởi thư mục cha đã bị loại trừ, chú thích nội dòng (inline comment), khoảng trắng ở đầu dòng, dấu gạch chéo ngược (backslash), ký tự ** thừa, thông tin bí mật (secrets) chưa được bao phủ và tệp .env.example bị bỏ qua. Trả về một tệp đã được sửa lỗi. Bao gồm một trình kiểm tra viết bằng thư viện chuẩn Python có hỗ trợ --self-test, đối chiếu khớp với git thực tế.
Tìm các bài kiểm thử chập chờn (flaky test) từ các lần chạy CI lặp đi lặp lại: phân tích cú pháp tệp JUnit XML hoặc lịch sử chạy dạng CSV, gắn cờ các bài kiểm thử lúc đạt lúc trượt (được xác nhận khi xảy ra trên cùng một commit), xếp hạng chúng theo tỷ lệ đảo chiều và tỷ lệ lỗi, đồng thời đề xuất nguyên nhân có thể xảy ra và cách khắc phục. Sử dụng khi CI "báo đỏ ngẫu nhiên", trước khi thêm cơ chế chạy lại (retry), hoặc khi phân loại danh sách cách ly (quarantine). Bao gồm công cụ phát hiện bằng thư viện chuẩn Python với cờ --self-test.
Kiểm tra (lint) các tệp .env và .env.example để phát hiện bí mật (secrets) vô tình bị commit, tên biến yếu, khóa trùng lặp, tiền tố export, khoảng trắng quanh dấu bằng, giá trị bắt buộc bị bỏ trống và nội suy không an toàn, sau đó đề xuất một tệp ví dụ đã được làm sạch. Sử dụng khi người dùng hỏi "tệp .env này có an toàn để commit không?", "tại sao dotenv không tải được?", hoặc "so sánh tệp .env.example của tôi". Bao gồm trình kiểm tra bằng thư viện chuẩn Python đã được kiểm thử.