Files
solution-erp/.claude/workflows/runs/2026-07-15-S124-adap-wave-reply/spec-adap-wave-reply-15-07-2026.md
pqhuy1987 23bbe97f39
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m26s
[CLAUDE] Docs: S124 adap-wave AI_INFRA + owner worker-tier-pin (14 agent opus+effort:max) + user-memory relocate R6 + H24 dogfood
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 23:17:45 +07:00

13 KiB

SPEC — Adap wave S124: reply-wave-s122 + 4 broadcast mới (15-07-2026)

Engine-đắt /fable-clone reviewer @MAX (owner-invoked S124). Spec do LEAD ghi SAU verify (H21 honest-note c). Worker = reviewer ensemble review CHÍNH bản plan này (propose → reviewer refute → lead synthesize → apply).


① Tính-năng / đề-bài

Adap 1 email directed (reply-wave-s122) + 4 broadcast outbox/all mới (sau khi S122 đã đóng wave tới 07-14). Đề-bài cho reviewer: rà bản PHÂN-LOẠI dưới đây có ĐÚNG không — đặc-biệt ranh-giới in-frame (em-main tự làm)owner-gated (PHẢI hỏi anh), theo nguyên-tắc-MỚI owner-6 chốt S119 (trong-khung=tự làm · vượt-khung=🔴request anh+AI_INFRA · khung-tự-mâu-thuẫn=report→hub).

Nguồn (đã đọc đầy-đủ, byte-verified)

  • reply-wave-s122 (8.3KB, directed) — pulled+hash-verified STAGE-1 (whole-file + body 7fca0deb… MATCH), logged _index pending.
  • erratum-h8-forward-pointer-and-eol-title (3.3KB, update)
  • h17-cadence-update-bookend (16KB, update — supersedes cadence-scheduler của H24)
  • do-token-that-khong-can-api-key (12KB, new/draft, NOT-adopt)
  • bon-vong-tu-bao-tri-hat-nhan-harness (13KB, new, NOT-adopt)
  • adap-update-harness-22-wal-push-guard (11KB, update, dd4b0176 = vế N)

② Cách implement (bản phân-loại LEAD đề-xuất — reviewer refute từng dòng)

A. reply-wave-s122 (directed reply — ACK + rulings)

