Files
solution-erp/.claude/workflows/runs/2026-07-28-S158-day-wake-probe-first/spec-day-wake-probe-first-28-07-2026.md
pqhuy1987 33e7f68890
Some checks failed
Deploy SOLUTION_ERP / build-deploy (push) Has been cancelled
[CLAUDE] Docs: S158 closeout - adap /day probe-first (nac agreed) + bookend-close 5 vong
Phien-LOGIC L7 window 5, vao bang /tiep. Governance/adap-only: 0 prod-code,
0 migration, 0 test moi. Test do tuoi 562 PASS (45D+517I). Counter 31->32.

VIEC
- /tiep recovery tron: San-3 5 tin-hieu MANH deu keu DUNG (corroborate WAL),
  verify: 5/5 PASS 0 lech, bien-nhan _tiep-4.md (window-ordinal 5).
- /check-email AI_INFRA: verify bang NOI DUNG - 22/22 file outbox/se co trong
  inbox, cmp 0 byte-drift => se=0 that + khong co stamp-then-edit (H18).
- /adap-apply day-wake-probe-first qua /fable-real investigator-codebase:
  nac AGREED (0 file co-che bi sua). Spec 3-muc + adap-report + 4 phan-bien
  gui nguoc hub + 1 datum dogfood (hub tu khai co 0).
  Engine BAC 2 tien-de cua lead: mo-coi 0/8 (khong phai "co squash => co mo-coi")
  va probe PHAI dung phep-2 - chung bang cua S158 noi 2 phep cho verdict NGUOC NHAU.
- Ra 6 HIGH lens-wave spec KHKK: 4 phu tron, 2 con ho (H5 W3 N chua pin =>
  N=0 van PASS; H6 §2.4:224 giu co-che IsVisible da bi chinh file do do-dia bac).
- Bookend-close 10 spawn / 5 vong. V4 nen-ngu KHONG-NHIP (shard 15/15 => IM).

VA TRONG PHIEN
- STATUS:459 RAG khai "alive" -> lat DOWN (3 phep do doc-lap: chunk_count=0
  cho ca 7 project + shared_global; canonical tu mau thuan voi :473 cach 14 dong,
  song 5 nhan phien).
- STATUS:461 bundle hash prod da chet -> 8-QYcMOg/DptYR4wL (control-am 900/876 B).
  Hai that: cicd-verify:58 dung chinh o nay lam baseline.
- STATUS:6 4->5 cua-so, counter 31->32; M-1 nhet lai nguyen van owner
  "da xong buoc thu 6 tuc CEO duyet" (ring2: grep = 0/STATUS + 0/HANDOFF).
- WAL:5 + WAL:21 tick; HANDOFF segment S155->S158 + slot (42)...(48).
- GATE 5-ANCHOR di-tru khoi WAL sang HANDOFF NEXT-em TRUOC khi §6.4 reset xoa no
  (lead-gap FLAG-4, han chot = cua ke).
- ef-core-migration SKILL: va CAU TRUC (frontmatter thoi khai bang la nguon
  "moi nhat") thay vi them row - ring1: day la lan 3 cung class.
- contract-workflow:371 "Contract V2 chua" SAI ~2,3 thang -> dinh chinh
  (ring1 thach-CLEAN thung H1).
- C12: +3 dong run= hoi-to S155/S156/S157. 2 orphan run-folder -> synthesis dang-1.
- M9 seed on-behalf 3 diary: ctx-verifier, investigator-codebase, ctx-audit.

#53 x8 - DOI-CHUNG NOI-PHIEN SACH DAU TIEN
Ep-ghi-dia KHONG giam garble (3/3 vai bi ep van garble) nhung dua thiet-hai ve 0
(2.818/5.354/7.957 B nam san); 4 vai khong ep MAT TRANG phai resume.
=> chong #53 = thiet-ke ARTIFACT, khong phai PROMPT (xac nhan lan 5).
So #53 ghi bu sau 5 nhan phien dung yen: 66 can-duoi qua S158.
+2 sub-class moi: skeleton-ruot-rong nac-2 (byte>0 ma ruot rong) va
engine-process-exit (0 delta dia).

BAY CHAN DUOC
Moi-ngam neo bang SO DONG trong file append-o-TREN da nen 3 lan. Dong 99 hom nay
la van-de MO THAT (luat nen ho) => spawn ctx-audit ma khong xu = hoac DAT-ao,
hoac dan nhan "bay cai san" len dung cau dang trinh owner. Lead khoi phuc tu git,
pin bang NOI DUNG. ring2 chung them: neo SAI NGAY TAI COMMIT SINH RA NO
(stale-at-birth), khong phai troi-do-nen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 20:50:58 +07:00

