Dir2md + Spicy: สแกนเนอร์รีโพที่ดึงคอนเท็กซ์ Markdown/JSONL สำหรับ LLM และรายงานความปลอดภัยได้ในครั้งเดียว
(github.com/flamehaven01)สวัสดีครับ/ค่ะ เมื่อประมาณสามเดือนก่อนผม/ฉันเคยแนะนำ Dir2md เป็นครั้งแรก
หลังจากนำไปใช้กับหลายโปรเจกต์ ก็พบข้อจำกัดเชิงโครงสร้าง และด้วยเหตุนี้จึงได้ยกเครื่องอัลกอริทึม ความปลอดภัย และไปป์ไลน์การแสดงผลทั้งหมดใหม่
❔Dir2md คืออะไร
Dir2md คือ เครื่องมือที่แปลงโครงสร้างไดเรกทอรีที่ซับซ้อนให้เป็นคอนเท็กซ์ Markdown·JSONL ที่เป็นมิตรกับ AI พร้อม smart sampling, security masking และการควบคุมงบประมาณโทเค็น เครื่องมือนี้จะจัดระเบียบรีโพให้อัตโนมัติในรูปแบบที่เหมาะที่สุดสำหรับการพัฒนาแบบ AI-assisted development
🔧 มีอะไรเปลี่ยนไปบ้าง — ผลลัพธ์จากการยกเครื่องทั้งหมดตลอด 3 เดือน
1) ออกแบบเอนจินสำหรับ AI ใหม่
- เพิ่ม head/tail smart sampling ระดับไฟล์
- ปรับตรรกะ การจัดสรรงบประมาณโทเค็นอัตโนมัติ ให้ละเอียดขึ้น
- ปรับโครงสร้าง การเลือกไฟล์สำคัญก่อน
- จัดทำ ไปป์ไลน์การแสดงผลหลายรูปแบบ ได้แก่ Markdown, JSON, JSONL, manifest
2) เพิ่ม Spicy (ตัววิเคราะห์ความปลอดภัยและความเสี่ยง)
- มี risk scanner ในตัว ที่เปิดใช้งานเป็นค่าเริ่มต้นเมื่อรัน
- ใช้ระบบ ระดับความรุนแรง 5 ขั้น ตั้งแต่ ok → critical
- คำนวณ คะแนนความเสี่ยง 0~100 ในระดับรีโพ
- แสดง Actionable Risk Table ที่มีไฟล์/บรรทัด/หมวดหมู่/แนวทางรับมือ
3) เสริมเอนจิน security masking
- มาสก์อัตโนมัติ สำหรับแพตเทิร์นสำคัญ เช่น API key, JWT, OAuth, DB URL, PEM
- เพิ่ม regex แบบกำหนดเองโดยผู้ใช้และ ความสามารถในการโหลดไฟล์แพตเทิร์น
4) เพิ่มการกำจัดข้อมูลซ้ำด้วย SimHash
- ลบไฟล์ที่คล้ายกันและผลลัพธ์จากการ build
- ลดการสิ้นเปลืองโทเค็นซ้ำซ้อน ในคอนเท็กซ์อินพุตของ LLM
5) ขยายระบบ Preset
- มี 4 โหมดคือ
raw,pro,ai,fast - โหมด
aiมี งบประมาณ 6000 โทเค็น + การจัดอันดับไฟล์ตามคิวรี
🌶️ Spicy คืออะไร?
พูดสั้น ๆ Spicy คือ “ผู้รีวิวอัตโนมัติที่ไม่เคยใจอ่อนเรื่องความปลอดภัย เหมือนซีเนียร์ดีเวลลอปเปอร์สายตาเฉียบคม”
Dir2md ไม่ใช่แค่เครื่องมือสำหรับ “ทำเอกสารของไดเรกทอรี” เท่านั้น แต่ยังตรวจสอบความปลอดภัยและคุณภาพที่จำเป็นต้องทำก่อนนำรีโพใส่ให้ AI ได้ในครั้งเดียว
1) ตรวจจับข้อมูลอ่อนไหว
- ตรวจจับแพตเทิร์นที่อาจนำไปสู่อุบัติเหตุจริง เช่น API Key, OAuth Client Secret, JWT, DB URL, PEM key
2) วิเคราะห์การใช้การเข้ารหัสที่อ่อนแอและความปลอดภัยที่เปราะบาง
- ตรวจจับโค้ดที่มีปัญหาด้านความปลอดภัย เช่น อัลกอริทึมที่เปราะบาง การจัดการคีย์ที่ไม่ปลอดภัย
3) วินิจฉัยความเป็นไปได้ของการเกิด injection
- ตรวจจับแพตเทิร์นที่คล้ายกับ SQL/Command/Code Injection
4) การเปิดเผยข้อมูลผ่าน log และ debug
- ตรวจจับโค้ด/การตั้งค่าที่มีการแสดงผลข้อมูลอ่อนไหว
5) ปัญหาการควบคุมการเข้าถึง
- วิเคราะห์แพตเทิร์นที่มีช่องโหว่เกี่ยวกับ authentication และ authorization
- ตรวจจับสัญญาณความเสี่ยงด้านการตั้งค่าที่ถูกกล่าวถึงใน README ด้วย
📊 ผลการวัดจริงจากรีโพ production ภายใน 9 รีโพ
หลังการออกแบบ Dir2md + Spicy ใหม่ ตัวเลขที่วัดได้จริง ณ เมื่อวานมีดังนี้:
- ตรวจพบข้อมูลอ่อนไหวระดับ high·critical เฉลี่ย 2.4 รายการต่อรีโพ
- เช่น API key, PEM private key, DB URL, bearer token
- ขนาดคอนเท็กซ์ลดลงเฉลี่ย 68%
- 128k → ~41k tokens (ยังคงเก็บทุกไฟล์ที่มีความหมายไว้)
- เวลาทำ security review: เดิม 3.5 ชั่วโมง → 11 วินาที
- จำนวนข้อมูลลับที่รั่วออกไปผ่าน LLM prompt หลังนำไปใช้: 0 กรณี
ผลลัพธ์นี้คือประสิทธิภาพในสภาพแวดล้อมการใช้งานจริงที่เกิดขึ้นเมื่อ smart sampling · การกำจัดข้อมูลซ้ำด้วย SimHash · การวิเคราะห์ความเสี่ยงของ Spicy · เอนจิน masking ทำงานร่วมกัน
⭐ หากโปรเจกต์นี้มีประโยชน์กับคุณ
Dir2md + Spicy เป็นโอเพนซอร์ส
ฟีเจอร์ส่วนใหญ่ที่คุณเห็นอยู่ตอนนี้สามารถพัฒนามาได้ ด้วยฟีดแบ็กจากผู้ใช้และดาว (⭐) ขอขอบคุณอีกครั้ง
- 👉 GitHub Star ของคุณหนึ่งครั้งช่วยได้มาก!
- 👉 ยินดีรับทั้งบั๊กและไอเดียใหม่ ๆ เสมอ
2 ความคิดเห็น
📌 สรุปอัปเดตสำคัญหลัง dir2md v1.1.2
v1.2.1 (แพตช์ด้านความปลอดภัย/ความน่าเชื่อถือ)
vulture) → ปิดกั้นเวกเตอร์ RCEdefaults.json+ เพิ่มระบบลำดับความสำคัญv1.2.0 (การเพิ่มประสิทธิภาพอัตโนมัติอัจฉริยะ)
pipeline ลดโทเค็น 60~70% ที่ทำงานได้โดยไม่ต้องตั้งค่า
เมื่อใช้
--queryจะมีการแก้คำสะกดผิดอัตโนมัติ + ขยายผลการค้นหาออกแบบโดยยึด preset เป็นศูนย์กลาง ทำให้ลดจำนวนแฟลกลงอย่างมาก (raw/fast/pro/ai)
พัฒนาโดยไม่พึ่งพา external NLP/LLM dependency
v1.1.3
👉 สรุปคือ ตั้งแต่ 1.2.x เป็นต้นไป เป็นรีลีสที่เน้น “ลดการตั้งค่า เสริมความปลอดภัย/ความเป็นเชิงกำหนด/ความเป็นมิตรต่อ AI”
(คงความเข้ากันได้ย้อนหลังไว้, ไม่มี CLI breaking)
ที่มา: CHANGELOG
🚂 dir2md 1.1.2 ปล่อยแล้ว!
อัปเดตครั้งนี้ภายนอกอาจดูเล็ก แต่รวมเฉพาะการเปลี่ยนแปลงที่ส่งผลโดยตรงต่อความเสถียรในการใช้งานจริงเท่านั้น
🛡 Security
🔸พรีคอมไพล์ regex สำหรับการมาสก์แบบพื้นฐาน/ขั้นสูงล่วงหน้า → ลดความเสี่ยง ReDoS
🔸ไฟล์ขนาดเกิน 1MB จะถูกข้ามก่อนอ่าน และบันทึกไว้แค่ใน manifest
⚙️ Performance
🔸ใช้ LRU cache (2048) กับการประเมินจำนวนโทเค็น → เพิ่มความเร็วในรีโปขนาดใหญ่
🔸แม้เป็นสตริงว่างก็จะนับเป็นอย่างน้อย 1 โทเค็น → ขจัดความกำกวมของ “0 โทเค็น”
🧩 UX / Behavior
🔸ไฟล์ที่ถูกข้ามจะทิ้งแฮช/สรุปแบบ placeholder ไว้ เพื่อเพิ่มความโปร่งใส
🔸แพตเทิร์นการมาสก์แบบกำหนดเอง หากคอมไพล์ไม่สำเร็จจะเตือนแล้วเมินข้าม (ป้องกันการล้มเหลวแบบเงียบ ๆ)
✅ Tests
🔸ผ่าน 22, ข้าม 2
แม้จะเป็นรีลีสเล็ก ๆ แต่ก็รันการทดสอบครบทั้งหมดแล้ว
เป้าหมายของเวอร์ชันนี้มีเพียงข้อเดียว:
“มันรันทุกวันบน CI และโค้ดโปรดักชันจริงได้หรือไม่?”
ตอนนี้เราเข้าใกล้คำนั้นไปอีกหนึ่งก้าวแล้ว
https://github.com/flamehaven01/Dir2md/releases/tag/v1.1.2