the ledger · 71 / 136

Bằng chứng

Mỗi lần có thứ hỏng, tôi ghi một dòng vào một ledger chỉ thêm, không sửa. Ghi lại thì rẻ và gần như vô dụng. Một dòng chỉ có giá trị khi nó được buộc vào một file đang bắt ai đó làm khác đi ngay hôm nay: một rule luôn bật, một mục Known failures trong skill, hoặc một check chạy được. Cột Cited by trong bảng dưới là chỗ tôi kiểm điều đó, và cũng là chỗ ledger quay lại tố cáo tôi.

Dòng đó do tôi viết trong release notes của tôi, và tôi đặt nó ở đầu trang này thay vì cuối. Bảng bên dưới chứng minh được một chuyện: mỗi luật ở đây đến từ một lần hỏng thật, và một cú bấm là ra file. Nó không chứng minh được chuyện còn lại, rằng cả vòng đứng vững khi có việc thật đi qua.

Every check in this package now proves the tooling is correct. Nothing in it proves the loop works.
RELEASE-NOTES.md:393 ↗

Mỗi dòng ledger có link tới file để bạn tự kiểm.

Mỗi lần có thứ hỏng, tôi ghi một dòng vào ledger. Ghi lại thì rẻ và gần như vô dụng. Một dòng chỉ có giá trị khi nó được buộc vào một file đang bắt ai đó làm khác đi ngay hôm nay: một rule luôn bật, một mục Known failures trong skill, hoặc một check chạy được.

Bảng này có một cột nói rõ dòng nào đã buộc và dòng nào chưa. 71 trên 136 dòng có file mang nó. 65 dòng còn lại chưa trỏ về đâu. Tôi giữ nguyên phần chưa buộc trong bảng thay vì lọc đi, vì một ledger chỉ hiện phần đã xong thì không dùng để tự kiểm được nữa. Bạn bấm vào một dòng có mũi tên là ra đúng file, không cần chạy thêm lệnh nào.

Vòng này chưa từng chạy trọn một lần trên việc thật.

Dòng ở trên do tôi viết trong release notes của tôi, và tôi kéo nó lên đây vì đặt ở cuối trang thì nó chỉ còn là một câu khiêm tốn.

Nó vạch đúng một ranh giới: chứng minh công cụ chạy đúng và chứng minh cả vòng chạy đúng là hai tuyên bố khác nhau, và tôi mới làm được tuyên bố thứ nhất. Chưa có ticket nào đi hết từ dispatch tới merge với đủ gate nổ trên việc thật bên trong repo này. Sáu bài học bạn vừa đọc đều đo ở downstream hoặc trong lúc dựng, không phải trong một vòng khép kín.

Tôi giữ khoảng trống đó mở. Nếu bạn cài và nó gãy ở chỗ tôi chưa đo, đó là dữ liệu tôi chưa có.

Cả bảng

136 / 136 dòng đang hiện

