8.0 KiB
8.0 KiB
sub-task-0 — LANE-A (commands + contract) — S135 adap khung-nhịp-năm-vòng
Worker: Opus 4.8 MAX. Spec CON-TRỎ:
spec-adap-khung-nhip-17-07-2026.md(Read TRƯỚC khi làm — done). Scope 5 file LANE-A:tiep.md·pause.md·session-end.md·session-start.md·.claude/governance/.session-counter.json. Items thực-hiện: 1(a-e) · 2-wire (4 điểm) · 3 (force-fire vi) · 3-bis (memory-triple) · 6-phần-:206· 8-phần-INFORM-byte (M-10).
VERDICT: DONE — AC-A(1)-(10) 10/10 PASS (tự chạy lệnh thật), JSON valid + ASCII-clean, isolation clean.
Item 1 — Tick đa-điểm-vào (floor B1 §3.1)
1(a) OR-guard contract — .session-counter.json _contract.tick
- Sửa line 6:
if head == last_ticked_head **OR session == last_ticked_session** -> NO-OP; else counter+1 ... - Giải bẫy +2/cycle: Stop-hook dời HEAD giữa phiên ⇒ head-guard đơn để tick fire nhiều lần trong 1 phiên; session-clause pin 1 nhãn-phiên = đúng +1.
/pausecommit dời HEAD nhưng cùng nhãn-phiên vẫn NO-OP. - ASCII-clean (dùng
--/+2không em-dash). Evidence:_contract.ticknon-ASCII = ASCII-CLEAN;grep -c "session == last_ticked_session"= 1 (KHÔNG dùng chuỗi trần vacuous).
1(b) tiep.md §2.5 TICK (TICK TRƯỚC, dòng-nợ SAU)
- Chèn
## 2.5 TICK counter + dòng-nợsau §2, trước §3. Tick theo contract + CON-TRỎsession-start.md §2.1.8, CẤM chép logic (B1). ≤4 dòng. Nhãn/tiep= nhãn-phiên MỚI ⇒ tick fire ngay cửa vào, OVERDUE @9 hiện tại đây.
1(c) pause.md §3.5 TICK + add-list bước 4
- Chèn
## 3.5 TICK counterTRƯỚC commit bước 4 (tick nằm TRONGwal: pause). CON-TRỎ §2.1.8, CẤM chép logic. ≤4 dòng. - Bước 4 add-list mở rộng thêm đích-danh
.claude/governance/.session-counter.json+ lý-do (file ngoài hook-3-path; thiếu = claim "tick trong wal: pause" SAI) — M-7.
1(d) session-end (j)(v) tick-at-close + §5.1 add counter-file
§L.b(j)thêm (v) TICK-at-close idempotent, CON-TRỎ §2.1.8, CẤM chép logic. Idempotent: cùng nhãn-phiên ⇒ NO-OP.§5.1thêm bullet: add đích-danh.session-counter.jsonkhi tick-at-close tạo delta (bằng-chứng sống: tick S133 uncommitted qua 2 closeout) — M-7.
1(e) session-start §2.1.8 — đơn-vị + label-convention PIN + reconcile :192
- Pseudo-code (a) cập-nhật OR-guard (
HOẶC session == last_ticked_session) — canonical narrative khớp contract counter.json. - Rationale đổi "Vì sao OR-guard" giải-thích +2/cycle fix.
- Label-convention PIN THÀNH LUẬT: mỗi conversation mới = nhãn-phiên S MỚI, kể cả
/tiep(tiep.md:130); CẤM reuse nhãn — thiếu thì OR-guard NO-OP nhầm cửa/tiep⇒ phép-7 +0. - Reconcile gốc "đếm phiên-có-làm-HEAD-đổi" với đơn-vị nhãn-phiên (
9234a7aasession-logic caveat B1 §7) + ca hiếm giữ khai: nhãn-phiên mới không-commit cùng-HEAD vẫn NO-OP (+0).
Item 2-wire — 4 điểm gọi nhip-no-probe.ps1 (LANE-A wire; script LANE-B tạo)
pause.mdbước 5 ý-5 (Báo đúng năm ý) ·tiep.md§2.5 (SAU tick — n-3) ·session-start §2.1.8(e)(nâng dòng H24 → dòng-nợ 3-vế) ·session-end (j)(i)(tương-tự).- MỌI lời gọi bọc "lỗi →
probe-loi (khong chan)→ đi tiếp" — probe KHÔNG BAO GIỜ chặn điểm dừng. Command chỉ GỌI script. - grep tên script = 4/4 file, mỗi file đúng 1 call.
Item 3 — Force-fire (vi) consent-gate (floor B1 §3.2)
§L.b(j)thêm (vi): đếmP = git log ... | grep -c '^wal: pause',<closeout-liền-trước>= regex closeout DÙNG CHUNG Item 4^\[CLAUDE\] Docs: S\d+.*(closeout|session-end).- so-sánh SỐ
[ "$P" -ge 1 ](KHÔNG exit-code — §5.0 (a)).P>=1HOẶC nhãnS<a>-S<b>⇒ OVERDUE(light) bất-kể counter → in dòng-nợ + INFORM-BẮT-BUỘC + đề-xuất spawn cặp H24. - DP-3 consent-gate GIỮ (luật owner-era §L.b(j)(ii) +
session-start §2.1.8(e)"KHÔNG auto-run"): force-fire = INFORM-bắt-buộc + đề-xuất mặc-định, anh gật mới chạy. Báo hub SELF-CHECK ô3 = "PASS-với-carve-out (consent)".
Item 3-bis — memory-triple (B2 vòng-3 → CHỨC-NĂNG)
§L.b(c)thêm block 3 dòngmemory-triple:(đo → đề-xuất → kiểm) ghi vào session-log:measure-agent-memory.ps1→memory-archive-gate.ps1 DRY→mfe-eval.ps1|reviewer. 0 vai mới, 0 script mới. grepmemory-triple:= 3.
Item 6-phần-:206 — append Ratified (LANE-A thực-thi, nội-dung Item 6)
session-starthonest-caveat block (nay :207): append additive✅ Ratified 2026-07-17: anh mark cổng reply e50a4bd0; canonical = memory-budget.json → h24_cadence._owner_ratified (B1 — wording sống ở đó, đừng chép). Giữ nguyên caveat "chưa ai được bán 'đã chứng minh hiệu-quả'".
Item 8-phần-INFORM-byte (M-10) — 2 site RUNTIME
session-start §2.1.2sleep-check +session-end §L.b(c)sleep-check: khi INFORM fire → in kèm tổng byteagent-memory/*/archive/<period>.mdCHƯA có.gist.md(match PREFIX kỳ; đo TƯƠI(Get-Item).Length— CẤMGet-Content-đếm E-010; baseline 17-07 kỳ 2026-07 ≈183KB/5 file). Anh đặt ngưỡng sau, KHÔNG bịa số. Giữ INFORM 7-ngày (DP-5). Sleep-cmd chỉ đổi mô-tả (tránh ghost-wire H18) — phần đó LANE-C.
AC-A checklist (tự chạy lệnh thật, số đo)
| AC | Yêu-cầu | Kết-quả |
|---|---|---|
| (1) | grep -c -i tick tiep/pause/session-end ≥1 (baseline 0/0/0) |
3 / 4 / 2 PASS |
| (2) | grep -c "session == last_ticked_session" = 1 (KHÔNG bare vacuous) |
1 PASS (bare=2 = context only) |
| (3) | 4 điểm gọi nhip-no-probe.ps1 (grep = 4 file) |
4/4 file, mỗi file 1 call PASS |
| (4) | KHÔNG chép logic tick — mỗi điểm ≤4 dòng + con-trỏ §2.1.8 | pointer 1/1/3; counter += 1 copy = 0/0/0 (chỉ session-start canonical=1) PASS |
| (5) | session-end (vi) so-sánh SỐ (không exit-code) | [ "$P" -ge 1 ] + note §5.0(a) PASS |
| (6) | dòng-nợ KHÔNG chặn: mọi call bọc probe-lỗi-đi-tiếp | probe-loi (khong chan) = 4/4 file PASS |
| (7) | :206-vùng có Ratified 2026-07-17 + con-trỏ key canonical |
present (nay :207) + h24_cadence._owner_ratified=1 PASS |
| (8) | §L.b(c) chứa mẫu 3 dòng memory-triple: |
3 PASS |
| (9) | 2 site INFORM có vế byte-chưa-gist | Item 8/M-10 + archive/<period>.md + 183KB = 1 mỗi site PASS |
| (10) | pause bước-4 + session-end §5.1 chứa .session-counter.json |
pause=2 · session-end=3 PASS |
| extra | JSON valid + counter.json ASCII | json.loads OK; non-ASCII bytes = 0 PASS |
Ghi-chú (transparent disclosure)
- Em-dash cleanup: counter.json line 20 (
last_audit._note) có 2 em-dash U+2014 PRE-EXISTING (committed HEAD từ S124, KHÔNG do tôi thêm). Đã ASCII-hoá—→-(meaning-preserving) trong CHÍNH file lane tôi để thoả hard-invariant "JSON counter giữ ASCII". Line-6 (Item 1a) tự-nó đã ASCII-clean. - Git mechanics: Stop-hook
wal-flushauto-commit 4 command-file edit của tôi vàowal:commits (0363495wal: pause,a7bafd5wal: flush) — nội-dung ĐÃ ở HEAD (verify: 4/4 file cónhip-no-probe.ps1=1). counter.json ở working-tree (M,.claude/governance/ngoài hook-3-path by design). Lead post-merge squash sẽ gộpwal:vào wave-commit. Counter đã live-tick 8→9/S135 (H24 tick ritual phiên này = M-7 delta thật). - Isolation: git status dirty NGOÀI lane tôi =
fable-real.md+hmw.js(LANE-C) +nhip-no-probe.ps1?? (LANE-B) — do lane khác chạy song-song, tôi KHÔNG chạm. 0 MEMORY.md touched (M-2/B6). 0 store_memory/RAG-write. - Cross-lane refs (đọc-only, KHÔNG sửa): wire trỏ
scripts/nhip-no-probe.ps1(LANE-B) + Ratified trỏmemory-budget.json(LANE-C) — chỉ CON-TRỎ, không sửa file lane khác.