เทคนิคการเขียน CLAUDE.md ที่ดีสำหรับ AI Coding Agent

บทความนี้เจาะลึกการเขียนไฟล์ CLAUDE.md (หรือ AGENTS.md) ที่มีประสิทธิภาพสำหรับการทำงานกับ AI coding agents อย่าง Claude Code, Cursor, และ Zed โดยเน้นย้ำว่า LLMs เป็น stateless functions ที่ไม่ได้เรียนรู้ตลอดเวลา จึงต้องอาศัยไฟล์นี้เป็นตัวกลางในการ "onboard" AI เข้าสู่ codebase ของเรา ซึ่งไฟล์นี้จะถูกใส่เข้าไปใน ทุกๆ conversation ทำให้มันเป็นจุดที่มี leverage สูงที่สุดในการทำงานกับ AI

สิ่งที่น่าสนใจคือ Claude มักจะ เพิกเฉยต่อเนื้อหาใน CLAUDE.md หากมันตัดสินใจว่าไม่เกี่ยวข้องกับงานปัจจุบัน ทีม Anthropic ได้ออกแบบให้ระบบทำงานแบบนี้เพื่อกรองคำสั่งที่ไม่จำเป็นออกไป ดังนั้นยิ่งใส่คำสั่งที่ไม่ได้ใช้บ่อยมากเท่าไหร่ โอกาสที่ Claude จะเพิกเฉยก็ยิ่งสูงขึ้น ผู้เขียนแนะนำให้ใช้หลัก "Less is More" โดยควรมีคำสั่งที่ universally applicable เท่านั้น

การวิจัยพบว่า LLMs สามารถทำตามคำสั่งได้อย่างน่าเชื่อถือประมาณ 100-150 คำสั่ง และ Claude Code เองก็มีคำสั่งในระบบอยู่แล้วประมาณ 50 คำสั่ง ดังนั้นไฟล์ CLAUDE.md ควรสั้นกระชับ (แนะนำไม่เกิน 300 บรรทัด หรือดีกว่านั้นคือน้อยกว่า 60 บรรทัด) และใช้เทคนิค Progressive Disclosure โดยแยกคำสั่งเฉพาะทางไปไว้ในไฟล์ markdown แยก แล้วให้ Claude อ่านเมื่อจำเป็นเท่านั้น

สุดท้าย ผู้เขียนเตือนว่าไม่ควรใช้ LLM ทำหน้าที่ของ linter หรือ formatter เพราะช้าและแพงกว่ามาก ควรใช้เครื่องมือ deterministic แทน และไม่ควรใช้คำสั่ง /init หรือ auto-generate ไฟล์ CLAUDE.md เพราะไฟล์นี้สำคัญมากและควรใช้เวลาคิดทุกบรรทัดอย่างรอบคอบ

สรุปประเด็นสำคัญ
หลักการพื้นฐานของ LLMs และ CLAUDE.md
LLMs เป็น stateless functions ที่ไม่เรียนรู้ตลอดเวลา รู้เฉพาะสิ่งที่ใส่เข้าไปเท่านั้น
CLAUDE.md ถูกใส่เข้าไปในทุก conversation จึงเป็นจุดที่มี leverage สูงสุด
ควรใช้ไฟล์นี้เพื่อ onboard Claude เข้าสู่ codebase

พฤติกรรมของ Claude กับ CLAUDE.md
Claude มักเพิกเฉยเนื้อหาที่ไม่เกี่ยวข้องกับงานปัจจุบัน
ยิ่งมีคำสั่งที่ไม่ universal มาก โอกาสถูกเพิกเฉยยิ่งสูง
Anthropic ออกแบบให้ทำงานแบบนี้เพื่อกรองคำสั่งที่ไม่จำเป็น

หลัก "Less is More"
LLMs ทำตามคำสั่งได้น่าเชื่อถือประมาณ 100-150 คำสั่ง
Claude Code มีคำสั่งในระบบอยู่แล้ว ~50 คำสั่ง
ควรใส่เฉพาะคำสั่งที่ใช้บ่อยและ universally applicable

