ทุกครั้งที่ใช้ Claude Code ระยะยาวก็จบลงแบบเดียวกัน: คุณเสียเวลาหลายชั่วโมงกับงานที่ทำไว้แล้วต้องเริ่มใหม่ตั้งแต่ต้น
ทางแก้ไม่ใช่โมเดลที่ฉลาดกว่า แต่คือระบบที่ทีม Claude Code ใช้ภายในและไม่เคยเขียนคู่มือเผยแพร่
นักพัฒนาส่วนใหญ่ไม่มี และไม่รู้ว่ามันมีอยู่จริง
นี่คือระบบทั้งหมด 👇
🧠 ก่อนจะลงรายละเอียด ผมแบ่งปันโน้ตประจำวันเกี่ยวกับ AI และ Vibe Coding ใน Telegram Channel ของผม: https://t.me/zodchixquant

วิศวกรรมบริบท (Context Engineering) จริงๆ แล้วคืออะไร
Claude อ่านโค้ดหลายพันบรรทัดในทุกเซสชัน ส่วนใหญ่เป็นข้อมูลที่ไม่จำเป็น และ 5% ที่สำคัญก็ถูกกลบหายไปภายในชั่วโมงที่สอง
นั่นคือตอนที่ Claude เริ่มสร้างฟังก์ชันขึ้นมาเอง และแก้บั๊กที่คุณไม่เคยเขียน ทางแก้ไม่ใช่โมเดลที่ใหญ่ขึ้น แต่คือการควบคุมสิ่งที่เข้าสู่เซสชัน
นี่คือ 6 รูปแบบที่ทีม Claude Code ใช้ใน Monorepo ของตัวเอง

