Tiền tố Namespace và Mô hình Bản sắc V7GUID

Quyết định kiến trúc ngày 2026-07-26. Tài liệu hóa tại GitCover.Discovery/plans/ADR-001_namespace_prefix_gitcover.md.

Câu hỏi ban đầu

Có nên giữ tiền tố namespace C# dài GitCover.Discovery cho việc phát hành OSS sau này, hay làm việc với tiền tố rút gọn (Discovery.*)?

Bối cảnh: Trong cộng tác động giữa các developer, AI agent và MCP service cùng tương tác động, các namespace "tuyệt đối" có thể làm nhòa ranh giới — khái niệm V7GUID dùng 48 bit đầu cho tenant-ID, và các kiểu được đăng ký ít nhất ở cấp công cụ nhưng có thể được định nghĩa lại ở cấp tenant hoặc repo (cấp tổ chức), để đảm bảo tính duy nhất giữa các repo trong GCEP, độc lập với phiên bản DLL hoặc instance quy trình.

Mô hình Bản sắc V7GUID

Khái niệm V7GUID cố định bản sắc và định kiểu hoàn toàn ở cấp bit:

Bản sắc Tenant (Bit 0–47)

Bản sắc tenant được dẫn xuất từ dấu thời gian 48-bit của UUIDv7 thành lập. Nó được mã hoá tất định trong GUID — namespace C# không mang thông tin bản sắc bổ sung.

repository_id (Bit 52–63, 12 bit, 0–4095)

Định chỉ một repository trong ngữ cảnh tenant. Mỗi tenant có đúng một repository TOP (id=1) và tối đa 4.095 repository khác. Tính duy nhất được đảm bảo bởi repository_id, không phải bởi namespace C#.

kind (Bit 114–121, 8 bit) — registry chuẩn tắc trung tâm

Chuẩn hóa loại hoạt động liên-repo và thay thế các enum đặc thù giải pháp (RepoKind, ArtifactKind trong GitCover.Discovery; Prozesstyp trong GCP.Portfolio; Type trong GCPN). kinds.json trung tâm được duy trì trong root chuẩn tắc OSS (git.gitcover.org/OSS/TOP/.gitcover/dictionaries/).

Định danh kép (classification, uuid)

Tách Class Identifier (cái gì/kiểu, mã hoá tất định trong bit) và Object ID (đối tượng cụ thể nào, uuidv7 thuần). Cả hai cùng tạo thành composite key — namespace không nằm trong đó.

Tại sao Tiền tố Namespace là Trung lập

Tiền tố namespace C# GitCover. gợi ý một "bản sắc tuyệt đối" không được dự liệu trong mô hình V7GUID. Đối với mô hình bản sắc và định kiểu, nó là trung lập:

Lý do Giữ lại

Lập luận Biện luận
Nhất quán thương hiệu Tất cả 18 solution trong Development/Solutions/ dùng tiền tố (trừ ngoại lệ lịch sử như GCP/GCEP). Cho phát hành OSS dưới git.gitcover.org/GCC-OSS/<repo>, GitCover.* tín hiệu nguồn gốc.
Không xung đột NuGet Discovery.* đơn giản dễ xung đột với gói bên thứ ba; GitCover.Discovery duy nhất toàn cục.
Hiển thị giấy phép Mô hình IPLicensing (open-core, phân loại field-of-use) dùng namespace làm marker cho nguồn gốc và thuộc giấy phép.
Nhất quán hệ sinh thái Solution Các bundle liên-solution (GCEP-Federation, MCP-Hub) hiện tham chiếu GitCover.Core, GitCover.V7Guid — namespace rút gọn phá vỡ chuỗi này.

Hệ quả cho Cộng tác Động

Namespace C# không phải phương tiện bản sắc cho:

Kết luận

Tiền tố namespace C# GitCover. được giữ như một quy ước đặt tên — không phải phương tiện bản sắc. Bản sắc và tính duy nhất kiểu được đảm bảo bởi mô hình V7GUID (tenant-ID trong bit 0–47, repository_id trong bit 52–63, registry kind trong bit 114–121). Tiền tố trung lập đối với cộng tác động giữa developer, AI agent và MCP service — nó không mang thông tin bản sắc nào không được mã hoá tất định trong V7GUID.

Nguồn