# adap-report — 2026-07-16-Governance-owner-chot-contextual-retrieval-false-fleet-wide

> SISTER = SOLUTION_ERP. Report theo REPORT-FORMAT LOCK (5 trường — `adap-report.md:13-19`). Sinh tại đợt adap 16-07 (run `S127-adap-dot-16-07`), wave-2. Diff nội-dung đã áp + verify PASS ở wave-1; report này tổng-hợp adoption-state, KHÔNG tự khai `verified` (verified = AI_INFRA `/adap-audit` chấm cross-repo). Bản 5 trong bộ 5 adap-report của đợt.

## 1. id-broadcast

`2026-07-16-Governance-owner-chot-contextual-retrieval-false-fleet-wide` — from `ai_infra` · to/targets `all-fit` · category `Governance` · type `notify` · reviewer_gate `self-check §O + 0-claim-mới` · `content_sha256: f5ce27780af8d7407d527b0e59f909dc9f8f9f3ffad5fa70a4d30d7456977b9d` (viết tắt **f5ce2778**).

Nội-dung broadcast: chủ-sở-hữu hub chốt (2026-07-16) cờ `contextual_retrieval = false` cho TOÀN fleet — đây là quyết-định vận-hành cuối, không phải hoãn (điều-kiện xét-lại cũ "chờ ngân-sách khóa-API" đã đóng cùng quyết-định khóa-API giữa tháng). Mỗi dự-án làm đúng một bước: mở config RAG per-project, đổi cờ về `false`, rồi báo hub một dòng. Kèm một đính-chính trung-thực: mô tả cũ "dead config nếu thiếu khóa-API" chỉ đúng với pattern GỐC của nhà phát-hành (bản gốc dùng model sinh context — cái đó mới cần khóa), **KHÔNG đúng với code khung hub**; trong khung này cờ chỉ bật/tắt một phép ghép chuỗi tiêu-đề (title-prepend) thuần xử-lý chuỗi, không gọi dịch-vụ nào, không cần khóa nào (đã qua 2 lượt kiểm độc-lập phía hub). Tắt cờ = một lựa-chọn thống-nhất cấu-hình của chủ-sở-hữu, KHÔNG phải hệ-quả kỹ-thuật bắt buộc của việc đóng khóa-API.

## 2. Nấc (G-011)

**executed** (crosswalk `applied ≈ executed`, `adap-report.md:16`).

SOLUTION_ERP đã sửa file config của mình — `.claude/rag.json:26` cờ `true`→`false` + `:31` rationale viết lại theo owner-final. Đổi đã áp trên đĩa và verify PASS (python `json.load` → `False`, JSON không vỡ). Đây là thay-đổi giá-trị config (không phải agent/command `.md`), nên tính-đúng của cờ chứng được NGAY lúc này — khác với nấc `verified` là hiệu-lực-index qua re-bootstrap phía hub. Lúc viết report, diff nằm ở working-tree; commit + push gộp ở wave-3 closeout của đợt adap này (xem honest-caveat). KHÔNG tự phong `verified`.

## 3. evidence

**[E1 — wave-1, đã verify, trích được]** File đích: `D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP\.claude\rag.json` (TRONG repo SE — xem LỆCH-1). Đo THẬT:

- **`.claude/rag.json:26`** — before `"contextual_retrieval": true,` → after `"contextual_retrieval": false,`.
- **`.claude/rag.json:31`** — `contextual_retrieval_rationale` viết lại đầy-đủ: `"FALSE — OWNER-FINAL fleet-wide 2026-07-16 (broadcast f5ce2778: hub-owner chốt false toàn fleet; flag trong khung chỉ gate structural title-prepend ở chunking.py — 0 API-call, KHÔNG phải dead-config-vì-thiếu-key). Lineage SE: true 2026-05-22 (git bf93abd; spec_chosen_date 05-26) → flip S127 2026-07-16. Rationale cũ 'Evaluate trial week 3' = revisit ĐÓNG bởi owner-final (trial không chạy). Recall-delta chưa đo (hub khai); data đã nhúng giữ nguyên tới re-bootstrap kế (AI_INFRA op). Mirror khung: projects.py:39 default False."` — audit-trail đủ (lineage `true` từ 2026-05-22, giá-trị vào git ở `bf93abd`, còn 2026-05-26 là `spec_chosen_date` file tự khai + v1.3 governance touch `b223466` [R2 D-review đo git]; → flip S127 2026-07-16; revisit "trial week 3" đóng bởi owner-final vì trial 2026-06-16 không chạy), không chỉ đổi giá-trị trần.
- **verify-output (PASTE thật):**
  ```
  $ python -c "import json; c=json.load(open(r'D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP\.claude\rag.json', encoding='utf-8')); print(c['contextual_retrieval'])"
  False
  ```
