Một bộ skill, subagent và guard hook dùng chung cho cả 8 repo CSP. Nó mã hoá quy trình US của team thành lệnh gõ được, và biến PEN Engineering Policy thành thứ máy chặn được thay vì thứ phải nhớ.
| Trước | Với plugin |
|---|---|
| Quy trình US nằm trong đầu mỗi người; người mới phải hỏi | /csp:us CSP-1234 cho biết US đang ở bước nào và bước kế là gì |
| Workflow Jira chỉ repo FE có (.agents/workflows/), 4 repo BE không có | /csp:jira chạy ở mọi repo, không cần file nào trong repo |
| Commit sai format thì CI báo, mất một vòng | Guard chặn ngay lúc gõ, kèm lý do và rule tương ứng |
| deploy.sh chạy git reset --hard và migrate --force — lỡ tay là mất việc | Hook deny, không có đường chạy nhầm |
| Mỗi người tự cài MCP Atlassian, Postman, Chrome DevTools | Plugin ship sẵn 4 server, chỉ cần OAuth |
Cần sẵn: Node ≥ 18, Claude Code CLI, git config user.email là @vng.com.vn, và quyền đọc cs-platform/* trên GitLab.
Clone meta-repo rồi lấy 8 repo con về repos/.
Một lệnh, chạy lại được: kiểm tra môi trường, link rule, cài plugin, tự test guard.
Gõ /mcp rồi OAuth Atlassian (account của bạn) và Postman (account chung team).
# 1 — clone git clone https://gitlab.gt.vng.vn/taiph/csp-workspace.git ~/Workspaces/customer-support cd ~/Workspaces/customer-support && sh scripts/clone.sh # 2 — cài rule + plugin (idempotent) bash scripts/ai-sdlc/setup-member-ai-sdlc.sh # 3 — mở Claude trong repo bất kỳ, rồi /mcp để đăng nhập cd repos/api_v3 && claude
Script làm 4 việc: kiểm tra Node/CLI/email, symlink .claude/rules/csp-*.md vào ~/.claude/rules/ (plugin không ship được rule), cài csp@cs-platform ở local scope cho workspace và từng repo con, rồi chạy test guard để chắc chắn nó hoạt động trên máy bạn.
Vì sao local scope, không phải user scope: guard CSP chặn commit theo rule riêng của team — không nên chạy ở project khác của bạn.
Cập nhật: git pull (rule đổi ngay qua symlink) → claude plugin marketplace update cs-platform → claude plugin update csp@cs-platform.
| Thành phần | Là gì | Cách dùng | Output để lại |
|---|---|---|---|
| Skill (18) | Quy trình viết sẵn Claude đọc và làm theo | Gõ /csp:<tên> hoặc nói tự nhiên | File (intent.md, spec.md, report), commit, MR, comment Jira, page Confluence |
| Subagent (5) | Agent phụ, context riêng, quyền hạn hẹp | Skill tự gọi, hoặc bạn nói "dùng csp:verifier" | Báo cáo trả về chat — không tự sửa code |
| Guard hook (3) | Script chạy trước mỗi lệnh Bash / sửa file / gọi MCP | Tự động, không cần gõ gì | Cho qua, hỏi lại, hoặc chặn kèm lý do [csp-guard] |
| MCP server (4) | Atlassian, Chrome DevTools, Postman, sequential-thinking | Tool xuất hiện sau khi OAuth | Đọc/ghi Jira & Confluence, điều khiển browser, gọi API |
| Rule csp-*.md | Nguồn chuẩn cho git, Jira, cách tương tác | Tự nạp mỗi session qua symlink | Không có output — skill và hook đều trỏ về đây |
Chạy lệnh Verifying your work của repo với context sạch.
Output: PASS / FAIL / BLOCKED kèm output thật. Không sửa code.
Điều tra lỗi, đọc log server và GitLab CI, phân tích DB.
Output: báo cáo chẩn đoán, root cause.
Chạy lệnh git đã được bạn duyệt. Không tự quyết.
Output: draft commit, hoặc kết quả lệnh.
Soát và cập nhật docs/ theo thay đổi code.
Output: file docs đã cập nhật.
Chạy một phase trong plan song song, ranh giới file rõ ràng.
Output: code của đúng phase đó.
Đây là quy trình team đang chạy, viết lại thành lệnh. Quên đang ở đâu thì gõ /csp:us CSP-1234.
/csp:pull-docslưu PRD/csp:prd-reviewgóp ý PRD/csp:specspec + API contract/csp:jira solutionbáo PO/csp:jira subtaskstạo subtask/csp:worktreebranch + worktreecsp:verifierchạy test của repo/csp:git cpcommit + push/csp:git mrtạo MR/csp:reviewreview trước approve/csp:jira donechangelog subtask/csp:jira mergedbáo đã merge/csp:jira rolluptổng hợp trên US| # | Bước | Lệnh | Xong khi |
|---|
Bước 4.3 cố ý không tự động. Status subtask do bạn tự đổi — rule §1.4 để người làm quyết thời điểm, và guard chặn transitionJiraIssue.
| Lệnh | Nhóm | Làm gì | Output |
|---|
Skill nhắc Claude làm đúng; hook làm cho việc làm sai gần như không thể. Hook fail-open: lỗi nội bộ thì không chặn, để không cản việc.
| Hành động | Kết quả | Nguồn |
|---|---|---|
| Chạy deploy.sh ở bất kỳ env nào | chặn | policy §6.1 |
| Commit / merge khi đang đứng trên master | chặn | policy §4.3 |
| Push vào protected branch | chặn | policy §4.3 |
| Tên branch ngoài feature/ bugfix/ hotfix/ + {KEY}-{slug} | chặn | branching §3 |
| Commit message sai format hoặc thiếu trailer | chặn | policy §7, §7.1 |
| MCP merge / approve MR | chặn | SoD policy §5 |
| Sửa test khi đang fix bug (CSP_LOCK_TESTS=1) | chặn | playbook Stage 4 |
| Force-push, xoá branch remote | hỏi | commit §3.9 |
| Đổi status Jira | hỏi | jira §1.4 |
| Sửa .env*, .npmrc*, lock file, migration | hỏi | profile repo |
Guard chặn nhầm? Đừng tắt plugin. Mở issue kèm lệnh bị chặn — nó cần một test case, vì hai lần chặn nhầm trước đây đều là lỗi parse và chỉ lộ ra khi dùng thật.
/csp:git mr in title/body để bạn tạo MR tay — xem cách cấu hình trong member-onboarding.md §4./workflow-task, /workflow-git) trong .agents/workflows/. Plugin dùng chồng lên, không thay thế.