[CLAUDE] Skill: YC-021 tron — ring5-audit verified-runtime + day-wake 4-floor (/day + day-probe fault-inject 4/4) + bang-tham-quyen-DRAFT + thu hub re-stamp; REVIEW 8-MAJ va het truoc commit

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-08-10 03:51:22 +07:00
parent 87e979ff02
commit 6bf768da94
18 changed files with 530 additions and 8 deletions

View File

@ -32,7 +32,7 @@ Chỉ cắm 2 cửa `session-start`/`session-end` thì **đúng ca anh đang lo
| chế-độ | cửa | làm gì | chi-phí |
|---|---|---|---|
| **DÒ** (detect-only) | `/tiep` · `/pause` | list + so id → in `thu-moi: se=X all=Y`. 🔴 **KHÔNG copy · KHÔNG hash · KHÔNG python.** X hoặc Y > 0 ⇒ nêu **1 dòng** rồi đi tiếp, để bookend kéo | ~5ms |
| **DÒ** (detect-only) | `/tiep` · `/pause` · `/day` *(+S185 W-1 — cửa VÀO nhẹ, nhịp thành 5 cửa)* | list + so id → in `thu-moi: se=X all=Y`. 🔴 **KHÔNG copy · KHÔNG hash · KHÔNG python.** X hoặc Y > 0 ⇒ nêu **1 dòng** rồi đi tiếp, để bookend kéo | ~5ms |
| **KÉO** (đầy-đủ) | `/session-start` · `/session-end` | `se>0`**`/check-email`** STAGE 1 (copy + verify 2 tuyến + log `_index`) · `all>0`**`/adap-apply`** | theo số thư |
🔴 **DÒ PHẢI QUÉT CẢ HAI KÊNH — đây là kẽ thật, và nó nằm ở NHỊP chứ không ở tool:** `outbox/se` (directed, → `/check-email`) **VÀ** `outbox/all` (fan-out, → `/adap-apply`). Không có nhánh `all` thì **10 broadcast đợt adap-11 nằm im 5 ngày** (07-18→07-23) — ca đã xảy ra thật, không phải giả-định. **DÒ chỉ ĐẾM và ĐỊNH TUYẾN, không kéo** ⇒ vẫn rẻ.

39
.claude/commands/day.md Normal file
View File

