สวัสดีครับห้องซิลิคอน
ผมได้มีโอกาสพัฒนา cli tool ตัวนึงเป็น open-source
ชื่อ Mneme (อ่านว่า "นี-เมะ" จากกรีก = "ความจำ")
วันนี้ปล่อย v0.10.0 มาแชร์ + ขอ feedback ครับ
═══════════════════════════════════════════════════════════════
🎯 ปัญหา — ทุก AI assistant มีจุดบอดเดียวกัน
═══════════════════════════════════════════════════════════════
มันเห็น "what" — โค้ดทำอะไร
แต่ไม่เห็น "why" — ทำไมถึงเขียนแบบนี้
เพราะ "why" อยู่ใน:
• PR description เมื่อ 8 เดือนก่อน ที่อธิบายว่าเป็น bug ของ third-party
• Incident report ที่เป็นต้นเหตุให้ commit นั้นเกิด
• Slack thread ที่ไม่มีใครเอาเข้ามาใน comment
ผลคือ AI hallucinate เหตุผลที่ฟังดูสมเหตุสมผล
เราเชื่อ → ship → bug ตามมาอีก 2 สัปดาห์ → debug หาว่าใครเขียน
═══════════════════════════════════════════════════════════════
🎯 สถานการณ์ที่น่าจะคุ้น
═══════════════════════════════════════════════════════════════
นั่งดู PR ของเพื่อนร่วมทีม เห็นบรรทัด:
} catch (RangeError) {
return String(amount);
}
"แปลก ทำไมต้องดัก RangeError?"
ถาม AI assistant ที่ใช้อยู่ — มันอ่านไฟล์ปัจจุบัน
ตอบมาแบบมั่นใจ: "เพื่อ handle invalid input"
จริง ๆ แล้ว — เป็น Stripe webhook bug จากปี 2024
BigInt amount ที่ Number() overflow แล้ว toString() throw RangeError
ทุกอย่างอยู่ใน PR #482 เมื่อ 8 เดือนก่อน
แต่ AI ไม่เห็น — มัน "เดา" และเดาผิดอย่างมั่นใจ
═══════════════════════════════════════════════════════════════
💡 Mneme คืออะไร
═══════════════════════════════════════════════════════════════
CLI + MCP server ที่ทำหน้าที่ "ความจำ" ให้ AI assistant ของคุณ:
1. Index commit + PR + blame ทั้งหมดของ repo ลง SQLite local
2. ถามคำถามได้ทันที — "why does X exist?" → ได้ commit จริง +
ลิงก์ไป GitHub พร้อม synthesis เป็นภาษามนุษย์
3. เสียบเข้า Claude/Cursor/Copilot ผ่าน MCP
(AI จะอ่านประวัติแทนการเดา)
═══════════════════════════════════════════════════════════════
🔥 Killer commands ที่ "ไม่มีเครื่องมือไหนทำ"
═══════════════════════════════════════════════════════════════
mneme who-knows "stripe"
→ ใครเป็น expert บน topic นี้ + tier definitive/active/stale
→ พร้อมแนะนำ backup ถ้าคนหลักไม่ว่าง
mneme decisions
→ auto-extract ADRs จาก commit message (9 patterns)
→ "decided to X / switched from A to B / replaced X with Y"
→ export เป็น Markdown หรือ Obsidian vault ได้
mneme bus-factor
→ หาไฟล์ที่คน 1 คนทำ ≥ 75% ของ commits ทั้งหมด
→ ถ้าคนนั้นออก = knowledge หาย → coaching opportunity
→ แนะนำคู่ pair-program ให้ตรง
mneme drawdown
→ หาช่วงที่ team firefight ยาวสุด (commit แต่ fix bug)
→ ใช้ใน retrospective ว่า "Q3 ของเราเสียไปกับอะไร"
═══════════════════════════════════════════════════════════════
❓ FAQ ที่น่าจะถาม
═══════════════════════════════════════════════════════════════
Q: ใช้กับภาษาอื่นได้ไหม (Java, PHP, Rust, COBOL)
A: ได้ครับ — 95% ของ commands อ่าน git ไม่ใช่ AST → ทุกภาษาใช้ได้
Q: ใช้กับ legacy codebase 10 ปีได้ไหม
A: ได้ดีกว่าด้วยซ้ำ — ยิ่ง history ยาวยิ่ง insight แม่น
Q: commit message เก่าห่วยมาก ("fix", "wip") จะใช้ได้ไหม
A: ใช้ mneme heal สั่ง AI สังเคราะห์ WHY notes จาก diff
(ใช้ Ollama local ฟรี ไม่ส่งโค้ดออกเครื่อง)
Q: ปลอดภัยกับ private repo ไหม
A: ปลอดภัย — local-first by default, มี --no-llm mode +
secret redaction (12 patterns ตัด AWS/GitHub PAT/Stripe ทันที)
📦 npm: https://www.npmjs.com/package/mneme-ai
💻 GitHub: https://github.com/patsa2561-art/mneme-ai
📚 Wiki: https://github.com/patsa2561-art/mneme-ai/wiki
ขอบคุณ comment ทุกท่านครับ
ใครติดตั้งแล้วลองใช้ ขอ feedback ตรง ๆ ได้เลย
ผมมีอ่าน github issues ทุกวันครับ
[OSS] Mneme — Memory layer สำหรับ นักพัฒนา Software ที่ใช้ Git เป็นประจำ
ผมได้มีโอกาสพัฒนา cli tool ตัวนึงเป็น open-source
ชื่อ Mneme (อ่านว่า "นี-เมะ" จากกรีก = "ความจำ")
วันนี้ปล่อย v0.10.0 มาแชร์ + ขอ feedback ครับ
═══════════════════════════════════════════════════════════════
🎯 ปัญหา — ทุก AI assistant มีจุดบอดเดียวกัน
═══════════════════════════════════════════════════════════════
มันเห็น "what" — โค้ดทำอะไร
แต่ไม่เห็น "why" — ทำไมถึงเขียนแบบนี้
เพราะ "why" อยู่ใน:
• PR description เมื่อ 8 เดือนก่อน ที่อธิบายว่าเป็น bug ของ third-party
• Incident report ที่เป็นต้นเหตุให้ commit นั้นเกิด
• Slack thread ที่ไม่มีใครเอาเข้ามาใน comment
ผลคือ AI hallucinate เหตุผลที่ฟังดูสมเหตุสมผล
เราเชื่อ → ship → bug ตามมาอีก 2 สัปดาห์ → debug หาว่าใครเขียน
🎯 สถานการณ์ที่น่าจะคุ้น
═══════════════════════════════════════════════════════════════
นั่งดู PR ของเพื่อนร่วมทีม เห็นบรรทัด:
} catch (RangeError) {
return String(amount);
}
"แปลก ทำไมต้องดัก RangeError?"
ถาม AI assistant ที่ใช้อยู่ — มันอ่านไฟล์ปัจจุบัน
ตอบมาแบบมั่นใจ: "เพื่อ handle invalid input"
จริง ๆ แล้ว — เป็น Stripe webhook bug จากปี 2024
BigInt amount ที่ Number() overflow แล้ว toString() throw RangeError
ทุกอย่างอยู่ใน PR #482 เมื่อ 8 เดือนก่อน
แต่ AI ไม่เห็น — มัน "เดา" และเดาผิดอย่างมั่นใจ
═══════════════════════════════════════════════════════════════
💡 Mneme คืออะไร
═══════════════════════════════════════════════════════════════
CLI + MCP server ที่ทำหน้าที่ "ความจำ" ให้ AI assistant ของคุณ:
1. Index commit + PR + blame ทั้งหมดของ repo ลง SQLite local
2. ถามคำถามได้ทันที — "why does X exist?" → ได้ commit จริง +
ลิงก์ไป GitHub พร้อม synthesis เป็นภาษามนุษย์
3. เสียบเข้า Claude/Cursor/Copilot ผ่าน MCP
(AI จะอ่านประวัติแทนการเดา)
═══════════════════════════════════════════════════════════════
🔥 Killer commands ที่ "ไม่มีเครื่องมือไหนทำ"
═══════════════════════════════════════════════════════════════
mneme who-knows "stripe"
→ ใครเป็น expert บน topic นี้ + tier definitive/active/stale
→ พร้อมแนะนำ backup ถ้าคนหลักไม่ว่าง
mneme decisions
→ auto-extract ADRs จาก commit message (9 patterns)
→ "decided to X / switched from A to B / replaced X with Y"
→ export เป็น Markdown หรือ Obsidian vault ได้
mneme bus-factor
→ หาไฟล์ที่คน 1 คนทำ ≥ 75% ของ commits ทั้งหมด
→ ถ้าคนนั้นออก = knowledge หาย → coaching opportunity
→ แนะนำคู่ pair-program ให้ตรง
mneme drawdown
→ หาช่วงที่ team firefight ยาวสุด (commit แต่ fix bug)
→ ใช้ใน retrospective ว่า "Q3 ของเราเสียไปกับอะไร"
❓ FAQ ที่น่าจะถาม
═══════════════════════════════════════════════════════════════
Q: ใช้กับภาษาอื่นได้ไหม (Java, PHP, Rust, COBOL)
A: ได้ครับ — 95% ของ commands อ่าน git ไม่ใช่ AST → ทุกภาษาใช้ได้
Q: ใช้กับ legacy codebase 10 ปีได้ไหม
A: ได้ดีกว่าด้วยซ้ำ — ยิ่ง history ยาวยิ่ง insight แม่น
Q: commit message เก่าห่วยมาก ("fix", "wip") จะใช้ได้ไหม
A: ใช้ mneme heal สั่ง AI สังเคราะห์ WHY notes จาก diff
(ใช้ Ollama local ฟรี ไม่ส่งโค้ดออกเครื่อง)
Q: ปลอดภัยกับ private repo ไหม
A: ปลอดภัย — local-first by default, มี --no-llm mode +
secret redaction (12 patterns ตัด AWS/GitHub PAT/Stripe ทันที)
💻 GitHub: https://github.com/patsa2561-art/mneme-ai
📚 Wiki: https://github.com/patsa2561-art/mneme-ai/wiki
ขอบคุณ comment ทุกท่านครับ
ใครติดตั้งแล้วลองใช้ ขอ feedback ตรง ๆ ได้เลย
ผมมีอ่าน github issues ทุกวันครับ