11 KiB
Raw Blame History

SPEC — Lệnh DẬY-NHẸ probe-first cho SOLUTION_ERP (adap 2026-07-28-Governance-day-wake-probe-first-resume)

Engine: /fable-real investigator-codebase (Fable, single deep-pass, propose-only) — anh GÁN vai @S158. Pipeline H21 ①: engine propose → lead verifylead ghi (file này) → worker thực-thi theo spec. Propose đầy đủ: sub-invest-day-1.md (25.440 B, cùng run-folder). File này = bản lead ĐÃ VERIFY. 🔴 CHƯA THI CÔNG. 3 chỗ chạm canonical cần anh gật — xem §③ cuối.


① TÍNH-NĂNG / ĐỀ-BÀI

Thêm một đường dậy RẺ cho vòng đời tạm-dừng/nối-lại: khi máy chứng minh được 0-delta kể từ điểm dừng, mở cửa sổ mới không phải trả giá /tiep trọn (nạp-nền + spawn vai kiểm-lúc-đọc). Mọi trường hợp khác tự nâng về /tiep đầy đủ. Kèm guard chống-trùng ở bước-0 của /pause + /tiep, và marker dậy đếm-được từ đĩa.

Vì sao SE cần: SE fit hạng cao nhất của thư (có ĐỦ nền 17-07 kit phiên-logic + nền 25-07 vòng-canh 3-vai

  • tiep_reload) ⇒ khoản tiết-kiệm lớn nhất của F1 áp dụng trọn.

Giá đo được ở SE (engine đo tươi, đơn-vị BYTE — 🔴 CẤM quy ra token, thư nói rõ token nằm trong dải mở):

Nguồn tiep_reload Byte
docs/STATUS.md (2 đoạn khoanh) 3.295 + 56.210
docs/HANDOFF.md (segment mới nhất) 4.352
.claude/WAL.md 5.369
_mind-s-7.md 30.305
_context-s-7.md 22.584
Tổng 122.115 B

Cửa CLEAN sẽ SKIP 86.441 B (70,8%) + 1 spawn ctx-verifier. 🔸 So hub: hub 439.328 B / 8 file — nền SE nhẹ hơn 3,6×, nên lợi tuyệt-đối nhỏ hơn hub. Khai thẳng, đừng mượn số hub.

🔴 Datum dogfood SE có mà hub KHÔNG có (thư tự khai "dogfood: 0 phiên") — đo TRƯỚC khi đọc thư: chính cửa /tiep @S158 này probe ra CLEAN (anchor 6c263dd = HEAD, cây sạch, 0 sentinel) ⇒ lẽ ra đi đường dậy-nhẹ, mà lead đã trả giá full. 1 điểm dữ-liệu, KHÔNG phải bộ số.


② CÁCH IMPLEMENT (per-khoản F1-F4, tailor FORM theo SE)

🔴 Câu khó nhất — đã có phán quyết CÓ BẰNG CHỨNG: DỰNG PHÉP-2, KHÔNG tái dùng Sàn-3

Lead vào cửa này nghiêng về tái dùng Sàn-3 (sợ 2-nguồn-sự-thật, B1). Engine bác, và bác đúng — bằng chứng lấy từ CHÍNH cửa S158 này, nơi hai phép cho verdict NGƯỢC NHAU:

  • Sàn-3 tín-hiệu ②: HITorigin/main..HEAD có 2 commit non-wal: (d7eaece spec · 3b6fabc dọn nợ sổ). (lead tự đo @§0, độc lập.)
  • anchor-delta: 0 ⇒ CLEAN_pause-4 head-sha d7eaece → carrier 6c263dd = HEAD. (lead tự đo, độc lập.)

⇒ Hai phép trả lời hai câu KHÁC NHAU: Sàn-3 hỏi "có tồn-tại việc dở không?" (neo origin/main) ⟂ probe hỏi "có gì ĐỔI so với điểm dừng không?" (neo marker pause). Khác câu hỏi thì khác nguồn sự-thật là hợp lệ — B1 không cấm.

4 ràng hygiene BẮT BUỘC kèm theo (thiếu là thủng):

  1. Sentinel closing: GỌI CHUNG tín-hiệu ③ của Sàn-3 (con-trỏ, không chép logic).
  2. Mọi verdict DELTA đổ về /tiep/tiep §0 giữ độc quyền là nhà DUY NHẤT phán chữ "sạch".
  3. CẤM dùng từ-vựng "sạch" trong /day (dùng CLEAN-delta) — chống người đọc nhầm thành phán quyết Sàn-3.
  4. /tiep §0 ⑤(b) ORPHAN-L: r-set phải cộng _day-* — thiếu thì phiên có /day sẽ kêu oan; và RE-RUN fault-inject block đó.