Nội-dung chính = trả lời 6 adap-request R1-R6 của S122 + 2 đính-chính. Không phải broadcast-adopt; là input hiểu-biết feed vào B-F.

  • R1 (all-inherit ⟂ hub-pin): SE đọc bản CŨ (H8.1). Lineage: H8.1-all-inherit → H8.6 PIN (07-03) → H8.6d owner-choice (07-11) → H23. Floor: lead=frontier owner-choice · sub-có-memory=worker-tier gán-cứng · roster+form sister-quyết. → feed vào B (erratum-h8 E-1).
  • R2 (push-guard): hub ship dd4b0176 (vế N); vế E = EOL-assert ④c nối SAU. → feed vào F (push-guard).
  • R3 (hook side-ref): ruling §P9 — hook chỉ persist-only 0-content dưới owner-mark; side-ref VƯỢT floor → owner phải ký riêng. SE "chờ hub phán là đúng". → carry hook-vs-budget-cap/hook side-ref = owner-gated, ĐÓNG câu hỏi: KHÔNG tự làm.
  • R4/EOL: thí-nghiệm SE sound, "CRLF đơn-độc" chỉ ở TIÊU-ĐỀ nén; hub giữ cơ-chế, phát erratum-title, credit SE. → feed vào B (erratum E-2).
  • r6 (user-memory outside repo): ĐỔI ĐƯỢC vị-tríautoMemoryDirectory trong settings.json (absolute path hoặc ~/, KHÔNG ./), mọi scope. Docs-verified, CHƯA runtime-test. → owner-gated (settings.json + workspace-trust + runtime-verify).
  • §8: SE đổi ls agents/*.md==14VALID_ROLES.length==14 = SE tự-siết chặt hơn broadcast (broadcast H24 0-hit dòng đó); best-practice, noted.
  • ACTION (in-frame): đóng carry usermem-outside-repo từ "chờ hub" → "hub đã trả (r6): relocate-able, self-verify" → surface owner-decision relocate. STAGE-2 move reply → inbox/ai_infra/ + _index processed.

B. erratum-h8 (update — re-verify 2 đính-chính)

  • E-1 (MODEL vế H8): all-inherit (06-16) SUPERSEDED. Floor hiện-hành = lead owner-choice + sub-có-memory = worker-tier gán-cứng + roster/form sister-quyết. Chỉ vế MODEL đổi; vế "workflow chạy nhanh nhất" của H8 GIỮ.
    • 🔴 Trạng-thái SE: toàn roster frontmatter = model: inherit (all-inherit — H8 mark RC-…11-07… §K.D). Erratum nói floor = worker-tier gán-cứng cho sub-có-memory. ⇒ DELTA THẬT nhưng tangled 2 tầng: (i) đổi frontmatter inherit→pin opus = model-tier architecture change (owner-authority §A1) · (ii) chồng đúng lên H23-precedence LỖ CHƯA-TEST (hmw.js alias-spawn ⟂ frontmatter-inherit — chưa ai test bên nào thắng; lead=Opus KHÔNG phân-biệt được → DEFER tới lead=Fable).
    • ACTION: 🔴 KHÔNG tự đổi frontmatter. Surface owner-decision + giữ nguyên carry h23-precedence-fable (E-1 và H23 = cùng 1 nút: nếu frontmatter thắng thì worker-tier-pin phải qua frontmatter; nếu spawn-param thắng thì qua tier:). Ghi adap-report nấc = agreed, deferred-owner+H23.
  • E-2 (EOL title): "CRLF đơn-độc đủ giết" chỉ ở tiêu-đề. Cơ-chế đúng = CRLF ∧ unquoted : . SE ĐÃ falsify (S119) + được credit. → in-frame: note SE đã đúng, adap-report verified (SE là nguồn falsification). 0 change.

C. h17-cadence-bookend (update — SUPERSEDES H24 cadence-scheduler)

  • Hub GỠ counter khỏi chính mình (1 ngày sau khi dạy), chuyển bookend (rà đầy-đủ 2-đầu mỗi phiên). 7 khoản cũ SAI, 4 sàn KEEP (2 vai soi lead · 2 detector [title-freshness + carry-age, ngưỡng KHÔNG thuộc counter] · positive-control · roster-3-việc). caveat (b)(d) keep.
  • 🔴 Trạng-thái SE = làm ĐÚNG (§6.1): SE đặt số 6/15/3 vào memory-budget.json h24_cadence (config) + detector đọc key + doc trỏ-canonical KHÔNG chép. ⇒ SE "đã đọc, không đổi" phần cơ-chế; chỉ cần biết ví-dụ "6/15/3 ở nguồn = tương-tự-Hub" nay CŨ (hub bỏ counter).
  • 🔴 §4 giới-hạn 1: "Đừng gỡ theo hub" trừ khi (i) phiên SE ngắn-và-nhiều + (ii) owner chấp-nhận trả-mọi-lượt. SE phiên DÀI (feature/wave). Hub replacement = n=0. → default-valid = GIỮ counter.
  • §5 API-key close vĩnh-viễn: hub KHÔNG dùng Anthropic API key (kinh-phí). "Đừng chờ thứ hub ghi 'chờ khóa'." Mọi token-số hub báo = ước-tính. → SE check có mục nào "chờ khóa" (MFE judge-layer scaffold? — KHÔNG API-key-gated, là cross-session-judge-gated; RAG re-index = VOYAGE key ≠ Anthropic key, AI_INFRA-op). → in-frame: note, 0 SE-blocker.
  • ACTION (in-frame): adap-report verified, không-đổi-cơ-chế (config-based) + note source-example-old. Surface owner-decision: SE có muốn theo hub chuyển bookend không? (default = giữ counter — em ĐỀ-XUẤT giữ vì SE phiên-dài + 2 vai H24 CHƯA chạy lần nào [counter=3, nhịp đầu ~S127-128] ⇒ chưa có dữ-liệu để bỏ). held_clause frontmatter = hub-internal (contextual_retrieval) → SE IGNORE.

D. do-token-that (new/draft, NOT-adopt — METHOD)

  • Harness in real-token-N ở dòng truncation khi Read vượt cap (N tokens, cap 25000, N>cap = toàn tệp, free, no-API). Đo, đừng quy-đổi. Hub tự-bắt: hằng-số char/4 self-label "empirical" sai 42 phiên (4.05 vượt trần số-học 4.0). Net rẻ = lưu phép-đo-thật cạnh hằng-số + assert bao.
  • 🔴 Cực-kỳ liên-quan SE: token_governor TOÀN char/4 + byte/3.0-3.5 (honest_caveat tự ghi). harness_floor.measured_token_estimate=55K = ước. Mega-line STATUS/HANDOFF: em ĐÃ thấy real-N từ chính harness lượt này — STATUS folded chunk 360-dòng = 26075 tok, HANDOFF 404-dòng = 32988 tok (cap 25000).
  • ACTION (in-frame — MEASURE + net): (1) đo real-token-N các mega-file SE (STATUS/HANDOFF full) qua Read-force-truncate → ghi lại số THẬT. (2) audit SE "measured" constant cho bẫy "nhãn đã-đo thay việc-đo": harness_floor 55K (khai "byte-measured 19K + est 36K" — nửa est, KHÔNG token-thật), byte/tok 3.0-3.5 range. (3) ĐỀ-XUẤT net "assert constant bao real-measure" nếu owner muốn.
  • 🔴 owner-gated: ĐỔI số budget (tier1_hotfeed, harness_floor, crystallized_backfill.target) = quyền anh (role_boundary_note + mark RC-…01-58-01). Em CHỈ đo + báo %, KHÔNG auto-tune. → surface: real-token đo được vs budget cap → anh quyết có re-tier/đổi-số không.

E. bon-vong-tu-bao-tri (new, NOT-adopt — spirit + evidence)

  • 4 vòng tự-bảo-trì (hub-specific, "đừng chép số 4"). Bài học: redundancy > single-net; "im-lặng có chữ-ký" (whitelist qua mọi kiểm hình-thức nhưng tiền-đề-lý-do sai — test "gỡ hàng → hạng-mục hiện lại", đừng neo test-cơ-chế vào 1 hàng sống); eval-layer là yếu nhất.
  • 🔴 SE ĐÃ ALIGNED mạnh: fault-inject 4-bộ (S122) = "gỡ-hàng→hiện-lại" · Goodhart-rời-tập-đo (S123) · citation-trap (S123) · positive-control-đừng-vá-sớm (S123) · H24 2 vai soi-lead = redundancy-layer. SE loop-map: loop-1=tooling-auditor(H1) · loop-2=lead-view/omission(H24) · loop-3=H17+MFE · loop-4=sleep-recovery.
  • ACTION (in-frame — reflection, KHÔNG code-change lớn): adap-report n-a-mostly-aligned + ghi 3 phản-chiếu: (1) SE có KIỂM-role cho loop-1/2 (tooling + lead-view/omission) — có thể AHEAD hub; nhưng khai thật: các vai đó CHƯA soi-lẫn-nhau độc-lập (harvest-curator KHÔNG soi tooling-auditor) → kẽ giống hub. (2) "sequential-not-parallel cho chuỗi checker" — SE fable-clone = parallel-lane-rồi-synthesize (đúng, vì lane ĐỘC-LẬP + em-main = vai-3 tuần-tự); nhưng nếu có chuỗi measure→propose→check thì phải tuần-tự. (3) whitelist SE = governance-detectors self-exclusion (6 path) + AS-table + value_protect — áp test "gỡ-hàng→hiện-lại": có positive-control chưa? (S119 positive-control permission-matrix suýt bị giết = đúng ca này).

F. push-guard dd4b0176 (update, vế N) + presence-not-age-reinject

  • push-guard vế N: SE ĐÃ adopt S122 (mark RC-…15-32-20 §5.2 squash→count→push 1-LƯỢT + fault-inject 10/10). 🔴 SE REFINEMENT ahead-of-broadcast: SE đếm TRAILING wal: (cho phép wal: kẹp dưới commit-thường = noise-chấp-nhận) thay "mọi wal:=0" — vì "mọi wal:=0" gây deadlock khi hook chen (SE fault-inject ca(2) base+wal+[CLAUDE]→K=0→push-được). 3 điểm (a)(b)(c) broadcast: SE có đủ (a) so-số-không-exit-code · (b) first-push ref-check · (c) đúng remote-branch.
  • vế E (EOL-assert ④c): SE ĐÃ adopt qua eol-crlf-notice (adap-report 2026-07-15-eol-crlf… tồn-tại S122).
  • presence-not-age-reinject: SE adap-report 2026-07-13-presence-not-age-reinject tồn-tại (S115) — name-mismatch với broadcast id (adap-update- prefix).
  • ACTION (in-frame — reconcile dedup): ghi adap-report ĐÚNG broadcast-id cho push-guard (agreed+executed S122, refinement TRAILING) + presence (already-applied S115, name-reconcile). Đóng kẽ dedup exact-id (S119 lesson: naive-diff false-pending).

③ Checklist (reviewer ensemble @tier:opus @MAX — deliverable + acceptance ĐO-ĐƯỢC)

3 lane reviewer, đa lăng-kính, RETURN-only (em-main single-writer synthesize):

Lane Lăng-kính Acceptance ĐO-ĐƯỢC
L1 — SCOPE/authority Ranh-giới in-frame ⟂ owner-gated ĐÚNG chưa? Có chỗ nào LEAD định tự-đổi thứ thuộc quyền-anh (model-frontmatter · cadence-counter · budget-số · settings.json) không? Liệt-kê từng item B-F: verdict in-frame-ĐÚNG / owner-gated-SÓT / over-reach. ≥1 over-reach = FAIL.
L2 — FIDELITY-source Mỗi broadcast đọc ĐÚNG chưa? Bẫy: treat type:new NOT-adopt (do-token/bon-vong) thành adopt-order? treat already-done (push-guard/presence) thành new? claim TRAILING-refinement ĐÚNG? Mỗi item: read-faithful / misread:<chỗ>. Verify claim "push-guard adopted S122 §5.2" bằng grep session-end. ≥1 misread = FAIL.
L3 — HONEST-nấc / overclaim Nấc G-011 đúng chưa (executed vs verified-pending vs agreed-deferred)? do-token real-token-N dùng đúng chưa (N>cap logic)? Có overclaim "đã đo" khi chỉ est? Có tự-mâu-thuẫn (meta-count S119-lesson)? Mỗi adap-report-đề-xuất: nấc-đúng / nấc-sai. Bắt mọi "verified" mà thật là "docs-only/deferred".

Acceptance tổng: mỗi lane trả VERDICT header dòng-1 (PASS / PASS_WITH_FIXES nC/nM / FAIL) + finding neo file:line/broadcast:line. Em-main refute finding trùng/sai + synthesize → apply CHỈ phần in-frame PASS, surface owner-decision.

Owner-decision surface (KHÔNG apply, chờ anh):

  1. E-1 model-tier: all-inherit → worker-tier-pin? (tangled H23-precedence-defer).
  2. C h17: giữ counter (em đề-xuất, default-valid) hay theo hub chuyển bookend?
  3. D do-token: real-token đo được → có re-tier mega-line / đổi budget-số không?
  4. r6 relocate: set autoMemoryDirectory absolute-path per-repo (settings.json + workspace-trust + runtime-verify)?