Nhóm 2 — Phân quyền (Roles & RBAC)
Ai làm gì trong fleet. Mở rộng D-004 (worker không publish) lên quy mô fleet.
2.1 Vai trò
| Vai trò | Định danh | Được làm | KHÔNG được làm |
|---|---|---|---|
| Orchestrator | Claude main session | Plan, registry, sitectl, publish WP, deploy CF, GSC, Asana, git, Wikidata, credential load | — |
| Worker | sonnet/haiku/codex/qwen/p8-* subagent | Draft entity.json, JSON-LD, content body, audit local, diff | Publish, deploy, Asana, git push, đụng credential |
| Tool (internal surface) | oee.nampham.net, fleet.nampham.net | Monitoring, dashboard | Noindex, không vào entity graph công khai |
| Human | Anh Nam | Approve Tier2, chiến lược, quyết định kiến trúc mới | — |
2.2 Credential vault (per-site scoped)
- Prefix
SITE_<SLUG>__<KEY>trong.env. VD:SITE_PHAMDUCPHUONGNAM__WP_URL,SITE_NAMPHAM__CMS_URL. - Loader đọc theo site đang xử lý, không leak cross-site.
1000 site → secrets manager (1Password CLI / Doppler). Schema prefix không đổi.
- Backward compat: site hiện tại vẫn dùng key legacy (
WP_URL,NAMPHAM_CMS_URL) — loader thửSITE_<SLUG>__trước, fallback legacy.
2.3 Tier framework (per-site risk_tier trong site.json)
| Tier | Gate | Actions | Pharma rule |
|---|---|---|---|
| Tier 1 — Auto | Không đổi từ ngữ, purely technical | GSC reindex, cache purge, A/B record, internal link button | Speed/indexing = auto OK |
| Tier 2 — Approve | Đổi nội dung/title/schema type | Meta rewrite, content publish, new schema, LinkedIn draft | Regulatory risk = luôn Tier 2 |
risk_tier: strict(pharma) → mọi Tier 2 phải human approve.risk_tier: loose(blog thường) → Tier 2 có thể auto nếupublish_gate_policy.strict_mode=false.
2.4 Worker dispatch
- Orchestrator đọc
registry.json→ spawn worker scoped 1 site, context cô lập (CORPGEN pattern). - Worker output về
artifacts/team/<task>/notes.md→ orchestrator review → publish.