--- name: ba-pipeline description: Đ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: "/.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` · `delivery` · `post-release` · `sign` · `sync` | | `activity` | nên dùng | 1 hoạt động của stage (mặc định cả stage): discovery `stakeholder|elicitation|requirements|goals-scope|risks` · analysis `process|backlog|rules|rbac|impact` · specification `srs|part2|ac|errors|nfr|api` · delivery `clarification|cr|testcase-review|uat` · post-release `release-note|manual|feedback|benefit` | | `scope` | specification/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 | | `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|baseline|revise, approver, role, note}` · gate được ký · DEC-nn | ## 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//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//`; 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/`, file người dùng đưa) — trình bảng `File | Vai trò | Giai đoạn`. 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/` ⇒ `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 khi 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 · 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`+). - `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.