@ -0,0 +1,39 @@
# /day — dậy-nhẹ probe-first (W-1 YC-021 anh chốt @S185 · adopt hub `2026-07-28-Governance-day-wake-probe-first-resume`, floor F1-F4)
> **Nguyên tắc: probe-rồi-mới-trả-giá.** Đo delta TRƯỚC (chỉ-đọc, <500ms — ngưỡng owner `stop_point_cheap_ms`), trả đúng giá SAU: **sạch thì dậy nhẹ, bẩn thì tự nâng chạy trọn `/tiep`**. Nghiêng an-toàn: probe lỗi / nghi ngờ = DELTA.
> 🔴 **KHÔNG thay `/tiep`** — `/tiep` vẫn là đường nối-đầy-đủ (H22); `/day` chỉ mở lối rẻ cho ca **đầu-ngày-sau-điểm-dừng-SẠCH**. Gõ `/day full` = ép chạy trọn `/tiep` bỏ qua probe (cửa thoát cưỡng chế F2).
## Thực hiện tuần-tự
### 1. BƯỚC 0 — tiền kiểm (không chặn)
`powershell.exe -ExecutionPolicy Bypass -File scripts/tien-kiem-cua.ps1 -Cua day` → in 1 dòng. Lỗi ⇒ `tien-kiem loi (khong chan)` → đi tiếp.
### 2. Probe (F1+F3 — máy, chỉ-đọc)
`powershell.exe -ExecutionPolicy Bypass -File scripts/day-probe.ps1` → đọc verdict dòng `DAY-PROBE:`.
- Máy chọn marker cuối bằng **ts TRONG file** (không mtime — Dropbox chạm mtime), anchor = **commit-chốt-dừng** (commit ADD marker; fallback head-sha trong marker — bẫy-một F3), kiểm anchor **sống + tổ-tiên HEAD** (bẫy-hai F3 — SE có squash closeout nên bẫy này THẬT).
- 4 tín hiệu: commit-sau-anchor · dirty (mọi porcelain — không allowlist, nghiêng DELTA) · (run-folder mới đã phủ bởi 2 tín hiệu trên) · sentinel `closing:` (Sàn-2).
### 3. Route theo verdict
| Verdict | Đường |
|---|---|
| **CLEAN** (0-hit toàn bộ) | **DẬY NHẸ** — bước 4 |
| **DELTA** | in nguyên dòng signals của probe → **TỰ NÂNG**: chạy TRỌN [`/tiep`](tiep.md) §0→§3-ter. KHÔNG dậy nhẹ trên nền có delta |
| **ANCHOR-LOST** | khai verdict CÔNG KHAI trong report (hỏng-an-toàn phải CÓ TIẾNG — F3) → TỰ NÂNG `/tiep` trọn |
| *(user gõ `/day full`)* | bỏ probe → `/tiep` trọn |
### 4. DẬY NHẸ (chỉ khi CLEAN)
1. **Nạp LÕI:** đọc `.claude/WAL.md` (trọn, ≤40 dòng) + block TRÊN CÙNG của `_mind-s-<N>.md` (mới-nhất-ở-trên). 🔴 **BỎ** nạp-nền 9-nguồn `tiep_reload` + **BỎ** spawn `ctx-verifier` (tầng kiểm-lúc-đọc) — hợp lệ vì block lớp-mềm đã qua `ctx-curator` kiểm-lúc-ghi tại `/pause`, và 0-delta nghĩa là nó còn nguyên giá trị (**không trả tiền kiểm hai lần** — F1).
2. **Report dậy ≤10 dòng:** verdict + tóm `next:` WAL + 1 ý sống nhất từ §D `_mind` + **khai rõ 2 khoản SKIP** (nạp-nền + ctx-verifier).
3. **Marker mỏng (F4):** ghi `_day-<i>.md` vào `.claude/sessions/session-<N>/` (`<i>` = max(_day-*)+1) — ĐÚNG 5 trường như `_tiep-*`: `ts` · `head-sha` · `verdict: CLEAN` · `route: day-nhe` · `jsonl-hint`. KHÔNG khối lớp-mềm, KHÔNG commit tay — **Stop-hook `wal-flush.ps1` tự commit nó cuối turn** (`sessions/` thuộc 4-path hook) ⇒ lượt `/day`/`/pause` KẾ probe thấy cây SẠCH, marker không tự-đầu-độc phép đếm dirty (reviewer F-3 @S185 — mâu thuẫn "không commit riêng ⟂ probe đếm dirty" hoà giải bằng sự thật hook, không phải bằng allowlist).
4. DỪNG — chờ việc anh giao. Việc tới mà cần nền đầy đủ ⇒ nâng `/tiep` lúc đó.
### 5. Falsifier 2 chiều (F4 — cho tầng audit / ring5)
- **CLEAN-giả:** marker `_day-*` ghi `verdict: CLEAN` mà tồn tại commit thật giữa anchor và ts của nó ⇒ probe sai → FLAG (`git rev-list --count <anchor>..<commit-tại-ts>` > 0).
- **Luôn-DELTA:** report dậy BẮT BUỘC khai signals/`anchor-lost` mỗi lần tự nâng ⇒ chuỗi tự-nâng dài bất thường soi được từ dãy `_day-*` marker (route toàn `full`), không chết im.
## Guard F2 (chống-trùng — mirror ở 2 lệnh cũ)
- [`pause.md`](pause.md) bước-0: marker cuối đã là `_pause-*` + probe CLEAN ⇒ **no-op** "đã dừng rồi, 0 delta — giữ nguyên" (không sinh thêm marker/lớp-mềm/commit).
- [`tiep.md`](tiep.md) ghi chú đầu §0: probe CLEAN ⇒ được phép route `/day`-nhẹ thay vì đốt nghi-thức full lần hai (trừ khi user muốn full).
## Nấc trung thực @S185
`executed + dogfood-TAY` (probe chạy thật DELTA-379ms trên repo + fault-inject cây tạm 4/4: CLEAN · DELTA-sentinel · DELTA-thật · ANCHOR-LOST-loud) + **listed-in-session** — lệnh MỚI hiện skill-list NGAY không cần restart (data-point ×2 cùng ngày: `/day` + agent `ring5-audit`; **file .md MỚI hot-reload ⟂ EDIT file cũ thì không** — phép đo no-hot-reload S120/S121 đo trên EDIT, 2 lớp KHÁC nhau). `/day` gõ-thật + self-check ca-3/4/5 thư hub = lượt dậy thật kế tiếp.

