Files
CASAN/docs/plans/CASAN_PLAN_12_DOMAIN_PACK.md
T
thanhnvandClaude Opus 4.8 4918012199 docs(plans): sync roadmap status + paths to post-restructure state
- Plan-01 marked ✅ DONE (INDEX table + P3 tier + BACKLOG row + plan header).
- Plan-06 / Plan-12 dependency on 01 satisfied → 🔓 unblocked (headers + BACKLOG rows).
- Repoint command/path refs in all plans (except Plan-01's migration narrative):
  .specify/{scripts,tests,security,config,templates,governance} -> packages/casan-harness/...;
  golden-runs/traceability-map/docs-input -> apps/okr/domain/...; `cd AINative_OKR_CASAN5`
  -> `cd $(git rev-parse --show-toplevel)`; fix relative links + Plan-13 control-plane location.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 14:57:01 +09:00

4.2 KiB

KẾ HOẠCH 12 — CASAN Domain Pack SDK

Onboard dự án mới không copy folder thủ công — chỉ khai báo một Domain Pack (YAML) là CASAN tự hiểu golden/corpus/threshold/quality-rules của domain đó. Chuẩn hoá "harness reusable, domain data tách khỏi core". Task-level, chưa thực thi.

Status 2026-07-08: 🔓 điều kiện tiên quyết 01 đã xong — apps/<x>/domain + CASAN_DOMAIN_ROOT per-project đã có (Plan-01 ✅). Còn chờ 06 (bản chạy tay) trước khi chuẩn hoá thành SDK khai báo.

Nhãn: [có]/[demo]/[mới]. Phụ thuộc: 01 ✅ (tách config/apps/<x>/domain — DONE) · 06 (onboard thủ công là bản chạy tay của cái này) · 07/10 (rules tham chiếu).

1. Vì sao đáng làm

  • Plan-06 onboard dự án 2 thủ công; Domain Pack biến việc đó thành khai báo → reuse thật ở tầm platform.
  • Đúng tư tưởng CASAN: gate (khung) không đổi; domain data khai báo bên ngoài.

2. Hình dạng Domain Pack

# apps/<project>/domain/domain-pack.yaml
domain: okr
language: [vi, ja, en]
artifact_types: [srs, bd, spec, code, test]
golden_runs:
  path: apps/okr/domain/golden-runs
redteam_corpus:
  path: apps/okr/domain/redteam-corpus
benign_corpus:
  path: apps/okr/domain/benign-corpus
thresholds:               # đè mặc định package
  cost_absolute_max: 800
  fp_budget: 0.03
  drift_similarity_min: 0.7
quality_rules:
  - requirement_coverage
  - no_security_regression
  - no_unapproved_dependency
harness_package: fpt-casan-sdd-harness
harness_version: 1.0.0

3. Tasks

Track 1 — Loader & schema

Task Việc Verify Done
1.1 Định schema domain-pack.yaml + validate pack sai field → báo lỗi rõ schema chốt
1.2 Loader: đọc pack → nạp golden/corpus/threshold/rules vào harness chạy với pack → dùng đúng data domain loader chạy
1.3 Cơ chế override: pack đè default package; thiếu field → dùng default field trống → default; có → đè override đúng
1.4 casan init-domain <name>: scaffold pack + thư mục domain rỗng sinh khung pack init chạy

Track 2 — Tích hợp & kiểm chứng

Task Việc Verify Done
2.1 Pipeline đọc domain-pack thay vì hard-code (bỏ feature-id cứng) đổi pack → đổi domain, không sửa gate tách domain
2.2 casan register đọc pack → ghi project-registry.json registry có entry đúng version đăng ký tự động
2.3 verify-harness-reuse với 2 domain pack thật HARNESS_REUSE_VALID project_count=2 reuse thật
2.4 Quality rules trong pack map sang gate (coverage→H3, dependency→C2…) rule bật/tắt đúng gate rule-driven

Track 3 — Chất lượng pack

Task Việc Verify Done
3.1 Lint pack: golden/corpus tối thiểu N mẫu; rule hợp lệ pack thiếu corpus → cảnh báo lint pack
3.2 casan doctor <domain>: kiểm pack sẵn sàng chạy chưa thiếu gì → liệt kê health-check

4. Rủi ro

Rủi ro Giảm thiểu
Phải sửa gate cho domain mới nếu xảy ra → nợ kỹ thuật đẩy về Plan-01 (tách chưa đủ)
Pack sơ sài → gate vô nghĩa 3.1 lint tối thiểu corpus/golden
Reuse "giả" (chỉ copy) cùng harness_version + verify script

5. Tiêu chí HOÀN THÀNH

  • Onboard dự án mới = tạo domain-pack.yaml + domain data, không sửa src/gates.
  • Override threshold/rule theo pack hoạt động.
  • casan init-domain / register / doctor chạy.
  • verify-harness-reuse = 2 domain pack thật → VALID.

6. Ghi chú trung thực

Cần Plan-01 (tách config/domain) xong trước; nếu chưa, Domain Pack chỉ là lớp mỏng trên cấu trúc phẳng. Reuse thật chỉ được tuyên bố khi có ≥2 domain pack chạy được, không tính entry demo.


Liên quan: CASAN_PLAN_01_RESTRUCTURE.md · CASAN_PLAN_06_ONBOARD.md · CASAN_PLAN_07/10 (quality rules).