ในการพัฒนาและใช้งาน 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