View File

@ -6,7 +6,11 @@ argument-hint: (không tham số)
# /pause — chốt điểm dừng chủ-động (Harness-22 WAL session-continuity)
> **Mục-đích:** chốt trạng-thái làm-việc hiện-tại xuống đĩa một cách an-toàn, để có thể thoát / đổi tài-khoản / tắt máy mà KHÔNG mất trí-nhớ đã có và KHÔNG phải đốt lại token cho phần đã xong.
> Cặp với **`/tiep`** (đường recovery duy-nhất). 🔴 restart Claude Code sau khi tạo/sửa command `.md` (no hot-reload).
> Cặp với **`/tiep`** (đường recovery duy-nhất). 🔴 restart Claude Code sau khi **SỬA** command `.md` (EDIT không hot-reload — đo S120/S121); file `.md` **MỚI** thì hot-reload được (data-point S107 + ×2 @S185: `/day` + `ring5-audit` đều hiện ngay trong phiên land).
## 0. Guard chống-trùng (F2 day-wake, +S185 YC-021/W-1)
Chạy `powershell.exe -ExecutionPolicy Bypass -File scripts/day-probe.ps1` (chỉ-đọc, <500ms). Nếu **marker cuối đã là `_pause-*`** verdict = **CLEAN** **NO-OP**: in *"đã dừng rồi, 0 delta — giữ nguyên"* + DỪNG (không sinh thêm marker/lớp-mềm/commit người trùng lệnh không bị phạt token). Mọi ca khác (DELTA/ANCHOR-LOST/marker-cuối-không-phải-pause/probe-lỗi) chạy tiếp bình thường từ bước 1.
Thực-hiện **tuần-tự 5 bước** sau; trong lúc chạy **KHÔNG nhận việc mới**:

View File

