CS Platform · plugin csp@cs-platform · v1.1.0

Plugin CSP cho Claude Code

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ớ.

18skill
5subagent
3guard hook
4MCP server

Plugin giải quyết việc gì

TrướcVớ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òngGuard 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ệcHook deny, không có đường chạy nhầm
Mỗi người tự cài MCP Atlassian, Postman, Chrome DevToolsPlugin ship sẵn 4 server, chỉ cần OAuth

Setup — khoảng 15 phút

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 workspace

Clone meta-repo rồi lấy 8 repo con về repos/.

Chạy script setup

Một lệnh, chạy lại được: kiểm tra môi trường, link rule, cài plugin, tự test guard.

Đăng nhập MCP

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 và output của từng phần

Thành phầnLà gìCách dùngOutput để lại
Skill (18)Quy trình viết sẵn Claude đọc và làm theoGõ /csp:<tên> hoặc nói tự nhiênFile (intent.md, spec.md, report), commit, MR, comment Jira, page Confluence
Subagent (5)Agent phụ, context riêng, quyền hạn hẹpSkill 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 MCPTự độ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-thinkingTool xuất hiện sau khi OAuthĐọc/ghi Jira & Confluence, điều khiển browser, gọi API
Rule csp-*.mdNguồn chuẩn cho git, Jira, cách tương tácTự nạp mỗi session qua symlinkKhông có output — skill và hook đều trỏ về đây

5 subagent

csp:verifier

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.

csp:debugger

Đ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.

csp:git-manager

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.

csp:docs-manager

Soát và cập nhật docs/ theo thay đổi code.

Output: file docs đã cập nhật.

csp:fullstack-developer

Chạy một phase trong plan song song, ranh giới file rõ ràng.

Output: code của đúng phase đó.

Quy trình US — 14 bước, mỗi bước một skill

Đâ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.

2 · Phân tích
  1. /csp:pull-docslưu PRD
  2. /csp:prd-reviewgóp ý PRD
  3. /csp:specspec + API contract
  4. /csp:jira solutionbáo PO
  5. /csp:jira subtaskstạo subtask
3 · Hiện thực
  1. /csp:worktreebranch + worktree
  2. codeplan mode · /csp:fix
  3. csp:verifierchạy test của repo
  4. /csp:git cpcommit + push
  5. /csp:git mrtạo MR
  6. /csp:reviewreview trước approve
4 · Báo cáo
  1. /csp:jira donechangelog subtask
  2. /csp:jira mergedbáo đã merge
  3. /csp:jira rolluptổng hợp trên US
  4. status subtasktự đổi tay — §1.4
#BướcLệnhXong 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.

Danh sách 18 skill

LệnhNhómLàm gìOutput

Guardrail — cái gì bị chặn

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 độngKết quảNguồn
Chạy deploy.sh ở bất kỳ env nàochặnpolicy §6.1
Commit / merge khi đang đứng trên masterchặnpolicy §4.3
Push vào protected branchchặnpolicy §4.3
Tên branch ngoài feature/ bugfix/ hotfix/ + {KEY}-{slug}chặnbranching §3
Commit message sai format hoặc thiếu trailerchặnpolicy §7, §7.1
MCP merge / approve MRchặnSoD policy §5
Sửa test khi đang fix bug (CSP_LOCK_TESTS=1)chặnplaybook Stage 4
Force-push, xoá branch remotehỏicommit §3.9
Đổi status Jirahỏijira §1.4
Sửa .env*, .npmrc*, lock file, migrationhỏiprofile 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.

Lưu ý khi dùng

Còn chưa chốt

  1. Marketplace đang ở repo cá nhân taiph/csp-workspace — chuyển sang group cs-platform để team cùng sở hữu?
  2. GitLab MCP cho gitlab.gt.vng.vn dùng server nào?
  3. commitlint của PEN dùng config gì? Config mặc định cấm subject viết hoa chữ đầu, trái rule CSP.
  4. Secret production đang commit trong .env.prd* và .npmrc.* — báo security để rotate?