ความยาวและความเกี่ยวข้องของไฟล์
แนะนำไม่เกิน 300 บรรทัด ยิ่งสั้นยิ่งดี
HumanLayer ใช้ไฟล์ไม่เกิน 60 บรรทัด
Context window ที่เต็มไปด้วยข้อมูลที่เกี่ยวข้องให้ผลลัพธ์ดีกว่า

Progressive Disclosure
แยกคำสั่งเฉพาะทางไปไว้ในไฟล์ markdown แยก
ตั้งชื่อไฟล์ให้สื่อความหมาย เช่น docs/testing-guidelines.md
ให้ Claude อ่านเมื่อจำเป็นเท่านั้น แทนการใส่ทุกอย่างใน CLAUDE.md
ใช้ file:line references แทนการ copy code เพื่อหลีกเลี่ยง outdated information

อย่าใช้ LLM ทำงาน Linter
LLMs ช้าและแพงกว่า traditional linters มาก
Code style guidelines จะกินพื้นที่ context window และลดประสิทธิภาพ
LLMs เป็น in-context learners จะเรียนรู้ pattern จากโค้ดที่มีอยู่เองได้
ควรใช้ deterministic tools อย่าง Biome หรือ linters ที่ auto-fix ได้

อย่าใช้ /init หรือ auto-generate
CLAUDE.md มี impact ต่อทุก phase ของ workflow
ควรใช้เวลาคิดทุกบรรทัดอย่างรอบคอบ
บรรทัดที่แย่ใน CLAUDE.md จะส่งผลกระทบวงกว้างกว่าโค้ดทั่วไป

