Skip to content

Skill / /znf:ship

/znf:ship ​

Cổng trước khi ship — lint, build, gate hợp đồng, xác minh hành vi, và review độc lập, rồi commit, push và mở PR.

Cách gọi ​

text
/znf:ship

Khi nào dùng ​

Khi công việc đã xong và sắp được commit. /znf:cook, /znf:fix, và /znf:hotfix đều gọi skill này một cách vô điều kiện ở bước cuối, không chỉ khi thay đổi chạm nhiều repo. Xem ship: verify và mở PR.

Cách hoạt động ​

  1. Skill đánh dấu chính xác trạng thái cây làm việc tại thời điểm mỗi lượt kiểm chạy, để một thay đổi sau đó không thể được tính là đã kiểm rồi.
  2. Với mỗi vùng đã đổi, skill chạy lint và build/typecheck thật, báo output thật chứ không chỉ khẳng định đã qua.
  3. Nếu thay đổi chạm tới thứ dùng chung giữa các dịch vụ, skill chạy cổng hợp đồng của project và báo những repo bị ảnh hưởng.
  4. Skill chạy các test bị ảnh hưởng bởi branch so với base (PR hotfix: full suite; full suite của PR thường do CI chạy), hoặc chạy app thật qua /znf:run và quan sát đường code thật; nếu thay đổi có render giao diện, skill dispatch một agent kiểm giao diện để đo cả hành vi lẫn bố cục thật, không tự lái trình duyệt.
  5. Skill đóng gói ý định, diff, những gì đã xác minh, và dữ liệu thật liên quan (với /znf:fix và /znf:hotfix, phần ý định có các dòng Loop: và Regression:) thành một gói duy nhất, rồi gọi /znf:review để có một review độc lập; phát hiện mức nghiêm trọng cao phải được sửa trước khi tiếp tục.
  6. Bất kỳ lượt kiểm nào thất bại — lint, gate, hành vi, hay review — đều vào cùng một vòng sửa: sửa hết các phát hiện trong một lượt, rồi chạy lại đúng những lượt kiểm bị ảnh hưởng bởi thay đổi đó. Vòng này chạy tối đa hai lượt; nếu sau đó vẫn còn phát hiện chưa xử lý, skill dừng lại, không commit, và báo cho bạn.
  7. Khi mọi lượt kiểm đều xanh tại cùng một trạng thái cây làm việc, skill commit và push nhánh feature, rồi tự mở PR — nhưng không bao giờ merge. Nếu CLAUDE.md của project có dòng PR review check:, skill tự chờ đúng check review đó, sửa mọi finding blocking trong một commit mỗi vòng, tối đa 3 vòng, dừng khi check xanh rồi mới chờ CI; không có dòng đó thì skill báo URL PR rồi dừng. Nếu tên branch có zen-<n> đứng ở ranh giới slug (khớp (^|[/-])zen-(\d+)(-|$), ví dụ zen-123-foo; frozen-12-x hay citizen-3 không khớp; nhiều chỗ khớp thì lấy chỗ đầu tiên), mã đó (nếu có) đứng đầu; skill cộng thêm mọi mã trong dòng **Việc Plane:** của spec/plan hoặc ## Intent của ship-pack (bỏ trùng; branch không có mã thì các mã trong dòng đó là mã của tiêu đề), và tiêu đề PR thành <type>(<scope>): ZEN-<a>, ZEN-<b> <mô tả> với mã ngay sau dấu hai chấm; không có mã nào thì giữ tiêu đề như cũ, không cảnh báo. Phần thân PR theo thứ tự: tóm tắt, thay đổi, cách kiểm, rủi ro merge (một chiều hay hai chiều, kèm phạm vi ảnh hưởng và cách rollback). Khi đã bật github.issues (zenify feature github.issues on), trước khi mở PR skill tìm hoặc tạo một GitHub issue gán cho bạn và thêm dòng Closes #N vào thân PR.
  8. Gọi kèm --watch (/znf:ship --watch): sau khi mở PR, skill gọi /znf:ci-watch để theo dõi CI của commit vừa push; CI fail thì /znf:ci-watch giao run lỗi cho /znf:fix. Không có --watch thì skill dừng sau khi mở PR, hoặc sau vòng review ở bước 7 khi project khai báo PR review check:.

Lưu ý ​

Việc merge luôn là quyết định của bạn, kể cả với PR mà skill vừa mở. Skill không bao giờ push hay merge vào một nhánh deploy.