@ -187,6 +187,7 @@ Em main PHẢI echo **TOÀN BỘ nội dung command body này** (đầy đủ Ph
- **(vi) Post-wave assertion:** xong 3 con → `git status --short` → **kỳ vọng 0 tracked-change ngoài run-folder**; có thay-đổi lạ ⇒ residual-write ⇒ **báo anh + revert** (G-015: propose-only KHÔNG code-enforced ở kênh Bash — git-diff = backstop THẬT).
- **(vii) [M4] Vết 2 lớp (giữ NGUYÊN sau khi bỏ consent @S151):** dòng trạng-thái ở (i) **IN CẢ khi Light/hỏi-đáp** (Light ⇒ skip CHẠY hợp-lệ, **CẤM skip IM-LẶNG**); khi skip (Light **HOẶC** vòng không chạy được — 🧊 vế "khong-gat" retired @S151 cùng consent-gate) ⇒ ghi **1 dòng vết** vào `.claude/WAL.md`: `trio: skipped S<nn> (<ly-do: light | loi | ...>)`.
- **(viii) Đơn-vị nhịp:** "phiên-LOGIC" hub map **TẠM** = nhãn-phiên `S<nn>` (SE chưa adopt session-logic). 🔴 **KHÔNG cadence-key** trong `memory-budget.json`, **KHÔNG tick** counter cho bộ-ba (nhịp bộ-ba ≠ nhịp H24 — trộn 2 đồng-hồ = hỏng cả hai).
- **(m) 🔬 ring5-audit @close — KIỂM vòng-6 nghi-thức cửa phiên** *(+S185 slot (41) — YC-021/W-2 anh chốt "đồng ý thêm 1 nghi thức ko vấn đề"; khuôn thư hub 08-08 vòng-6):* SAU khi lead chốt **bảng-nhãn nghi-thức** của phiên (các bước cửa bị lệch gán 1 trong 4 nhãn `ritual-labels.md`) ⇒ spawn `ring5-audit` PIN {bảng-nhãn · vật chứng cửa · run-folder} → verdict per-nhãn + falsify vị-từ + **đề-nghị-XOÁ-ÁN** khi nhãn nhầm lớp (lead verify vị-từ rồi mới lật). Phiên 0-bước-lệch ⇒ lead ghi 1 dòng `ring5: 0-nhãn @S<nn>` (vết M4) ⇒ vai NO-OP-có-khai. Contract = canonical [`.claude/agents/ring5-audit.md`](../agents/ring5-audit.md) (B1). 🔴 verified-pending-restart @S185 — trước restart CLI, mục này ghi vết skip thay vì spawn.
- **(l) 🔎 ctx-audit @close — vai-3 vòng Ctx (SOI-CHUỖI)** *(adopt thư `0df10df4` @S153; 🔄 **OWNER-VETO @S153**: (38)(a) 1-vai → **hub-form 3-vai** anh chốt trực tiếp — vai-1 `ctx-curator` @mỗi-pause · vai-2 `ctx-verifier` @mỗi-tiep · vai-3 đây; 🔴 ăn từ phiên sau restart CLI):* AUTO **SAU các vòng đo (a)-(k), TRƯỚC §L.c** — spawn vô-điều-kiện (hình-B), **máy TRƯỚC vai** (`mind-check` full + closed-check §6.3-bis). **PIN đích-danh fail-closed**: path `_mind-s-<N>.md` + run-folder bookend-close; `_mind` vắng ⇒ **NO-OP 1 dòng có khai**. Vai: **bất-biến chuỗi** (tự đếm ĐĨA) + **chấm mồi-ngầm** + **KIỂM-VẾT vai-1/vai-2** (phiên có pause/tiep: đọc verdict chúng + đối-chứng chọn mẫu; phiên 0-pause/0-tiep: tự chạy hồi-tố 5-khoản + 4-khoản = fallback) — contract = canonical [`.claude/agents/ctx-audit.md`](../agents/ctx-audit.md) (B1, KHÔNG chép). Lead scribe `sub-ctx-audit-close.md` **NGAY khi trả** + seed diary `agent-memory/ctx-audit/` **CÙNG lượt** (kẻo C11(b) FLAG diary-0-delta — datum T3 @S153).
### §L.c — completeness-gate 5-vòng (D1, land S146 — 🔴 CÓ RĂNG: CẤM bare-PASS)

View File

@ -10,6 +10,8 @@ argument-hint: (không tham số)
Thực-hiện **tuần-tự**: §0 (sàn) → §1 → §2 → §3 → §4.
> 🔸 **Guard F2 day-wake (+S185 YC-021/W-1):** TRƯỚC §0 được phép chạy `scripts/day-probe.ps1` (chỉ-đọc <500ms); verdict **CLEAN** + ca đầu-ngày ⇒ hợp lệ route sang [`/day`](day.md) dậy-nhẹ thay vì đốt nghi-thức full lần hai (trừ khi user muốn full / việc tới cần nền đầy-đủ). DELTA/ANCHOR-LOST ⇒ chạy trọn file này như thường — nghiêng an-toàn.
---
## 0. 🔴 Sàn-3 canonical — **"sổ trống ≠ sạch"** (ĐỊNH-NGHĨA MỘT CHỖ DUY-NHẤT)
@ -101,7 +103,9 @@ for d in .claude/sessions/session-*/; do
{ [ -f "$d/_end" ] || [ -f "$d/closed.md" ]; } && continue
p=$(( $(ls "$d"_pause-*.md 2>/dev/null | wc -l) + $(ls "$d"pause-*.md 2>/dev/null | wc -l) ))
[ "$p" -eq 0 ] && continue
r=$(( $(ls "$d"_tiep-*.md 2>/dev/null | wc -l) + $(ls "$d"resume-*.md 2>/dev/null | wc -l) ))
r=$(( $(ls "$d"_tiep-*.md 2>/dev/null | wc -l) + $(ls "$d"resume-*.md 2>/dev/null | wc -l) + $(ls "$d"_day-*.md 2>/dev/null | wc -l) ))
# ^ `_day-*` cộng vào r từ @S185 (W-1 day-wake): dậy-nhẹ CLEAN = một lần NỐI hợp lệ (marker mỏng F4).
# Thiếu vế này thì chuỗi pause→day→pause đọc thành p>r ⇒ ORPHAN-L kêu oan mỗi lần dùng /day.
[ "$p" -gt "$r" ] && echo "ORPHAN-L: $d (pause=$p tiep=$r, chua chot-ket)"
done
```