Knowledge Hub

Diagram Design: ทำแผนภาพแบบ editorial ด้วย agent skill

เรียนรู้วิธีที่ skill diagram-design สร้างแผนภาพ HTML+SVG ไฟล์เดียวที่เปิดออฟไลน์ได้ ตั้งแต่กฎการออกแบบ กฎเส้นเชื่อม ไปจนถึงวิธีเลือกชนิดแผนภาพและตรวจคุณภาพก่อนส่งงาน

AI-Toolsอ่าน 13 นาทีเผยแพร่ 16 ตุลาคม 2569

แก่นของเรื่อง

แนวคิดหลัก: แผนภาพที่ดีเกิดจาก "ข้อจำกัดที่ตายตัว" ไม่ใช่จากการให้ AI วาดอิสระ skill นี้บังคับงบความซับซ้อน (9 node, 12 เส้น, สีเน้น 2 จุด) ระบบ 4px grid ชุดสีและฟอนต์คงที่ และกฎเส้นเชื่อม 6 ข้อ เพื่อให้ผลลัพธ์สม่ำเสมอทุกครั้ง

ทำไมถึงได้ผล (ตีความ):

  • เมื่อจำนวน node ถูกจำกัด ผู้วาดต้องตัดสิ่งที่ซ้ำซ้อนออก แผนภาพจึงเหลือแต่ความคิดที่แยกกัน
  • เมื่อสีเน้นมีได้ไม่เกิน 2 จุด สายตาผู้อ่านจึงไปที่จุดสำคัญก่อน
  • เมื่อกฎเป็นตัวเลข (ระยะ 12px, รัศมีมุม 8px) สคริปต์ตรวจอัตโนมัติได้ ไม่ต้องพึ่งการดูด้วยตา

20% ที่สำคัญที่สุดในทางปฏิบัติ:

ต้องทำให้ได้ รอได้
ลบก่อนเพิ่ม: ทุก node ต้องเป็นความคิดที่แยกกัน ปรับธีมแบรนด์จากเว็บไซต์
ไม่เกิน 9 node ถ้าเกินให้แยกเป็นภาพรวม + ภาพรายละเอียด export PNG/SVG
สีเน้นไม่เกิน 2 จุด นำเข้าไฟล์ draw.io/Excalidraw
เส้นเชื่อมต้องตั้งฉาก ไม่ทับกัน ฟอนต์ออฟไลน์
ถ้าตารางบอกได้เท่ากัน ให้ใช้ตาราง ชนิดแผนภาพที่หายาก

ช่วยให้ดีขึ้นอย่างไร

หมายเหตุ: repo ไม่มีตัวเลขการวัดผลเชิงเปรียบเทียบกับเครื่องมืออื่น ทุกแถวด้านล่างจึงเป็นการอ่านกฎจาก repo และการตีความ ไม่ใช่ผลวัด

สถานการณ์ ถ้าไม่ใช้ ถ้าใช้ วัดอย่างไร หลักฐาน
แผนภาพรก ให้ AI วาดอิสระ node เพิ่มเรื่อยๆ งบ 9 node / 12 เส้น แยกภาพเมื่อเกิน นับ node และเส้นในไฟล์ กฎอ่านจาก repo (16 ต.ค. 2026); ผลต่อความอ่านง่ายเป็น ตีความ
เส้นพาดทับกล่อง layout อัตโนมัติแบบ Mermaid กฎเส้นตั้งฉาก ห่างกัน 12px+ และสคริปต์ verify-geometry.py ผ่าน/ไม่ผ่านจากสคริปต์ กฎอ่านจาก repo; ประสิทธิภาพสคริปต์ ยังไม่ทดสอบ
หน้าตาไม่สม่ำเสมอ สี/ฟอนต์ต่างกันทุกภาพ style guide + token คงที่ เทียบ token ในไฟล์กับ style guide อ่านจาก repo; ตีความ
แชร์ไฟล์ ต้องมี build, JS, รูปแยก HTML ไฟล์เดียว เปิดออฟไลน์ ไม่มี JS เปิดไฟล์บนเครื่องที่ไม่มีเน็ต อ่านจาก repo; ยังไม่ทดสอบ
แก้ไขบ่อยใน Git Mermaid แก้เป็นข้อความได้ ไม่ดีขึ้น ผลลัพธ์ไม่ใช่ source ที่แก้ง่าย จำนวนบรรทัดที่ diff repo ระบุเองว่า Mermaid เหมาะกว่า (trade-off)