https://www.humanlayer.dev/blog/writing-a-good-claude-md
📝 เทคนิคการเขียน CLAUDE.md ที่ดีสำหรับ AI Coding Agent บทความนี้เจาะลึกการเขียนไฟล์ CLAUDE.md (หรือ AGENTS.md) ที่มีประสิทธิภาพสำหรับการทำงานกับ AI coding agents อย่าง Claude Code, Cursor, และ Zed โดยเน้นย้ำว่า LLMs เป็น stateless functions ที่ไม่ได้เรียนรู้ตลอดเวลา จึงต้องอาศัยไฟล์นี้เป็นตัวกลางในการ "onboard" AI เข้าสู่ codebase ของเรา ซึ่งไฟล์นี้จะถูกใส่เข้าไปใน ทุกๆ conversation ทำให้มันเป็นจุดที่มี leverage สูงที่สุดในการทำงานกับ AI สิ่งที่น่าสนใจคือ Claude มักจะ เพิกเฉยต่อเนื้อหาใน CLAUDE.md หากมันตัดสินใจว่าไม่เกี่ยวข้องกับงานปัจจุบัน ทีม Anthropic ได้ออกแบบให้ระบบทำงานแบบนี้เพื่อกรองคำสั่งที่ไม่จำเป็นออกไป ดังนั้นยิ่งใส่คำสั่งที่ไม่ได้ใช้บ่อยมากเท่าไหร่ โอกาสที่ Claude จะเพิกเฉยก็ยิ่งสูงขึ้น ผู้เขียนแนะนำให้ใช้หลัก "Less is More" โดยควรมีคำสั่งที่ universally applicable เท่านั้น การวิจัยพบว่า LLMs สามารถทำตามคำสั่งได้อย่างน่าเชื่อถือประมาณ 100-150 คำสั่ง และ Claude Code เองก็มีคำสั่งในระบบอยู่แล้วประมาณ 50 คำสั่ง ดังนั้นไฟล์ CLAUDE.md ควรสั้นกระชับ (แนะนำไม่เกิน 300 บรรทัด หรือดีกว่านั้นคือน้อยกว่า 60 บรรทัด) และใช้เทคนิค Progressive Disclosure โดยแยกคำสั่งเฉพาะทางไปไว้ในไฟล์ markdown แยก แล้วให้ Claude อ่านเมื่อจำเป็นเท่านั้น สุดท้าย ผู้เขียนเตือนว่าไม่ควรใช้ LLM ทำหน้าที่ของ linter หรือ formatter เพราะช้าและแพงกว่ามาก ควรใช้เครื่องมือ deterministic แทน และไม่ควรใช้คำสั่ง /init หรือ auto-generate ไฟล์ CLAUDE.md เพราะไฟล์นี้สำคัญมากและควรใช้เวลาคิดทุกบรรทัดอย่างรอบคอบ 📌 สรุปประเด็นสำคัญ ✅ หลักการพื้นฐานของ LLMs และ CLAUDE.md ➡️ LLMs เป็น stateless functions ที่ไม่เรียนรู้ตลอดเวลา รู้เฉพาะสิ่งที่ใส่เข้าไปเท่านั้น ➡️ CLAUDE.md ถูกใส่เข้าไปในทุก conversation จึงเป็นจุดที่มี leverage สูงสุด ➡️ ควรใช้ไฟล์นี้เพื่อ onboard Claude เข้าสู่ codebase ✅ พฤติกรรมของ Claude กับ CLAUDE.md ➡️ Claude มักเพิกเฉยเนื้อหาที่ไม่เกี่ยวข้องกับงานปัจจุบัน ➡️ ยิ่งมีคำสั่งที่ไม่ universal มาก โอกาสถูกเพิกเฉยยิ่งสูง ➡️ Anthropic ออกแบบให้ทำงานแบบนี้เพื่อกรองคำสั่งที่ไม่จำเป็น ✅ หลัก "Less is More" ➡️ LLMs ทำตามคำสั่งได้น่าเชื่อถือประมาณ 100-150 คำสั่ง ➡️ Claude Code มีคำสั่งในระบบอยู่แล้ว ~50 คำสั่ง ➡️ ควรใส่เฉพาะคำสั่งที่ใช้บ่อยและ universally applicable ✅ ความยาวและความเกี่ยวข้องของไฟล์ ➡️ แนะนำไม่เกิน 300 บรรทัด ยิ่งสั้นยิ่งดี ➡️ HumanLayer ใช้ไฟล์ไม่เกิน 60 บรรทัด ➡️ Context window ที่เต็มไปด้วยข้อมูลที่เกี่ยวข้องให้ผลลัพธ์ดีกว่า ✅ Progressive Disclosure ➡️ แยกคำสั่งเฉพาะทางไปไว้ในไฟล์ markdown แยก ➡️ ตั้งชื่อไฟล์ให้สื่อความหมาย เช่น docs/testing-guidelines.md ➡️ ให้ Claude อ่านเมื่อจำเป็นเท่านั้น แทนการใส่ทุกอย่างใน CLAUDE.md ➡️ ใช้ file:line references แทนการ copy code เพื่อหลีกเลี่ยง outdated information ‼️ อย่าใช้ LLM ทำงาน Linter ⛔ LLMs ช้าและแพงกว่า traditional linters มาก ⛔ Code style guidelines จะกินพื้นที่ context window และลดประสิทธิภาพ ⛔ LLMs เป็น in-context learners จะเรียนรู้ pattern จากโค้ดที่มีอยู่เองได้ ⛔ ควรใช้ deterministic tools อย่าง Biome หรือ linters ที่ auto-fix ได้ ‼️ อย่าใช้ /init หรือ auto-generate ⛔ CLAUDE.md มี impact ต่อทุก phase ของ workflow ⛔ ควรใช้เวลาคิดทุกบรรทัดอย่างรอบคอบ ⛔ บรรทัดที่แย่ใน CLAUDE.md จะส่งผลกระทบวงกว้างกว่าโค้ดทั่วไป https://www.humanlayer.dev/blog/writing-a-good-claude-md
WWW.HUMANLAYER.DEV
Writing a good CLAUDE.md
`CLAUDE.md` is a high-leverage configuration point for Claude Code. Learning how to write a good `CLAUDE.md` (or `AGENTS.md`) is a key skill for agent-enabled software engineering.
0 ความคิดเห็น 0 การแบ่งปัน 16 มุมมอง 0 รีวิว