Files
2026-09-22 13:46:36 +07:00

8.7 KiB

name, description
name description
ba-pipeline Điều phối quy trình BA (ba-1…ba-5) theo từng bước có con người verify & approve, dùng workflow ba-pipeline.js — mỗi bước gồm chốt input với người dùng, chạy đúng một stage/activity, trình kết quả tự chấm + OQ, người dùng Duyệt/Sửa/Trả lời, ghi chữ ký vào header qua stage sign, chấm gate độc lập qua audit trước khi ký gate. Dùng khi người dùng nói "chạy quy trình BA", "làm discovery/analysis/SRS có duyệt", "ký gate G1/G2/G3", "kiểm tra gate BA", "BA đang ở đâu".

BA pipeline — từng bước, con người duyệt

Bạn (main assistant) là gatekeeper: không viết artifact (ba-stage-runner viết), không chấm gate (ba-gate-auditor chấm), không ký (con người ký — bạn chỉ ghi lại qua stage sign). Skill gốc ba-* không bị sửa; runner đọc và làm theo chúng ở chế độ go.

Engine: Workflow({ scriptPath: "<abs>/.claude/workflows/ba-pipeline.js", args }) — một stage/activity mỗi lần gọi, không có chế độ chạy liền.

args

Tham số Bắt buộc Ý nghĩa
project, date luôn tên project (1 project/lần), ngày hôm nay YYYY-MM-DD (header)
stage luôn init · audit · discovery · analysis · specification · design · delivery · post-release · sign · sync
activity nên dùng 1 hoạt động của stage (mặc định cả stage): discovery `stakeholder
scope specification/design/delivery US-012,US-013 (≤3 US) · CR-004 · câu hỏi cụ thể
profile init {product, lifecycle, rigor} đã được người dùng xác nhận
proto specification (screen) Prototype tham chiếu: đường dẫn thư mục/file/URL hoặc mục SAD (docs/sections/07-giao-dien.md). Không có ⇒ runner tự tìm; vẫn không có ⇒ WF chạy chế độ ✏️ (đề xuất BA, cần Designer ký)
brand design (screen) Brand guideline / design system tham chiếu (đường dẫn, URL). Không có ⇒ runner tự tìm; vẫn không có ⇒ DS dùng token trung tính, độ tin cậy 🔴 + OQ
inputs[], answers, notes, override tuỳ file người dùng đưa · trả lời OQ · ghi chú sửa · khẳng định chạy dù gate trước chưa qua
approvals[], gate, decisions[] sign `{artifact, decision: approve

Bước 0 — chốt với người dùng (thay cho Bước 0 của từng skill)

Hỏi bằng AskUserQuestion (≤4 câu/lượt), không hỏi lại điều đã có trong ba-output/<PROJECT>/00-index/:

  1. Project & phạm vi lần này (cả module hay US nào).
  2. Profile: PRODUCT (screen | api-service | data-pipeline | ml-model | batch-job | process-only) · LIFECYCLE (greenfield | brownfield | enhancement) · RIGOR (light | standard | strict). Chưa có PROFILE ⇒ suy đoán từ tài liệu, nêu rõ là suy đoán, hỏi xác nhận.
  3. Thư mục output: mặc định ba-output/<PROJECT>/; nếu repo đã có thư mục BA khác ⇒ hỏi dùng cái nào, không tạo cấu trúc song song.
  4. Input đã tìm thấy (Glob docs/, ba-output/, sa-output/, design/, prototype/, file người dùng đưa) — trình bảng File | Vai trò | Giai đoạn. Với screen trước stage specification: hỏi prototype/design system tham chiếu là gì (→ proto) và dự án có Designer không (không có ⇒ PO ký thay UICONV/WF/DS/HIFI/DSPEC, ghi DEC). Trước stage design: hỏi brand guideline (→ brand) và nói rõ ngay: gói Figma là SVG + token + PNG + HTML nhập được, không có file .fig. Lấy ngày hôm nay từ ngữ cảnh → date.

Vòng lặp chuẩn cho mỗi bước

  1. Vị trí: chưa có ba-output/<PROJECT> ⇒ init (cần profile xác nhận). Có ⇒ audit → trình ① bảng gate (Profile ở dòng đầu) ② đang ở đâu ③ ≤3 việc tiếp ④ cảnh báo.
  2. Chạy một activity của stage kế tiếp (mặc định một activity = một gate nhỏ; người dùng có thể yêu cầu cả stage). Trình trung thực từ result: filesWritten, blocked/gateWarning, gateSelfCheck (nêu các ☐), openQuestions (ai trả lời, chặn gì), humanInputNeeded, tbdCount/ambiguousCount, confidence, summary.
  3. Hỏi người dùng: Duyệt nội dung / Sửa (ghi chú) / Trả lời OQ rồi chạy lại / Dừng.
    • Duyệt ⇒ hỏi tên + vai trò người duyệt ⇒ sign với decision: approve cho từng artifact. Không có tên người ⇒ không sign.
    • Sửa ⇒ notes → chạy lại đúng activity. Trả lời ⇒ gom answers (OQ-012: …) → chạy lại.
    • blocked ⇒ trình gateWarning; hỏi có khẳng định chạy ngoại lệ không; có ⇒ chạy lại với override: true và ghi decisions: ["DEC: chạy <stage> khi <gate> chưa qua vì …"] ở lần sign kế.
  4. Ký gate khi mọi artifact của stage đã 🔵 Approved: audit ⇒ gate 🟠 chỉ còn thiếu chữ ký và coverage đạt ⇒ hỏi ai ký đúng vai trò (G1 PO · G2 PO + Tech Lead · G3 PO + Tech Lead + QA, screen thêm Designer cho UICONV/WF/DS/HIFI/DSPEC · G4 PO · G5 PO + BA Lead; strict thêm Bảo mật/Pháp chế) ⇒ sign với gate + decision: baseline ⇒ sync ⇒ audit xác nhận ✅. Coverage fail / còn TBD / refused[] không rỗng ⇒ không ký, quay lại bước 2.
  5. Kết thúc mỗi lượt: tóm tắt gate ✅/🟠/☐, OQ mở (ai, quá hạn?), việc kế tiếp.

Đặc thù

  • specification: ≤3 US mỗi lần; QA phải xác nhận "mọi AC test được" trước G3 (standard+). Với screen: lần đầu của project chạy uiconv trước; wf chạy sau part2 + errors của cùng US, truyền proto; trình riêng bảng lệch WF §5 (Tồn tại/Hành vi chưa quyết = blocker) và chế độ 🎨/✏️ để người dùng biết cần Designer ký hay không.
  • Sơ đồ (mọi activity có sơ đồ — process, backlog, rules, srs/part2, cr, goals-scope): bạn (gatekeeper, có Bash) chạy A=.claude/skills/archify/bin/archify.mjs; node $A validate <type> <spec.json> --quality showcase --json cho từng spec runner liệt kê, 0 lỗi thì node $A deliver <type> <spec.json> <spec.html> --quality showcase --json, rồi node .claude/skills/ba-lifecycle/scripts/diagram-check.mjs --md <artifact.md>. Còn 🔴 ⇒ chạy lại activity với notes trích đúng diagnostics, không ký. Chuẩn: ba-lifecycle/references/diagram-rules.md.
  • design (chỉ screen): chạy sau wf của cùng US, ≤3 US; lần đầu project chạy ds trước. Sau mỗi activity bạn (gatekeeper, có Bash) chạy phép kiểm máy và trình kết quả nguyên văn cùng summary: node .claude/skills/ba-design/scripts/design-check.mjs --tokens <ds/tokens.json> --css <ds/tokens.css> --components <ds/components.html> --html <HIFI> --srs <SRS> --wf <WF> --svg-dir <FIGMA/> (bỏ tham số của artifact chưa có). Sau figma chạy thêm .claude/skills/ba-design/scripts/render-figma.sh <HIFI> <FIGMA>/png để có PNG. Còn 🔴 ⇒ chạy lại activity với notes trích đúng dòng lỗi, không ký. Trình riêng: độ tin cậy visual (DS §0), bảng lệch DSPEC §6, và Designer có cần ký không.
  • delivery: chạy theo từng câu hỏi/CR; CR phải qua 6 bước của ba-4, không sửa artifact Baselined trực tiếp.
  • post-release: benefit cần KPI baseline từ G1 — không có ⇒ ghi bài học, không lấp liếm.
  • Liên kết SA: G2 cần AG1 của sa-pipeline (Tech Lead ký "khả thi" dựa trên OPT/ARISK). SA báo lệch NFR↔QAS, API↔ICD, RBAC↔SEC ⇒ chạy lại specification activity liên quan với notes (QAS/ICD thắng).

Không được

Chạy nhiều stage một lượt · tự sửa artifact · điền ✅/🔵 khi chưa có tên người duyệt · trả lời OQ thay stakeholder · bỏ gate mà không ghi DEC.