ลองใช้

ตัวอย่างประกอบ (ตัวเลขเป็นของเราเอง)

ระบบสั่งซื้อมี 14 องค์ประกอบ: เว็บ, แอปมือถือ, API gateway, auth, order, payment, inventory, notification, 3 queue, 2 database, cache

  1. รวมสิ่งที่ไปด้วยกันเสมอ: 3 queue รวมเป็น 1 กล่อง "queues"; 2 database รวมเป็น 1 → เหลือ 14 − 2 − 1 = 11
  2. รวมเว็บกับแอปมือถือเป็น "clients" → 10 (ยังเกิน 9)
  3. แยกเป็น 2 ภาพ: ภาพรวม 6 node (clients, gateway, services, queues, data, notification) และภาพรายละเอียดของ services 5 node (auth, order, payment, inventory, cache)
  4. สีเน้น: เฉพาะเส้นทางสั่งซื้อ→ชำระเงิน (2 element) ที่เหลือใช้ ink/muted
  5. ตรวจ: ภาพละไม่เกิน 9 node, เส้นไม่เกิน 12, สีเน้นไม่เกิน 2

เมื่อไรควร / ไม่ควรใช้

กรณี ใช้ เหตุผล
สถาปัตยกรรม, flow, ไทม์ไลน์ สำหรับเอกสารหรือพรีเซนต์ ใช้ ต้องการความสวยและสม่ำเสมอ
ภาพที่ต้องแชร์เป็นไฟล์เดียว ใช้ HTML+SVG เปิดออฟไลน์
แผนภาพใน repo ที่เปลี่ยนบ่อย ไม่ใช้ repo แนะนำ Mermaid
รายการธรรมดา หรือรูปเดียวที่เรียกว่า "diagram" ไม่ใช้ ใช้ตารางหรือรายการ
ต้องการแก้ภาพด้วยมือใน GUI ระวัง ผลลัพธ์ไม่ใช่รูปแบบที่แก้ต่อได้ง่าย (ตีความ)

สิ่งที่ต้องมีก่อน: agent host ที่รองรับ (Claude Code, Codex, Copilot, Cursor, Factory Droid, Pi ฯลฯ) และคำสั่งติดตั้ง npx skills add cathrynlavery/diagram-design (อ่านจาก repo)

ก้าวแรกที่เล็กที่สุด: ติดตั้ง skill แล้วสั่ง "architecture diagram ของโปรเจกต์นี้" ด้วยสไตล์ค่าเริ่มต้น ยังไม่ต้องตั้งแบรนด์

ทดสอบก่อน/หลัง

รายการ ค่าฐาน (ก่อน) เกณฑ์ผ่าน (กำหนดก่อนรัน)
จำนวน node ต่อภาพ นับจากแผนภาพเดิมของคุณ ≤ 9
จำนวนเส้นที่ตัดกัน/ทับกล่อง นับด้วยตา 0 จุดทับกล่อง
เวลาที่เพื่อนร่วมงานตอบว่า "จุดสำคัญคืออะไร" จับเวลากับ 3 คน สั้นลงและตอบตรงกัน
สคริปต์ตรวจ – self_check.py และ verify-geometry.py ผ่าน

ทดสอบความเข้าใจ

