Appearance
Checklist phát hành (Go-Live) — Hồ sơ bệnh án v2.1.0
File này dùng để làm gì: chốt cổng kiểm tra trước deploy, mức sẵn sàng, cutover, rollback và sign-off cho pilot Cao Lãnh (DL) + Tân Bình II (TM).
Nên đọc trước:
decision-brief.md→ E1 cổng phát hành → E2 pre-check → E3 cutover → E4 rollback → E5 sign-off.
Lịch sử thay đổi
| Phiên bản | Ngày | Tác giả | Thay đổi |
|---|---|---|---|
| 2.1.0 | 30/04/2026 | Ops/PO | Làm sạch ngôn ngữ theo package v2.1.0; giữ nguyên gate và thứ tự phát hành, chỉ đổi copy/prose cho dễ đọc hơn. |
| 2.0.0 | 30/04/2026 | Ops/PO | Đồng bộ theo package v2.0.0: glossary canonical, PRD/UI/Dev/QA v2.0.0, _consistency-matrix.md, cổng kiểm tra sẵn sàng và publish safety cho pilot 2 CN. |
| 1.5.7 | 28/04/2026 | Ops/PO | Bổ sung go-live gate TC-15/BR-14 cho Ma trận ranh giới ảnh hưởng và smoke regression module không ảnh hưởng trước pilot |
| 1.5.6 | 28/04/2026 | Ops/PO | Đồng bộ Dynamic Permission v2 vào go-live gate: seed action, Dynamic Permission UI grant/revoke, portal split, branch_mode và POS-only |
| 1.5.1 | 28/04/2026 | Ops/PO | Fix review đa góc nhìn: deploy order, rollback production không drop DB, hard gate incident/complaint và raw clinical access gate |
| 1.5 | 28/04/2026 | Ops/PO | Hardening sau review đa góc nhìn: Legal/SYT artifact là hard gate, support roster D0, scan/printer readiness, rollback reconcile/backfill và close reminder theo config |
| 1.4 | 28/04/2026 | Ops/PO | Chuẩn hóa theo po-ba-workflow mới: khai báo đầu vào chuẩn, heading tiếng Việt-first và owner readiness rõ hơn |
| 1.3.2 | 27/04/2026 | Ops/PO | Bổ sung gate cho Workbench need_record đúng DV cần BA và intake không accept nhầm KH/CN/record |
| 1.3.1 | 27/04/2026 | Ops/PO | Thêm gate hardening: safe-alert dictionary, token intake, source audit và cutoff chốt ngày theo cấu hình CN |
| 1.3 | 27/04/2026 | Ops/PO | Bổ sung gate vận hành thật: Bàn việc bác sĩ, Phiếu chuyển bác sĩ tư vấn, Phiếu khách tự khai, Trang điều phối phòng khám và Chốt ngày phòng khám |
| 1.2 | 27/04/2026 | PO | Căn theo PRD v1.2: kiểm tra sẵn sàng và an toàn phát hành, 100% DV đang bán đã phân loại, unknown allergy risk không được go-live |
| 1.0 | 21/04/2026 | PO | Initial go-live checklist theo DEC-025 3-phase rollout |
Đầu vào chuẩn (Canonical Inputs)
| File | Vai trò | Nếu conflict |
|---|---|---|
SOURCE_OF_TRUTH.md | Nguồn sự thật chuẩn + Solution Lock | Ưu tiên cao nhất |
decision-brief.md | Tóm tắt phạm vi/rủi ro/handoff | Chỉ định hướng độ ưu tiên kiểm tra sẵn sàng |
prd.md | Scope, lifecycle, ràng buộc nghiệp vụ | Theo truth đã khóa |
dev-spec.md / qa-test-plan.md / handoff.md | Việc triển khai, quy ước kỹ thuật, coverage, blocker | Checklist phát hành tổng hợp từ đây |
Quy tắc sở hữu:
go-live-checklist.mdlà nguồn chuẩn của readiness, cổng deploy, rollback và sign-off vận hành.
E1) Cổng phát hành
Phải đạt tất cả các check Day-1 trước khi bắt đầu pilot. Các check ghi rõ "Phase 2" là phần theo dõi tiếp, không chặn pilot Day-1.
E1.1) Cổng pháp lý và tuân thủ
| Check | Yêu cầu | Phụ trách | Trạng thái |
|---|---|---|---|
| LC-1 | Text consent cross-branch đã được luật sư Diva approve (Phase 2 only — không block Day-1) | Anh Phong + Legal | ⏳ Chờ xử lý |
| LC-2 | Hợp đồng thành viên mới có điều khoản đồng ý (Phase 2 only — không block Day-1) | Anh Phong | ⏳ Chờ xử lý |
| LC-3 | Retention policy 10 năm được IT + Legal confirm bằng văn bản/email (hot 1 năm MinIO + cold 9 năm archive plan) | Infra + Legal | HARD NO-GO nếu còn chờ xử lý |
| LC-4 | Quy trình SYT thanh tra không phản đối bản giấy ký tay + scan reference; phải có email/biên bản nội bộ, không chấp nhận chỉ phone call | Anh Phong + Legal | HARD NO-GO nếu còn chờ xử lý |
| LC-5 | Form hardcode "Phiếu tiền sử dị ứng" đúng phụ lục TT51/2017 (rà lại 6 câu hỏi + format) | Anh Phát + Legal | HARD NO-GO nếu còn chờ xử lý |
E1.2) Cổng kỹ thuật
| Check | Yêu cầu | Phụ trách | Trạng thái |
|---|---|---|---|
| TC-1 | Pre-req refactor *uuid.UUID + null-guard toàn repo merge vào main | BE Dev | ⏳ Chờ xử lý |
| TC-2 | Integration test insert_appointment_one với order_item_id NULL pass | QA + BE | ⏳ Chờ xử lý |
| TC-3 | Audit 3 tháng production log: không có appointment NULL order_item_id đang bug silent (hoặc đã fix nếu có) | BE Dev | ⏳ Chờ xử lý |
| TC-4 | Migration 19 tables + views/actions pass trên staging mirror production | BE + DBA | ⏳ Chờ xử lý |
| TC-5 | ICD-10 catalog seed ~22k rows + search <100ms | BE Dev | ⏳ Chờ xử lý |
| TC-6 | MinIO bucket clinical-record-scans cấu hình private + signed URL 15 phút | Infra | ⏳ Chờ xử lý |
| TC-7 | Permission/masked view tầng 3 test pass bằng Dynamic Permission v2; raw clinical_record/clinical_form_instance không expose cho runtime role user, Sale chỉ qua safe view/action và hard deny tầng 3 | QA | ⏳ Chờ xử lý |
| TC-7A | module_permission_action + role_module.actions seed đủ theo module_id/portal; Dynamic Permission UI grant/revoke/refetch pass; portal split, branch_mode, is_pos_only pass P0 tests TC-052A..052F | QA + BE + FE | ⏳ Chờ xử lý |
| TC-8 | Form JSON Schema renderer build thành công 7 templates | FE Dev | ⏳ Chờ xử lý |
| TC-9 | Print template PDF match layout bản giấy với header CN | FE + BE | ⏳ Chờ xử lý |
| TC-10 | Autosave 30s stress test với 50 BS đồng thời — no data loss | QA | ⏳ Chờ xử lý |
| TC-11 | Backup daily snapshot + MinIO versioning verify | Infra | ⏳ Chờ xử lý |
| TC-12 | Down migration chỉ test cho dev/staging/pre-D0; production rollback drill dùng pause/code rollback giữ DB + data reconcile | BE + DBA | ⏳ Chờ xử lý |
| TC-13 | Bàn việc bác sĩ 6 nhóm việc không false-positive need_record, Trang xem an toàn (Sale) có từ điển cảnh báo an toàn, token phiếu tự khai kiểm tra đúng phạm vi, Trang điều phối phòng khám test phân quyền đạt | QA + FE | ⏳ Chờ xử lý |
| TC-14 | Scheduler clinic_daily_close_reminder dry-run đúng theo close_reminder_times/close_cutoff_time từng CN; default chỉ dùng khi CN chưa cấu hình | BE + QA | ⏳ Chờ xử lý |
| TC-15 | Regression ranh giới ảnh hưởng D6 pass: quy ước module trực tiếp, guard module gián tiếp và smoke module không ảnh hưởng không đổi menu, permission, transaction, report, job hoặc dữ liệu ngoài scope | QA + TL | ⏳ Chờ xử lý |
E1.3) Cổng sẵn sàng nghiệp vụ
| Check | Yêu cầu | Phụ trách | Trạng thái |
|---|---|---|---|
| BR-1 | Admin đã cấu hình đủ 5 bước + SCR-04f kiểm tra sẵn sàng pass cho CN Cao Lãnh (DL) + Tân Bình II (TM) | Admin + PO | ⏳ Chờ xử lý |
| BR-2 | 100% KT đang hiệu lực có allergy_risk_level khác unknown — BS Phát xác nhận | Anh Phát + BS | ⏳ Chờ xử lý |
| BR-3 | 100% DV đang bán của 2 CN pilot đã phân loại: mapped_requires_ba hoặc explicitly_no_ba | Admin + QL CN | ⏳ Chờ xử lý |
| BR-8 | Xem trước tác động phát hành đã được PO + QL CN review và thời điểm áp dụng được chốt | PO + QL CN | ⏳ Chờ xử lý |
| BR-4 | Training BS + Y tá + Lễ tân + QL CN + Sale pilot hoàn tất (4h/role/CN, Sale 2h safe-view/handoff) | Ops + Training Lead | ⏳ Chờ xử lý |
| BR-5 | Tài liệu hướng dẫn user (PDF + video tutorial 10') ready | PO + Training | ⏳ Chờ xử lý |
| BR-6 | Champion BS tại mỗi CN xác định + đã test thử flow | Ops | ⏳ Chờ xử lý |
| BR-7 | Mẫu giấy 2 CN pilot scan sẵn backup nếu PM sự cố; scanner/printer/tài khoản upload test pass và naming convention scan đã training | Ops + IT | ⏳ Chờ xử lý |
| BR-9 | BS champion pass UAT Bàn việc bác sĩ: xử lý BA thiếu/nháp/cần scan từ một màn | QA + BS | ⏳ Chờ xử lý |
| BR-10 | Sale pilot pass UAT Trang xem an toàn (Sale): tư vấn được bằng safe-alert text đã duyệt nhưng không thấy tầng 3 | QA + Sales Lead | ⏳ Chờ xử lý |
| BR-11 | QL CN dry-run Chốt ngày phòng khám với dữ liệu backlog thật | Ops + QL CN | ⏳ Chờ xử lý |
| BR-12 | QL CN xác nhận close_cutoff_time và close_reminder_times cho 2 CN pilot | Ops + QL CN | ⏳ Chờ xử lý |
| BR-13 | Signed scan checklist dry-run pass: BA chính, cam đoan/cam kết, dị ứng, đơn thuốc/tờ điều trị nếu có, refusal witness nếu KH từ chối ký | QA + Y tá + QL CN | ⏳ Chờ xử lý |
| BR-14 | PO + TL + QA sign-off Ma trận ranh giới ảnh hưởng v2.0.0: module trực tiếp có người phụ trách/việc/test, gián tiếp có guard, không ảnh hưởng có người phụ trách smoke | PO + TL + QA | ⏳ Chờ xử lý |
E1.4) Cổng hỗ trợ
| Check | Yêu cầu | Phụ trách | Trạng thái |
|---|---|---|---|
| SP-1 | Hotline hỗ trợ ưu tiên (Zalo/phone) cho 2 CN pilot 12h/day; số hotline và owner D0 phải được công bố T-1 | Ops + IT support | HARD NO-GO nếu còn TBD |
| SP-2 | On-call rotation BE + FE trong tuần 1-2 song song; roster có người chính/người dự phòng từng ngày | Dev Lead | HARD NO-GO nếu còn TBD |
| SP-3 | Runbook cho 10 scenarios phổ biến (form không lưu, scan fail, permission denied, ...) | IT support + QA | ⏳ Chờ xử lý |
| SP-4 | Dashboard Grafana "Clinical Record Ops" deploy + 3 alert rules active | Infra + BE | ⏳ Chờ xử lý |
| SP-5 | Slack/Zalo channel pilot với 2 CN + Dev + PO; escalation path S1/S2 đã pin | PO | ⏳ Chờ xử lý |
E2) Pre-checks (1 tuần trước go-live)
E2.1. T-7 (1 tuần trước)
- [ ] Announce go-live timeline tới 2 CN pilot (email + Slack)
- [ ] Training refresher cho BS + Y tá + Lễ tân + QL CN + Sale pilot
- [ ] Verify BS account + permission đúng role tại 2 CN
- [ ] Verify scanner, printer, upload account, folder/naming convention scan tại từng CN pilot
- [ ] Import danh mục KT cuối cùng + phân loại DV — Admin xác nhận 100% DV đang bán đã phân loại
- [ ] Verify không còn KT đang hiệu lực có
allergy_risk_level = unknown - [ ] Đính kèm bằng chứng Legal/SYT/retention vào go-live packet
- [ ] Backup toàn bộ customer profile + appointment trước go-live (rollback insurance)
E2.2. T-3 (3 ngày trước)
- [ ] Apply DB migrations + seed trên production theo C7, verify backup trước/sau migration
- [ ] Apply Hasura metadata: actions/events/schedulers/views/permissions; raw clinical tables không cấp runtime
user - [ ] Deploy backend handlers
/actions,/events,/schedulers+ event dispatcher registrations - [ ] Deploy FE production với feature flag OFF cho toàn bộ CN
- [ ] Dry-run scheduler
clinical_record_missing_remindervàclinic_daily_close_reminder, chưa gửi notification thật nếu CN chưa live - [ ] Publish module qua
publish_clinic_modulecho 2 CN pilot, không bật trực tiếpclinic_enabled: true - [ ] Verify
clinic_module_publication.status = liveđúng thời điểm áp dụng hoặcschedulednếu thời điểm áp dụng tương lai; runtime chỉ mở khilive AND effective_at <= now() - [ ] Verify SCR-14 Bàn việc bác sĩ có đủ việc trong ngày cho từng BS pilot
- [ ] Verify SCR-16 Trang điều phối phòng khám hiển thị đúng 2 CN pilot + lệch cấu hình = 0
- [ ] Smoke test BS tạo 1 BA test với KH demo
- [ ] Smoke test checklist bản scan đã ký: upload thiếu phải giữ
printed, upload đủ mới chuyểnsigned - [ ] Verify notification nhắc BS gửi đúng channel
- [ ] Verify CN spa thuần khác KHÔNG thấy UI change nào (critical — DEC-001)
E2.3. T-1 (1 ngày trước)
- [ ] Final sign-off từ Sếp Nam + Anh Phong + Anh Phát + Chị Thảo
- [ ] Final sign-off Legal + Infra/Ops cho LC-3/LC-4/LC-5 và support roster D0
- [ ] QL CN chạy thử SCR-17 Chốt ngày phòng khám trước giờ mở pilot
- [ ] Sale pilot tạo 1 handoff demo và BS acknowledge
- [ ] Broadcast cho toàn chuỗi: "Tính năng BA start pilot CN X + Y. Các CN khác không đổi gì."
- [ ] Dev + QA + PO standby cả ngày go-live
- [ ] Rollback plan review (E4)
E3) Kế hoạch cutover — rollout song song 3 phase (DEC-025)
E3.1) Phase 1 — Song song giấy + PM (Tuần 1-2)
Mục tiêu: BS + Y tá + Lễ tân làm quen PM. Giấy vẫn là workflow chính; PM coverage tính theo appointment/form_type cần BA có draft/completed/printed/signed hoặc visit-only log hợp lệ, không bắt buộc signed trong Phase 1.
| Ngày | Hoạt động | Đo lường |
|---|---|---|
| D0 (go-live day) | BS điền BA GIẤY như cũ + song song điền PM (không bắt buộc complete) | Coverage PM ≥ 50% |
| D1-D3 | Tiếp tục song song. Dev + PO có mặt tại CN hỗ trợ tại chỗ nếu cần | Coverage PM ≥ 70% |
| D4-D7 | BS đã quen, song song tiếp tục | Coverage PM ≥ 85% |
| D8-D14 | Daily standup với champion BS mỗi CN, fix bug tại chỗ | Coverage PM ≥ 90%, no P0 bug |
Success criteria Phase 1:
- ≥90% lượt cần BA có bản PM (dù chưa signed) hoặc visit-only log hợp lệ nếu chỉ khám thuần
- BS NPS ≥ 6/10
- Không có incident y khoa do PM (VD: bỏ qua allergy check)
Exit Phase 1 → Phase 2 khi: Success criteria đạt đủ 3 tiêu chí trên.
Bắt buộc trong Phase 1: mỗi ngày QL CN close SCR-17 trước close_cutoff_time của CN; nếu CN chưa cấu hình riêng thì dùng 20:00 Asia/Ho_Chi_Minh. Ops review SCR-16 sáng hôm sau.
E3.2) Phase 2 — PM là chính, giấy in ra ký (Tuần 3-4)
Mục tiêu: PM trở thành công cụ chính. BS điền PM → in → ký → tải bản scan đã ký.
| Ngày | Hoạt động | Đo lường |
|---|---|---|
| D15 | Stop ghi giấy từ đầu. PM là nguồn chính. | Coverage PM 100% (đối với BA mới) |
| D15-D21 | BS điền PM → in → BS + KH ký tay → Y tá tải bản scan đã ký | Tải bản scan đã ký ≥ 70% trong 24h sau in |
| D22-D28 | Ổn định, fix edge case | Tải bản scan đã ký ≥ 85% trong 24h |
Success criteria Phase 2:
- 100% BA mới nằm trên PM
- ≥85% tải bản scan đã ký trong 24h sau in
- ≥95% BA có đủ chữ ký và scan checklist bắt buộc (
signedstatus) - 0 incident "BA không tìm thấy" khi SYT thanh tra
Exit Phase 2 → Phase 3 khi: đạt đủ 4 tiêu chí.
Bổ sung kiểm soát vận hành: scan backlog >24h phải <5% trước khi chuyển Phase 3.
E3.3) Phase 3 — Full PM (Tuần 5+)
Mục tiêu: Workflow standard. Mở rộng sang các CN PK khác.
| Tuần | Hoạt động |
|---|---|
| Tuần 5 | Full PM tại 2 CN pilot. Bắt đầu training CN PK tiếp theo (Ninh Kiều, Hải Châu) |
| Tuần 6-8 | Rollout Ninh Kiều + Hải Châu theo cùng flow 3-phase rút gọn (1 tuần/phase) |
| Tuần 9+ | Mở rộng tới Biên Hoà, TDM, Sóc Trăng (sau khi có GP) |
Go/No-go decision tại cuối Tuần 4:
- ✅ GO: Mở rộng các CN PK còn lại
- ❌ NO-GO: Rollback, review spec, điều chỉnh → pilot lại
E4) Kế hoạch rollback
E4.1) Trigger rollback
Phải rollback nếu xảy ra bất kỳ 1 trong các tình huống:
- Incident y khoa nghiêm trọng (VD: KH sốc phản vệ do BS bỏ qua allergy check + hệ thống không block đúng) — IMMEDIATE
- Data corruption (BA bị mất, save sai, display sai KH khác) — IMMEDIATE
- Performance nghiêm trọng (autosave fail >20% trong 1h, form load >10s) — 24h
- Pháp lý reject (SYT thanh tra phản đối bản digital, yêu cầu ngừng) — IMMEDIATE
- BS không thể dùng (≥3/5 BS pilot complain dropout, NPS <4) — 1 tuần review → decide
E4.2) Quy trình rollback
Tầng 1 — Tắt feature flag (nhanh nhất, ~15 phút):
- Admin chuyển
clinic_module_publication.status = pausedcho 2 CN pilot - FE hide tab Hồ sơ BA + sổ + notification (ngay sau reload)
- BS quay lại quy trình giấy
- BA data trong PM giữ nguyên (không xoá) để investigate
Tầng 2 — Rollback code + giữ nguyên DB (production sau D0):
- Giữ
clinic_module_publication.status = paused, chặn action/scheduler clinical. - Re-deploy app về bản trước feature nếu lỗi nằm ở FE/BE; không chạy down migration drop clinical tables.
- Giữ pre-req
OrderItemID *uuid.UUIDnếu production đã có walk-in/null data; chỉ rollback code quanh handler gây lỗi. - Đóng
clinic_daily_closengày rollback với statusescalated+ reason rollback. - Chỉ dùng down migration trong dev/staging hoặc production pre-D0 khi chưa có dữ liệu BA thật.
Data preservation:
- MinIO scan files: KHÔNG xoá; giữ theo retention 10 năm, đánh dấu rollback batch để investigate nếu cần
- Database BA records: KHÔNG xoá, mark
archived+ retain - Access log: giữ vĩnh viễn (audit)
- Tất cả BA phát sinh trong thời gian rollback dùng giấy phải được reconcile vào PM sau khi phục hồi: nhập visit-only/BA tối thiểu, upload scan giấy, ghi
source_type='paper_fallback'hoặc log import tương đương.
E4.3) Sau rollback
- [ ] Root cause analysis trong 7 ngày
- [ ] Backfill/reconcile danh sách BA giấy phát sinh trong thời gian rollback, có người phụ trách và deadline từng CN
- [ ] Fix + re-test trên staging 2 tuần
- [ ] Re-pilot với scope thu hẹp (1 CN only) nếu cần
- [ ] Update SOURCE_OF_TRUTH.md + PRD với lessons learned
E5) Ký duyệt
E5.1) Ký duyệt trước go-live
| Vai trò | Người | Nội dung xác nhận | Ký |
|---|---|---|---|
| CEO | Sếp Nam | Approve go-live pilot 2 CN + budget + timeline | ☐ |
| Business Lead PK | Anh Phong | Danh mục KT + phân loại DV đã sẵn sàng; consent cross-branch theo dõi cho Phase 2 | ☐ |
| Medical Lead | Anh Phát | Allergy risk level đã phân loại; đào tạo BS pilot hoàn tất | ☐ |
| Operations | Chị Thảo | Đào tạo hoàn tất; BS champion sẵn sàng; runbook đã có | ☐ |
| Legal/Compliance | — (TBD) | LC-3/LC-4/LC-5 có văn bản xác nhận, không còn xác nhận miệng | ☐ |
| IT Support Lead | — (TBD) | Hotline, on-call roster, scanner/printer/upload account pass | ☐ |
| Tech Lead | — (TBD) | Pre-req refactor + 14 TC checks pass | ☐ |
| QA Lead | — (TBD) | 100% P0 pass + overall TC pass ≥95% + edge cases covered | ☐ |
| PO | Sơn Thọ | All gates E1-E4 reviewed, acceptance final | ☐ |
E5.2) Ký duyệt sau pilot (30 ngày sau go-live)
| Metric | Target | Actual | Pass/Fail |
|---|---|---|---|
| % BA hoàn thành đúng ngày | ≥90% | _ | _ |
| Thời gian TB BS điền 1 BA | ≤10 phút | _ | _ |
| Tỉ lệ BA có đủ chữ ký/scan checklist | ≥95% | _ | _ |
| Tỉ lệ upload scan đủ checklist trong 24h | ≥85% | _ | _ |
| NPS BS | ≥7/10 | _ | _ |
| CN spa thuần complaint | 0 | _ | _ |
| Incident y khoa | 0 | _ | _ |
Go/No-go full rollout: hard gate phải pass trước khi xét metric mềm: Incident y khoa = 0 và CN spa thuần complaint = 0. Sau khi 2 hard gate pass, 5 metric vận hành còn lại phải đạt tối thiểu 4/5 và không có P0 bug mở. Bất kỳ incident y khoa hoặc complaint từ CN spa thuần đều dừng mở rộng và kích hoạt review rollback/pause.
E6) Liên hệ chính
| Vai trò | Người | Liên lạc | Khi nào gọi |
|---|---|---|---|
| PO | Sơn Thọ | sontho.mkt@gmail.com | Spec question, priority decision |
| Business Lead PK | Anh Phong | — | Classification DV, danh mục KT, pháp lý |
| Medical Lead | Anh Phát | — | Medical issue, allergy safety, BS workflow |
| Ops | Chị Thảo | — | Training, runbook, CN issue |
| Ops Dashboard Owner | TBD Ops | — | Theo dõi SCR-16, Chốt ngày phòng khám, escalation |
| Dev Lead BE | TBD | — | Backend issue, migration, API |
| Dev Lead FE | TBD | — | UI issue, form renderer |
| Infra | TBD | — | MinIO, Hasura, scheduler, performance |
| QA Lead | TBD | — | Test case, bug triage |
| Hotline support 2 CN pilot | TBD - NO-GO nếu chưa gán T-1 | Zalo/phone pilot | BS/Y tá/Lễ tân/Sale cần help tại chỗ |
End of Go-Live Checklist v2.1.0. Mọi sign-off bắt buộc trước go-live D0; checklist này là nguồn chuẩn cho readiness, rollback và cutover.