F1 — probe rẻ, chỉ-đọc

  • NEW .claude/commands/day.md — 2 nhánh, bước probe đứng TRƯỚC.
  • EXTEND scripts/session_ctx.py + sub-command day-probe (--json). Tái dùng _TS_KEY_RE sẵn có (:48-55 đã đón trước reader loại này). 🔴 Glob phải lọc theo TÊN FILE kẻo ăn nhầm _mind-s-<N>.md.
  • Chọn marker cuối bằng dấu-thời-gian GHI TRONG file, KHÔNG dùng mtime (Dropbox chạm lại mtime — SE chạy trong Dropbox).
  • Khoá day_wake trong memory-budget.json, có allowlist dirty. 🔴 Bắt buộc gồm .claude/governance/.session-counter.json — nó dirty NGAY lúc probe chạy (tick fire ở cửa vào) ⇒ thiếu allowlist thì F1 chết nửa số ca.
  • CLEAN → nạp lõi (WAL + _mind mới nhất), SKIP nạp-nền + SKIP spawn ctx-verifier.
  • Nghiêng an-toàn: probe lỗi / nghi ngờ ⇒ coi là DELTA.

F2 — guard chống-trùng ở HAI lệnh cũ

  • pause.md §0: marker cuối đã là _pause-* + probe CLEAN ⇒ no-op, 0 marker/0 commit/0 spawn. 🔴 Răng thật, không phải lý thuyết: double-pause hiện đốt 1 spawn ctx-curator (~100K floor theo config).
  • tiep.md §-1: probe CLEAN ⇒ route sang /day.
  • Cửa thoát cưỡng chế --full ở cả hai để anh ép chạy trọn.

F3 — anchor: SE-form MẠNH HƠN hub

  • Bẫy-một XÁC NHẬN 4/4 THẬT ở SE: mỗi _pause-i head-sha → commit kế tiếp chính là wal: pause của nó (8d4075a · 976945c · 73166c5 · 6c263dd) ⇒ đếm thô từ head-sha ra DELTA-giả 100%.
  • SE-form: anchor = carrier-commit git log --diff-filter=A -1 -- <marker> (commit ĐẦU TIÊN thêm chính file marker). Đo 8/8 resolve được; sống-sau-squash by construction; và nuốt luôn bẫy-một (không cần bước resolve riêng). head-sha trong marker hạ xuống làm fallback, guard đúp.
  • Bẫy-hai (sha mồ-côi): 0/8 ở SE hôm nay — tiền-đề của lead SAI, đã bác. Squash session-end §5.0/§5.2 chỉ gọt trailing-wal: CHƯA push; 6/8 sha đã push nên bất khả mồ-côi. (lead re-đo độc lập: cat-file -e + is-ancestorsống 8 / mồ-côi 0.) 🔴 Guard VẪN BẮT BUỘC, 3 lý do: (i) tiền lệ S127 f9fa77d6 dangling có thật — và nó chứng luôn rằng cat-file -e một mình THỦNG (object còn, ancestor mất) ⇒ phải kèm is-ancestor; (ii) 6c263dd (đang là anchor _pause-4 last_ticked_head) nằm trong vùng fold-able; (iii) 🔴 chính feature /day tự đẻ điều kiện orphan — chuỗi cửa-nhẹ Q&A sản xuất trailing-wal: thuần, đúng thứ squash gọt.
  • Mồ-côi ⇒ verdict anchor-lost khai TO trong report + tự nâng. Hỏng-an-toàn nhưng phải CÓ TIẾNG.

F4 — marker dậy đếm-được

  • _day-<i>.md 7 trường, khuôn _pause-<i>/_tiep-<i>. 0 commit riêng — hook wal-flush.ps1 path ④ (.claude/sessions/) chở miễn phí ⇒ KHÔNG nới hookKHÔNG đẻ điểm mù mới cho Sàn-3.
  • Falsifier 2 chiều cho tầng audit: CLEAN-giả (marker ghi CLEAN mà có commit thật giữa anchor và ts ⇒ FLAG) · luôn-DELTA (mỗi lần tự nâng phải khai signals/anchor-lost ⇒ chuỗi tự-nâng dài bất thường là soi được).
  • Drift F4 SE-local đo được (gửi hub — đúng shape s109 hub kể): _snapshot 3/4 vs contract auto-snap pause.md §2.6(D) — PAUSE-4 thiếu vết snapshot. (lead re-đo: snapshot 3, pause 4.) _context PAUSE 4/4 khớp. 🔸 Hai thứ KHÔNG tính là drift: _tiep 3-vs-4 (write-order benign) · WAL "window 4" / STATUS "counter 31" (by-design ghi tại pause cửa trước).