คำถาม คำตอบ คำตอบที่มักผิด
แผนภาพมี 12 node ทุกอันสำคัญ ควรทำอย่างไร แยกเป็นภาพรวม + ภาพรายละเอียด เพราะเกิน 9 node ย่อฟอนต์ให้ใส่ได้ในภาพเดียว
ทำไมไม่ใช้สีเน้นกับทุก node ที่ "สำคัญ" ถ้าทุกอันเน้น ก็ไม่มีอะไรเด่น และผิด anti-pattern ใช้ได้ ยิ่งเน้นยิ่งชัด
เส้นสองเส้นต้องผ่านขอบเดียวกัน ทำอย่างไร ใช้จุดเชื่อมแยก ห่างอย่างน้อย 12px วางทับกันแล้วใช้สีต่างกัน
ข้อมูลที่ตารางบอกได้ครบ ควรวาดแผนภาพหรือไม่ ใช้ตาราง ตามขั้นตอนเลือกชนิด วาดแผนภาพเพราะดูเป็นมืออาชีพกว่า
(กับดัก) ทีมเก็บแผนภาพใน Git และแก้ทุกสัปดาห์ skill นี้เหมาะไหม ไม่เหมาะนัก repo ชี้ว่า Mermaid ดีกว่า เพราะแก้เป็นข้อความได้ เหมาะ เพราะสวยกว่า
ผ่านกฎ grid 4px แล้ว แปลว่าแผนภาพสื่อสารดีใช่ไหม ไม่ใช่ กฎรับประกันความสะอาด ไม่ได้รับประกันว่าเนื้อหาถูก ใช่ เพราะผ่านตัวตรวจ

ภาพรวมของ skill

skill ผลิตไฟล์ HTML เดียวที่มี SVG ฝังอยู่ ไม่ต้อง build และไม่มี JavaScript ต้นแบบมี 3 แบบ: minimal light, minimal dark และ full editorial (อ่านจาก repo, 16 ต.ค. 2026)

ด้าน รายละเอียด
ผลลัพธ์ HTML + inline SVG ไฟล์เดียว เปิดออฟไลน์ได้
จำนวนชนิดแผนภาพ 45 (README และ SKILL.md) แต่หน้า About ของ repo เขียน 44 ซึ่งไม่ตรงกัน
นำเข้า draw.io, Mermaid, Excalidraw (วาดใหม่ ไม่ได้แปลงตรงๆ)
ส่งออก SVG, PNG เมื่อร้องขอเท่านั้น
ใบอนุญาต MIT

ขั้นตอนทำงาน (workflow)

1. Style gate  -> ตรวจ marker .diagram-design และ style guide
2. Pattern     -> ถ้าเรื่องพฤติกรรมสำคัญ (คอขวด, lifecycle, trust boundary)
3. Visual type -> เลือกชนิดภาพ; ถ้าตารางพอ ใช้ตาราง
4. State plan  -> ระบุชนิด, pattern, ขนาด, สิ่งที่จะตัด
5. Load ref + template -> ใส่ eyebrow, title, SVG, <title>, <desc>
6. Checklist + self_check.py
7. Export (ตามสั่งเท่านั้น)
flowchart LR
  A[Style gate] --> B[เลือก pattern]
  B --> C[เลือกชนิดภาพ]
  C --> D[ระบุแผน]
  D --> E[สร้างจากเทมเพลต]
  E --> F[ตรวจ checklist และสคริปต์]
  F --> G[Export ถ้าสั่ง]

ถ้ามีการนำเข้าไฟล์: สกัดข้อมูลต้นทางด้วยสคริปต์ → ตั้ง 4 dials (format, size, detail, audience) → วาดใหม่ → รายงาน fidelity ledger ว่าอะไรถูกรวม ย่อ หรือทิ้ง

กฎการออกแบบ

หลักการหลัก: "ลบก่อน" ทุก node ต้องเป็นความคิดที่แยกกัน รวม node ที่ไปด้วยกันเสมอ และตัดเส้นที่ layout บอกอยู่แล้ว

หัวข้อ กฎ (อ่านจาก repo)
ความหนาแน่นเป้าหมาย 4/10; เกิน 9 node ให้แยกภาพ
งบค่าเริ่มต้น 9 node, 12 เส้น, 2 องค์ประกอบสีเน้น, 2 callout
สีเน้น (coral) 1–2 จุดโฟกัส ที่เหลือใช้ ink/muted/soft
บทบาทสี paper, paper-2, ink, muted, soft, rule, rule-solid, accent, accent-tint, link
ฟอนต์ (หัวข้อ) Instrument Serif (หัวข้อ, callout เอียง)
ฟอนต์ (ชื่อ node) Geist 600
ฟอนต์ (ข้อความรอง) Geist Mono (sublabel, ป้ายลูกศร, คำสั่ง, URL)
ห้าม JetBrains Mono, เงา, rounded-2xl
รูปทรง node รัศมี 6px, tag rx=2
Grid ตำแหน่ง ขนาด ช่องว่าง padding อยู่บน 4px grid
ลูกศร (การวาด) วาดก่อนกล่อง; muted ปกติ, accent เส้นหลัก
ลูกศร (ชนิดเส้น) link สำหรับ HTTP/API, เส้นประ 5,4 สำหรับ optional/async

