โครงสร้าง Vault และการดีบัก
จัดระเบียบ markdown vault เป็นหน่วยความจำที่สองที่ค้นหาได้ จัดการโหมดความล้มเหลวสี่โหมดเมื่อ Claude ทำสิ่งที่ไม่คาดคิด
STATE.md และ MEMORY.md เก็บสิ่งที่ทุกเซสชันต้องการ markdown vault (Obsidian หรือโฟลเดอร์ใดๆ) เก็บทุกอย่างที่เหลือ: บันทึกกลยุทธ์, บันทึกการประชุม, บันทึกโครงการ, การวิจัย, การวิเคราะห์คู่แข่ง
vault เติบโตเป็นหน่วยความจำขององค์กร: การตัดสินใจที่คุณทำเมื่อหกเดือนที่แล้วและเหตุผล, วัสดุอ้างอิงที่แจ้งงานปัจจุบัน, รูปแบบที่ครอบคลุมโครงการ เชื่อมต่อผ่าน Obsidian หรือ filesystem MCP และ Claude สามารถค้นหาทั้งหมดได้ตามต้องการ หากไม่มี vault ความรู้นี้จะอยู่ในหัวของคุณเท่านั้นหรือถูกฝังอยู่ในเอกสารเก่าๆ
ทำไม markdown ถึงดีกว่าฐานข้อมูล: ไฟล์ธรรมดาสามารถค้นหาได้, มีเวอร์ชันด้วย git, เปิดในโปรแกรมแก้ไขใดๆ, และอยู่รอดทุกการเปลี่ยนแปลงเครื่องมือ โครงสร้างการทำงาน:
~/notes/
├── STATE.md # Always loaded
├── MEMORY.md # Index, always loaded
├── STRATEGY-DIGEST.md # Summaries of strategy docs
├── strategy/ # Full docs, read on demand
├── projects/ # Dated project notes
├── resources/
└── reference/กุญแจสำคัญในการปรับขนาดคือ รูปแบบสรุป: เมื่อคุณเขียนเอกสารกลยุทธ์ 1,000 คำ ให้เขียนสรุป 3 ประโยคควบคู่ไปกับมันและจัดทำดัชนีสรุปใน MEMORY.md Claude อ่านประมาณ 50 โทเค็นเมื่อเริ่มต้นเซสชันแทนที่จะเป็นเอกสารเต็มประมาณ 1,500 โทเค็น ที่เอกสารกลยุทธ์ 25 ฉบับ นั่นคือ 1,250 โทเค็นเทียบกับ 37,500 และเซสชันยังคงรวดเร็ว
เมื่อ Claude ทำสิ่งที่ไม่คาดคิด ให้ตรวจสอบโหมดความล้มเหลวสี่โหมดตามลำดับ จากที่พบบ่อยที่สุดไปหาน้อยที่สุด:
หน่วยความจำเก่า: STATE.md บอกอย่างหนึ่ง ความจริงบอกอีกอย่าง Claude ทำตามคำแนะนำของคุณอย่างสมบูรณ์แบบ; คำแนะนำผิดพลาด ถามว่า "แสดง STATE.md ของคุณ" ก่อนทุกครั้ง
บริบทหายไป: ไฟล์ที่เกี่ยวข้องไม่เคยถูกโหลด ดังนั้น Claude จึงเดาอย่างสมเหตุสมผล โหลดไฟล์อย่างชัดเจนและถามใหม่
เครื่องมือไม่พร้อมใช้งาน: MCP ขัดข้องหรือ hook บล็อกคำสั่ง และ Claude แก้ไขปัญหาได้ไม่ดี ตรวจสอบความพร้อมใช้งานของเครื่องมือก่อนที่จะตำหนิเหตุผล
การหลอน: สาเหตุที่หายากที่สุด ตรวจสอบก่อน: grep หาฟังก์ชัน, ตรวจสอบว่า endpoint มีอยู่จริง "การหลอน" ส่วนใหญ่กลายเป็นหนึ่งในสามข้อแรก
คำถามวินิจฉัยหนึ่งข้อต่อโหมดความล้มเหลวหนึ่งโหมด:
หน่วยความจำเก่า: "STATE.md ของคุณพูดถึง [หัวข้อ] ว่าอย่างไร?" เนื้อหาจากสามเซสชันที่แล้วหมายถึงสถานะเก่า
บริบทหายไป: "คุณมีไฟล์อะไรบ้างที่โหลดเกี่ยวกับ [หัวข้อ]?" ไม่มีไฟล์ที่เกี่ยวข้องหมายถึงโหลดไฟล์ที่ถูกต้อง
เครื่องมือไม่พร้อมใช้งาน: "คุณมีเครื่องมืออะไรบ้างที่พร้อมใช้งานตอนนี้?"
การหลอน: "Grep หา [ฟังก์ชัน/endpoint] และแสดงสิ่งที่พบ"
ลำดับนี้ใช้เวลาสองนาทีและพบสาเหตุเกือบทุกครั้ง การกระโดดไปที่ "Claude หลอน" มักจะทำให้การแก้ไขจริงล่าช้าโดยการเขียนโค้ดใหม่ที่ไม่จำเป็นต้องเขียนใหม่
การป้องกันดีกว่าการดีบัก นิสัย:
การอัปเดต STATE.md เมื่อสิ้นสุดเซสชัน ช่วยขจัดปัญหาหน่วยความจำเก่าได้ 80%
เก็บถาวรโครงการที่จัดส่งแล้ว ลงในไฟล์ project_* ที่มีวันที่
การตรวจสอบ MEMORY.md รายเดือน: ยืนยันว่าตัวชี้ทุกตัวยังคงชี้ไปยังไฟล์ที่มีอยู่
สรุปเอกสารทุกฉบับที่เกิน 500 คำ
เขียนการตัดสินใจในขณะที่ตัดสินใจ ไม่ใช่เมื่อสิ้นสุดสัปดาห์ การบันทึกย้อนหลังทำให้เหตุผลหายไป
ก่อนเก็บถาวรบันทึกโครงการ ดึงบทเรียนที่คงทนออกมาเป็นรายการ feedback_* โครงการกลายเป็นประวัติศาสตร์; บทเรียนยังคงใช้งานอยู่
vault ที่มีเอกสารที่ดูแลอย่างดี 10 ฉบับดีกว่า vault ที่มีเอกสารเก่า 200 ฉบับ คุณภาพและความทันสมัยดีกว่าปริมาณ
ด้วย Obsidian หรือ filesystem MCP, vault จะกลายเป็นฐานความรู้แบบเรียลไทม์:
การค้นหาการตัดสินใจ: "ค้นหาใน vault ว่าทำไมเราถึงเลือก Postgres แทน MySQL" การค้นหาด้วยตนเอง 10 นาทีกลายเป็น 15 วินาที
การตรวจจับรูปแบบ: "ค้นหาการกล่าวถึงปัญหาการจำกัดอัตราหรือข้อผิดพลาด 429 ในทุกโครงการ" Claude จะแสดงสาเหตุทั่วไปที่กระจายอยู่ในไฟล์โครงการห้าไฟล์
การค้นหาข้อมูลอ้างอิง: "ค้นหาข้อมูลติดต่อในบันทึกผู้ขาย" การเรียกข้อมูลทันทีจากไฟล์ที่ไม่ได้จัดทำดัชนี
คุณภาพการค้นหาขึ้นอยู่กับความสอดคล้องของการตั้งชื่อ: project_[name]_[date].md และ feedback_[rule].md ดีกว่าสิ่งที่รู้สึกเป็นธรรมชาติในขณะนั้น ข้อตกลงการตั้งชื่อคือดัชนีที่คุณสร้างขึ้นก่อนที่คุณจะต้องการมัน
ทั้งสี่โหมดตรวจสอบแล้วสะอาดหมดจด แต่ผลลัพธ์ยังคงผิดพลาดอยู่ใช่หรือไม่? มีสองสาเหตุที่ดูเหมือนภาพหลอนแต่ไม่ใช่
ลำดับบริบท: เมื่อไฟล์ที่โหลดขัดแย้งกัน เนื้อหาที่โหลดทีหลังมักจะชนะ หากบันทึกโครงการเก่าขัดแย้งกับ STATE.md ให้กำหนดอำนาจอย่างชัดเจน: "STATE.md คือความจริงพื้นฐานปัจจุบัน มันแทนที่ทุกสิ่งในบันทึกโครงการ"
การชนกันของข้อจำกัด: CLAUDE.md ระบุว่า "กำหนดพารามิเตอร์ SQL ทั้งหมด" ดังนั้น Claude จึงเขียน SQL ใหม่ในระหว่างที่คุณตั้งใจให้เป็นการปรับโครงสร้างเฉพาะสไตล์ ไม่ใช่ข้อผิดพลาด; กำหนดขอบเขตอย่างชัดเจน: "เฉพาะสไตล์เท่านั้น ห้ามเปลี่ยนรูปแบบ SQL"
การวินิจฉัยสำหรับทั้งสองกรณี: "คุณกำลังปฏิบัติตามคำแนะนำใดที่ควบคุม [การตัดสินใจนี้]? ระบุรายการกฎตามลำดับความสำคัญ" คุณจะพบแหล่งที่มาที่ล้าสมัย กฎที่ขัดแย้งกัน หรือช่องว่างใน CLAUDE.md ทั้งหมดสามารถแก้ไขได้
ห้องนิรภัย Markdown พร้อมไฟล์สรุปช่วยขยายหน่วยความจำที่สองของคุณ ไฟล์สรุปช่วยให้เซสชันรวดเร็ว เอกสารฉบับเต็มจะโหลดตามต้องการ เมื่อ Claude ทำงานผิดปกติ ให้จัดลำดับความสำคัญในการแก้ไข: หน่วยความจำที่ล้าสมัย, บริบทที่ขาดหายไป, เครื่องมือไม่พร้อมใช้งาน, ภาพหลอน, และเริ่มต้นด้วย "แสดง STATE.md ของคุณ" เสมอ ป้อนข้อมูลเข้าห้องนิรภัย ณ เวลาที่ตัดสินใจ และมันจะเพิ่มมูลค่าขึ้นทุกสัปดาห์