Điều gì đang xảy ra → nên làm gì
Tra theo triệu chứng chứ không phải theo tiêu đề. Dưới mục "nên làm gì" là liên kết nhảy tới đoạn viết về cách xử lý đó. Danh sách bài viết nằm ở cuối trang này, ngoài bảng tra ngược.
Bảng này giả định bạn dùng Claude Code (agent lập trình của Anthropic). hook, CLAUDE.md, subagent và auto memory là tên các tính năng của nó.
Câu mà con người gõ khi có sự cố
「Hãy xoá hết todo. Xem https://typing-tube.net/articles/vi/lookup.md, nhìn lại phiên làm việc này và kiểm tra xem có gì sai không.」
Ở đây chỉ ra được danh sách vấn đề. Sửa thế nào là do bạn quyết định, theo dự án của bạn.
| Điều gì đang xảy ra | Hướng xử lý |
|---|---|
| No.1 Mỗi lần AI chạy test, hàng chục nghìn dòng output lại tràn vào context |
Ví dụ:Gom mọi lần chạy test vào một wrapper, chỉ trả về AI phần tóm tắt lỗi. |
| No.2 AI càng lưu nhiều ghi chú kiến thức, mọi phiên làm việc sau càng phải đọc nhiều hơn |
Ví dụ:Bắt đọc checklist trước khi ghi memory, và chỉ để 1 dòng trong file luôn được đọc. |
| No.3 Test vẫn pass, nhưng không rõ nó có thực sự bảo vệ được điều gì hay không |
Ví dụ:Yêu cầu AI thực hiện mutation testing. |
| No.4 Có skill đã đăng ký, nhưng lúc AI dùng lúc không |
Ví dụ:Chặn cách gọi sai ngay từ đầu vào, và chỉ đến đúng tài liệu cần đọc. |
| No.5 Việc đã giao cho sub-agent thì không thấy nó đang làm gì cho tới khi xong |
Ví dụ:Lập danh sách việc được phép giao, và kiểm tra bằng hook trước khi khởi chạy. |
| No.6 Càng thêm rule vào file chỉ dẫn, các rule thêm trước đó càng ít được tuân theo |
Ví dụ:Chuyển từng điều "không được làm X" thành một automated test phát hiện vi phạm. |
| No.7 Memory dùng chung giữa các phiên chạy song song trở nên lộn xộn, cho đọc chính sách cũng không cải thiện |
Ví dụ:Giữ nguyên nội dung, chỉ đổi thời điểm: hiển thị ngay sau khi lưu. |
| No.8 Dù đã viết sẵn cách xử lý một lỗi, lần sau AI vẫn mắc lại đúng lỗi đó |
Ví dụ:Ngay khi phát hiện lỗi, tự động chèn chính sách retry vào. |
| No.9 Dù đã đọc ghi chú bàn giao và báo cáo hoàn thành, phần bất lợi vẫn bị thiếu |
Ví dụ:Luôn đặt con số do máy đếm ngay cạnh báo cáo hoàn thành. |
| No.10 Con số máy đếm ra lại biến thành con số khác vào lúc tới được báo cáo |
Ví dụ:Gắn một tiền tố cố định vào dòng số liệu, và dùng hook để kiểm tra xem có được copy nguyên văn không. |
| No.11 Ngắt lời AI giữa chừng khi nó đang làm việc thì mọi thứ sau đó bị rối |
Ví dụ:Không ngắt lời khi đang làm việc, hãy chờ đến mốc dừng. Để cơ chế xử lý việc ngắt lời. |
| No.12 Đến cuối phiên làm việc, chưa rõ nên đọc gì và không cần đọc gì |
Ví dụ:Không đọc thành phẩm lẫn log, chỉ xét đạt/không đạt qua exit code. |
| No.13 Một đề xuất đã bị từ chối lại quay lại ở phiên sau |
Ví dụ:Gom các quyết định đã bị từ chối vào một tài liệu duy nhất. |
| No.14 Dù đã viết một dòng cấm, nó vẫn bị diễn giải rộng ra hoặc hẹp lại |
Ví dụ:Với mỗi điều cấm, viết "lý do" ngay cạnh kết luận. |
| No.15 Điều cấm viết đúng nhưng không được tuân theo, và mỗi lần lại có người hỏi lại |
Ví dụ:Với mỗi điều cấm, viết "phạm vi áp dụng" và liệt kê từng ranh giới hay gây phân vân. |
| No.16 Đưa cùng một chỉ dẫn cho nhiều sub-agent thì kết quả trả về mỗi lần một hình dạng khác nhau |
Ví dụ:Trong danh sách việc được phép giao, ghi rõ input cần có trước khi khởi chạy. |
| No.17 Các điều cấm không có automated test cứ chồng chất lên, chỉ tồn tại như chữ trên giấy |
Ví dụ:Với mỗi điều cấm, ghi rõ có automated test tương ứng hay không. |
| No.18 Mỗi lần AI làm xong việc đều kết thúc bằng câu "vui lòng mở màn hình kiểm tra giúp" |
Ví dụ:Xét đạt/không đạt bằng dữ liệu còn lại, không nhìn giao diện. |
| No.19 Mỗi lần AI nói điều gì hơi lệch, chính bạn lại là người phải giải thích và sửa lại |
Ví dụ:Không để người giải thích rồi sửa, mà trả lời qua thông báo lỗi của hook và automated test. |
| No.20 Danh sách các quyết định đã bị từ chối cứ dài thêm, có vẻ sẽ đến lúc không ai đọc nữa |
Ví dụ:Đưa các đề xuất bị từ chối vào mục "đề xuất không áp dụng" ở cuối. |
| No.21 Dòng "nhất định phải chạy lệnh này" trong file chỉ dẫn cứ tồn tại mãi, không giảm đi |
Ví dụ:Đối chiếu xem lệnh file chỉ dẫn ghi "nhất định phải chạy" có tồn tại trong cơ chế hay không. |
| No.22 Đã viết rõ cả cách làm mà đưa ra rồi, kết quả sửa vẫn không đúng như vậy |
Ví dụ:Không chỉ dẫn quy trình, chỉ quyết định input cần có trước khi bắt đầu. |
| No.23 Báo lỗi lần nào cũng phải tự viết lại các bước thao tác và triệu chứng |
Ví dụ:Chỉ để người viết đúng một câu triệu chứng, phần còn lại thu thập tự động. |
| No.24 Công gõ "hãy đưa kế hoạch trước" mỗi lần vẫn cứ lặp lại |
Ví dụ:Chỉ cần đặt sẵn một tài liệu thiết kế, AI sẽ theo đúng thể thức đó. |
| No.25 Những dòng càng muốn được tuân theo lại càng viết nhấn mạnh, nhưng không biết có hiệu quả hay không |
Ví dụ:Bỏ việc đo hiệu quả, thay vào đó đếm số dòng nhấn mạnh và đặt ngưỡng trên. |
| No.26 Thành phẩm sub-agent trả về có hình dạng khác với dự tính |
Ví dụ:Quyết định trước điều kiện chấp nhận thành phẩm, trước khi giao việc. |
| No.27 Tìm ra một chỗ sai thì lại muốn hỏi vặn "đã đọc kỹ chưa vậy" |
Ví dụ:Không hỏi vặn, mà hỏi theo mẫu "chẳng phải ... hay sao?". |
| No.28 Trả lời "không phải vậy" cho câu trả lời nhận được cũng không làm nó tốt hơn |
Ví dụ:Không để người chỉ ra, mà hiển thị điều cấm cùng diff ngay sau khi lưu. |
| No.29 AI nói về nội dung một file như thể đã mở nó, dù thực ra chưa mở |
Ví dụ:Bắt ghi cùng một định danh ở cả nơi tham chiếu lẫn nơi triển khai, rồi dùng automated test để kiểm tra định danh đó có thực sự tồn tại không. |
| No.30 AI cứ hỏi "chọn A hay B" liên tục, khiến công việc dừng lại chờ bạn quyết định |
Ví dụ:Không trả lời ngay, mà để cơ chế quyết định tiêu chí lựa chọn. |
| No.31 AI đang làm review, nhưng không rõ nó bỏ sót phần nào |
Ví dụ:Từ bên ngoài, đếm và tìm ra automated test nào quét mà không có ngưỡng dưới về số lượng. |
| No.32 Ảnh chụp màn hình cứ chồng chất, nhưng không rõ ảnh nào xác nhận điều gì |
Ví dụ:Bắt viết "đang xác minh điều gì" trước khi chụp, và thử cách rẻ nhất trước. |
| No.33 Đã đặt bước bắt buộc phải khai báo, nhưng không đếm được bao nhiêu lần chạy đã bỏ qua bước đó |
Ví dụ:Bắt viết "đang xác minh điều gì" trước khi chụp hay chạy E2E, chưa viết thì không cho chạy. |
| No.34 Code không đổi mà cùng một test vẫn chạy lại, và vẫn phải chờ thêm lần nữa |
Ví dụ:Cho phép đọc lại log lần trước, khỏi phải chạy lại cùng một lần. |
| No.35 Chẳng có gì hỏng cả mà vẫn hiện ra một loạt lỗi lạ chưa từng thấy |
Ví dụ:Lấy exclusive lock khi chạy test, không lấy được thì không chạy. |
| No.36 Báo cáo "test đã pass" không nói rõ phần nào đã không được chạy |
Ví dụ:Mặc định bỏ qua test nặng, và luôn in ra danh sách khu vực chưa chạy. |
| No.37 Không có cách nào để biết sau này liệu một chỉ dẫn quy định cách làm có thực sự được tuân theo hay không |
Ví dụ:Không viết chỉ dẫn mạnh hơn, mà để dấu vết tuân theo quy trình lưu lại trong thành phẩm. |
| No.38 Wrapper đã đặt sẵn dần dần lại bị bỏ, quay về dùng lệnh gốc |
Ví dụ:Không viết chỉ dẫn mạnh hơn, mà xem còn lý do quay về lệnh gốc hay không. |
| No.39 Hỏi cùng một câu nhiều lần thì mỗi lần câu trả lời lại khác nhau. Gộp lại thì có gì đó bị mất |
Ví dụ:Trước khi gộp lại, in ra bao nhiêu trong số bao nhiêu đã nêu từng loại nhận xét. |
| No.40 Không biết được dòng "nếu cần thì hãy làm X" có từng thực sự được kích hoạt hay không |
Ví dụ:Không viết "nếu cần thì", mà bắt buộc phải qua bước đó mới được đi tiếp. |
| No.41 Bảo "hãy suy nghĩ lại lần nữa" thì câu trả lời đổi khác, nhưng không rõ AI đã thực sự hiểu ra chưa |
Ví dụ:Không trả lại yêu cầu làm lại, mà chỉ ra cụ thể tiền đề nào sai. |
| No.42 Viết "đừng đoán mò" thì AI bắt đầu quay lại mà chẳng làm ra được gì cả |
Ví dụ:Không chỉ đưa điều cấm, mà kèm theo lối thoát để có thể ghi "không áp dụng". |
| No.43 Cuộc trò chuyện đang suôn sẻ càng kéo dài, công sức để kiểm chứng lại càng tăng |
Ví dụ:Kết thúc phiên tại mỗi mốc, và bắt đầu việc tiếp theo trong phiên mới. |
| No.44 Mọi thành phẩm đều đúng cả, nhưng lãng phí không hiện ra trong đó cứ tích tụ dần |
Ví dụ:Khi thành phẩm đã đủ, tổng hợp một lần chính work log. |
| No.45 Ghi chú kiến thức để lại cho người sau dần lệch khỏi thực tế và trở nên lỗi thời |
Ví dụ:Không ghi kiến thức vào tài liệu, mà nhúng vào thông báo lúc dừng lại. |
| No.46 Cứ đào sâu tìm nguyên nhân, và vẫn tiếp tục đọc ngay cả sau khi đã có câu trả lời |
Ví dụ:Đếm số lần đọc liên tiếp không thay đổi gì, và viết điều kiện dừng trước khi đào sâu. |
| No.47 Chọn mô hình có đơn giá rẻ nhất làm mặc định mà không đo xem nó có phù hợp mục đích hay không |
Ví dụ:Giao cùng việc cho cả mô hình rẻ và đắt, đếm số lượt và khối lượng rồi mới quyết định. |
| No.48 Khi có gì đó không ổn, cách xử lý là nâng cấp mô hình chứ không phải sửa cơ chế |
Ví dụ:Giao cùng việc cho cả hai mô hình, biến chỗ chỉ mô hình rẻ bị hỏng thành một automated test. |
| No.49 Việc tra cứu mà bản thân phiên chính tự làm xong được vẫn cứ giao cho sub-agent cho chắc |
Ví dụ:Không giao việc nếu agent cha đã có sẵn tiền đề, chỉ giao phần đọc mà agent cha chưa có. |
| No.50 Cứ chia ra làm 4 rồi chạy song song cùng lúc, không vì lý do gì rõ ràng |
Ví dụ:Chỉ giao cho sub-agent lượng việc vừa trả lời trong một lượt. Chi phí do số lượt qua lại quyết định, không phải số lượng. |
| No.53 "Xem luôn cả chỗ này nữa" bị chen ngang từ bên ngoài vào giữa lúc đang làm |
Ví dụ:Chờ đến mốc dừng rồi mới yêu cầu, với phạm vi đã thu hẹp. Thêm câu "nếu đã đủ thì hãy nói rõ là đã đủ". |
| No.52 Đang cố quyết định dùng mô hình nào bằng cách so sánh trực tiếp |
Ví dụ:Trước khi so sánh, đếm xem việc so sánh đó tốn công bằng bao nhiêu cơ chế. |
| No.51 Lấy "không thấy khác biệt" làm lý do để kết thúc việc kiểm chứng |
Ví dụ:Trước khi kết thúc, đếm lại kết quả bị loại khỏi tổng hợp và các mục bằng 0 ở mọi điều kiện. |
| No.54 Từ một ngày nào đó AI làm việc khác đi, dù bạn không thay đổi chỉ dẫn lẫn thiết lập |
Ví dụ:Không ghi điều xung đột với chỉ dẫn từ sản phẩm, chỉ bổ sung điều chỉ dẫn đó chưa quy định. Muốn đổi cách làm thì chuyển thiết lập. |
Danh sách bài viết
Từ đây trở xuống không phải là bảng tra ngược, mà là liên kết tới các bài viết, theo từng loạt bài, từ phần mở đầu tới phần cuối.
はじめに —— 3 つの連載を、1 冊に
バイブコーディングにおける読まない技術
- 読まない技術 序論 AIの出力を、もうほとんど読んでいない
- 読まない技術 第1回 テスト結果を読まない技術
- 読まない技術 第2回 メモリを読まない技術
- 読まない技術 第3回 単体テストを読まない技術
- 読まない技術 第4回 スキルを使わない技術
- 読まない技術 第5回 サブエージェントの出力だけは読め
- 読まない技術 第6回 ルールを読まない技術
- 読まない技術 第7回 共有メモリを整理しない技術
- 読まない技術 第8回 修正履歴を読まない技術
- 読まない技術 第9回 引き継ぎを読まない技術
- 読まない技術 第10回 AIに要約しろと言わない技術
- 読まない技術 第11回 口を挟まない技術
- 読まない技術 第12回 作業結果を読まない技術
- 読まない技術 最終回 AIの出力を、ほとんど読まなくなった
AIの意見を聞かない技術
言わない技術
- 言わない技術 序論 AI に指示することが、ほとんどなくなった
- 言わない技術 第1回 検証を指示しない技術
- 言わない技術 第2回 具体的な指示を出さない技術
- 言わない技術 第3回 不具合詳細を書かない技術
- 言わない技術 第4回 計画を書けと言わない技術
- 言わない技術 第5回 念を押さない技術
- 言わない技術 第6回 サブエージェントの出力だけは、細かく指示しろ
- 言わない技術 第7回 AI を問い詰めない技術
- 言わない技術 第8回 AI にダメ出ししない技術
- 言わない技術 第9回 AI に考えさせない技術
- 言わない技術 第10回 質問に答えない技術
- 言わない技術 第11回 AI にレビューをさせない技術
- 言わない技術 最終回 何もしない技術
付録
はじめに —— 前巻の続きを、もう 1 冊に
確かめない技術
動かさない技術
追わない技術
番外編
- 番外編 A-1 整理する技術 —— 記録が増えたときに、何が起きているか
- 番外編 A-2 指示を残す技術 —— 「調べるだけ」が通らなかった日
- 番外編 A-3 参照するタイミングを変える技術 —— 2,000 行の壁
- 番外編 A-4 導出を依頼者の言葉と分ける技術 —— 誰も言っていない条件が、memory に載った日
- 番外編 A-5 memory を要約しない技術 —— 整理から、要約を抜く
- 番外編 A-6 責務で線を引く技術 —— 仕組みが増えたときに、どれを消すか
- 番外編 A-7 読まれたかを確かめる技術 —— 確かめるのをやめて、読めていない形を止めた
- 番外編 A-8 面積で数える技術 —— 読ませた量で数えていたら、102 倍外していました
- 番外編 A-9 ルールを短くする技術 —— 読みに来るのは、止められた直後の人です
- 番外編 B-1 連載を本にする技術 —— 本単位のスイッチでは、足りなかった日
- 番外編 C-1 校正の方法に、先に本編を当てる技術 —— AI が書いた方針に、その本自身の地雷が 10 個あった日
- 番外編 C-2 仕組みと人を分ける技術 —— 自動テストを置いたその手で、自動テストの外側で 2 度転んだ日
- 番外編 C-3 要素ごとに観点を変える技術 —— 一様に当てた点検が、要素をまたいだところで数を落とす
- 番外編 C-4 似た指示語を読み分ける技術 —— 1 字違いで、別の作業を頼んだことになる
- 番外編 C-5 作業の流れを見る技術 —— 終わりにしたつもりの日に、まだ起きていたこと
- 番外編 C-6 作業を進める技術 —— 選ぶ場面が、1 つも残らなかった日
- 番外編 C-7 読まずに止める技術 —— 決まったはずの判断が、1 分後に取り消されました
- 番外編 D-1 症状で読む —— 片付いた報告に、症状が混ざります
- 番外編 D-2 根拠で読む —— 突き合わせた報告に、症状が混ざります
- あとがき —— 本当の事実はどうでもいい話