Files
CASAN/optimize-docs/CASAN_ARCHITECTURE_BEFORE.md
T
thanhnvandClaude Fable 5 bb1dc8ad9f docs(arch): add before/after architecture files vs the vanilla spec-kit base
Two companion docs tracing the .specify/scripts evolution from the 5-file
spec-kit scaffold shown in the file tree:

- CASAN_ARCHITECTURE_BEFORE.md — state brought to the competition (freeze
  fbcef96): base 5 → 37 scripts implementing all 7 harnesses, each file's
  purpose grouped by H1–H7, + the 8 competition test suites. Honest maturity:
  demo/PoC (~3.0/5).
- CASAN_ARCHITECTURE_AFTER.md — the feat/plan07-track-a-hardening upgrades:
  37 → 60 scripts (+23) grouped by Track A / Track C-MVP / Evidence Pack /
  H5+ / H6+, each new file's purpose + the gap it closes, notes on in-place
  modifications (strict fail-closed, cost caps, KMS rotate, window breaker),
  + the 6 new test suites (+96 checks). Honest maturity: Level 4 proven by
  attack (~4.0/5), not full production.

File counts verified against git (ls-tree fbcef96 vs HEAD).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 12:21:28 +09:00

113 lines
6.6 KiB
Markdown

# CASAN — Kiến trúc BEFORE → AFTER (Mốc 1: lúc mang đi thi)
> **File này = trạng thái "mang đi thi"** — commit freeze `fbcef96`, **trước** nhánh `feat/plan07-track-a-hardening`.
> So sánh với **base gốc** (bộ khung spec-kit vanilla trong ảnh). File tiếp theo (`CASAN_ARCHITECTURE_AFTER.md`) kể tiếp phần nâng cấp sau khi thi.
---
## 0. Base gốc = bộ khung "spec-kit" vanilla (như ảnh)
Thư mục `.specify/scripts/bash/` ban đầu **chỉ có 5 file** — đây là khung tạo-đặc-tả tiêu chuẩn, **chưa có một dòng nào về an toàn / harness**:
| File base | Tác dụng | Thuộc về |
|---|---|---|
| `check-prerequisites.sh` | Kiểm tra công cụ/điều kiện trước khi chạy quy trình | spec-kit |
| `common.sh` | Hàm dùng chung (đường dẫn, tiện ích) | spec-kit |
| `create-new-feature.sh` | Dựng khung một feature mới theo đặc tả | spec-kit |
| `setup-plan.sh` | Dựng khung kế hoạch triển khai | spec-kit |
| `update-agent-context.sh` | Cập nhật ngữ cảnh cho agent | spec-kit |
*(Kèm `init-options.json`, `templates/`, `memory/`.)* → **Base chỉ biết "sinh khung dự án", không biết chặn tấn công, không ghi vết, không đo chi phí.**
---
## 1. Sau cải tiến (lúc thi): từ 5 → **37 script** + 8 bộ test
**Đã thêm 32 script CASAN** trên nền 5 file base, hiện thực **đủ 7 harness** (7 lớp bảo vệ) + các công cụ ký số/telemetry. Bảng dưới nhóm theo từng harness — **mỗi file là một mảnh của một lớp bảo vệ**.
### 🟦 H1 — Context (ngữ cảnh)
| File | Tác dụng |
|---|---|
| `context-validate.sh` | Kiểm tra `pipeline-context` hợp lệ — sub-agent lấy đường dẫn spec/artifact từ context, khỏi đoán |
| `casan-log.sh` | Ghi log theo cấp độ (debug/info…) cho toàn pipeline |
### 🟦 H2 — Tool (công cụ)
| File | Tác dụng |
|---|---|
| `tool-registry-gate.sh` | Đăng ký tool + **least-privilege** (agent chỉ gọi tool được phép) + **rate-limit** + **idempotency** (chống gọi lặp) |
| `validate-tool-input.sh` | Kiểm tra input gọi tool theo **JSON schema** — sai định dạng thì loại |
| `tool-exec.sh` | Chạy tool có **timeout cứng** — công cụ chạy loạn bị cắt giờ |
| `tool-audit-lib.sh` | Thư viện ghi **nhật ký mọi lần gọi tool** (hash-chain + ký) |
| `verify-tool-audit.sh` | Xác minh chuỗi nhật ký tool-calls còn nguyên vẹn |
### 🟦 H3 — Evaluation (đánh giá / model)
| File | Tác dụng |
|---|---|
| `model-router.sh` | Định tuyến model theo **vai trò** (classify / judge / generate) |
| `model-call.py` | Gọi model — **local (Ollama)** + đường **cloud (OpenAI/Anthropic)** |
| `model-fallback.sh` | Model A hỏng → tự chuyển sang model B |
### 🟥 H4 — Security (bảo mật)
| File | Tác dụng |
|---|---|
| `security-check.sh` | Quét **injection / secret / PII** ở **cả đầu vào lẫn đầu ra** |
| `artifact-scan.sh` | Quét **injection gián tiếp** giấu trong tài liệu **trước khi** vào ngữ cảnh AI |
| `security-gate.sh` | Cổng bảo mật tổng hợp — chạy loạt kiểm tra, ra một phán quyết chung |
| `pii-mask.py` | Che thông tin cá nhân (dùng chung bởi các control bảo mật) |
### 🟧 H5 — Governance (quản trị & nhật ký)
| File | Tác dụng |
|---|---|
| `governance-check.sh` | **Tách quyền (SoD)**, duyệt việc nhạy cảm, least-privilege |
| `verify-audit-chain.sh` | Xác minh **hash-chain** sổ kiểm toán — sửa 1 ký tự là gãy |
| `sign-audit-head.sh` | **Ký số HEAD** chuỗi audit (qua KMS hoặc khoá local) |
| `sign-policy-bundle.sh` | Ký gói **chính sách trung tâm** (dùng chung nhiều dự án) |
| `secrets-scan.sh` | Quét **secret lỡ commit** vào mã nguồn |
| `circuit-breaker-check.sh` | Quét **no-bypass** (không cho lách kiểm tra) + cầu dao ngắt khi model hỏng liên tiếp |
| `vault-kms.sh` | Ký qua **Vault Transit (KMS)** — chìa khoá nằm trong két |
### 🟨 H6 — AgentOps (vận hành & chi phí)
| File | Tác dụng |
|---|---|
| `agent-metrics.sh` | Đo **chi phí / độ trễ / token** mỗi bước + phát cảnh báo |
| `cost-spike-detect.sh` | Phát hiện **vọt chi phí** (bước tốn gấp N lần) |
| `drift-detect.sh` | Phát hiện **model đổi hành vi** theo thời gian |
| `hallucination-scan.py` | Quét **tín hiệu bịa đặt** trong output |
| `import-provider-telemetry.sh` | Nhập **số dùng thật** từ nhà cung cấp model |
| `provider-cost-lookup.py` | Tra chi phí thật theo từng bước |
| `business-kpi-report.sh` | Báo cáo **KPI nghiệp vụ** (cycle-time, rework…) |
### 🟩 H7 — Orchestration (điều phối)
| File | Tác dụng |
|---|---|
| `casan-harness.sh` | **Wrapper** chạy một bước qua **đủ các lớp harness** một mạch |
| `rollback-manager.sh` | **Rollback thật** khi một bước lỗi |
| `verify-harness-reuse.sh` | Chứng minh bộ harness **tái dùng được** cho nhiều dự án |
*(Kèm `guideH4-H5-H6.md` — ghi chú hướng dẫn.)*
---
## 2. Test lúc mang đi thi (8 bộ)
| Bộ test | Vai trò |
|---|---|
| `run-casan4-harness-tests.sh` | **35** kiểm thử happy-path + bằng chứng Level-5 |
| `adversarial-harness-tests.sh` | **44** đòn đối kháng (battery gốc) |
| `phase3-model-router-tests.sh` | Kiểm thử định tuyến model |
| `phase3-redteam-metrics.sh` | Đo **recall** red-team (model vs regex) |
| `phase3-judge-gate-tests.sh` | Cổng LLM-judge nhiều tầng |
| `generate-agentops-dashboard.py` | Sinh bảng theo dõi AgentOps (tĩnh) |
| `generate-casan-demo-context.py` | Sinh ngữ cảnh demo |
| `run-casan-harness-tests.ps1` | Bản PowerShell (Windows) |
---
## 3. Tóm tắt Mốc 1 (một dòng)
> **Base vanilla 5 file "chỉ sinh khung dự án"** → **CASAN lúc thi 37 script hiện thực đủ 7 lớp bảo vệ** (chặn injection, ghi vết ký số, đo chi phí, điều phối + rollback) — **chứng minh bằng ~79 kiểm thử đối kháng**.
>
> **Trạng thái công tâm lúc thi:** đây là mức **demo/PoC tốt** — chặn được tấn công trên sân khấu. Ba lớp H4/H5/H6 khi đó mới ~3.0/5, còn nhiều đường lọt "sát production" chưa vá (né tránh nâng cao, quản trị khoá, xoá nhật ký, alerting thật…).
>
> 👉 Những đường lọt đó chính là nội dung **`CASAN_ARCHITECTURE_AFTER.md`** — phần nâng cấp `feat/plan07-track-a-hardening` sau khi thi.