Owner YC-032/033/034/036 — 4 vế:
1. TÁCH LOẠI: +2 ContractType (HopDongThauPhuVatTu=8 / HopDongThauPhuThietBi=9),
họ HD-TP-VT / HD-TP-TB, menu 01A./01B. (giữ 02.-07. nguyên, loại cũ =1 legacy).
Bịt 5 nhánh câm nuốt loại mới: WorkflowPolicy (mất trạm CCM), ContractCodeGenerator
(sai mã RG-001, không hồi tố được), ContractDetailsFeatures x2 (bundle rỗng HTTP 200),
SeedWorkflowDefinitions (Designer V1 rỗng). ContractDetailsHelpers.ThauPhuFamily —
3 loại chung bảng ThauPhuDetails ⇒ 0 migration cho vế này.
2. THÂN DOCUMENT-VIEW: ContractBodyView.tsx + lib/contractBody/ (002.02 = 36 ô/2 bảng/5 điều ·
002.03 = 46 ô/6 bảng/6 điều · PHẦN 2 dùng chung 5 điều read-only gắn CUỐI theo YC-034).
Lưu vào Contract.DraftData lược đồ {schemaVersion,kind,body,paymentTerms}.
Gỡ draftData:null hardcode 4/4 site — trước đây mỗi lần Lưu là xoá trắng thân HĐ.
3. PRE-FILL: cầu KHKK đổ 17 ô (Bên B · chủ đầu tư · gói thầu · số HĐ · giá trị) — 17/17 khớp
slot.key. Địa điểm lấy pe.DiaDiem (0% rỗng) thay Project.Location (93% rỗng). Vá regression
cầu KHKK đánh rơi PaymentTerms + BypassProcurementAndCCM so với cầu PE cũ.
4. KHOÁ BẢN CỨNG MỘT CHIỀU (YC-033 "giấy trắng mực đen"): Mig AddContractSealedAt
(+SealedAt +SealedByUserId), set ??= (upload lần 2 không đè mốc đầu), rào 2 cửa —
xoá đính kèm bản cứng ⇒ 409, sửa HĐ ⇒ chặn. Test-before 2 ca.
+ print CSS in trình ký (ô điền in ra thành đường kẻ, không phải khung input).
Template: 002.02/002.03 convert .doc→.docx vào wwwroot + trỏ đúng 2 loại mới (trước cùng trỏ
loại cũ ⇒ dropdown Mẫu sẽ rỗng) + reconcile IsActive giới hạn 2 FormCode (bản đầu quét toàn bộ
sẽ hồi sinh mẫu admin đã xoá mỗi restart — database-reviewer-style bắt).
Đo: build 0 error · test 697→699 PASS (+2 seal) · has-pending-model-changes = No changes ·
tsc --noEmit exit 0 x2 app · mọi cặp file 2-app sha256 trùng · Menu keys 120→122 · Policies 480→488.
NỢ ĐÃ-BIẾT (owner cố ý hoãn, không phải bỏ sót): VAT (chưa VAT, để sau) · bảng tóm tắt PHẦN 1
trỏ "xem ĐIỀU 8/12" mà 002.04 chỉ có 5 điều ⇒ con-trỏ chết · phân quyền upload bản cứng ·
12 điều PHẦN 2 không có trong tài liệu. Chưa soi: 2 vai style FE/BE (lane không tạo được artifact).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
RAG Governance — SOLUTION_ERP
Pattern: Path B — Delegation stub (VIPIX pattern per v1.3 §4.1) Adopted: 2026-05-26 Status: ✅ Adopted — trial week 1-4 (2026-05-26 → 2026-06-23) ĐÃ ĐÓNG; RAG delegation đang phục-vụ thường-trực (2 trục service-liveness / index-freshness →
docs/STATUS.mdrow "RAG chunks"). (Lật nhãn @S168 — H24-DEEP FLAG-11: header treo thì-hiện-tại cho cửa-sổ đã qua 39 ngày.)
Delegation to AI_INFRA canonical
SOLUTION_ERP adopts RAG Framework v1.3 via Path B delegation stub — deferring to AI_INFRA canonical docs.
| Doc | Path |
|---|---|
| Comprehensive guide (v1.3) | D:\Dropbox\CONG_VIEC\AI_INFRA\docs\governance\RAG-FRAMEWORK-V1.3-SETUP-GUIDE.md |
| Quickstart checklist | D:\Dropbox\CONG_VIEC\AI_INFRA\docs\governance\RAG-QUICKSTART-SISTER-PROJECT.md |
| Layer A canonical | D:\Dropbox\CONG_VIEC\AI_INFRA\docs\governance\RAG-LAYER-A-PROJECT-LOCAL.md |
| Self-execute walkthrough | D:\Dropbox\CONG_VIEC\AI_INFRA\docs\governance\RAG-SELF-SETUP-WALKTHROUGH-AI-INFRA.md |
SOLUTION_ERP project-specific config
Phase + BC vocabulary
Phase enum (project-specific):
phase-1-foundation— Core schema + Identity + Master (Mig 1-11)phase-2-contract— Contract workflow 9-phase (Mig 1-11)phase-3-pe-v1— PurchaseEvaluation V1 flat approval (Mig 12-15)phase-4-budget— Budget module 3-panel (Mig 14)phase-5-forms— FormTemplate + Clause engine (Mig 4)phase-6-pe-v2— PE V2 dynamic approval workflow (Mig 22-26)phase-7-contract-v2— Contract V2 mirror PE pattern (Mig 27-33)phase-8-admin-ops— CatalogManager role + admin ops (Plan CA)phase-9-uat— UAT + production hardening (current)
BC (bounded-context) enum (project-specific):
bc-contract— Contract workflow + ContractApprovalsbc-pe— PurchaseEvaluation + PEDeptOpinions + PELevelOpinionsbc-budget— Budget + BudgetItemsbc-identity— User + Role + Permission + MenuItembc-master— Supplier + Project + Departmentbc-forms— FormTemplate + FormClausebc-notification— Notification + SignalRbc-workflow— ApprovalWorkflow + Steps + Levels (cross-module)bc-cicd— Gitea Actions + NSSM runner + IIS deploybc-agent— Sub-agent memory + skills + governance
Anatomy gate threshold
6/6 STRICT per v1.3 §5.2 default — corpus ~2,409 chunks (post-S41 cleanup 2026-05-29; was 11,922 pre-cleanup inflated) mature enough.
Spec A vs B
Spec A — Strict — SOLUTION_ERP chunks canonical + finite scope (gotchas, patterns, decisions) → strict retrieval test appropriate.
Adoption state
| Component | Status |
|---|---|
| Layer A delegation stub | ✅ This file |
.claude/rag.json _decision_log |
✅ Added 2026-05-26 |
| Anatomy gate 6/6 | ✅ Documented |
| Spec A vs B | ✅ Spec A chosen |
| Golden set 14 entries | ✅ eval/golden-set-solution_erp.jsonl |
| Baseline run | ✅ eval/runs/2026-05-26-baseline-v1.0.json |
| Trial state lock | ✅ eval/trial-state-lock.json |
| Trial milestones | ✅ 4-week 2026-05-26 → 2026-06-23 |
Anti-pattern watch (SOLUTION_ERP-specific)
- Anti #23 source_path absolute path leak — ✅ resolved S41 re-bootstrap (2026-05-29): node_modules/_archive excluded, slug fixed. Some
(manual)store_memory chunks retain absolute path (cosmetic, non-blocking). - Anti #24 registry drift +321% — ✅ resolved S41: re-bootstrap host-side
--config→ Qdrant 2,406 (−674 junk), registry aligned. (Was: projects.json 2830 / Qdrant LIVE 11,922 inflated.) ⚠️eval/trial-state-lock.jsonbaseline still cites old number → AI_INFRA to reconcile.
Cross-Project Adoption Ledger (AI_INFRA bundles)
| Bundle date | Adopted | Evidence |
|---|---|---|
| 2026-05-29 (charter v2 / tiered-mem / session-cmd / RAG v1.3) | 4/4 | 6f08d1f (Tiered Memory v1) + c8ff5e1 (/session-start /session-end) · RAG re-bootstrap 3080→2406 |
| 2026-06-01 (RAG T1/T2 · Gov-v2 · hygiene · session-cmd #4) | §A auto · §B align · §C wording ×7 · §D #4 step · §E/§F · ✅ VERIFIED 2-way (AI_INFRA RT3 confirm) | S44 audit (docs-only) — chain ae30f8f→071c25c tree-clean — BROADCAST-OUT-SOLUTION-ERP-2026-06-01.md |
| 2026-06-02 (adap-* channel + Memory-strip + frontend-designer + Gov-v2 re-confirm) | 3-cmd channel installed · #1 strip store_memory 8 subs (lead=sole RAG-writer) · #2 frontend-designer 8th agent ADOPT · #3 Gov-v2 already-S44 delta |
S47 — docs/governance/adap-reports/ 3 files (5-field LOCK) · nấc executed / verified-pending restart (spawn-test FD2) · AI_INFRA /adap-audit reads cross-repo |
Cadence #4 (self-sustaining): /session-end Phase 6.3 auto-generates §E adoption-report when infra adopted → em main /session-start next watches + double-checks (2-way loop).
Tags: solution-erp delegation-stub rag-v1.3 path-b spec-a anatomy-gate-6-6 adoption-ledger