[CLAUDE] Docs: dong no so sach S155-S157 (CURRENT line + In Progress + session log + memory)

Dong CURRENT dung yen o S153 qua 3 cua-so trong khi S155/S156/S157 da chay va
da ship prod => drift dung lop ma lead-stale-auditor sinh ra de bat. Va:

- CURRENT line moi S155->S157 (phien-LOGIC L7, 4 cua-so): PE nut XOA ship prod
  Mig 68 2 dot + A2 dieu tra quy trinh sau-CEO (verdict LAI, chan Q1-Q6) +
  lo hong an ninh HD (anh chot 07-28 "cu tu tu" = treo CO CHU DICH) + S157 UAT
  Dia diem. S153 ha xuong muc da xong.
- Them §In Progress (S155->S157); §In Progress (S117) cu giu nguyen ben duoi.
- Session log 10.700B — con-tro tu dong CURRENT nay GIAI DUOC (verify 1 hit).
- Memory moi: lop "co-che dung, du-lieu khong co" nay x6 (S157 la lan 6, chieu
  MOI: bug do NGUOI DUNG bao ma fix ngay-tho se nhan doi code da dung). Luat rut
  ra: UAT bao "khong chay" => DO DU LIEU PROD truoc, dung doc/viet code.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-07-28 10:00:24 +07:00
parent 9649fc71ce
commit 3b6fabc085
4 changed files with 146 additions and 1 deletions

View File

