Files
solution-erp/docs/governance/vocab-alias-map.md
pqhuy1987 8b6df0a396
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m25s
[CLAUDE] Docs: S146 closeout — session-model 3 owner-decision + hook 4-path + H24 auto
Ap spec-apply-hub-s145-v2 (5 axis, governance-only: 0 prod-code, 0 migration).
Workflow S145 chet giua chung -> /tiep §4 relaunch-cat-gon wf_3d803740-41d 3/3 DONE.

Owner-decision @S146:
- session_ctx_kb = 64 TUONG-MINH (giu nguyen caveat ghost-wire: 0 reader)
- session-model: scaffold IDEMPOTENT (tach cap-SO vs tao-THU-MUC) · closed.md WIRE
  (session-end §6.3-bis) · V2 AUTO (go cong NGUOI, GIU cong NHIP 6/15/3)

Landed: C7 §N.8 predicate 4-ve · hook wal-flush.ps1 4 path (+.claude/sessions/)
· San-3 tin-hieu ⑤ + ORPHAN-L · D2 KIEM end-only · §L.c completeness-gate co RANG.
LIVE-VERIFY hook 4-path PASS repo THAT (da7ee8a). Session-model chay TRON VONG dau
tien: pause-S146 -> resume-S146 -> ORPHAN-L can so.

H24 force-fire (P=8 pause >= 1, luat auto moi): 2 vai + h24-audit -> 7 FLAG, va het:
- sweep-consent sot 6 site (h24-audit.md:4 = frontmatter description)
- closed.md wired-but-declared-unwired (ghost-wire CHIEU NGUOC)
- owner-decision [7] BI GHI DE do tai-dung slot-index -> mat uy-quyen push
3/3 vai lane-H24 garble #53: ghi-dia-SOM cuu tron, ghi-MUON mat trang.

So: orphan run-folder 3->0 · carry 14->20 (co tag [carry:*]) · +E-013 +E-014
error-ledger · +memory feedback_absence_looks_like_clean · .gitignore +lock file.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 00:16:37 +07:00

7.8 KiB
Raw Blame History

Vocab Alias-Map — Bản đồ Thuật ngữ Tương đương

Mục đích: Đây là nguồn duy nhất (single source) ghi lại các cặp thuật ngữ ĐỒNG NGHĨA trong SOLUTION_ERP — một khái niệm nhưng đang tồn tại dưới hai cái tên (canonical hiện hành ↔ alias lịch sử đã bị thay thế). Tài liệu phục vụ đợt kiểm tra trôi-nghĩa (drift audit) hằng tháng: khi detector scripts/governance-detectors.ps1 (kiểm tra C3 — vocab-fork) phát cờ báo "hai biến thể cùng sống side-by-side", người rà soát mở file này để tra ngay đâu là từ chuẩn, đâu là từ cũ, và lý do đổi tên.

Chủ sở hữu ghi (single-writer): em-main. Tài liệu append-only — chỉ thêm dòng mới khi phát sinh cặp thuật ngữ mới, KHÔNG viết lại các mục cũ. Sub-agent chỉ đọc, không được sửa (tuân thủ nguyên tắc D9 single-writer).

Phạm vi: Chỉ ghi các cặp thật sự là MỘT khái niệm hai tên (fork-để-hợp-nhất). KHÔNG ghi các từ trùng-mặt-chữ nhưng khác nghĩa (ví dụ "memory-fidelity", "coverage", "audit") — những từ đó đã được phân biệt bằng ngữ cảnh trong harness-11-engine.md PHẦN H/I và cố ý KHÔNG seed vào detector.


⚠️ Lưu ý nền tảng — vì sao alias vẫn còn xuất hiện đầy trong repo

Phần lớn số lần alias xuất hiện là hợp lệ theo lịch sử — KHÔNG phải drift cần sửa. Các file dưới đây ĐÓNG BĂNG (frozen), tuyệt đối không viết lại:

  • docs/changelog/sessions/** — nhật ký từng session (ghi lại đúng từ ngữ tại thời điểm đó).
  • docs/_archive/** — snapshot STATUS/HANDOFF đã archive verbatim.
  • docs/governance/adap-reports/** — báo cáo adoption đã chốt.
  • .claude/workflows/runs/** — vết chạy workflow (run-trace), git-tracked bất biến.
  • broadcasts/inbox|outbox/** — thư liên-team đã gửi.

Một session-log viết "two-tier" hồi S60 là đúng sự thật lịch sử — nó phản ánh mô hình còn hiệu lực khi đó. Không được sửa ngược quá khứ. Do vậy alias sẽ mãi mãi còn tồn tại trong các file đóng băng, và detector C3 (quét TOÀN BỘ docs/** + .claude/** *.md, KHÔNG loại trừ file frozen) sẽ vẫn tiếp tục báo cờ MED cho mỗi cặp — đây là trạng thái documented-known, không phải lỗi tồn đọng. Việc "làm sạch" chỉ áp dụng cho các file đang-sống (live-editable): docs/STATUS.md, docs/HANDOFF.md, các SKILL.md, agent-memory/**/MEMORY.md (bản HOT, không phải archive), và các doc governance đang bảo trì.


Bảng thuật ngữ tương đương

1. run-trace (chuẩn) ↔ wave-folder (alias cũ)