- **git diff (working-tree):** `git diff --stat -- .claude/rag.json` → `1 file changed, 2 insertions(+), 2 deletions(-)` = đúng 2 dòng logic (line 26 + line 31), 1 file, 1 hunk; các context-key quanh (`spec_a_vs_b`, `spec_chosen_date`, `anatomy_threshold`, `chunk_size_rationale`) KHÔNG đổi ⇒ 0 key khác bị chạm. (Commit-sha pending wave-3 closeout — xem honest-caveat; last commit chạm rag.json trước đợt này là `282cbd0` S41.)

**LỆCH-1 (vị-trí file, KHÔNG phải giá-trị — transcribe từ draft §VIỆC-1, KHÔNG tự điều-tra lại):** config per-project của SE nằm TRONG repo SE (`.claude/rag.json`), KHÔNG phải trong AI_INFRA. Cơ-chế khung: `AI_INFRA/claude-rag/lib/projects.py:43-56 load_project_config()` walk-up từ cwd tìm `.claude/rag.json` per-repo; `cfg.setdefault` (`projects.py:54`) chỉ merge key THIẾU → key `contextual_retrieval` CÓ SẴN trong file SE nên override default `False` của khung. Vì thế SE từng override explicit `true` (line 26 trước flip) THẮNG default `False` của khung (`projects.py:39` owner-final `False`; AI_INFRA tự config `false` từ 2026-05-26 tại `AI_INFRA/.claude/rag.json:33`). ⇒ hedge của broadcast "nếu dự-án bạn chưa từng override thì có thể đã đúng sẵn" KHÔNG áp cho SE — SE là ca override THẬT, phải flip. (AI_INFRA chỉ-đọc để verify mirror; SE không chạm file khung.)

## 4. tailored-gì + skip-gì-vì-sao

- **FUNCTION-floor adopt FULLY:** đổi cờ `contextual_retrieval` về `false` đúng như owner chốt — "làm đúng một bước" (broadcast §Quyết-định). Không hạ floor.
- **FORM tailored SE:** (a) SE CHỈ sửa file của MÌNH (`.claude/rag.json`) — KHÔNG cross-repo write vào AI_INFRA (khung hub là AI_INFRA-owned, charter v2; SE chỉ đồng-bộ config self-owned). (b) Quyền SE tự-sửa file rag.json = tiền-lệ **S41** (SE từng tự sửa `exclude_paths` cùng file này — config self-owned trong repo SE). (c) rationale `:31` viết lại kèm lineage + mirror-note (`projects.py:39 default False`) để audit-trail cross-repo đọc được, thay vì đổi giá-trị trần.
- **SKIP: không skip mục nào** — task fit hoàn toàn (SE có override `true` thật ⇒ phải flip; KHÔNG phải n-a-vì-không-fit). Không có phần n-a. Đính-chính tiền-đề của broadcast = acknowledge-only (SE không có tài-liệu nội-bộ nào lặp lại claim "dead config vì thiếu khóa-API" cần đính-chính lại).

## 5. honest-caveat

- **Hiệu-lực index CHỜ re-bootstrap kế:** đổi cờ KHÔNG tự re-index. Tái-lập-chỉ-mục (re-bootstrap) = **AI_INFRA-op** (charter v2 — SE KHÔNG tự chạy `bootstrap.py`; cần VOYAGE embedding key mà SE không giữ). Cho tới lần re-bootstrap kế, cờ mới đã là `false` nhưng kho vector chưa phản-ánh.
- **Data đã nhúng giữ nguyên tới re-index:** các đoạn đã vào kho vector với chuỗi tiêu-đề ghép sẵn vẫn nằm đó tới lần tái-lập-chỉ-mục kế (broadcast §"Lưu ý nhỏ về dữ-liệu đã nhúng"). Dữ-liệu cũ/mới có thể lệch một dòng ngữ-cảnh — biết trước để không ngạc-nhiên, không cần làm gì thêm.
- **recall-delta chưa đo (hub tự khai):** chênh-lệch chất-lượng truy-hồi khi có/không cờ này CHƯA được đo — bộ golden đang lên lịch phía hub. SE KHÔNG claim lợi/hại, chỉ thống-nhất `false` = trạng-thái chuẩn của fleet; nếu phép đo tương-lai cho khác-biệt đáng-kể, hub sẽ báo lại kèm số.
- **Commit/push pending wave-3:** lúc viết report, flip nằm ở working-tree (git diff ở trên); commit + push gộp ở wave-3 closeout của đợt adap (sau HMW-review Harness-9). Vì commit `scripts/*.ps1` + `rag.json` KHÔNG phải docs-only → CI chạy → cicd-monitor verify sau push. Chưa tự phong `verified` — chờ AI_INFRA `/adap-audit` chấm cross-repo (rung 2-way).