กฎเส้นเชื่อม 6 ข้อ (ละเมิดข้อใดข้อหนึ่ง = ไม่ผ่านอัตโนมัติ)

  1. ตั้งฉากเท่านั้น มุมโค้ง r=8 (ต่ำสุด 6) เส้นตรงเมื่อปลายทั้งสองอยู่แกน x หรือ y เดียวกัน
  2. ป้ายบนเส้นต้องมีพื้นทึบ ห่างจากเส้น 6–10px
  3. เส้นไม่ทับกัน เส้นขนานห่างอย่างน้อย 12px ที่จุดตัดใช้ hop
  4. เส้นที่ใช้ขอบเดียวกันต้องมีจุดต่อแยกกัน ห่าง ≥ 12px
  5. ห้ามลอดหลังกล่องที่ไม่ใช่ปลายทาง ถ้าเลี่ยงไม่ได้ใช้เส้นประและวางป้ายที่ปลายที่มองเห็น
  6. พื้นป้ายต้องไม่ทับ node ที่วาดทีหลัง ตรวจด้วย verify-geometry.py

ชนิดแผนภาพ (45 ชนิด)

กลุ่ม ชนิด
โครงสร้าง architecture, architecture delta, IT current-state, nested, tree
โครงสร้าง (ต่อ) org chart, layer stack, exploded axonometric, axonometric plan
โครงสร้าง (ต่อ) block decomposition trees
กระบวนการ/พฤติกรรม flowchart, sequence, state machine, swimlane, loop/flywheel, process
กระบวนการ/พฤติกรรม (ต่อ) lifecycle phase map, kanban, user journey, service blueprint, story map
ข้อมูล ER/data model, database schema, UML class, data flow, medallion
ข้อมูล (ต่อ) DP integration, DP security matrix, high-level, dependency graph, deployment
เปรียบเทียบ/ปริมาณ quadrant, radar, polar, Venn, pyramid/funnel, bar
เปรียบเทียบ/ปริมาณ (ต่อ) waterfall, treemap/marimekko, heatmap, line, scatter, Sankey
วางแผน/วิเคราะห์ timeline, Gantt, fishbone, Wardley map

รายการนี้อ่านจาก SKILL.md ซึ่งแต่ละกลุ่มนับรวมแล้วอาจไม่ตรง 45 พอดี (เพราะบางชนิดมีแบบย่อย) จึงไม่ควรใช้ตัวเลขนี้เป็นเกณฑ์ตายตัว

Checklist ก่อนส่งงาน

สถานะ รายการ
⚪ เลือกชนิดภาพแล้ว และเช็คว่าตารางไม่พอจริง
⚪ node ≤ 9, เส้น ≤ 12, callout ≤ 2
⚪ สีเน้น ≤ 2 องค์ประกอบ
⚪ SVG มี role="img" และ aria-labelledby ชี้ไปที่ <title> และ <desc>
⚪ <title> มาก่อน <defs>
⚪ ป้ายลูกศรทุกอันมีพื้นทึบ
⚪ legend เป็นแถบแนวนอนด้านล่าง
⚪ ไม่มีข้อความแนวตั้ง (writing-mode)
⚪ min-width ตรงกับ viewBox และอยู่ใน wrapper overflow-x: auto
⚪ ภาพเคลื่อนไหว (ถ้ามี) ทำงานได้โดยไม่มี JavaScript
⚪ ภาพเคลื่อนไหว (ถ้ามี) แสดงเฟรมนิ่งครบเมื่อเปิด reduced motion
⚪ self_check.py และ verify-geometry.py ผ่าน

Anti-patterns และความเข้าใจผิดที่พบบ่อย

