Skip to content

Lệnh CLI / zenify await

zenify await ​

Dừng một lượt chạy không người ở cổng cần người duyệt, ghi bản ghi await rồi thoát mã 8.

Cú pháp ​

text
zenify await <kind> [flags]

Khi nào dùng ​

Chỉ trong chế độ không người (ZNF_AUTONOMOUS=1). Khi worker gặp cổng cần người, như duyệt spec hoặc plan trong /cook, hay một lệnh ghi dữ liệu prd mà chỉ lead được chạy, nó gọi zenify await <kind> thay vì tự quyết. Ngoài chế độ không người, lệnh từ chối với mã 2.

Sáu kind hợp lệ: spec, plan, data-write, irreversible, needs-human, question. Kind khác bị từ chối với mã 2; --summary trống, --file trỏ file không tồn tại, hay data-write mà --command không chứa zenify data run --prd --write cũng vậy.

Kết quả ​

Lệnh ghi $ZENIFY_HOME/await/<id>.json (thư mục mode 0700, file mode 0600) qua file tạm .<id>.json.tmp rồi đổi tên, nên host không bao giờ đọc phải bản ghi dở, in <id> ra stdout rồi thoát mã 8. Mã 8 là điểm dừng có kế hoạch, không phải lỗi, nên thông điệp trên stderr không có tiền tố error:. Worker host đọc bản ghi và hiện thẻ cho người duyệt.

Kind question hỏi người một lượt câu hỏi có cấu trúc và bắt buộc có --questions <file.json>: mảng 1 đến 5 câu {"text", "options", "audience"}, mỗi câu tối đa 4 options (mảng rỗng là câu trả lời tự do), audience là business hoặc technical. Bản ghi của kind này có thêm trường questions; kind khác mà có --questions bị từ chối với mã 2.

Bản ghi gồm id, kind, summary, files (đường dẫn tuyệt đối), command, task (lấy từ ZNF_TASK_ID khi khớp ^[A-Za-z0-9._-]{1,64}$, không thì để rỗng), repo, branch, cwd, created_at, và questions (chỉ có ở kind question, kind khác không có trường này). Ngoài git repo thì repo và branch để rỗng.

Ví dụ ​

bash
zenify await question --summary "Cần chốt luật đặt lại đơn" --questions /abs/questions.json   # file: [{"text":"Khách đã huỷ đơn có được đặt lại không?","options":["Có","Không"],"audience":"business"}]
zenify await spec --summary "Spec cho tính năng X" --file docs/specs/zenify-kit/x-design.md
zenify await data-write --summary "Backfill field y" --command 'cd /abs/repo && zenify data run --prd -- node y.js --dry-run && zenify data run --prd --write -- node y.js'

Cờ ​

CờÝ nghĩa
--commandlệnh người cần chạy (data-write)
--filefile người cần xem (lặp được)
--questionsfile JSON các câu hỏi: [{text, options, audience}] (question)
--summarytóm tắt điều cần người quyết định
--totên hoặc @username người nhận việc (handoff)

Lệnh liên quan ​

  • zenify: Binary dòng lệnh của ZenifyKit, chứa mọi lệnh workspace và plugin skill đi kèm.
  • zenify await show: In lại bản ghi await theo id.