Friday, October 9, 2026

[OpenCode] เจาะลึก customize-opencode: Built-in Skill หัวใจสำคัญสำหรับการตั้งค่า OpenCode ให้ถูกต้องและปลอดภัย

ในการพัฒนาและใช้งาน OpenCode การตั้งค่าไฟล์คอนฟิกอย่างถูกต้องถือเป็นเรื่องวิกฤต เพราะหากระบุฟิลด์ผิดเพียงเล็กน้อย ระบบจะปฏิเสธการทำงานทันทีด้วย ConfigInvalidError ตัวระบบจึงออกแบบ Built-in Skill ที่ชื่อว่า customize-opencode ขึ้นมา เพื่อทำหน้าที่ควบคุมและนำทางการแก้ไขคอนฟิกของ OpenCode โดยเฉพาะ


1. บทบาทและหน้าที่หลักของ customize-opencode

Skill นี้ถูกปรับแต่งระดับ Core (ผ่าน packages/core/src/plugin/skill.ts) อยู่ในตำแหน่ง <built-in> จึงไม่ใช่ไฟล์สคริปต์ทั่วไป โดยมีหน้าที่หลักดังนี้:

  • นำทางการแก้ไขคอนฟิกอย่างถูกต้อง: แนะนำ Structure และ Schema ล่าสุดจาก https://opencode.ai/config.json เพื่อป้องกันโครงสร้างไฟล์ผิดพลาด
  • ดูแลขอบเขตการตั้งค่าทั้งหมด: ครอบคลุมการตั้งค่าใน opencode.json, opencode.jsonc, ไฟล์ใน .opencode/ และ ~/.config/opencode/
  • จัดการส่วนประกอบของระบบ: สั่งการสร้างหรือแก้ไข Agents, Subagents, Skills, Plugins, MCP Servers และ Permission Rules
  • ให้แนวทางแก้ไขเมื่อคอนฟิกมีปัญหา (Recovery Escape Hatches): แนะนำการใช้ Environmental Variables เช่น OPENCODE_DISABLE_PROJECT_CONFIG หรือ OPENCODE_PURE เพื่อกู้คืนระบบเมื่อไฟล์คอนฟิกมีปัญหา

2. เงื่อนไขการทำงาน (When it triggers)

ระบบจะเรียกใช้ customize-opencode เฉพาะกรณีต่อไปนี้เท่านั้น:

  • เมื่อมีการสร้างหรือแก้ไขไฟล์คอนฟิกของ OpenCode โดยตรง (opencode.json, .opencode/*, ~/.config/opencode/*)
  • เมื่อทำการเพิ่มหรือแก้ไข Agents, Subagents, Skills, Plugins, MCP Servers หรือ Permission Rules
  • จะไม่ทำงาน (Do NOT trigger): กับการเขียน Source Code ปกติของแอปพลิเคชันผู้ใช้ หรือโปรเจกต์อื่นๆ ที่ไม่ใช่การตั้งค่าตัว OpenCode เอง

3. ข้อเท็จจริงสำคัญในการใช้งาน (Key Facts)

ประเด็นสำคัญ รายละเอียด
No Hot-Reloading ไฟล์คอนฟิกจะถูกโหลดเพียงครั้งเดียวตอนเริ่มระบบ (Startup) เมื่อแก้ไขแล้วต้อง Restart ระบบใหม่เสมอ
Strict Validation หากพบ Top-level key ที่ไม่รู้จัก ระบบจะปฏิเสธการเริ่มทำงานทันทีด้วย ConfigInvalidError
Skill Structure การสร้าง Skill ต้องมีไฟล์ SKILL.md พร้อม Frontmatter ที่ระบุ name และ description โดยเก็บไว้ที่ ~/.config/opencode/skills/<name>/SKILL.md
Core Built-in Layer ฝังอยู่ในระดับ Core ของ OpenCode จึงพร้อมใช้งานทันทีโดยไม่ต้องติดตั้งแยก

สรุป

customize-opencode คือกลไกความปลอดภัยและคู่มือนำทาง built-in ที่ช่วยให้ผู้พัฒนาสามารถปรับแต่งและแก้ไขค่าการทำงานของ OpenCode ไม่ว่าจะเป็นการเพิ่ม MCP Server, Custom Agents หรือ Skills ได้อย่างถูกต้องและปลอดภัย โดยไม่ต้องเสี่ยงกับปัญหาคอนฟิกผิดพลาดจนระบบเปิดไม่ติด

No comments:

Post a Comment