ข้อผิดพลาด ทำไมแย่
โหมดมืดเรืองแสงสีฟ้า/ม่วง ขัดกับระบบสีที่จำกัด
ใช้ monospace เป็นฟอนต์ชื่อ node Mono ใช้ได้เฉพาะ sublabel, ป้าย, คำสั่ง
กล่องหน้าตาเหมือนกันหมด ไม่มีลำดับความสำคัญ
legend ลอยกลางภาพ ต้องเป็นแถบด้านล่าง
ทำสีเน้นทุก node "สำคัญ" สีเน้นหมดความหมาย
ลอกการจัดวางอัตโนมัติของ Mermaid ขัดกับแนวทาง layout ที่ออกแบบเอง

ข้อเท็จจริงเทียบกับความเห็น

ประเภท ตัวอย่าง
ข้อเท็จจริง (อ่านจาก repo) งบ 9 node/12 เส้น/2 สีเน้น; ผลลัพธ์เป็น HTML+SVG ไฟล์เดียว
ข้อเท็จจริง (อ่านจาก repo, ต่อ) ใบอนุญาต MIT; กฎเส้นเชื่อม 6 ข้อ
ความเห็นของผู้พัฒนา (ในเอกสาร repo) ว่านี่คือแนวทาง "editorial" ที่ดีกว่า "Mermaid slop"; เป้าความหนาแน่น 4/10
ตีความ กฎจำกัดทำให้อ่านง่ายขึ้น; ผลลัพธ์คงที่ข้ามภาพ
ยังไม่ทดสอบ ความถูกต้องของสคริปต์ตรวจ; ความเสถียรของผลเมื่อเปลี่ยนโมเดล

Risks

Warning ข้อมูลหน้านี้อ่านจากหน้าเว็บ repo, README และ SKILL.md ผ่านการดึงหน้าเว็บ ไม่ได้เปิดไฟล์ในโฟลเดอร์ references/, scripts/ หรือ templates จึงไม่รู้รายละเอียดของ layout-budget.md, style guide และสคริปต์ตรวจจริง และไม่ได้รันหรือติดตั้งอะไร

ความเสี่ยง รายละเอียด
คุณภาพขึ้นกับโมเดล README ระบุว่าผลลัพธ์ขึ้นกับโมเดลที่ใช้
ไม่ใช่ source ที่แก้ได้ง่าย แก้ในรอบถัดไปต้องสั่ง agent ใหม่
จำนวนชนิดไม่ตรงกัน 44 กับ 45 ในส่วนต่างๆ ของ repo
repo เปลี่ยนเร็ว มีประมาณ 351 commit; กฎอาจเปลี่ยน
ฟอนต์ ใช้ Instrument Serif, Geist, Geist Mono; ไม่มีฟอนต์ไทยในกฎที่อ่านมา
ฟอนต์ไทย การใช้กับข้อความไทยต้องทดสอบเอง (ตีความ)
ความปลอดภัย skill คือคำสั่งที่ agent จะทำตาม ควรอ่านก่อนติดตั้งจากแหล่งภายนอก

Decision / next steps

Recommendation ลองกับแผนภาพเดียวที่คุณวาดบ่อยที่สุด (เช่น architecture) ด้วยสไตล์ค่าเริ่มต้น เทียบกับตารางทดสอบก่อน/หลัง แล้วค่อยตั้งแบรนด์

ถ้า ให้
ผลผ่านเกณฑ์และทีมชอบ ตั้ง style guide จากแบรนด์ แล้วใช้เป็นมาตรฐาน
แผนภาพต้องแก้ใน Git บ่อย ใช้ Mermaid ต่อ และใช้ skill นี้กับภาพสุดท้ายเพื่อเผยแพร่
ข้อความไทยแสดงผลไม่ดี กำหนดฟอนต์ไทยใน style guide แล้วทดสอบซ้ำ

Sources

รายการ รายละเอียด
Repo cathrynlavery/diagram-design
Commit ที่อ่าน b46c970
วันที่อ่าน 2026-10-16
ไฟล์ที่อ่าน หน้า repo, README.md, skills/diagram-design/SKILL.md
วิธีอ่าน ผ่านการดึงหน้าเว็บและสรุป ไม่ใช่ gh
ใบอนุญาต MIT

ตัวย่อที่ใช้ในหน้านี้

