[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 ทันที)

📦 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 ทุกวันครับ

แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่