@ -26,6 +26,7 @@
- [Canonical spec over broadcast](feedback_canonical_spec_over_broadcast.md) — adap khi anh trỏ LỆNH canonical → pull command/§P/ledger, ĐỪNG phỏng-theo broadcast cô-đọng; report-before-stamp (S79)
- [Review presentation & stale config](feedback_review_presentation_and_stale_config.md) — review độc-lập bắt honesty-PRESENTATION gap + stale-config đánh-lừa reviewer; tighten-wording + re-measure TRƯỚC review (S81)
- [Derived-flush = execution](feedback_derived_flush_execution.md) — derived-doc flush khớp canonical owner-set = em-main tự làm KHÔNG gate; chỉ ĐỔI con-số/policy = quyền anh (S84)
- [Cơ-chế đúng, dữ-liệu không có](feedback_mechanism_right_data_absent.md) — lớp ×6; UAT báo "không chạy" ⇒ ĐO DỮ LIỆU PROD trước, đừng đọc/viết code (S157: auto-fill đúng, 57/62 dự án rỗng `Location`)
- [Root-cause over symptom](feedback_root_cause_over_symptom.md) — bug lặp sau band-aid → truy field/case LỆCH-quy-ước vào pattern đã-đúng = fix 1 chỗ; verify "tạo lỗi MỚI còn lặp?" (S85, #72/#73) · **+S122 anh nêu: (i) được-chỉ-1-chỗ ⇒ PHẢI grep cùng-lớp (script thứ-2 lòi ra khi anh hỏi — thoát vì MAY) · (ii) 🔴 bài-học nằm-trong-context KHÔNG tự bật (file này auto-inject mà lead vẫn vá triệu-chứng; +SHA-bịa tái-phạm sau 1 NGÀY) ⇒ chặn được = LUẬT soi-được, không phải trí-nhớ · chứng: hardcode sống 27 ngày qua 1 đợt "double-check" vì nó hỏi "logic đúng?" mà logic VẪN đúng · truy-gốc ≠ tự-sửa-gốc (harness owns → R6 hỏi hub)**
- [Cardinality change grep consumers](feedback_cardinality_change_grep_consumers.md) — đổi field single→multi = grep MỌI consumer; sửa write-site sót read-site → vỡ feature (S87/S88 PE multi-winner)
- [Prod config: inspect-before-change](feedback_prod_config_inspect_before_change.md) — đổi config prod = inspect LIVE trước (runbook STALE); backup→apply→verify-LIVE→commit; replicate mọi rule cũ + delta (S88)

View File

@ -0,0 +1,30 @@
---
name: feedback-mechanism-right-data-absent
description: "Lớp lỗi lặp ×6 ở SOLUTION_ERP — cơ-chế ĐÚNG nhưng thứ đi qua nó KHÔNG CÓ; UAT báo \"không chạy\" thì ĐO DỮ LIỆU trước, đừng đọc/viết code"
metadata:
node_type: memory
type: feedback
originSessionId: 85c4bae3-8755-487e-bb4b-d8d8c9135463
modified: 2026-07-28T02:57:02.204Z
---
**"Cơ-chế đúng, thứ đi qua nó không có"** — lớp lỗi đã nổ **×6** ở repo này. Khi anh/UAT báo *"cái X không tự điền / không hiện / không bắt"*, **phép đầu tiên là ĐO DỮ LIỆU PROD**, không phải đọc code rồi suy, và tuyệt đối không phải viết code mới.
**Why:** đây là **ĐẶC-TÍNH KIẾN-TRÚC**, không phải xui: schema DÙNG CHUNG ⟂ service/seed RIÊNG per-loại ⇒ một cột thêm cho loại này mặc-định **CÂM** ở loại kia trừ khi có người nối; và cột có thật thì vẫn có thể **rỗng data**. Cả 6 ca đều **build sạch + test xanh** — không có tín-hiệu máy nào kêu. Nguy nhất: viết code auto-fill "mới" khi code cũ **đã đúng và đang chạy** ⇒ tốn công, đẻ trùng-lặp, mà triệu-chứng y nguyên vì bảng vẫn rỗng.
**6 ca (ca 6 = chiều MỚI: bug do NGƯỜI DÙNG báo, fix ngây-thơ sẽ nhân đôi code đã đúng):**
1. policy tồn tại / 11-trên-13 vai `CanDelete=0`
2. endpoint PUT sống / 0 dây FE gọi
3. policy chặn đúng approver cần dùng
4. DTO thiếu field FE đang đọc
5. PMH role `Procurement` bị 403 ở b.13/b.17 (cơ-chế phân quyền đúng, vai đi qua không có quyền)
6. **@S157 PE "Địa điểm không tự lấy"** — auto-fill `Project.Location` đã wire từ S59 và **chạy đúng cả 4 tầng** (DB cột → `ProjectFeatures.cs:51` projection → FE type → `onChange` SearchableSelect); ô trống vì **prod 57/62 dự án `Location = NULL`** (chỉ 5 dự án có địa chỉ — đúng 5 dòng có địa chỉ trong Excel nhập S55).
**How to apply:**
- UAT báo "không chạy" ⇒ **sqlcmd đếm dữ liệu prod TRƯỚC** (`SELECT COUNT(*), SUM(CASE WHEN <col> IS NULL...)`). Một câu query rẻ hơn một vòng đọc code + một lần sửa nhầm.
- Rồi mới truy dây theo tầng: DB cột → DTO projection → FE type → chỗ tiêu-thụ. Đủ 4 tầng mới kết luận "wire hỏng".
- Data rỗng ⇒ **KHÔNG sửa cơ-chế**. Hỏi owner nguồn dữ liệu; hướng anh chọn @S157*"để người dùng tự cập nhật Master data, cái nào không có thì không fill"* (không backfill hàng loạt).
- Vá đúng cho ca data-rỗng = **lộ LÝ DO tại chỗ** (dòng cảnh báo trỏ nơi bổ sung), vì ô trống im lặng làm người dùng tưởng hệ-thống hỏng → đẻ báo lỗi giả. Xem [[feedback-absence-looks-like-clean]].
- Báo lại cho anh phải nói thẳng *"cơ-chế không hỏng, thiếu dữ-liệu"* — đừng để anh tưởng vừa được sửa bug.
Liên quan: [[feedback-root-cause-over-symptom]] (truy gốc thay vì vá triệu-chứng) · [[feedback-permission-grant-two-layers]] (cùng họ: 2 tầng độc-lập, tầng này đúng không suy ra tầng kia) · [[feedback-cardinality-change-grep-consumers]] (write-site đúng, read-site sót).