เรียนรู้วิธีใช้ Excalidraw Diagram Skill กับ Claude Code เพื่อสร้างไดอะแกรมเทคนิคอัตโนมัติสำหรับ Frappe Framework, ERPNext และสถาปัตยกรรมซอฟต์แวร์ทุกประเภท

นักพัฒนาทุกคนเคยประสบปัญหานี้: ต้องการไดอะแกรมสถาปัตยกรรมสำหรับเอกสาร บล็อกโพสต์ หรือนำเสนอให้ทีม แต่การสร้างด้วยมือใน Figma หรือ draw.io ใช้เวลานานเกินไป ถ้า AI coding agent ของคุณสามารถสร้างไดอะแกรมสวยๆ ระดับมืออาชีพได้โดยตรงจากคำอธิบายล่ะ?
นั่นคือสิ่งที่ Excalidraw Diagram Skill ทำได้ สร้างขึ้นโดย Cole Medin (coleam00) และปรับแต่งโดยทีม MooCoding สกิลนี้เปลี่ยน Claude Code ให้เป็นเครื่องมือสร้างไดอะแกรมที่สร้างไฟล์ JSON แบบมีเหตุผลทางภาพ -- ไม่ใช่แค่กล่องกับลูกศร
.excalidrawExcalidraw Diagram Skill เป็น Claude Code skill (ใช้ได้กับ coding agent ทุกตัวที่รองรับ skills) ที่สร้างไฟล์ Excalidraw diagram จากคำอธิบายภาษาธรรมชาติ แต่มันทำได้มากกว่าการสร้างไดอะแกรมทั่วไป:
color-palette.md เดียวไดอะแกรมไม่ใช่ข้อความที่จัดรูปแบบ มันคือ visual argument ที่แสดงความสัมพันธ์ ความเป็นเหตุเป็นผล และ flow ที่คำเพียงอย่างเดียวไม่สามารถสื่อได้ รูปร่างควร "เป็น" ความหมายของมัน
สกิลนี้ใช้การทดสอบสองอย่าง:
การตั้งค่าสกิลทำได้ง่าย:
# Clone repository
git clone https://github.com/coleam00/excalidraw-diagram-skill.git
# คัดลอกไปยัง skills directory ของโปรเจกต์
cp -r excalidraw-diagram-skill .claude/skills/excalidraw-diagramจากนั้นตั้งค่า render pipeline สำหรับ visual validation:
cd .claude/skills/excalidraw-diagram/references
uv sync
uv run playwright install chromiumเมื่อติดตั้งเสร็จ Claude Code จะตรวจจับและใช้สกิลโดยอัตโนมัติเมื่อคุณขอให้สร้างไดอะแกรม
สกิลนี้ทำงานตามกระบวนการ 6 ขั้นตอน:
ก่อนสร้างอะไร agent จะกำหนดระดับรายละเอียดที่ต้องการ:
แต่ละแนวคิดจะถูกแมปกับ visual pattern ที่สะท้อนพฤติกรรมของมัน:
| พฤติกรรมของแนวคิด | Visual Pattern |
|---|---|
| One-to-many (สร้าง outputs หลายอัน) | Fan-out (ลูกศรกระจาย) |
| Many-to-one (รวม inputs เข้าด้วยกัน) | Convergence (กรวย) |
| ขั้นตอนเรียงลำดับ | Timeline (เส้น + จุด) |
| วนซ้ำต่อเนื่อง | Spiral/Cycle |
| การแปลงข้อมูล | Assembly line (ก่อน → ประมวลผล → หลัง) |
| การเปรียบเทียบ | Side-by-side (โครงสร้างคู่ขนาน) |
สำหรับไดอะแกรมที่ซับซ้อน สกิลจะสร้าง JSON ทีละ section -- ไม่พยายามสร้างไฟล์ทั้งหมดในรอบเดียว วิธีนี้ให้คุณภาพที่ดีกว่าและหลีกเลี่ยง output token limits
หลังจากสร้าง JSON แล้ว agent จะ render เป็น PNG ด้วย Playwright ตรวจสอบผลลัพธ์ด้วยสายตา และแก้ไขปัญหา -- โดยทั่วไปจะวนซ้ำ 2-4 รอบจนกว่าไดอะแกรมจะผ่านการตรวจสอบคุณภาพ
มาดูสกิลนี้ในการใช้งานจริงกัน นี่คือไดอะแกรมที่สร้างขึ้นเพื่อเอกสาร Frappe Framework architecture:

ไดอะแกรมนี้สร้างโดยบอก Claude Code ว่า:
"สร้างไดอะแกรม Excalidraw แสดง Frappe Framework architecture -- วิธีที่ apps อย่าง frappe, erpnext และ custom app เชื่อมต่อกับ framework layer ซึ่งให้บริการ ORM, REST API, WebSocket และ Background Jobs แสดงว่า sites เชื่อมต่อกับ databases อย่างไร รวมถึง evidence artifact แสดงตัวอย่างโค้ด hooks.py"
สังเกตว่าไดอะแกรมนี้ปฏิบัติตามหลักการของสกิล:
hooks.py จริง ไม่ใช่แค่ป้ายfrappe-bench/ แสดงขอบเขตระบบโดยไม่หนักเกินไปทางสายตานี่คือไดอะแกรมอีกตัวที่แสดง development lifecycle แบบ timeline:

