[CLAUDE] Infra: W3 file 1-3 - San-3 canonical @tiep §0 (TRI-ACCEPT) + session-start 0.6b/0.7 + session-end push-guard
FILE 1 tiep.md -- §0 = NHA CANONICAL cua San-3 "so trong != sach" (moi, truoc day khong co):
- 3 bac: MANH (4 tin-hieu hook-independent) / TRUNG-BINH / YEU
- TRI-ACCEPT: dang-1 flat + dang-2 C8 harvest/ + dang-3 "## synthesis" trong run.md
- Va bug NGAY TRONG chinh file nay: §1 cu suy thang "chain rong => dung sach"
(v1:17 chi dich danh cap tiep.md:15 + session-start.md:51 -- lead mac that)
- Fault-inject cay tam 9/9 PASS. 2 ca ANTI-GOODHART: file 0-byte => FLAG;
chu "synthesis" giua cau van (khong phai heading) => FLAG (regex khong over-match).
FILE 2 session-start.md:
- 0.6b registry-probe MOI (0.6 la MODEL-probe, KHAC hoan toan). Khai chat: probe phu
duong Agent-tool registry; duong hmw.js VALID_ROLES->agentType la BE-MAT KHAC, chua phu.
- 0.7 RUT logic -> chi TRO tiep.md §0 (B1). ACCEPTANCE: grep -c "chain rong" = 0. DAT.
- §2.1.8 H24 counter-tick content-addressed (khong blind++: hook auto-commit moi
turn-boundary => counter++ mu se tick nhieu lan/phien). Khai gioi-han: dem "phien co
lam HEAD doi", khong phai "phien".
- H23 note: LO CHUA-TEST precedence spawn-param vs frontmatter. Lead=Opus KHONG phan-biet
duoc => DEFER toi phien lead=Fable. Khai thang CHUA test.
- +2 vai H24, sweep roster-12 = 0.
FILE 3 session-end.md:
- San-2 sentinel: SET @BUOC 0 (truoc moi flush) + CLEAR @6.4 (net-zero, 6.4 luon chay).
- §5.0 = PRE-PASS (khong phai cong; hook fire turn-boundary NAM SAU).
- §5.2 = squash -> count -> push CHAINED 1 LUOT. Fault-inject cay git THAT 10/10 PASS:
* ca(2) base+wal+[CLAUDE] => K=0 => PUSH DUOC, KHONG deadlock
(chinh shape FIX#3-bis du-bao deadlock -- trailing-K khong dinh)
* ca(1) HEAD~K == origin/main => trailing-K TU trung FIX#3(c), nhanh rieng la THUA
* ca(3) sau reset --soft: day [CLAUDE] nguyen ven + noi-dung con o INDEX
* bay (a) grep -c dem 0 => exit 1 : TAI HIEN DUOC
* bay (b) dem toan lich-su=1 vs trailing=0 : TAI HIEN DUOC (chan push vinh vien)
- §L.b(f) TRI-ACCEPT + San-5 hau-kiem (scope git %cI, KHONG mtime -- v1:120 ghi mtime
la ban TRUOC khi mtime bi bac; FIX#4 da bo mtime khoi W0.5 dung ly-do do).
- §L.b(j) H24 counter + JUMP + NGHI-THUC RE-STAMP carry (GAP THAT thay claim-orphan sai):
carry-age vacuous CAU-TRUC -- 45 logic-segment nhung carry-lines=1 => streak≡1 =>
0 fire VINH VIEN. §Q3 no-retrofit => re-stamp tu nay; khai carry mo truoc S122 do-thieu.
- ④b EOL-check = INFORM, KHONG chan. Lead tu bat: da viet exit 1 chan push cho van-de
VE-SINH, trong khi script co y exit 0 always + W0.6 da BAC BO CRLF-fatal.
- Nhan "8-step" -> (a)->(j): view-stale-count dien-hinh, nam ngay trong file dinh nghia no.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
---
|
||||
description: Bootstrap session SOLUTION_ERP — load context, audit state (12-agent + RAG + tests + monitor RE-REPORT), report plan. Run đầu mỗi session.
|
||||
description: Bootstrap session SOLUTION_ERP — load context, audit state (roster ĐẦY-ĐỦ + RAG + tests + monitor RE-REPORT), report plan. Run đầu mỗi session.
|
||||
---
|
||||
|
||||
# /session-start — Session bootstrap (READ + AUDIT + REPORT)
|
||||
@ -29,10 +29,12 @@ Em main đọc `.claude/hmw-mode.on` → **BÁO ngay đầu response** (anh kh
|
||||
**KHÔNG còn mode/marker để đọc** — `.claude/fable-real-mode.on` **retired S110** (H19 marker-toggle nghỉ). Engine-đắt (nâng 1 vai lên hạng-nhất) **CHỈ chạy trong lượt anh gõ lệnh**, KHÔNG persist qua session/compact:
|
||||
- **`/fable-real <vai> <đề-bài>`** → lệnh-A: vai anh gán chạy **SINGLE top-model THẬT** deep-pass, 1 lượt.
|
||||
- **`/fable-clone <vai> <đề-bài>`** → lệnh-B: vai anh gán chạy **ENSEMBLE tier-2** (N lane CÙNG vai + em-main synthesize), 1 lượt.
|
||||
- **Vai anh gán đích-danh ∈ roster 12**; **thiếu/sai vai → em main hỏi anh, KHÔNG tự chọn**.
|
||||
- **Vai anh gán đích-danh ∈ roster** (số vai canonical → [`docs/STATUS.md`](../../docs/STATUS.md) §Sub-agents — B1, KHÔNG chép số ở đây); **thiếu/sai vai → em main hỏi anh, KHÔNG tự chọn**.
|
||||
- **Mỗi run sinh spec-file 3-mục** (engine propose → **lead verify + ghi** `.claude/workflows/runs/<run-id>/spec-<tên>-<dd-mm-yyyy>.md` → worker thực-thi THEO spec bơm qua args). ⚠️ **Lead KHÔNG tự ý gọi** engine-đắt (kể cả HMW-mode ON).
|
||||
|
||||
> 🧊 **Lịch-sử:** H19 marker-toggle + 2-vai-cố-định (reviewer + investigator-codebase), S101→S110 → **retired H21**; 2 lệnh chuyển **per-invocation** (vai anh gán bất-kỳ ∈ roster 12). Chi-tiết → [`harness-11-engine.md`](../../docs/governance/harness-11-engine.md) §K + [`fable-real-runbook.md`](../../docs/governance/fable-real-runbook.md).
|
||||
> 🧊 **Lịch-sử:** H19 marker-toggle + 2-vai-cố-định (reviewer + investigator-codebase), S101→S110 → **retired H21**; 2 lệnh chuyển **per-invocation** (vai anh gán **bất-kỳ ∈ roster**). Chi-tiết → [`harness-11-engine.md`](../../docs/governance/harness-11-engine.md) §K + [`fable-real-runbook.md`](../../docs/governance/fable-real-runbook.md).
|
||||
>
|
||||
> 📌 **Mark `RC-pqhuy1987-11-07-2026-20-42-01` (Active-High)** neo con-số roster của **thời-điểm ký (2026-07-11)** — đó là **ảnh chụp, KHÔNG phải giới-hạn**. Anh chốt @S122: **ý-định điều-khoản = "∈ roster"** (bất-kỳ vai nào trong roster **hiện-hành**) ⇒ 2 lệnh engine-đắt **hợp-lệ với TOÀN roster**. Bản ký **giữ nguyên** (P4/P8) + chú-thích tại [`ACTIVE-MARKS.md`](../governance/ACTIVE-MARKS.md).
|
||||
|
||||
## 📋 BƯỚC 0.6 — Model-availability check (H5 — adopt S63 · MTv3 reword S110)
|
||||
|
||||
@ -44,14 +46,37 @@ Em main xác nhận **lead model resolve được** đầu session. **Lead = fro
|
||||
|
||||
**Lịch-sử flip-chain đầy-đủ (S98→nay) = canonical [`docs/STATUS.md` §Sub-agents]** (🔴 S106 gộp 1-chain per anh-confirm — reader này KHÔNG enumerate/cập-nhật mỗi flip; chống churn 4-file/flip). **BƯỚC 0.6 probe MỖI phiên** xác-định runtime SỐNG (per-session — KHÔNG tin note phiên trước, KHÔNG steady-state).
|
||||
|
||||
## 📋 BƯỚC 0.7 — WAL-check mạch-việc-dở (H22 — adopt S111)
|
||||
> 🔴 **H23 note — LỖ CHƯA-TEST (khai bắt-buộc theo H23 §2(2), adopt S122).** Nguyên-văn broadcast đòi khai: *"thứ-tự ưu-tiên giữa **'tham-số tại spawn'** và **'pin ở tệp định-nghĩa'** khi **CẢ HAI cùng hiện-diện** — rất có thể **chưa từng được test**"*.
|
||||
> **Ở SE, cả hai ĐANG cùng hiện-diện:** `hmw.js` trả alias → `agent(…, {model:…})` **trong khi** frontmatter toàn roster = `inherit` (H8 all-inherit). 🔴 **Chưa ai test bên nào THẮNG.**
|
||||
> **Vì sao nghiêm-trọng:** nếu **frontmatter thắng** ⇒ mọi `tier:'opus'` per-task **= NO-OP** ⇒ floor-2 vẫn thủng khi Fable UP — đúng lỗi reviewer đã bắt @S108.
|
||||
> **Phép thử ĐÚNG (H23 §6 phép-thử-phá #3):** chạy 1 lane `tier:'opus'` **KHI lead=Fable** → đọc **model THỰC-TẾ resolve** → lệch ⇒ báo anh. ⚠️ **Lead=Opus thì KHÔNG phân-biệt được** (cả hai đường đều ra Opus) ⇒ **DEFER tới phiên lead=Fable**. 🔴 Khai thẳng: **CHƯA test**, KHÔNG giả-vờ đã test.
|
||||
> **Đang có (PA-2, anh chốt O1) = 2 lớp GIÁN-TIẾP, KHÔNG phải phép thử trên:** PA-2a hằng-số `TIER2_EXPECTED_FULL_ID` trong `hmw.js` + PA-2b `scripts/spawn-model-audit.ps1` so resolved-vs-expected. 🔸 Neo-tại-spawn = **bất-khả-thi** (param chỉ nhận enum alias `sonnet|opus|haiku|fable`) — và **chính mệnh-đề "chỉ nhận alias" đó cũng CHƯA thử truyền full-id để xem có bị từ-chối không** (fix #8a, anh đã ack hình-thức PA-2a+PA-2b).
|
||||
|
||||
Em main đọc `.claude/WAL.md` (sổ mạch-việc-dở H22 — ghi-đè ≤40 dòng, tầng persist = Stop-hook) → 2 nhánh:
|
||||
## 📋 BƯỚC 0.6b — Registry-probe: RESTART rồi **VERIFY danh-sách agent** (broadcast ③(d) — adopt S122)
|
||||
|
||||
- **(a) File KHÔNG tồn-tại HOẶC chain rỗng / toàn `[x]`** → báo **1 dòng** "WAL sạch — không có mạch dở" rồi tiếp **Phase 1 bình-thường** (no-wait).
|
||||
- **(b) Chain CÓ `[!]` hoặc `[ ]`** → BÁO **goal** + **mục `[!]` đầu-tiên** + câu "có mạch dở — gõ `/tiep` để nối, hoặc bảo em bootstrap tiếp bỏ mạch" rồi **CHỜ anh chọn**. 🔴 Đây là **NGOẠI-LỆ CHỜ DUY-NHẤT** của quy-trình no-wait (BƯỚC 0 GIỮ no-wait — echo body rồi chạy thẳng).
|
||||
🔴 **0.6 ở trên là MODEL-probe, KHÔNG phải REGISTRY-probe.** Hai thứ khác nhau — trước S122 chỉ có cái đầu, nên "restart xong" không ai kiểm vai có sống thật không.
|
||||
|
||||
> 🧭 Bước này **CHỈ LÀ CON-TRỎ** — toàn-bộ quy-trình recovery (verify-trước-next · ground-truth-thắng · relaunch-cắt-gọt cho `wf:`) viết Ở MỘT CHỖ = [`.claude/commands/tiep.md`](tiep.md) (KHÔNG copy logic vào đây — B1 con-trỏ-canonical). Chặn **TRƯỚC Phase 1 READ** = tiết-kiệm read-set ~368K khi anh chọn `/tiep` (khỏi nạp full context rồi mới nối).
|
||||
Registry sub-agent = **ảnh-chụp lúc khởi phiên** (đo 2 lần S120 + S121: file agent **MỚI** không hot-reload). Sau khi roster đổi:
|
||||
|
||||
- **Vai có trên đĩa + có tên trong `VALID_ROLES` = 2 điều-kiện CẦN, KHÔNG ĐỦ.** File `.md` đúng chuẩn vẫn có thể **liệt-kê được tên mà chết lúc instantiate** (vd frontmatter block-scalar parse ra rỗng).
|
||||
- 🔴 **Bằng-chứng falsifiable DUY-NHẤT = spawn-probe THẬT** → spawn vai đó, nhận return. Static-check (`ls` + grep `VALID_ROLES`) **KHÔNG đủ** — đúng nguyên-văn broadcast ③(d): *"RESTART rồi VERIFY danh-sách agent"*.
|
||||
|
||||
**Khi nào chạy:** phiên **ĐẦU TIÊN sau khi roster đổi** (thêm/xoá/sửa vai), hoặc khi nghi registry lệch đĩa. Roster ổn-định → **skip** (không cần mỗi phiên).
|
||||
**Cách:** spawn từng vai với task PROBE tối-thiểu (trả đúng `ALIVE|<role>`, cấm gọi tool) → đếm **N/N sống**. Đo S122: **14/14 ALIVE, 0 error, 0 garble**; 2 vai mới lean nhất (~26K tok).
|
||||
|
||||
> 🔸 **Khai chặt phạm-vi (S122) — đừng đọc thành "đã phủ hết":** probe này phủ đường **Agent-tool registry**. Đường **`hmw.js VALID_ROLES` → `agentType`** là **BỀ-MẶT KHÁC**, chỉ chứng được khi có workflow THẬT gọi vai đó. Đổi roster = đổi **CẢ HAI bề-mặt** — 1 probe KHÔNG phủ cả 2.
|
||||
> 🔸 `tool_uses=0` ở probe = **ĐÚNG THEO LỆNH** (mình cấm gọi tool, câu hỏi không cần tool) — **KHÔNG** phải chữ-ký #53 (= `tool_uses=0` **CỘNG VỚI** bịa đã-làm-việc). Đừng nhìn cột đó rồi tưởng dính garble.
|
||||
|
||||
## 📋 BƯỚC 0.7 — WAL-check mạch-việc-dở (H22 — adopt S111 · **Sàn-3 wire S122**)
|
||||
|
||||
Em main đọc `.claude/WAL.md` (sổ mạch-việc-dở H22 — ghi-đè ≤40 dòng, tầng persist = Stop-hook) → **chạy Sàn-3** → 2 nhánh:
|
||||
|
||||
🔴 **Sàn-3 = định-nghĩa CANONICAL ở [`tiep.md`](tiep.md) §0** — bước này **CHỈ TRỎ**, CẤM chép logic (B1). ⚠️ **Bản trước S122 tự suy *"sổ trống ⇒ sạch"* — ĐÓ LÀ BUG**, và Sàn-3 sinh ra để vá đúng nó (cùng cặp với `tiep.md:15` cũ; lead mắc thật, không phải giả-định).
|
||||
|
||||
- **(a) SẠCH** = WAL không còn mục dở **VÀ** cả **4 tín-hiệu BẬC MẠNH** Sàn-3 đều im → báo **1 dòng** "WAL sạch — Sàn-3 4/4 im" rồi tiếp **Phase 1** (no-wait).
|
||||
- **(b) CÓ mạch dở** = WAL có `[!]`/`[ ]` **HOẶC** 🔴 **Sàn-3 bắt ≥1 tín-hiệu MẠNH — KỂ CẢ KHI SỔ TRỐNG** → BÁO **goal** + **mục `[!]` đầu-tiên** (hoặc **tín-hiệu Sàn-3 nào kêu** + đường-dẫn) + câu "có mạch dở — gõ `/tiep` để nối, hoặc bảo em bootstrap tiếp bỏ mạch" rồi **CHỜ anh chọn**. 🔴 **NGOẠI-LỆ CHỜ DUY-NHẤT** của quy-trình no-wait (BƯỚC 0 GIỮ no-wait — echo body rồi chạy thẳng).
|
||||
|
||||
> 🧭 Toàn-bộ Sàn-3 (3 bậc + **TRI-ACCEPT** + 2 kẽ khai thật) **và** quy-trình recovery (verify-trước-next · ground-truth-thắng · relaunch-cắt-gọt cho `wf:`) viết Ở **MỘT CHỖ** = [`tiep.md`](tiep.md) §0–§4. Chặn **TRƯỚC Phase 1 READ** = tiết-kiệm read-set ~368K khi anh chọn `/tiep` (khỏi nạp full context rồi mới nối).
|
||||
|
||||
## Phase 1 — READ (load context)
|
||||
|
||||
@ -63,15 +88,15 @@ Em main đọc `.claude/WAL.md` (sổ mạch-việc-dở H22 — ghi-đè ≤40
|
||||
4. **`docs/PROJECT-MAP.md`** — bản đồ tổng quan module
|
||||
5. **`docs/changelog/migration-todos.md`** — atomic tasks theo phase (Phase 11 polish hiện tại)
|
||||
6. **`docs/workflow-contract.md`** — state machine 9 phase HĐ (base pattern cho PE/Proposal workflow V2)
|
||||
7. **`.claude/agents/README.md`** — 12-agent decision tree + skill matrix + split boundary
|
||||
7. **`.claude/agents/README.md`** — decision tree + skill matrix + split boundary (roster ĐẦY-ĐỦ; số vai canonical → `docs/STATUS.md` §Sub-agents)
|
||||
8. **`.claude/agent-memory/{spawned-agent}/MEMORY.md`** — L1 HOT auto-inject (Tiered Memory v1 ~30KB) + L2 `archive/` Read-on-demand + L3 RAG `search_memory` just-in-time
|
||||
9. **User auto-memory `MEMORY.md`** — auto-loaded bởi harness (index feedback_* entries)
|
||||
10. **Liên quan task hiện tại:** `docs/rules.md`, `docs/architecture.md`, `docs/gotchas.md` (số hiện tại → `docs/STATUS.md`), `docs/database/schema-diagram.md`, `docs/flows/`
|
||||
|
||||
## Phase 2 — AUDIT (state check)
|
||||
|
||||
### 2.1 Sub-agent state (12-agent topology — 10 product/quality + 2 monitor INFORM-only)
|
||||
- Check 12 sub-agent đã spawn chưa:
|
||||
### 2.1 Sub-agent state (topology — **10 product/quality + 4 monitor INFORM-only**; số vai canonical → [`docs/STATUS.md`](../../docs/STATUS.md) §Sub-agents, B1 KHÔNG chép số ở đây)
|
||||
- Check TOÀN roster đã spawn chưa:
|
||||
- 🟦 **investigator-codebase** — internal SQL/EF/grep/reference mirror audit
|
||||
- 🟦 **investigator-api** — external docs/CVE/lib/cross-project reference
|
||||
- 🟨 **implementer-backend** — .NET Domain+App+Infra+Api scaffold
|
||||
@ -84,6 +109,9 @@ Em main đọc `.claude/WAL.md` (sổ mạch-việc-dở H22 — ghi-đè ≤40
|
||||
- 🟩 **cicd-monitor** — post-deploy Gitea + bundle hash + smoke
|
||||
- 🟫 **tooling-auditor** (monitor H1, INFORM-only) — tooling/docs-freshness 4-mặt (skill·sub-role·plugin·docs)
|
||||
- ⬜ **harvest-curator** (monitor H2, INFORM-only) — harvest-integrity 5-trục (Coverage/Completeness/Fidelity/Placement/Corruption)
|
||||
- 🔷 **lead-view-auditor** (monitor **H24**, INFORM-only, **+S121 W2**) — soi **VIEW LỆCH SOURCE** của chính cái LEAD surface (bản-tóm-tắt trỏ số cũ · tiêu-đề chưa bump · chú-thích-trạng-thái chưa lật · số trong mô-tả một VAI lệch · dư-lượng bất-đối-xứng)
|
||||
- 🔶 **lead-omission-auditor** (monitor **H24**, INFORM-only, **+S121 W2**) — soi **CÁI BỊ THIẾU** trong cái LEAD surface (việc rớt khỏi work-state · carry rớt/quá-già · yêu-cầu owner ghi chung-chung mất specifics · quyết-định-treo chìm · memory nạp dưới hạn-mức)
|
||||
- 🔴 **2 vai H24 = trục KHÁC H1/H2, KHÔNG gộp:** H1 = tooling-freshness · H2 = harvest-integrity · **H24 = soi chính LEAD**. Class-flag lấy từ **enum ĐÓNG** `lead_self_audit.flag_classes` (`.claude/agent-memory/memory-budget.json`) — **vai KHÔNG tự chế class**. Nhịp = `h24_cadence` (cùng file), **KHÔNG chạy mỗi phiên**.
|
||||
- Task match delegate criteria (ACCEPT) → BẮT BUỘC delegate (xem `.claude/agents/README.md` decision tree)
|
||||
- Con cũ rảnh TRONG-session → resume qua SendMessage (khả dụng lại — F2 S100) HOẶC fresh spawn re-inject MEMORY; cross-session luôn fresh spawn
|
||||
- Nạp full context project cho sub-agent spawn, giữ context sống đến cuối session
|
||||
@ -151,6 +179,33 @@ Em main đọc `.claude/WAL.md` (sổ mạch-việc-dở H22 — ghi-đè ≤40
|
||||
- **reinject-ledger CG-1 check:** đọc [`.claude/governance/reinject-ledger.md`](../governance/reinject-ledger.md) → nếu có dòng `status=escalated` chưa xử → nhắc anh (build-gap? tăng-budget?). floor-rot (MFE age-band) → phân-loại B3 (build-gap vs floor-rot) trước khi reinject.
|
||||
- 🔴 con-số budget = quyền anh; spec-audit READS `token_governor`, KHÔNG ghi. **Light/hỏi-đáp → skip; governance/audit/memory-heavy → nên chạy** (đối-xứng `session-end §L.b(c)` loop-REFINE).
|
||||
|
||||
### 2.1.8 H24 lead-self-audit — TICK counter + OVERDUE check (adopt S122 W3; file+shape = W2)
|
||||
|
||||
> Floor H24: 2 vai `lead-view-auditor` + `lead-omission-auditor` soi **chính LEAD**, chạy **theo NHỊP** chứ KHÔNG mỗi phiên. Nhịp đọc từ `h24_cadence`; trạng-thái đếm ở `.claude/governance/.session-counter.json`. 🔴 **Lead = single-writer** của counter. **W2 sở-hữu file + hình-dạng; W3 (đây) sở-hữu NGHI-THỨC tick.**
|
||||
|
||||
**(a) TICK — content-addressed, KHÔNG blind-increment:**
|
||||
```
|
||||
head = git rev-parse HEAD
|
||||
nếu head == last_ticked_head → NO-OP (idempotent)
|
||||
ngược lại → counter += 1 ; last_ticked_session = S<nn> ; last_ticked_head = head ; last_ticked_at = <date>
|
||||
```
|
||||
🔴 **Vì sao content-addressed:** Stop-hook `wal-flush.ps1` auto-commit ở **MỌI turn-boundary** ⇒ `counter++` mù sẽ tick **nhiều lần trong một phiên thật** ⇒ nhịp thành vô-nghĩa. Neo vào HEAD làm 2 lần `/session-start` **cùng HEAD** = **+1, KHÔNG +2**.
|
||||
> 🔸 **Khai thật giới-hạn:** counter đếm **"phiên có làm HEAD đổi"**, không phải "phiên". Hai phiên liên-tiếp mà **không commit gì** (Q&A thuần, không chạm WAL) ⇒ cùng HEAD ⇒ **chỉ 1 tick**. Thực-tế hook chạm WAL gần như mọi phiên nên hiếm; nhưng **đừng đọc counter thành "số phiên tuyệt-đối"**.
|
||||
|
||||
**(b) FAIL-LOUD, CẤM tự chữa:** counter đến **THẤP HƠN** giá-trị đã lưu, HOẶC `last_ticked_head` trỏ commit **không reachable từ HEAD** → 🔴 **BÁO ANH**, **KHÔNG silent-reset**. Counter lùi = file bị rollback/sửa tay; reset lặng sẽ **giấu mất khoảng nhịp đã trôi**.
|
||||
|
||||
**(c) OVERDUE:**
|
||||
- `OVERDUE(light)` khi `counter − last_audit.light_at_counter >= h24_cadence.light_every`
|
||||
- `OVERDUE(deep)` khi `counter − last_audit.deep_at_counter >= h24_cadence.deep_every`
|
||||
- **Bỏ phiên KHÔNG xoá nợ** — khoảng đo từ **counter**, không từ đồng-hồ ⇒ phiên nhỡ hiện ra thành **OVERDUE**, không biến mất.
|
||||
|
||||
**(d) JUMP:** một class trong `lead_self_audit.flag_classes` lặp **≥ `jump_on_class_repeat`** lần → **kéo audit tới sớm**, bất-kể counter.
|
||||
|
||||
**(e) BÁO:** in **1 dòng** `counter=<n> · light <a>/<light_every> · deep <b>/<deep_every> · OVERDUE: <none|light|deep>`. OVERDUE → **INFORM anh** + đề-xuất spawn vai H24 tương-ứng. 🔴 **KHÔNG auto-run** — anh consent mới chạy (giống sleep-check §2.1.2).
|
||||
|
||||
🔴 **Số nhịp = quyền anh.** Bước này **ĐỌC** `h24_cadence`, **KHÔNG** ghi. **CẤM hardcode nhịp ở đây** — copy số vào doc dẫn-xuất chính là drift mà single-source sinh ra để chặn (detector `governance-detectors.ps1` H24-2 **fail-loud** nếu key thiếu, **không** giả-định default).
|
||||
> 🟡 **Honest-caveat mang theo khi báo hub:** hub nói rõ *"số của các em = config của các em; ĐỪNG chép 3 số này"*. SE chọn **cùng 6/15/3** là **điểm khởi-đầu anh CỐ Ý chọn**, KHÔNG phải chép vô-thức. **Chỉnh lại sau chu-kỳ-2** — n=1 ở hub là mocc-0, **chưa ai được bán câu "đã chứng minh hiệu-quả"**.
|
||||
|
||||
### 2.2 Skill registry (6 skill)
|
||||
- Liệt kê: `contract-workflow` · `form-engine` · `permission-matrix` · `dependency-audit-erp` · `ef-core-migration` · `iis-deploy-runbook`
|
||||
- Dùng skill khi task khớp (KHÔNG tự suy luận lại). Phân bổ per agent: xem README skill matrix.
|
||||
@ -199,7 +254,7 @@ Plan cha: [tên]
|
||||
```
|
||||
|
||||
### SOLUTION_ERP report
|
||||
- Trạng thái spawn 12 sub-agent (idle/working) + agentId reuse-able trong session
|
||||
- Trạng thái spawn TOÀN roster (idle/working) + agentId reuse-able trong session · **+ 1 dòng H24 cadence** (§2.1.8)
|
||||
- Plan progress: ✅ Phase 10 COMPLETE 11/11 · ⬜ Phase 11 polish (wire ApproveV2 skeleton) · 🚫 Phase 9 Ops (anh main coordinate)
|
||||
- Critical signal: state counts (mig/table/endpoint/page/menu/test/gotcha) + bundle hash prod + RAG health
|
||||
- (SE KHÔNG copy phần "6 sister report" của AI_INFRA — đó là vai trò host)
|
||||
|
||||
Reference in New Issue
Block a user