ตัวย่อ ชื่อเต็ม คืออะไร อ่านค่าอย่างไร
HTML HyperText Markup Language ภาษาโครงหน้าเว็บ ไฟล์ .html เปิดด้วยเบราว์เซอร์
SVG Scalable Vector Graphics รูปเวกเตอร์ที่เขียนเป็นข้อความ ขยายแล้วไม่แตก
PNG Portable Network Graphics รูปภาพแบบ raster ส่งออกเป็นรูปนิ่ง
JS JavaScript ภาษาโปรแกรมฝั่งเบราว์เซอร์ "ไม่มี JS" = เปิดได้โดยไม่รันสคริปต์
WCAG AA Web Content Accessibility Guidelines ระดับ AA มาตรฐานการเข้าถึง รวมถึงความต่างสี ใช้ตรวจ contrast ของสีแบรนด์
ARIA / aria-labelledby Accessible Rich Internet Applications แอตทริบิวต์บอกเทคโนโลยีช่วยเข้าถึงว่าองค์ประกอบคืออะไร ชี้ไปที่ <title> ของ SVG
API Application Programming Interface ช่องทางให้โปรแกรมคุยกัน เส้นสี link = การเรียก HTTP/API
HTTP HyperText Transfer Protocol โปรโตคอลสื่อสารเว็บ เส้นสี link ใช้กับการเรียกแบบนี้
URL Uniform Resource Locator ที่อยู่เว็บ ใช้ Geist Mono
GUI Graphical User Interface หน้าจอแบบกราฟิก แก้ภาพด้วยมือใน GUI
ER Entity-Relationship แผนภาพตารางข้อมูลและความสัมพันธ์ ชนิด ER/data model
UML Unified Modeling Language ภาษามาตรฐานโมเดลซอฟต์แวร์ ชนิด UML class
IT Information Technology เทคโนโลยีสารสนเทศ ชนิด IT current-state
DP ไม่ระบุชื่อเต็มในข้อมูลที่อ่าน ใช้ในชื่อ "DP integration", "DP security matrix" ยังไม่ทราบความหมายแน่ชัด ต้องเปิดดู repo
MIT MIT License ใบอนุญาตโอเพนซอร์สแบบอนุญาตกว้าง ใช้ซ้ำและแก้ไขได้ตามเงื่อนไข
px pixel หน่วยจุดภาพ 12px = ห่าง 12 จุด
rx / r radius (rx ใน SVG) รัศมีมุมโค้ง r=8 = มุมโค้งรัศมี 8px
CSS ค่า min-width, overflow-x – คุณสมบัติจัดขนาดและการเลื่อน ใช้ใน wrapper ของ SVG
4/10 คะแนนความหนาแน่น เป้าหมายจากผู้พัฒนา 4 จาก 10 = ค่อนข้างโปร่ง
npx Node package runner คำสั่งรันแพ็กเกจ Node ใช้ติดตั้ง skill
AI Artificial Intelligence ปัญญาประดิษฐ์ agent ที่วาดแผนภาพ

แถวที่มาจากความรู้ทั่วไป ไม่ใช่นิยามใน repo: HTML, SVG, PNG, JS, WCAG AA, ARIA, API, HTTP, URL, GUI, ER, UML, IT, MIT, px, rx / r, CSS, npx, AI

Summary

  • คำตัดสิน: เหมาะกับการทำแผนภาพสำหรับเผยแพร่ที่อยากได้หน้าตาสม่ำเสมอ ไม่เหมาะกับภาพที่แก้ใน Git บ่อย
  • แก่น: ข้อจำกัดตายตัว (9 node, 12 เส้น, สีเน้น 2 จุด, 4px grid, กฎเส้น 6 ข้อ) ทำให้ผลลัพธ์สะอาดและตรวจได้ด้วยสคริปต์
  • ลำดับคิด: ลบก่อน → เลือกชนิด (ตารางพอไหม) → วาดตามงบ → ตรวจ checklist
  • ข้อควรระวัง: ไม่มีตัวเลขวัดผลใน repo ทุกข้อดีที่ว่า เป็นการตีความ และยังไม่ทดสอบกับข้อความไทย
  • ขั้นแรก: ติดตั้งแล้วลองกับแผนภาพเดียว ใช้ตารางก่อน/หลังเป็นเกณฑ์
Facebook

ความรู้ที่เกี่ยวข้อง