Thuộc tính Giá trị
Canonical (hiện hành) run-trace — thư mục cô lập bộ nhớ mỗi lần chạy workflow tại .claude/workflows/runs/<id>/
Alias (đã thay thế) wave-folder / wave-* — tên cũ của cùng thư mục cô lập đó
Đổi tên bởi Harness-10 (Session 72, 2026-06-18) — đổi cấu trúc wave-* sang mô hình run-trace phẳng (sub-*.md + *-synthesis.md) git-tracked
Ghi chú frozen Session-log/adap-report/runs cũ giữ nguyên "wave-folder" — đúng lịch sử, không sửa

2. Ngân sách PRO (chuẩn) ↔ Dự trù PRO (alias cũ)

Thuộc tính Giá trị
Canonical (hiện hành) Ngân sách PRO — nhãn cột/badge PRO trong ma trận ngân sách PE (module PurchaseEvaluation)
Alias (đã thay thế) Dự trù PRO — nhãn cũ trước khi anh Kiệt (FDC) yêu cầu đổi
Đổi tên bởi Session 65 (2026-06-16) — anh Kiệt Zalo: "Dự trù PRO → Ngân sách PRO"; áp dụng row + badge trên cả 2 app (fe-admin + fe-user), SHA256-mirror
Ghi chú kỹ thuật Field BE gốc PeWorkItemBudget.ProInitialAmount ("Ban hành lần đầu") + ProAdjustmentAmount; nhánh ProEstimateAmount cũ đánh dấu LEGACY (Mig 56 migrate → ProInitialAmount). Còn 1 comment mã nguồn stale ở PurchaseEvaluationDtos.cs:324 ("badge dự trù PRO") — chỉ là comment, KHÔNG phải nhãn FE đang render; có thể dọn khi tiện, không bắt buộc
Ghi chú frozen Session-log S65 và bản archive giữ "Dự trù PRO" — đúng lịch sử
Lưu ý mở rộng PeWorkItemBudget là tên ENTITY (khái niệm khác — bảng ngân-sách-per-gói-thầu), KHÔNG phải alias của nhãn PRO. "PRO" = Procurement (phòng Mua hàng), không phải viết tắt khác

3. worker-tier-pin (chuẩn) ↔ all-inherit · two-tier (2 alias cũ, 2 đời)

Thuộc tính Giá trị
Canonical (hiện hành) worker-tier-pin — TOÀN-ROSTER sub-agent frontmatter model: opus + effort: max (worker-tier gán-cứng, KHÔNG theo lead); lead = frontier-class owner-choice per-session; Fable cho 1 vai CHỈ qua lượt lệnh /fable-real·/fable-clone hoặc per-task tier: — spawn-param THẮNG hard-pin (đo S126 2026-07-16, runs/2026-07-16-S126-adap-spec-execute/runtime-verify-synthesis.md)
Alias (đã thay thế — đời 2) all-inherit — mọi sub-agent kế thừa model lead (chất-lượng > chi-phí; Harness-8, S66S123)
Alias (đã thay thế — đời 1) two-tier — mô hình 2 tầng (lead promote-inherit vài agent / demote-pin số còn lại về Opus; Harness-4)
Đổi tên bởi Owner-decision S124 (2026-07-15, adap erratum-h8) — thay all-inherit bằng worker-tier-pin. Trước đó: Harness-8 (S66, 2026-06-16) thay two-tier bằng all-inherit
Ghi chú frozen adap-report/session-log ≤S66 giữ "two-tier", S66S123 giữ "all-inherit" — đúng lịch sử tại thời điểm đó

Quy trình cập nhật (khi thêm cặp mới)

  1. Chỉ append 1 mục ### N. mới bên dưới, KHÔNG sửa mục cũ.
  2. Ghi đủ 4 trường: canonical · alias · đổi-tên-bởi (Harness/Session) · ghi-chú-frozen.
  3. Nếu muốn detector nhận-biết cặp mới, seed vào $aliasSets trong scripts/governance-detectors.ps1 (C3). Lưu ý: detector CHỈ grep, KHÔNG đọc file này — xem mục dưới.

Về việc detector có "im" sau khi tạo file này không

KHÔNG. Detector C3 (scripts/governance-detectors.ps1) là pure-grep: $aliasSets được hard-code trong script (dòng ~350-354), và C3 báo cờ mỗi khi ≥2 biến thể của một set còn sống trong corpus. Nó KHÔNG đọc bất kỳ alias-map file nào. Vì các file frozen (mãi mãi chứa alias) nằm trong phạm vi quét, cờ MED cho cả 3 cặp sẽ vẫn còn — nay chuyển trạng thái thành documented-known (đã có tài liệu giải thích tại đây), không còn là drift lạ.

Câu "resolve: … or record an alias-map in docs/governance" trong output detector là gợi ý cho con người, KHÔNG phải hook tự-động. Muốn detector THẬT-SỰ ngừng báo cặp nào, phải sửa $aliasSets (bỏ set đó) — nhưng làm vậy sẽ mất khả năng phát hiện fork tương lai, nên không khuyến nghị.

Cảnh báo self-match: File vocab-alias-map.md này tự thân chứa cả 6 thuật ngữ ở dạng live → nếu KHÔNG loại trừ, nó sẽ tự-đóng-góp thêm 1 file live cho MỖI biến thể và khiến detector đếm sai. Cần thêm đường dẫn docs/governance/vocab-alias-map.md vào $ExcludeExact trong governance-detectors.ps1 (đặt cạnh harness-11-engine.md đã được loại trừ sẵn) để tài liệu này không tự-match. Đây là bước bắt buộc khi commit file.