Bài họcTrạng tháiFile đang trỏ về
AST-002A prose link does not guarantee loadpromoted
AST-003No lessons ledger existedpromoted
AST-004Process decisions routed to ADRspromoted
AST-005Entry-doc rewrite silently dropped unique contentpromoted
AST-006fork delegation inherited Opus, ignored the model ladderpromoted
AST-007Long-lived branch + oversized PR outran the gatepromoted
AST-008Docs cited a retired skill collectionpromoted
AST-009No UI-prototype phase before Buildpromoted
AST-010Worktree delegation hygiene undocumentedpromoted
AST-013Ad-hoc build delegation; false tooling-gap assumedsuperseded
AST-014Multi-slice rebuild needs a gated integration branchpromoted
AST-017Per-package typecheck missed a cross-package breakpromoted
AST-018Dispatch emitted as text, never executed; no liveness signalpromoted
AST-019Implementer subagent retired; independence moved to the PRpromoted
AST-020Plugin review commands invisible → rescue used as review; raw exec hungpromoted
AST-021Gate workflows blocked on owner presencepromoted
AST-022A filesystem-only tool was invisible to agentspromoted
AST-023"Main session builds directly" conflated two mechanismspromoted
AST-025Gate-able conventions parked in the always-on rule tier tax every loopproposed
AST-026Named-persona harness: Thomas / Dan / Rinpromoted
AST-029Slice finished but Dan tabs survived; /clear blurred context and checkout lifecyclepromoted
AST-034A mandatory rule that lives only in load-on-demand docs is skipped, and only the owner noticespromoted
AST-035set -euo pipefail plus a no-match grep aborts before its own guardpromoted
AST-039An ID namespace shared with the host project resolves confidently to the wrong lessonpromoted
AST-040A placeholder that looks like a real id fails later than a missing onepromoted
AST-042Two skills answering to one name means the model-invoked path picks the wrong onepromoted
AST-043A gate that requires an artifact no contract producespromoted
AST-044Reading a diff cannot find a disagreement between two screenspromoted
AST-046A block moved between documents keeps the old document's referentspromoted
AST-048A rule not present where it must be remembered does not existpromoted
AST-049Checks 1–4 asked whether things were consistent, never whether a role could STARTpromoted
AST-053An axis read the run's verdict instead of its own, and went mutepromoted
AST-058The check after the step reported clean when the step was impossiblepromoted
AST-059The repo kept one self-check and lost the other to a directory it may ignorepromoted
AST-060Check 3 printed green about the skills it had not openedpromoted
AST-061The arm batched to phase end built a payload only skimming could finishpromoted
AST-062A second pass left to judgement is a second pass that does not runpromoted
AST-063A gate with no window in the sequence never fires, and nobody forgets itpromoted
AST-064The one always-on file no release can repair had no budgetpromoted
AST-065Two reviewers sharing one name, each in the other's contractpromoted
AST-066A review bound to the wrong checkout returns clean without reading anythingpromoted
AST-068A lesson closed at instance level reopens at class levelpromoted
AST-073A global script is only shared if something keeps it updatedpromoted
AST-075Neither the process table nor the PID file nor CPU time proves a loop is alivepromoted
AST-077Identity by substring match let stop sign a kill order for an unrelated processpromoted
AST-078flock-plus-holder watched only one directionpromoted
AST-079the reaper that closes AST-078 exits silently, and the lock changed type across a version bou…promoted
AST-080check-requirements.sh's payload check was tracked-not-currentpromoted
AST-081ticket-git-facts.sh's oracle was case-sensitive where the rest of it wasn'tpromoted
AST-083the arm's own forbidden-character list was incomplete, and missed exactly the failure it exis…promoted
AST-086the payload checker's own scope list was already stale, including for itselfpromoted
AST-087the same-day orchestrator margin fix was not applied to the role budgets it sits besidepromoted
AST-088the fix for a stale hardcoded list wrote a new hardcoded assumption beside itpromoted
AST-091install.sh overwrites PROJECT_NAME on re-staging without --project-namepromoted
AST-093A fix landing in .agents/skills/ but not .claude/skills/ is unreachable on the runtime that l…promoted
AST-104herdr agent start rejects uppercase in agent names, but dispatch convention generates thempromoted
AST-108A Monitor with no timeout_ms caps an hour-long watch at five minutespromoted
AST-109Cleanup command aimed at the worktree root, where the target has never livedpromoted
AST-111A check that validates the rows it finds never notices the row that is missingpromoted
AST-114Splitting submission into two steps left the watch armed against the wrong onepromoted
AST-117A worktree isolates git, not a tool that writes to a fixed pathpromoted
AST-120A verification that fired twice on immutable input and disagreed with itself, cause unknownpromoted
AST-127The runnable example contradicted the prose eight lines below itpromoted
AST-128Only the adapter is ever standing where both files existpromoted
AST-129The receipt was a producer with no reader, and it hid the one fact that had readerspromoted

65 dòng chưa buộc vào file nào

71 trên 136 dòng có ít nhất một file mang nó. 65 dòng còn lại chưa trỏ về đâu. Chúng là quan sát đã ghi mà chưa thành thứ gì bắt buộc.

Tôi giữ nguyên chúng trong bảng thay vì lọc đi, và cũng không định dọn cho con số đẹp lên. Một ledger chỉ hiện phần đã khép thì không còn dùng để tự kiểm được nữa; tới lúc đó nó là tài liệu bán hàng. Phần mồ côi cũng là cách đọc thật nhất về chỗ hệ thống này còn mỏng: chỗ nào dồn nhiều dòng chưa buộc, chỗ đó tôi mới quan sát chứ chưa sửa. Bạn nhìn thấy đúng những gì tôi nhìn thấy khi mở file đó ra.

20 commit gần nhất có dòng Ledger:

  1. 544aea22026-09-09site: task, feature, requirement in boldnone.
  2. 9bfaa0e2026-09-09site: say what a ticket is before dispatching onenone.
  3. 01f5bef2026-09-09site: English team caption matchesnone.
  4. fb08dbc2026-09-09site: team picture caption from the client's seatnone.
  5. 01b3a052026-09-09site: English pane label matchesnone.
  6. 267c39b2026-09-09site: command pane label reads "Start agent qua CLI"none.
  7. f9737882026-09-08site: show the orchestrator table verbatimnone.
  8. 483d49d2026-09-08site: roles carry their model and effort, and say the owner can change themnone.
  9. da237cf2026-09-08site: design docs follow the single framenone.
  10. c072e532026-09-08site: one island width, Home in the navnone.
  11. 9e2f31d2026-09-08site: 404 chrome follows the address languagenone.
  12. c835b282026-09-08site: one nav geometry on every pagenone.
  13. 25f2bcf2026-09-08site: Vietnamese for developers, IT terms kept in Englishnone.
  14. cb6c5b62026-09-08site: discovery order, comms around dispatch, photo placeholdersnone.
  15. 40c0a3b2026-09-08site: brand and tool names in boldnone.
  16. 037f2822026-09-08site: launch commands show where effort goes per runtimenone.
  17. a93788f2026-09-08site: five explaining sections under the heronone.
  18. 33ad7912026-09-07site: onward links in one professional formnone.
  19. c99e7602026-09-07site: highlight the positioning phrases, bold the tool namesnone.
  20. 9473e5a2026-09-07site: requirements and install as two sectionsnone.