ไดอะแกรมนี้ใช้หลาย visual patterns:
สกิลมาพร้อม pattern library ที่ครอบคลุม:
○
↗
□ → ○
↘
○
ใช้สำหรับ: sources, root causes, central hubs -- เช่นวิธีที่ Frappe app แตกสาขาเป็นโครงสร้างไดเรกทอรี
●─── Label 1
│
●─── Label 2
│
●─── Label 3
ใช้สำหรับ: development workflows, deployment pipelines, event sequences
○○○ → [PROCESS] → □□□
chaos order
ใช้สำหรับ: data transformations, build pipelines, API request/response flows
สีไม่ใช่การตกแต่ง แต่เป็นการเข้ารหัสข้อมูลเชิงความหมาย:
| วัตถุประสงค์ | สี Fill | เมื่อใดที่ใช้ |
|---|---|---|
| Start/Trigger | ส้ม (#fed7aa) | จุดเริ่มต้น, triggers |
| Success/Active | เขียว (#a7f3d0) | โค้ดที่กำหนดเอง, outputs |
| Primary | น้ำเงิน (#3b82f6) | Core framework, ส่วนประกอบหลัก |
| Decision/Data | เหลือง (#fef3c7) | ฐานข้อมูล, จุดตัดสินใจ |
| AI/LLM | ม่วง (#ddd6fe) | ส่วนประกอบที่เกี่ยวกับ AI |
| Error | แดง (#fecaca) | สถานะข้อผิดพลาด, คำเตือน |
นี่คือไอเดียไดอะแกรมที่เหมาะกับสกิลนี้สำหรับโปรเจกต์ Frappe:
doc_events ใน hooks.py เชื่อมต่อโค้ดของคุณกับ Frappe events หลักอย่างไรหนึ่งในฟีเจอร์ที่น่าประทับใจที่สุดคือ visual validation อัตโนมัติ สกิลนี้รวมถึง:
render_excalidraw.py -- สคริปต์ Python ที่ใช้ Playwright ในการ render ไฟล์ .excalidraw เป็น PNGrender_template.html -- template เบราว์เซอร์ที่โหลด Excalidraw rendering engine# Render ไฟล์ .excalidraw เป็น PNG
cd .claude/skills/excalidraw-diagram/references
uv run python render_excalidraw.py path/to/diagram.excalidrawAgent ใช้ pipeline นี้ในลูป: สร้าง → render → ตรวจสอบ → แก้ไข → render ใหม่ จนกว่าไดอะแกรมจะผ่านมาตรฐานคุณภาพ
excalidraw-diagram/
SKILL.md # Design methodology + workflow
references/
color-palette.md # สีแบรนด์ (แก้ไขเพื่อปรับแต่ง)
element-templates.md # JSON templates สำหรับแต่ละประเภท element
json-schema.md # อ้างอิง Excalidraw JSON format
render_excalidraw.py # Render .excalidraw เป็น PNG
render_template.html # Browser template สำหรับ rendering
pyproject.toml # Python dependencies (playwright)
ได้ แก้ไขไฟล์ references/color-palette.md ด้วยสีแบรนด์ของคุณ ส่วนอื่นทั้งหมดในสกิลเป็น universal design methodology Agent จะใช้ palette ของคุณสำหรับไดอะแกรมในอนาคตทั้งหมด
ได้ สกิลนี้เข้ากันได้กับ coding agent ทุกตัวที่รองรับ skills directory สำหรับ agents ที่อ่านจาก .claude/skills/ (เช่น Claude Code และ OpenCode) แค่วางลงไปก็ใช้ได้เลย
สกิลจัดการไดอะแกรมขนาดใหญ่โดยสร้างทีละ section ด้วย element IDs ที่แบ่ง namespace และ cross-section binding ที่ระมัดระวัง ไดอะแกรมเทคนิคที่ซับซ้อนพร้อม multiple zoom levels ทำงานได้ดี
ได้แน่นอน ผลลัพธ์เป็น .excalidraw JSON มาตรฐานที่เปิดได้ใน excalidraw.com หรือ editor ที่เข้ากันได้ คุณสามารถปรับตำแหน่ง สี หรือข้อความหลังจากสร้างได้
สกิลนี้สร้าง Excalidraw format โดยเฉพาะ ซึ่งให้การควบคุมทางภาพมากกว่า format แบบ text อย่าง Mermaid สำหรับ flowcharts ง่ายๆ Mermaid ก็ใช้ได้ดี แต่สำหรับไดอะแกรมเทคนิคที่ครอบคลุมพร้อม evidence artifacts และ visual arguments Excalidraw เหนือกว่ามาก