---
title: "ปัญหาที่เกิดขึ้นใน AI coding ดัชนีย้อนกลับ (อาการ → ต้องทำอะไร)"
author: garplab
publisher: TypingTube
license: CC BY 4.0
license_url: https://creativecommons.org/licenses/by/4.0/
license_scope: เนื้อหาทั้งหมดของเอกสารนี้ (ไม่รวม frontmatter นี้)
language: th
canonical: https://typing-tube.net/articles/th/lookup
---

# ปัญหาที่เกิดขึ้นใน AI coding ดัชนีย้อนกลับ (อาการ → ต้องทำอะไร)

ตารางค้นหาตามอาการแทนที่จะค้นตามชื่อเรื่อง ลิงก์ "รายละเอียด" จะพาไปยังหัวข้อบทความที่เขียนวิธีแก้นั้นพร้อมข้อมูลวัดผลจริง

ตารางนี้อ้างอิง Claude Code (เอเจนต์เขียนโค้ดของ Anthropic) โดย hook, CLAUDE.md, subagent และ auto memory คือชื่อฟีเจอร์ของมัน

| สิ่งที่กำลังเกิดขึ้น | ต้องทำอะไร | ฟีเจอร์ของ Claude Code | รายละเอียด |
|---|---|---|---|
| ทุกครั้งที่ AI รันเทสต์ เอาต์พุตหลายหมื่นบรรทัดจะไหลเข้ามาใน context | รวมการรันเทสต์ทั้งหมดให้ผ่าน wrapper script ตัวเดียว เขียนเอาต์พุตทั้งหมดลงไฟล์ log แล้วส่งกลับให้ AI แค่สรุปรายการที่ล้มเหลวเท่านั้น. | `context window` / `wrapper script` / `fixed-prefix count line ([observed])` | [読まない技術 第1回：テスト結果を読まない技術](https://typing-tube.net/articles/cd93e0c5cac832#cd93e0c5cac832-4eea2df8) |
| ยิ่ง AI บันทึกความรู้ที่ได้เรียนรู้ไว้มากเท่าไหร่ ทุกเซสชันในอนาคตก็ยิ่งต้องอ่านมากขึ้นเท่านั้น | ใช้ PreToolUse hook ที่ทำงานก่อนเขียนความจำทันที เพื่อให้ AI อ่าน checklist ก่อน แล้วเหลือไว้ในไฟล์คำสั่ง (CLAUDE.md) แค่บรรทัดเดียวว่า "อ่านก่อนเขียน". | `MEMORY.md` / `loaded at session start` / `context rot` | [読まない技術 第2回：メモリを読まない技術](https://typing-tube.net/articles/384477896fec22#384477896fec22-4eea2df8) |
| เทสต์ผ่านหมด แต่ไม่รู้ว่ามันปกป้องอะไรจริง ๆ หรือเปล่า | เขียนนโยบายเรื่อง mutation testing (วิธีจงใจทำให้โค้ดพังเพื่อดูว่าเทสต์จับได้หรือไม่) เป็นเอกสารหน้าเดียว แล้วให้ AI อ่านทุกครั้งที่ขอให้ตรวจสอบเทสต์. | `mutation testing` / `positive control` / `vacuous truth` | [読まない技術 第3回：単体テストを読まない技術](https://typing-tube.net/articles/e4ad91d2fd6c67#e4ad91d2fd6c67-4eea2df8) |
| บางครั้ง AI ก็ใช้ skill ที่ลงทะเบียนไว้ บางครั้งก็ไม่ใช้ | เก็บคำสั่งไว้เป็นสคริปต์ธรรมดา บล็อกการเรียกใช้ที่ผิดด้วย PreToolUse hook แล้วชี้ให้ AI ไปอ่านเอกสารที่ควรอ่าน. | `PreToolUse hook (Bash matcher)` / `hook stderr + exit 2` / `mission` | [読まない技術 第4回：スキルを使わない技術](https://typing-tube.net/articles/8f9ae8791b448d#8f9ae8791b448d-4eea2df8) |
| เมื่อมอบงานให้ sub-agent แล้ว จะมองไม่เห็นว่าเกิดอะไรขึ้นจนกว่างานจะเสร็จ | กำหนดใน YAML ว่างานแบบไหนมอบให้ sub-agent ได้ และไฟล์อินพุตใดต้องมีอยู่ก่อนเริ่มงาน แล้วตรวจสอบด้วย hook ก่อนเริ่ม. | `subagent (Agent tool)` / `subagent (no parent context)` / `contract (inputs / outputs / acceptance)` | [読まない技術 第5回：サブエージェントの出力だけは読め](https://typing-tube.net/articles/62f714d7c2b599#62f714d7c2b599-7e6cc5ce) |
| ยิ่งเพิ่มกฎในไฟล์คำสั่งมากเท่าไหร่ กฎที่เพิ่มไว้ก่อนหน้าก็ยิ่งไม่ถูกปฏิบัติตาม | เขียนกฎ "ห้ามทำ X" แต่ละข้อใหม่ทีละข้อ ให้กลายเป็น automated test (Minitest) ที่ตรวจจับการละเมิดได้. | `CLAUDE.md` / `Claude Code hooks (PreToolUse / PostToolUse / Stop / SubagentStop)` / `hook contract (proof of reading)` | [読まない技術 第6回：ルールを読まない技術](https://typing-tube.net/articles/569d598941c00f#569d598941c00f-4eea2df8) |
| ความจำที่เซสชันคู่ขนานใช้ร่วมกันเริ่มยุ่งเหยิง แม้จะให้อ่านนโยบายแล้วก็ไม่ได้ผล | ย้ายไฟล์นโยบายเดียวกันไปไว้ใน PostToolUse hook แล้วแสดงคู่กับ diff ทันทีหลังบันทึก โดยไม่เปลี่ยนเนื้อหา เปลี่ยนแค่จังหวะเวลาเท่านั้น. | `MEMORY.md` / `concurrent test runs` / `hooks / automated tests` | [読まない技術 第7回：共有メモリを整理しない技術](https://typing-tube.net/articles/83c46d1e6b2591#83c46d1e6b2591-4eea2df8) |
| แม้จะเขียนวิธีรับมือกับความล้มเหลวไว้แล้ว AI ก็ยังทำผิดซ้ำแบบเดิมในครั้งถัดไป | สรุปนโยบายตอน retry ไว้ในไฟล์สั้น ๆ ไม่กี่บรรทัด แล้วให้ hook ที่ตรวจจับความล้มเหลวแทรกเข้าไปโดยอัตโนมัติ. | `auto memory (feedback_*)` | [読まない技術 第8回：修正履歴を読まない技術](https://typing-tube.net/articles/f7c9c30f567aee#f7c9c30f567aee-4eea2df8) |
| แม้จะอ่านข้อความส่งต่องานและรายงานความสำเร็จแล้ว ส่วนที่ไม่สะดวกใจก็ยังหายไป | วางตัวเลขที่ได้จากการรันคำสั่งเชิงกลไก เช่น git diff --stat ไว้ข้างรายงานความสำเร็จทุกครั้ง. | `handoff` / `test summary line (full log in a file)` | [読まない技術 第9回：引き継ぎを読まない技術](https://typing-tube.net/articles/a43b57a94d2216#a43b57a94d2216-4eea2df8) |
| ตัวเลขที่เครื่องนับได้เปลี่ยนเป็นตัวเลขอื่นก่อนจะไปถึงรายงาน | ใส่ prefix ตายตัวไว้หน้าบรรทัดตัวเลข แล้วให้ hook ตรวจสอบว่าถูกคัดลอกมาตรงตัวหรือไม่. | `machine-counted numbers ([observed] / git diff --stat)` / `test summary line (full log in a file)` / `self-report (bias toward completion)` | [読まない技術 第10回：AIに要約しろと言わない技術](https://typing-tube.net/articles/yomanai-10-no-summary#yomanai-10-no-summary-4eea2df8) |
| การขัดจังหวะ AI ระหว่างทำงานทำให้การทำงานหลังจากนั้นพังไปหมด | แทนที่จะให้คนขัดจังหวะระหว่างทำงาน ให้ PostToolUse hook ที่ส่งนโยบายกลับทันทีหลังบันทึก และ hook ที่ตรวจจับความล้มเหลวแล้วส่งงานกลับ เป็นผู้เข้าแทรกแซง ส่วนคนรอจนถึงจุดแบ่งงาน. | `user message during a task` / `recency` / `context window` | [読まない技術 第11回：口を挟まない技術](https://typing-tube.net/articles/6c6d2e4f80a649#6c6d2e4f80a649-e4cb60ea) |
| ตอนจบเซสชัน ยังไม่มีการตัดสินใจว่าอะไรควรอ่านและอะไรไม่ต้องอ่าน | ไม่ต้องอ่านทั้งผลงานและ log การทำงาน ให้ตัดสินผ่านหรือไม่ผ่านจาก exit code ของเทสต์หรือ linter เท่านั้น. | `self-report (bias toward completion)` / `machine-counted numbers ([observed] / git diff --stat)` / `exit code (pass / fail)` | [読まない技術 第12回：作業結果を読まない技術](https://typing-tube.net/articles/1769779c2f1b4b#1769779c2f1b4b-4eea2df8) |
| ข้อเสนอที่เคยปฏิเสธไปแล้วกลับมาอีกครั้งในเซสชันถัดไป | รวมการตัดสินใจที่ปฏิเสธไปแล้วทั้งหมดไว้ในเอกสารเดียว โดยใช้รูปแบบตายตัว. |  | [AIの意見を聞かない技術 第1回：提案を検討しない技術](https://typing-tube.net/articles/kikanai-01-no-review#kikanai-01-no-review-9e2b31e8) |
| แม้จะเขียนข้อห้ามไว้แค่บรรทัดเดียว ก็ยังถูกตีความทั้งกว้างเกินไปและแคบเกินไป | ในเอกสารฉบับเดียวที่รวบรวมการตัดสินใจที่ปฏิเสธไปแล้ว (เช่น non_goals.md) ให้เพิ่มหัวข้อ "เหตุผล" คู่กับข้อสรุปในข้อห้ามแต่ละข้อ. |  | [AIの意見を聞かない技術 第2回：禁止を書かない技術](https://typing-tube.net/articles/kikanai-02-reason#kikanai-02-reason-2973ce11) |
| ข้อห้ามเขียนไว้ถูกต้องแล้วแต่ไม่ถูกปฏิบัติตาม แล้วก็มีคนมาถามซ้ำทุกครั้ง | ในเอกสารการปฏิเสธ ให้เพิ่มหัวข้อ "ขอบเขตการบังคับใช้" ในข้อห้ามแต่ละข้อ แล้วเขียนกรณีคาบเส้นที่ทำให้ลังเลไว้ทีละบรรทัด. | `gap between goal pressure and spec` / `rule-to-test mapping` | [AIの意見を聞かない技術 第3回：禁止ルールを作らない技術](https://typing-tube.net/articles/kikanai-03-scope#kikanai-03-scope-1db3e01a) |
| แจกคำสั่งเดียวกันให้ sub-agent หลายตัว แต่ผลลัพธ์ที่ได้กลับมามีรูปแบบต่างกันไปในแต่ละตัว | ระบุไฟล์อินพุตที่ต้องเตรียมไว้ก่อนเริ่มงานให้ชัดเจนในรายการงานที่มอบให้ sub-agent ได้. | `subagent mission catalog + launch hook` / `contract (inputs / outputs / acceptance)` / `required input files` | [AIの意見を聞かない技術 第4回：サブエージェントの入力だけは、確かめろ](https://typing-tube.net/articles/kikanai-04-subagent-input#kikanai-04-subagent-input-0b96e6a8) |
| ข้อห้ามที่ไม่มี automated test คอยตรวจ ก็ยังคงเป็นแค่ข้อความที่เขียนทิ้งไว้เพิ่มขึ้นเรื่อย ๆ | ในรายการของเอกสารการปฏิเสธ ให้เพิ่มหัวข้อ "การตรวจสอบเชิงกลไก" แล้วระบุทีละข้อว่ามี automated test (Minitest) รองรับหรือไม่. | `probabilistic compliance (p^n)` | [AIの意見を聞かない技術 第5回：自動テストを書かない技術](https://typing-tube.net/articles/kikanai-05-machine-check#kikanai-05-machine-check-0f82d02b) |
| งานของ AI จบลงด้วยคำว่า "กรุณาเปิดหน้าจอตรวจสอบ" ทุกครั้ง | เตรียม smoke test ด้วย Playwright ไว้หนึ่งชุด แล้วตัดสินผ่านหรือไม่ผ่านจาก record ที่อยู่ใน DB แทนที่จะดูหน้าตาของหน้าจอ. | `automatic error report from users` | [AIの意見を聞かない技術 第6回：AIの確認依頼を断る技術](https://typing-tube.net/articles/kikanai-06-production#kikanai-06-production-6c41de4e) |
| ทุกครั้งที่ AI พูดอะไรเพี้ยนไปนิดหน่อย เราต้องเป็นคนอธิบายและแก้ไขเอง | แทนที่จะให้คนอธิบายและแก้ไขความคลาดเคลื่อนเอง ให้เขียนข้อชี้แนะไว้ใน stderr ของ hook (exit 2) และในข้อความล้มเหลวของ automated test เพื่อให้เส้นทางที่ไปถึง AI เป็นทางนั้น. | `SendMessage (retry)` | [AIの意見を聞かない技術 第7回：AIの話を聞かない技術](https://typing-tube.net/articles/kikanai-07-no-listening#kikanai-07-no-listening-f900b392) |
| รายการการตัดสินใจที่ปฏิเสธไปเพิ่มขึ้นเรื่อย ๆ จนดูเหมือนสักวันจะไม่มีใครอ่านอีก | เพิ่มหัวข้อ "ข้อเสนอที่ไม่รับมาใช้" ไว้ท้ายเอกสารการปฏิเสธ แล้วบันทึกข้อเสนอที่ถูกปฏิเสธไว้ที่นั่น. | `MEMORY.md` / `context rot` | [AIの意見を聞かない技術 第8回：ルールを整理しない技術](https://typing-tube.net/articles/kikanai-08-no-inventory#kikanai-08-no-inventory-d72023ae) |
| บรรทัด "ต้องรันทุกครั้ง" ในไฟล์คำสั่งไม่เคยลดจำนวนลงเลย | ใช้ automated test ตรวจสอบไขว้ว่าคำสั่งที่ไฟล์คำสั่งเขียนว่า "ต้องรันทุกครั้ง" มีอยู่ใน pre-commit hook ด้วยหรือไม่. | `CLAUDE.md` / `Minitest` / `hooks / automated tests` | [言わない技術 第1回：検証を指示しない技術](https://typing-tube.net/articles/iwanai-01-no-verification#iwanai-01-no-verification-f9f3539e) |
| แม้จะเขียนวิธีทำไว้ให้ละเอียดแล้ว การแก้ไขที่ได้กลับมาก็ไม่ได้เป็นไปตามนั้น | แทนที่จะสั่งขั้นตอนวิธีทำ ให้กำหนดไฟล์อินพุตที่ต้องมีอยู่ก่อนเริ่ม sub-agent แยกตามแต่ละกรณีใช้งานแทน. | `per-mission guide document` / `presupposition` / `launch without a contract` | [言わない技術 第2回：具体的な指示を出さない技術](https://typing-tube.net/articles/iwanai-02-no-procedure#iwanai-02-no-procedure-e45dd403) |
| ทุกครั้งที่แจ้งบั๊ก ต้องเขียนขั้นตอนและอาการเองทุกครั้ง | ทำแบบฟอร์มแจ้งบั๊ก ให้คนพิมพ์แค่ประโยคเดียวบอกอาการ ส่วน URL ประวัติการใช้งาน และข้อมูลเบราว์เซอร์ให้ JavaScript เก็บอัตโนมัติ. | `bug report form (JS collects URL / actions / browser)` | [言わない技術 第3回：不具合詳細を書かない技術](https://typing-tube.net/articles/iwanai-03-no-bug-details#iwanai-03-no-bug-details-e45dd403) |
| การพิมพ์ "ขอแผนงานก่อน" ทุกครั้งกลายเป็นภาระที่ต้องทำซ้ำ ๆ | ไม่ต้องสร้างอะไรใหม่ แค่วางเอกสารออกแบบไว้หนึ่งฉบับ AI ก็จะอ่านเอกสารที่มีอยู่และทำตามรูปแบบเดียวกัน. |  | [言わない技術 第4回：計画を書けと言わない技術](https://typing-tube.net/articles/iwanai-04-no-plan-request#iwanai-04-no-plan-request-be44c158) |
| บรรทัดที่อยากให้ปฏิบัติตามมากที่สุดกลับเขียนเน้นย้ำแรงที่สุด แต่ก็ไม่รู้ว่าได้ผลจริงหรือเปล่า | เลิกวัดผลของการเน้นย้ำ แล้วนับจำนวนบรรทัดที่ใช้คำเน้นในไฟล์คำสั่งแทน พร้อมวาง automated test (ratchet) ที่จะล้มเหลวเมื่อจำนวนเกินเกณฑ์. | `emphasis count in CLAUDE.md` / `sycophancy` / `Dir.glob scan` | [言わない技術 第5回：念を押さない技術](https://typing-tube.net/articles/iwanai-05-no-emphasis#iwanai-05-no-emphasis-abb803f1) |
| ผลงานของ sub-agent กลับมาในรูปแบบที่ต่างจากที่คาดไว้ | กำหนดเงื่อนไขการรับผลงานของแต่ละกรณีใช้งาน sub-agent เช่น ชื่อไฟล์ รูปแบบ และรายการที่จำเป็น ไว้ในเอกสารฉบับเดียว. | `subagent (Agent tool)` / `contract (inputs / outputs / acceptance)` / `self-report (bias toward completion)` | [言わない技術 第6回：サブエージェントの出力だけは、細かく指示しろ](https://typing-tube.net/articles/iwanai-06-subagent-output#iwanai-06-subagent-output-633e9bd9) |
| เมื่อพบข้อผิดพลาด อดใจไม่ได้ที่จะถามว่า "อ่านจริง ๆ หรือเปล่า" | แทนที่จะถามซักไซ้ ให้กำหนดประโยคที่สองของคำขอทุกครั้งเป็นแม่แบบคำถามว่า "...ไม่ใช่หรือ". | `sycophancy` | [言わない技術 第7回：AI を問い詰めない技術](https://typing-tube.net/articles/iwanai-07-no-interrogation#iwanai-07-no-interrogation-293fc181) |
| แม้จะตอบกลับคำตอบที่ได้ว่า "ไม่ใช่แบบนี้" ผลลัพธ์ก็ไม่ดีขึ้น | แทนที่จะชี้ข้อผิดพลาดเอง ให้แสดงข้อห้ามที่ไม่มีทางเลือกอื่นผ่าน PostToolUse hook คู่กับ diff ทันทีหลังบันทึก. | `SendMessage (retry)` / `guarded_by + marker` / `over-triggering` | [言わない技術 第8回：AI にダメ出ししない技術](https://typing-tube.net/articles/iwanai-08-no-criticism#iwanai-08-no-criticism-e4cb60ea) |
| AI พูดถึงเนื้อหาของไฟล์ที่ยังไม่ได้เปิด ราวกับว่าเปิดอ่านไปแล้ว | ให้ AI เขียน marker ที่สอดคล้องกันทั้งในเอกสารที่อ้างอิงและในโค้ด แล้วตรวจสอบด้วย automated test ว่า marker นั้นมีอยู่จริง. | `hallucination` / `escape hatch (SKIP_*= / --no-verify)` / `marker` | [言わない技術 第9回：AI に考えさせない技術](https://typing-tube.net/articles/iwanai-09-no-guessing#iwanai-09-no-guessing-61ef1df2) |
| AI ถามซ้ำว่า "เลือก A หรือ B" จนมือหยุดชะงักรอการตัดสินใจ | เลิกตอบทันทีในจุดนั้น แล้วให้การตัดสินตัวเลือกเกิดขึ้นฝั่ง automated test หรือ hook แทน. |  | [言わない技術 第10回：質問に答えない技術](https://typing-tube.net/articles/iwanai-10-no-answering#iwanai-10-no-answering-0efdc39b) |
| ให้ AI รีวิวอยู่ แต่ไม่รู้ว่ามันไม่ได้ดูอะไรบ้าง | ใช้ automated test จากภายนอกที่นับจำนวน เพื่อตรวจจับ automated test ที่สแกนไฟล์แต่ไม่มีเงื่อนไขขั้นต่ำของจำนวน (เช่น assert_operator ... :>=). | `Minitest` / `vacuous truth` / `Dir.glob scan` | [言わない技術 第11回：AI にレビューをさせない技術](https://typing-tube.net/articles/iwanai-11-no-review#iwanai-11-no-review-659e23ad) |
| ภาพหน้าจอที่ถ่ายไว้เพิ่มขึ้นเรื่อย ๆ แต่ไม่รู้ว่าภาพไหนยืนยันอะไร | ก่อนตรวจสอบหน้าจอ ให้ตอบคำถามสองข้อคือ "กำลังยืนยันอะไร" และ "ทำไมวิธีที่ถูกกว่าถึงใช้ไม่ได้" พร้อมวางแนวทางหน้าเดียวให้ลองวิธีที่ถูกก่อน ตามลำดับ unit test → integration test → E2E. | `Playwright screenshot` / `verification ladder (unit → integration → E2E)` / `verification declaration file + PreToolUse hook` | [確かめない技術 第1回：スクリーンショットを撮らない技術](https://typing-tube.net/articles/tashikamenai-01-no-screenshots#tashikamenai-01-no-screenshots-d3d345e4) |
| วางขั้นตอนให้เขียนบันทึกไว้แล้ว แต่นับไม่ได้ว่ามีกี่ครั้งที่รันโดยไม่ได้เขียน | ก่อนถ่ายภาพหน้าจอหรือรัน E2E ให้เขียนไฟล์ประกาศว่า "จะยืนยันอะไร" (เช่น tmp/visual_verification.md) แล้วกำหนดให้การมีอยู่ของไฟล์นั้นเป็นเงื่อนไขของ PreToolUse hook เพื่อไม่ให้การถ่ายภาพหน้าจอหรือ E2E เริ่มทำงานได้ถ้าไม่มีไฟล์นั้น. | `verification declaration file + PreToolUse hook` / `Claude Code hooks (PreToolUse / PostToolUse / Stop / SubagentStop)` / `PreToolUse hook (Bash matcher)` | [確かめない技術 第2回：宣言を信じない技術](https://typing-tube.net/articles/tashikamenai-02-declaration-guard#tashikamenai-02-declaration-guard-4eea2df8) |
| โค้ดไม่ได้เปลี่ยนแปลง แต่เทสต์ชุดเดิมก็ยังรันซ้ำ ทำให้ต้องรอเสียเวลาไปด้วย | เพิ่ม option --last ให้ wrapper script ของเทสต์ เพื่อแสดง log ครั้งก่อนซ้ำแทนการรันใหม่. | `--last (replay the previous result)` / `mtime check` / `expensive entry point (screenshot / E2E / production)` | [確かめない技術 第3回：テストを再実行しない技術](https://typing-tube.net/articles/tashikamenai-03-no-rerun#tashikamenai-03-no-rerun-ffaed55c) |
| ไม่ได้ทำอะไรพังเลย แต่กลับมี error ที่ไม่เคยเห็นมาก่อนเรียงเต็มไปหมด | ให้ wrapper script ของเทสต์ล็อกแบบ exclusive (ใช้ความเป็น atomic ของ mkdir) และไม่รันถ้าล็อกไม่สำเร็จ. | `flaky failure` / `mkdir lock` / `concurrent test runs` | [確かめない技術 第4回：偽の失敗を読まない技術](https://typing-tube.net/articles/tashikamenai-04-false-failures#tashikamenai-04-false-failures-a29d752a) |
| รายงาน "เทสต์ผ่านแล้ว" ไม่ได้เขียนบอกว่าส่วนไหนที่ไม่ได้รัน | ติด tag ชื่อโดเมนให้ E2E ที่หนักแล้ว skip ไว้เป็นค่าเริ่มต้น พร้อมพิมพ์รายการโดเมนที่ไม่ได้รันออกมาทุกครั้ง. | `E2E area (E2E=<area>)` / `skipped-area count line` / `pass / fail by DB record` | [確かめない技術 第5回：全部走らせない技術](https://typing-tube.net/articles/tashikamenai-05-selective-e2e#tashikamenai-05-selective-e2e-bb037847) |
| ไม่มีทางรู้ในภายหลังว่าคำสั่งที่ระบุวิธีดำเนินงานถูกปฏิบัติตามจริงหรือไม่ | เมื่ออยากให้ปฏิบัติตามขั้นตอน อย่าเพิ่มความเข้มของคำสั่ง แต่เปลี่ยนให้ร่องรอยของการทำตามขั้นตอนนั้นปรากฏอยู่ในผลงาน (เช่น ให้พิมพ์หนึ่งบรรทัดต่อไฟล์ที่เปิด). | `sycophancy` / `file existence check` / `tool_use count` | [動かさない技術 第1回：手順を守らせない技術](https://typing-tube.net/articles/ugokasanai-01-no-procedure-enforcement#ugokasanai-01-no-procedure-enforcement-129e096a) |
| wrapper ที่วางไว้ถูกเปลี่ยนกลับไปใช้คำสั่งดิบระหว่างทาง | เมื่ออยากให้ใช้ wrapper อย่าเพิ่มความเข้มของคำสั่ง แต่ตรวจสอบว่ายังมีเหตุผลให้ต้องกลับไปใช้คำสั่งดิบหรือไม่ นั่นหมายความว่า wrapper ยังขาดความสามารถบางอย่างอยู่. | `wrapper script` / `the raw command the model defaults to` / `workaround after exit 2` | [動かさない技術 第2回：ラッパーを使わせない技術](https://typing-tube.net/articles/ugokasanai-02-no-wrapper-enforcement#ugokasanai-02-no-wrapper-enforcement-129e096a) |
| ถามคำถามเดิมซ้ำหลายครั้งก็ได้คำตอบต่างกันทุกครั้ง พอสรุปรวมก็มีบางอย่างหายไป | ก่อนรวมคำตอบหลายชุดให้เป็นหนึ่งเดียว ให้พิมพ์จำนวนครั้งที่แต่ละประเภทของข้อสังเกตปรากฏ ว่ากี่ในกี่คนที่ยกขึ้นมา. | `one subagent run` / `answer key` | [動かさない技術 第3回：集めない技術](https://typing-tube.net/articles/ugokasanai-03-no-aggregation#ugokasanai-03-no-aggregation-f7af24f4) |
| ไม่มีทางรู้ว่าบรรทัดที่เขียนว่า "ถ้าจำเป็นให้ทำ X" เคยทำงานจริงหรือไม่ | อย่าเขียนคำสั่งแบบมีเงื่อนไขอย่าง "ถ้าจำเป็นให้ทำ X" แต่ให้บังคับขั้นตอนนั้นด้วย hook ที่ไม่ให้ไปต่อจนกว่าจะผ่านขั้นตอนนั้น. | `rule-to-test mapping` / `Claude Code hooks (PreToolUse / PostToolUse / Stop / SubagentStop)` / `file existence check` | [動かさない技術 第4回：役に立たない技術](https://typing-tube.net/articles/ugokasanai-04-no-conditional-instruction#ugokasanai-04-no-conditional-instruction-e45dd403) |
| การตอบว่า "ลองคิดใหม่อีกที" ทำให้คำตอบเปลี่ยนไป แต่ไม่รู้ว่า AI เข้าใจจริงหรือแค่เปลี่ยนตาม | แทนที่จะส่งกลับไปด้วย "ลองคิดใหม่อีกที" ให้ชี้เจาะจงว่าสมมติฐานข้อไหนผิด. | `sycophancy` / `SendMessage (retry)` / `guarded_by + marker` | [動かさない技術 第5回：選び直させない技術](https://typing-tube.net/articles/ugokasanai-05-no-reselection#ugokasanai-05-no-reselection-88f30148) |
| พอเขียนว่า "ห้ามเดา" AI ก็เริ่มกลับมาโดยไม่สร้างอะไรเลย | อย่าให้แค่ข้อห้ามอย่างเดียว ให้ระบุทางออกสำรองไปด้วย เช่น "ถ้าไม่มีกรณีที่ตรงกัน ให้พิมพ์ว่า 'ไม่มีกรณีที่เกี่ยวข้อง'". | `escape hatch (SKIP_*= / --no-verify)` / `hooks + automated tests + ratchet` / `hallucination` | [動かさない技術 第6回：逃げ道を塞がない技術](https://typing-tube.net/articles/ugokasanai-06-no-blocking-exits#ugokasanai-06-no-blocking-exits-420ce5bc) |
| ยิ่งดำเนินบทสนทนาที่ไปได้ด้วยดีต่อไปนานเท่าไหร่ ความพยายามในการตรวจสอบก็ยิ่งเพิ่มขึ้น | จบเซสชันทุกครั้งที่ถึงจุดแบ่งงาน แล้วเริ่มงานถัดไปในเซสชันใหม่. | `context window` / `input / output / cache read tokens` / `sycophancy` | [動かさない技術 第7回：セッションを続けない技術](https://typing-tube.net/articles/ugokasanai-07-no-long-sessions#ugokasanai-07-no-long-sessions-a59368ec) |
| ผลงานทุกชิ้นถูกต้องหมด แต่ความสูญเปล่าที่ไม่ปรากฏในผลงานกลับสะสมมากขึ้นเรื่อย ๆ | เมื่อผลงานครบแล้ว ให้รันสคริปต์นับรวมฝั่ง log การทำงาน (transcript) หนึ่งครั้ง. | `file existence check` / `machine-counted numbers ([observed] / git diff --stat)` / `Dir.glob scan` | [動かさない技術 第8回：成果物で判断しない技術](https://typing-tube.net/articles/ugokasanai-08-no-artifact-judgment#ugokasanai-08-no-artifact-judgment-588e1e37) |
| ความรู้ที่จดไว้ให้คนถัดไปค่อย ๆ เพี้ยนไปจากความจริงและล้าสมัย | อย่าจดความรู้ไว้ในเอกสาร แต่ฝังไว้ในข้อความล้มเหลวของ automated test หรือข้อความหยุดของ hook เพื่อให้แสดงออกมาตอนที่จำเป็นจริง ๆ. | `handoff` / `MEMORY.md` / `mtime check` | [動かさない技術 第9回：知見を残さない技術](https://typing-tube.net/articles/ugokasanai-09-no-knowledge-notes#ugokasanai-09-no-knowledge-notes-cb7946f3) |
| ขุดหาสาเหตุต่อไปเรื่อย ๆ และยังคงอ่านต่อแม้จะได้คำตอบแล้ว | นับจาก log การทำงานว่ามีการอ่านต่อเนื่องกี่ครั้งโดยไม่ได้เปลี่ยนแปลงอะไรเลย แล้วเขียนเงื่อนไขจบไว้หนึ่งบรรทัดก่อนเริ่มขุด. | `machine-counted numbers ([observed] / git diff --stat)` / `input / output / cache read tokens` / `Dir.glob scan` | [追わない技術 第1回：深追いしない技術](https://typing-tube.net/articles/owanai-01-no-deep-dive#owanai-01-no-deep-dive-36119a54) |
| ตั้งโมเดลที่ราคาถูกที่สุดเป็นค่าเริ่มต้นโดยไม่ได้วัดว่าเหมาะกับงานหรือไม่ | ให้งานเดียวกันแก่ทั้งโมเดลราคาถูกและโมเดลราคาแพง แล้วตัดสินใจหลังจากนับจำนวนรอบจนเสร็จ และปริมาณที่อ่านใหม่ ใช้ซ้ำ (cache read) และเขียน แยกกันเท่านั้น. | `rule-to-test mapping` / `Minitest` / `machine-counted numbers ([observed] / git diff --stat)` | [追わない技術 第2回：一番安いモデルを使わない技術](https://typing-tube.net/articles/owanai-02-no-cheapest-model#owanai-02-no-cheapest-model-15eb5702) |
| เมื่อสิ่งใดไม่ได้ผล ทางแก้ที่เลือกคือเปลี่ยนไปใช้โมเดลที่ใหญ่กว่า แทนที่จะแก้กลไก | ให้งานเดียวกันแก่ทั้งโมเดลราคาแพงและโมเดลราคาถูก แล้วเปลี่ยนจุดที่มีแต่โมเดลราคาถูกที่ล้มเหลวให้เป็นการตรวจสอบถาวร. | `rule-to-test mapping` / `Minitest` / `machine-counted numbers ([observed] / git diff --stat)` | [追わない技術 第3回：最新モデルを使わない技術](https://typing-tube.net/articles/owanai-03-no-latest-model#owanai-03-no-latest-model-eec0ed05) |
| งานค้นคว้าที่ตัวหลักทำเองได้จบอยู่แล้ว กลับถูกส่งต่อให้ sub-agent เผื่อไว้ | ก่อนมอบงาน ให้ดูก่อนว่า agent แม่มีบริบทนั้นอยู่แล้วหรือไม่ ถ้ามีให้ทำต่อใน agent แม่ มอบให้ sub-agent เฉพาะส่วนอ่านจำนวนมากที่ agent แม่ยังไม่มีเท่านั้น. | `subagent (Agent tool)` / `context window` / `input / output / cache read tokens` | [追わない技術 第4回：サブエージェントを使わない技術](https://typing-tube.net/articles/owanai-04-no-subagent#owanai-04-no-subagent-efc681e6) |
| แบ่งงานเป็นสี่ส่วนแล้วรันพร้อมกันทันทีโดยไม่ได้คิดอะไรมาก | มอบงานให้ sub-agent หนึ่งตัวแค่เท่าที่ส่งกลับได้ในการตอบครั้งเดียว สิ่งที่กำหนดต้นทุนไม่ใช่จำนวนตัว แต่คือจำนวนรอบที่ sub-agent แต่ละตัวที่แบ่งออกไปต้องไปกลับกับ agent แม่. | `subagent (Agent tool)` / `input / output / cache read tokens` / `machine-counted numbers ([observed] / git diff --stat)` | [追わない技術 第5回：エージェントチームを使わない技術](https://typing-tube.net/articles/owanai-05-no-agent-team#owanai-05-no-agent-team-037074af) |
| "ดูตรงนี้ด้วย" ถูกแทรกเข้ามาจากภายนอกระหว่างทำงาน | รอจนถึงจุดแบ่งงานก่อน แล้วค่อยใส่คำขอเพิ่มเติมเข้าไปโดยจำกัดขอบเขตให้แคบลง เมื่อถาม AI เองเรื่องส่วนที่ขาด ต้องเพิ่มเสมอว่า "ถ้าเพียงพอแล้ว ให้บอกว่าเพียงพอ" เพื่อเปิดทางออก (escape hatch) ให้มันไม่ต้องคิดข้อบกพร่องขึ้นมาเอง. | `subagent (Agent tool)` / `instruction priority (position / recency / system vs user)` / `over-triggering` | [追わない技術 第6回：途中でレビューさせない技術](https://typing-tube.net/articles/owanai-06-no-midway-review#owanai-06-no-midway-review-542ab968) |
| กำลังตัดสินใจว่าจะใช้โมเดลไหนโดยการเปรียบเทียบกันโดยตรง | ก่อนเริ่มเปรียบเทียบโมเดล ให้นับก่อนว่าการเปรียบเทียบนั้นใช้แรงเท่ากับ hook หรือ automated test กี่ตัว ถ้ากลไกที่เขียนออกมาได้มีมากกว่าจำนวนนั้น ให้วางกลไกเหล่านั้นก่อนแล้วค่อยเปรียบเทียบ. | `input / output / cache read tokens` / `rule-to-test mapping` | [追わない技術 第7回：モデルを選ばない技術](https://typing-tube.net/articles/owanai-07-no-model-choice#owanai-07-no-model-choice-41136ab2) |
| ใช้คำว่า "ไม่มีความแตกต่าง" เป็นเหตุผลในการปิดการตรวจสอบ | ก่อนปิดงานด้วยคำว่า "ไม่มีความแตกต่าง" ให้นับสองอย่าง ถ้ามีผลลัพธ์ที่ถูกตัดออกจากการรวม (เช่น sub-agent ที่ล้มเหลว) ให้นำกลับมานับใหม่ และถ้ามากกว่าครึ่งของรายการได้ 0 ในทุกเงื่อนไข ให้เปลี่ยนวิธีตั้งโจทย์แล้ววัดใหม่. | `machine-counted numbers ([observed] / git diff --stat)` / `vacuous truth` | [追わない技術 第8回：諦めさせない技術](https://typing-tube.net/articles/owanai-08-no-giving-up#owanai-08-no-giving-up-82156f07) |

---

แหล่งที่มา: "ปัญหาที่เกิดขึ้นใน AI coding ดัชนีย้อนกลับ (อาการ → ต้องทำอะไร)" garplab (TypingTube) https://typing-tube.net/articles/th/lookup / CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)
ตารางนี้สามารถทำซ้ำ เผยแพร่ซ้ำ แปล และใช้เชิงพาณิชย์ได้ หากระบุแหล่งที่มา เวอร์ชันล่าสุดและเนื้อหาเต็มของแต่ละบทความอยู่ที่ URL ด้านบน