รูปแบบที่ 1: CLAUDE.md แบบหลายชั้น (ขั้นตอนที่ 1-3)
CLAUDE.md ไฟล์เดียวไม่พอ ทีม Claude Code ใช้สามชั้น แต่ละชั้นเน้นไปที่เรื่องต่างกัน
ขั้นตอนที่ 1: Root CLAUDE.md กับกฎระดับโปรเจกต์
วางไฟล์ CLAUDE.md ไว้ที่ root ของ repo ทำให้ไม่เกิน 100 บรรทัด ควรตอบคำถามสี่ข้อที่ Claude มีทุกครั้งเมื่อได้รับ Prompt:
1# โปรเจกต์: [ชื่อ]23## Stack (เทคโนโลยีที่ใช้)4- Runtime: Node 22, TypeScript 5.55- Framework: Next.js 15, React 196- Database: Postgres 16, Drizzle ORM7- Testing: Vitest, Playwright89## ข้อปฏิบัติ10- Imports: ใช้ absolute paths จาก `@/` เท่านั้น11- Components: ชื่อไฟล์เป็น kebab-case, export เป็น PascalCase12- Tests: วางไว้ในโฟลเดอร์เดียวกัน ชื่อ `[file].test.ts`13- Commits: ใช้ conventional commits, ไม่มี co-author footer1415## ห้ามแตะ16- `infra/terraform/` (จัดการโดย ops)17- `migrations/` (ถูกสร้างอัตโนมัติ ห้ามแก้ด้วยมือ)18- `vendor/` (dependency ที่ commit ไว้แล้ว)1920## ค่าเริ่มต้น21- รัน `npm test` ก่อนประกาศว่างานเสร็จ22- Type-check ด้วย `tsc --noEmit` ทุกครั้งที่แก้ไข23- Format ด้วย Prettier ก่อนบันทึก
ขั้นตอนที่ 2: Subdirectory CLAUDE.md สำหรับบริบทเฉพาะโมดูล
เพิ่มไฟล์ CLAUDE.md ในโฟลเดอร์ใดก็ได้ที่กฎเปลี่ยนไป Claude จะอ่านไฟล์ที่ใกล้ที่สุดเมื่อทำงานในโฟลเดอร์นั้น เพิ่มเติมจาก root
ตัวอย่าง src/auth/CLAUDE.md:
1# โมดูล Auth23โมดูลนี้ดูแลการจัดการ Session และ OAuth flows45## กฎ6- ห้าม log token แม้แต่แบบตัดทอน7- การอ่าน Session ทั้งหมดต้องผ่าน `getSession()` เท่านั้น ห้ามอ่าน cookie โดยตรง8- Provider ใหม่ต้องผ่านการตรวจสอบความปลอดภัยก่อน merge910## ไฟล์ที่ควรอ่านก่อน11- `session.ts` สำหรับ contract12- `providers/index.ts` สำหรับรูปแบบ registry
ขั้นตอนที่ 3: Personal CLAUDE.md ที่ ~/.claude/CLAUDE.md
นี่คือชั้นการตั้งค่าส่วนตัวระดับโลก อยู่ข้างนอก repo ใดๆ และใช้ได้ทุกที่
1## ความชอบของฉัน - อธิบายสิ่งที่คุณกำลังจะทำก่อนลงมือจริงสำหรับการแก้ไขหลายไฟล์ - ท้วงถ้าคำขอของฉันดูเหมือนจะทำให้อะไรพัง - ชอบ composition มากกว่า inheritance - ฉันใช้ zsh บน macOS
ทั้งสามชั้นซ้อนทับกัน: ค่ากำหนดส่วนตัว + กฎโปรเจกต์ + กฎโมดูล Claude อ่านทั้งสามในทุก Prompt โดยไม่ต้องอัปโหลดซ้ำผ่าน context ของคุณ
รูปแบบที่ 2: การอ้างอิงไฟล์แบบเจาะจง (ขั้นตอนที่ 4-5)
การปล่อยให้ “Claude หาเองว่าไฟล์ไหนสำคัญ” เป็นวิธีใช้ Context ที่ช้าที่สุดและโง่ที่สุด
ขั้นตอนที่ 4:@file reference พร้อม autocomplete
เมื่อคุณพิมพ์ @ ใน Prompt Claude จะเปิดตัวเลือกไฟล์แบบ Fuzzy ใช้มันแทนการอธิบายไฟล์เป็นข้อความ
ไม่ดี: “ดูโค้ด user authentication และ session helper”
ดี: “ดู
@src/auth /session.ts และ
@src/auth /providers/google.ts แก้ไข token refresh”
การอ้างอิงแบบเจาะจงจะโหลดเฉพาะไฟล์เหล่านั้น การอธิบายเป็นข้อความจะบังคับให้ Claude ค้นหา อ่านไฟล์ตัวเลือก 4-5 ไฟล์ และเลือกผิดครึ่งหนึ่ง
ขั้นตอนที่ 5: /focus เพื่อจำกัดขอบเขตทั้ง workflow
สำหรับงานที่ยาวขึ้น ให้จำกัดเซสชันทั้งหมดของ Claude ไปที่โฟลเดอร์เฉพาะ:
1/focus src/auth src/api/auth-routes
ตอนนี้ทุกการค้นหา grep และอ่าน จะทำงานภายในสองโฟลเดอร์นั้นเท่านั้น
ลดการใช้ Context ลง 60-80% สำหรับงานที่โฟกัส และ Claude จะหยุด “ช่วยเหลือ” ด้วยการอ่านไฟล์ที่ไม่เกี่ยวข้องเพื่อหาบริบทที่ไม่ต้องการ
ใช้คำสั่ง /focus clear เพื่อรีเซ็ต
รูปแบบที่ 3: ย่อแล้วทำต่อ (Compact-and-Continue) (ขั้นตอนที่ 6-8)
เซสชันยาวๆ จะถึงขีดจำกัด Context และพัง เคล็ดลับไม่ใช่การหลีกเลี่ยงเซสชันยาว แต่คือการจัดการผ่านการย่อแบบควบคุม
ขั้นตอนที่ 6: ดูการใช้งาน Context ด้วย /stats
รัน /stats เป็นระยะ
เมื่อคุณใช้ Context เกิน 70% แสดงว่าคุณอยู่ในเขตอันตราย เกิน 85% Claude จะเริ่มทิ้งข้อความต้นๆ โดยไม่บอกคุณ
ขั้นตอนที่ 7: /compact พร้อมคำสั่งรักษาข้อมูล
/compact เพียงอย่างเดียวจะสรุปบทสนทนา เมื่อมีคำสั่งเพิ่ม คุณจะบอก Claude ให้คงข้อมูลอะไรไว้ตามตัวอักษร:
1/compact preserve: แผนงานปัจจุบัน, การตัดสินใจทั้งหมดเกี่ยวกับการ refactor auth, ผลลัพธ์ test ที่ล้มเหลวจากขั้นตอนที่ 3
ขั้นตอนที่ 8: /resume สำหรับเซสชันที่กินเวลาหลายวัน
ถ้างานกินเวลาหลายวัน ให้จบแต่ละเซสชันด้วย /compact preserve: ... และเริ่มเซสชันถัดไปด้วย:
1claude --resume [session-id]
หรือใช้ claude --continue สำหรับเซสชันล่าสุด ระบบจะเริ่มต่อจากจุดที่ค้างไว้โดยใช้สถานะที่ถูกย่อไว้
รูปแบบที่ 4: อ่านก่อนวางแผน (ขั้นตอนที่ 9-10)
การรั่วไหลของ Context ที่ใหญ่ที่สุดคือ Claude แก้ไขไฟล์ก่อนที่จะเข้าใจมัน โหมด Plan บังคับให้มันอ่านก่อน แล้วค่อยเขียน
ขั้นตอนที่ 9: เปิดโหมด Plan ทุกครั้งที่ทำงานเสี่ยง
กด Shift+Tab เพื่อเข้าสู่โหมด Plan ก่อนทำงานใดๆ ที่แตะมากกว่าหนึ่งไฟล์
ในโหมด Plan Claude จะอ่านได้อย่างเดียวเท่านั้น มันจะอธิบายว่ามันจะทำอะไร แสดงรายการทุกไฟล์ที่มันจะแตะ และแสดงการเปลี่ยนแปลงที่เสนอ ไม่มีอะไรทำงานจนกว่าคุณจะอนุมัติ
การประหยัดนั้นเป็นจริง: อ่านหนึ่งครั้ง แก้ไขหนึ่งครั้ง แทนที่จะอ่าน 8 แก้ผิด 3 ย้อนกลับ อ่านซ้ำ แล้วแก้ใหม่
ขั้นตอนที่ 10: ล็อกโหมด Plan สำหรับ paths ที่ละเอียดอ่อนผ่าน Hooks
ทำให้โหมด Plan เป็นข้อบังคับสำหรับพื้นที่เสี่ยง ในไฟล์ .claude/settings.json:
1{2 "hooks": {3 "PreToolUse": [4 {5 "matcher": "Edit(src/auth/**)|Edit(migrations/**)",6 "hooks": [7 {8 "type": "command",9 "command": "claude-require-plan-mode"10 }11 ]12 }13 ]14 }15}
ความพยายามแก้ไขใดๆ ใน src/auth/*\ หรือ migrations/\\ * จะกระตุ้นข้อกำหนดโหมด Plan Claude ไม่สามารถข้ามมันได้
รูปแบบที่ 5: การแยกบริบท Subagent (ขั้นตอนที่ 11-13)
Subagent เป็นวิธีที่สะอาดที่สุดในการทำให้ Context หลักของคุณเล็ก แต่ละ Subagent ทำงานในหน้าต่างของตัวเอง ดังนั้นเซสชันหลักจะไม่เห็นข้อมูลรบกวน
ขั้นตอนที่ 11: ออกแบบ Subagent ด้วยพื้นผิวเครื่องมือที่น้อยที่สุด
จำกัดเครื่องมือให้เท่าที่งานต้องการ
code-reviewer ไม่ต้องใช้ Write หรือ Edit
doc-updater ไม่ต้องใช้ Bash ยิ่งพื้นผิวน้อย Context ก็ยิ่งถูกใช้ไปกับเอกสารและคำอธิบายเครื่องมือที่ไม่เกี่ยวข้องน้อยลง
1---2name: code-reviewer3description: ตรวจสอบการเปลี่ยนแปลงโค้ดเพื่อหาบั๊กและปัญหาความปลอดภัย4tools: Read, Grep, Glob5model: sonnet6---
ขั้นตอนที่ 12: ส่งเฉพาะไฟล์ที่ Agent ต้องการเท่านั้น
อย่าพูดว่า "ตรวจสอบการเปลี่ยนแปลงล่าสุด" ให้พูดว่า "ตรวจสอบ @src/auth/session.ts และ @src/auth/providers/google.ts"
Subagent จะอ่านเฉพาะไฟล์เหล่านั้น ไม่ใช่การเดาว่า "ล่าสุด" หมายถึงอะไร
ขั้นตอนที่ 13: ใช้โมเดลที่ถูกกว่าสำหรับ Subagent
กำหนดโมเดลต่อ Agent ตามงาน
Sonnet สำหรับงานตรวจสอบและทดสอบ, Haiku สำหรับอัปเดตเอกสารและ lint, Opus สำหรับสถาปัตยกรรมหรือการตรวจสอบความปลอดภัยที่ต้องใช้การคิดเชิงลึกเท่านั้น
ตั้งค่าระดับโลกถ้าต้องการ:
1export CLAUDE_CODE_SUBAGENT_MODEL="claude-sonnet-4-6"
Subagent ที่ถูกกว่า = การเรียก Subagent ต่อดอลลาร์มากขึ้น = การแยกมากขึ้น = Context หลักเล็กลง
30 นาทีเริ่มต้นวิศวกรรมบริบท (Context Engineering)
10 นาที: เขียน Root CLAUDE.md แบบกระชับพร้อม Stack, ข้อปฏิบัติ, รายการห้ามแตะ และค่าเริ่มต้น
5 นาที: เพิ่ม Subdirectory CLAUDE.md ใน 2-3 โมดูลที่คุณแก้ไขบ่อยที่สุด
5 นาที: สร้าง Personal CLAUDE.md ที่ ~/.claude/CLAUDE.md พร้อมความชอบของคุณ
5 นาที: สร้าง Skill หนึ่งอันใน .claude/skills/ สำหรับ Workflow ที่คุณทำบ่อยที่สุด
5 นาที: ผูก Shift+Tab เป็นกล้ามเนื้อความจำ และเริ่มงานหลายไฟล์ทุกครั้งในโหมด Plan
เสร็จ!
เซสชันถัดไปของคุณจะใช้ Context น้อยลง 50-70% สำหรับปริมาณงานเท่าเดิม พอถึงเซสชันที่ 5 รูปแบบเหล่านี้จะกลายเป็นปฏิกิริยาอัตโนมัติ และคุณจะไม่เจอขีดจำกัดอีกเลย
Context ไม่ใช่สิ่งที่ Claude จัดการให้คุณ มันคือสิ่งที่คุณออกแบบ
ตอนนี้คุณมีระบบแล้ว
ขอบคุณที่อ่าน!
ผมแบ่งปันโน้ตประจำวันเกี่ยวกับ AI การเงิน และ Vibe Coding ใน Telegram Channel ของผม: https://t.me/zodchixquant






