Skip to content

Skill / /znf:fix

/znf:fix [description | github-actions-url | empty for auto-log] ​

Chẩn đoán trước, sửa sau. Dùng khi có thứ gì đó đang lỗi mà bạn chưa rõ nguyên nhân.

Cách gọi ​

text
/znf:fix [description | github-actions-url | empty for auto-log]

Khi nào dùng ​

Khi có lỗi và bạn chưa biết nguyên nhân thật sự. Xem fix: sửa lỗi chưa rõ nguyên nhân. Nếu lỗi đang xảy ra trên production, skill tự chuyển sang /znf:hotfix ở bước 2b (xem bên dưới); bạn cũng có thể gõ /znf:hotfix trực tiếp.

Cách hoạt động ​

  1. Skill lấy dữ liệu lỗi thật trước khi suy đoán: log gần nhất, output test đang fail, hoặc log CI nếu bạn đưa link GitHub Actions. Sau đó nó dựng một vòng phản hồi: đúng một lệnh có tên, đã chạy, đỏ đúng triệu chứng bạn mô tả. Không dựng được thì skill dừng và xin môi trường tái hiện, artifact đã che secret, hoặc quyền thêm log tạm, chứ không chuyển sang đoán. Secret, dữ liệu cá nhân của khách hàng và id tenant/account được lọc thành <REDACTED> ngay trong lệnh, trước khi output vào hội thoại.
  2. Skill xác nhận nguyên nhân gốc trước khi viết bất kỳ dòng sửa nào. Với lỗi rõ ràng, nó kiểm một giả thuyết; với lỗi khó, nó chạy song song nhiều giả thuyết rồi loại dần bằng bằng chứng thật. Bước 2b: nếu có bằng chứng production (PostHog, Loki, trace Tempo hoặc zenify obs --prd của môi trường prd, hoặc báo cáo của khách hàng trên tenant prd), skill kiểm tra dòng lỗi trên base hotfix. Dòng lỗi có ở đó, hoặc không chỉ ra được dòng lỗi, thì skill tự gọi /znf:hotfix và chuyển giao nguyên nhân đã xác nhận, không chẩn đoán lại. Không khớp nguyên văn trên base hotfix (ví dụ dòng đã được format lại trên base thường) cũng tính là không chỉ ra được, vì bằng chứng production đã cho thấy lỗi đang chạy.
  3. Worktree được tạo trước lần ghi file đầu tiên của vòng phản hồi (hoặc trước khi khởi động server), chậm nhất trước bước sửa, dựa trên base ref repo khai báo. Các cách tái hiện chỉ đọc (đọc log, chạy test có sẵn, request GET/HEAD) không cần worktree; request có side effect hoặc replay payload chỉ chạy trên port của worktree hoặc target local. Nếu đang có worktree của task khác cho cùng repo trong phiên này, skill dùng lại worktree đó thay vì tạo mới.
  4. Skill gọi /znf:scout để tìm ai phụ thuộc vào đoạn code sắp sửa, trước khi sửa. Nếu việc sửa hoá ra cần hơn khoảng ba file hoặc đổi một hợp đồng dịch vụ chung, skill dừng lại và đề nghị chuyển sang /znf:cook.
  5. Trước khi sửa, skill tự chọn seam (chỗ test chạy lỗi đúng như nơi gọi thật) và biến lệnh tái hiện thành regression test, xác nhận nó fail rồi mới sửa; không có seam thì ghi no seam: <lý do>. Skill không hỏi bạn về seam. Báo cáo cuối có hai dòng Loop: (đỏ rồi xanh) và Regression:.
  6. Sau khi sửa, skill chạy lại vòng phản hồi và xoá mọi log debug [DEBUG-xxxx], xác minh lỗi đã hết bằng cách chạy lại đường code thật, rồi gọi /znf:gate và luôn gọi /znf:ship sau đó, kể cả khi gate báo không có tác động liên repo.

Ví dụ ​

text
/znf:fix "Trang danh sách ticket bị treo khi lọc theo tag"
/znf:fix https://github.com/org/repo/actions/runs/123456
/znf:fix

Lưu ý ​

Không đối số nghĩa là skill tự tìm log lỗi gần nhất. Nếu không xác nhận được nguyên nhân gốc, skill nói rõ điều đó thay vì đoán bừa rồi sửa.