Phản-biện / SKIP (engine nêu, lead nhận)

  1. Không quy token — chỉ báo byte. Đây chính là lỗi làm thư hub trượt vòng r1 (dán nhãn "token tự đo" lên proxy ký-tự).
  2. Không tái dùng Sàn-3 làm probe (đã luận ở trên).
  3. Không nới hook để chở _day-* — path ④ có sẵn.
  4. Lợi tuyệt-đối SE nhỏ hơn hub 3,6× — đừng bán bằng số hub.

🔎 2 phát hiện NGOÀI đề-bài (engine tự nêu — lead xác nhận cả 2)

  • 🔴 docs/HANDOFF.md segment mới nhất = S153, không có segment cho S155-S157 ⇒ nguồn-2 của tiep_reload đang nạp brief cũ 3 nhãn phiên. (Lead đụng đúng chỗ này ở §2.6 cửa này: đọc HANDOFF thấy "Last updated: 2026-07-26 (S153)".)
  • _tiep-1.md head-sha ghi 7 ký tự trong khi 7 marker còn lại ghi đủ 40 ⇒ form drift trong cùng một loại marker (nếu probe so sánh chuỗi thay vì gọi git thì sẽ vấp).

③ CHECKLIST — acceptance ĐO ĐƯỢC (A1-A8, mỗi phép CÓ ĐƯỜNG TRƯỢT)

🔴 Sàn: phép mà implement sai vẫn PASS là phép 0-bit. Thư này bị chính reviewer của hub đánh trượt 2 vòng vì lỗi loại đó ⇒ mỗi dòng dưới phải nêu rõ trượt khi nào.

# Phép đo TRƯỢT khi
A1 Chu trình /pause sạch → /day ⇒ CLEAN; day-probe --json in cả anchor lẫn head-sha field và chỉ ra chúng KHÁC nhau Ai đó cài đếm-thô từ head-sha ⇒ DELTA-giả ⇒ FAIL
A2 Cây tạm: inject marker mang sha dangling ⇒ verdict anchor-lost + tự nâng Chỉ dùng cat-file -e (không is-ancestor) ⇒ lọt ⇒ FAIL — đúng shape S127
A3 /pause sạch rồi gõ /pause lần 2 ⇒ số file marker + git log -1 bất biến Sinh thêm marker / commit / spawn ctx-curator ⇒ FAIL
A4 /tiep trên nền sạch ⇒ report khai SKIP nạp-nền + SKIP ctx-verifier; đĩa sinh đúng 1 _day-*, 0 _tiep-* mới Vẫn nạp nền, hoặc sinh _tiep ⇒ FAIL
A5 Inject (a) dirty 1 byte ngoài allowlist · (b) 1 commit thường ⇒ DELTA cả 2 chiều Một trong hai vẫn CLEAN ⇒ FAIL
A6 Đếm _day-* = N; falsifier PHẢI FLAG ca inject CLEAN-giả (marker CLEAN + có commit thật giữa anchor và ts) Falsifier im ⇒ FAIL (lớp vắng-mặt trông giống ổn)
A7 Sau khi có _day-* trên đĩa, /tiep §0 ⑤(b) ORPHAN-L im đúng; rồi RE-RUN fault-inject block ⑤(b) 2 chiều Quên cộng _day-* vào r-set ⇒ ORPHAN-L kêu oan ⇒ FAIL
A8 grep report /day: 0 hit con số gắn nhãn token Có số token đơn lẻ ⇒ FAIL (lỗi r1 của hub)

Vai + deliverable

  • Thi công = lead tự tay (KHÔNG giao implementer): 3 chỗ chạm canonical, sai một chỗ là hỏng nghi-thức đang chạy tốt.
  • REVIEW = workflow RIÊNG — Harness-9 mandate (adap = 2 workflow: IMPLEMENT ⟂ REVIEW độc lập) + report hub kèm run-id.
  • Dogfood 2 cửa trước khi báo hub — hub tự khai 0 phiên, SE đừng lặp lại lỗi đó.

🔴 3 chỗ chạm CANONICAL — CHỜ ANH GẬT, lead KHÔNG tự làm

  1. tiep.md §0 ⑤(b) — sửa r-set ORPHAN-L (đụng nhà canonical của Sàn-3).
  2. CLAUDE.md — câu "nối lại DUY-NHẤT bằng /tiep" nay có ngoại lệ /day ⇒ phải sửa, nếu không là ghost-wire chiều ngược (chạy thật mà khai chưa — đúng lớp H18 mà lead-stale-auditor bắt @S146).
  3. check-email.md — nhịp "4 CỬA PHIÊN" thành 5 cửa nếu /day cũng dò thư.