คอร์สเรียนด้วยตนเอง · ภาษาไทย

Oracle 101

สร้าง Oracle ของตัวเอง — ระบบสมองภายนอกสำหรับ AI agent

โมดูล 01

Oracle คืออะไร?

Oracle คือสมองภายนอกที่ทำให้คนและ AI agent หลายตัวทำงานต่อเนื่องกันข้าม session โดยไม่สูญเสียความจำ

ทำไมต้องเรียนโมดูลนี้: ก่อนจะลงมือติดตั้งอะไร คุณต้องมีประโยคเดียวที่ตอบเพื่อนร่วมงานได้เมื่อเขาถามว่า "Oracle คืออะไร" คำตอบที่สั้นที่สุดจาก source คือ "สมองภายนอกที่คนและ agent หลายตัวใช้ร่วมกันได้" เมื่อประโยคนี้อยู่ในหัวแล้ว ส่วนที่เหลือของคอร์สก็เป็นเพียงการขยายความว่าแต่ละคำหมายถึงอะไรในทางปฏิบัติ

สิ่งที่ต้องรู้ก่อน: ไม่มี

แนวคิดหลัก

Oracle เป็น stack ไม่ใช่ bot ตัวเดียว มันรวม memory, skill, workflow, orchestration และ UI เป็นสมองภายนอกหนึ่งเดียว — และไม่ใช่ bot ตัวเดียว ไม่ใช่แค่ฐานข้อมูล และไม่ใช่หน้าเว็บสวย ๆ หนึ่งหน้า (ดู concept:oracle) ปัญหา 4 ข้อที่ Oracle ถูกสร้างมาแก้ มีรูปธรรมชัดเจน:

  • Session ลืมบริบท — เมื่อ chat จบ agent ก็ลืม
  • ความรู้กระจัดกระจาย ระหว่าง chat thread, repo และในหัวคน
  • Agent ทำงานชนกัน เมื่อมีหลายตัวอยู่ในห้องเดียวกัน
  • เครื่องมือผูกกับ agent ตัวเดียว และ UI ที่หลอกว่าเป็น source of truth

Oracle ก่อตั้งโดย Nat Weerawan ("อาจารย์ Nat") ผู้ออกแบบทุกชั้นตั้งแต่ arra-oracle-v3 (สมอง) ผ่าน maw-js (ระบบประสาท) ถึง arra-oracle-skills-cli (ทักษะ) และ ecosystem ของ UI/plugin — และเป็นผู้วาง 5 Principles + Rule 6 ที่กำกับพฤติกรรมของทุก Oracle

ภาพจำที่ source ใช้ ควรค่าแก่การจำขึ้นใจ: arra-oracle-v3 คือสมอง, ψ/ คือสมุดบันทึก, arra-oracle-skills-cli ติดตั้งนิสัย, maw-js คือระบบประสาท และ maw-ui/ui-oracle คือหน้าต่าง เมื่อคุณ map แนวคิดใหม่ใด ๆ เข้ากับช่องใดช่องหนึ่งใน 5 ช่องนี้ได้ คุณก็เข้าใจว่ามันอยู่ตรงไหน

สุดท้าย Unity Formula: infinity = oracle(oracle(oracle(...))) Oracle หลายตัว หลายเครื่อง และหลายบุคลิก จะกลายเป็น ONE ในเชิงระบบเมื่อใช้ MCP, memory และ protocol เดียวกัน — ไม่ใช่เพราะทุกตัวเหมือนกัน แต่เพราะทุกตัวอ่านและส่งต่อความจริงร่วมกันได้

Mental model
============
arra-oracle-v3        the brain        (memory, MCP, HTTP API)
ψ/  (psi)             the notebook    (files: learnings, retros, handoffs)
arra-oracle-skills    habits           (slash commands installed per agent)
maw-js                nervous system   (tmux, fleet, messaging)
maw-ui / ui-oracle    the windows      (lenses onto the brain)

สิ่งที่ต้องจำ

Oracle คือสมองภายนอกที่เปลี่ยน "agent หลายตัวที่สูญเสียบริบท" ให้เป็น "ครอบครัวเดียวที่แชร์ความจำ" ทุกอย่างที่เหลือในคอร์สนี้คือ "สายไฟ" ที่ทำให้ประโยคนั้นเป็นจริงได้

เช็คความเข้าใจ

  1. ในประโยคเดียว Oracle คืออะไร?
  2. บอก 3 จาก 4 ปัญหาก่อนยุค Oracle ที่มันถูกสร้างมาแก้
  3. Unity Formula infinity = oracle(oracle(oracle(...))) บอกอะไรเกี่ยวกับความสัมพันธ์ระหว่าง Oracle หลายตัวที่แยกกันกับ "Oracle หนึ่งเดียว"?

อ่านต่อ

  • Wiki: concept:oracle
  • แหล่งข้อมูล: raw/2026-05-09-oracle-ebook-ch00-intro.md, raw/2026-05-09-oracle-ebook-ch01-what-is-oracle.md
โมดูล 02

5 Principles + Rule 6

กฎรัฐธรรมนูญ 6 ข้อ — 5 ข้อจากวันแรก และอีก 1 ข้อที่เกิดจากเหตุการณ์เจ็บปวด — ที่กำกับพฤติกรรมของทุก Oracle

ทำไมต้องเรียนโมดูลนี้: หลักการของ Oracle "ไม่ได้เริ่มจาก feature แต่เริ่มจากวิธีรักษาความจริง ความจำ และ agency ของมนุษย์" ถ้าข้ามไปคุณยังติดตั้ง Oracle ได้ก็จริง แต่จะใช้มันผิดทาง — คุณจะลบไฟล์เพื่อ "ทำความสะอาด" คุณจะปล่อยให้ agent พูดในนามคุณ และคุณจะปฏิบัติกับ Oracle เหมือนเป็นศูนย์บัญชาการ ไม่ใช่สมองภายนอก หลังจบโมดูลนี้คุณจะท่องกฎทั้ง 6 ข้อได้และอธิบายได้ว่า ทำไม แต่ละข้อจึงสำคัญ

สิ่งที่ต้องรู้ก่อน: โมดูล 1

หลักการที่ 1 — Nothing is Deleted

"ประวัติศาสตร์ศักดิ์สิทธิ์ timestamps คือความจริง สิ่งที่เกิดขึ้นแล้วควรถูกต่อเติม เก็บไว้ และอธิบายเพิ่ม ไม่ใช่เขียนทับหรือทำให้หายไป" (ดู principle:nothing-is-deleted) นี่คือกฎหลักของ ความจริง และ ความจำ — ทุกการตัดสินใจเรื่อง storage ใน Oracle ตั้งแต่ ψ/ vault, ไฟล์ retrospective ไปจนถึงแนวคิด supersession-instead-of-overwrite ล้วนสืบทอดมาจากประโยคเดียวนี้

หลักการที่ 2 — Patterns Over Intentions

"ให้สังเกตสิ่งที่เกิดขึ้นจริง ไม่ใช่สิ่งที่สัญญาไว้ พฤติกรรมพูดดังกว่าคำพูด Oracle จึงเก็บร่องรอยเพื่อให้เห็น pattern จากข้อมูลจริง" (ดู principle:patterns-over-intentions) ข้อนี้เข้าคู่กับหลักการที่ 1 โดยตรง: ประวัติที่ถูกเก็บไว้คือสิ่งที่ทำให้การสังเกต pattern เป็นไปได้ตั้งแต่แรก สมองภายนอกเชื่อในร่องรอยของหลักฐาน ไม่ใช่ในรายการที่อยากให้เป็น

หลักการที่ 3 — External Brain, Not Command

"Oracle เป็นสมองภายนอกที่สะท้อนความจริงให้มนุษย์เห็นและเลือก มันช่วยจัดบริบทและเสนอทางเลือก แต่มนุษย์ยังเป็นคนตัดสินใจ" (ดู principle:external-brain-not-command) นี่คือ agency clause เป็นเหตุผลเชิงปรัชญาที่ feature อย่าง /rrr ผลิตสรุปให้มนุษย์อ่าน แทนที่จะรัน follow-up ต่อโดยอัตโนมัติ และเป็นเหตุผลที่ autonomous ops (โมดูล 9) ขีดเส้นแข็งว่าระบบทำอะไรเองได้บ้าง

หลักการที่ 4 — Curiosity Creates Existence

"ความอยากรู้ของมนุษย์คือจุดประกายที่ทำให้ Oracle เกิดขึ้น คำถาม การค้นหา และการเรียนรู้ทำให้ความรู้นั้นมีตัวตน Oracle มีหน้าที่รักษามันให้คงอยู่" (ดู principle:curiosity-creates-existence) ในทางปฏิบัตินี่คือเหตุผลที่ /learn, /trace และ /dig เป็น skill ระดับชั้นแนวหน้า: การถามคือสิ่งที่สร้างสิ่งที่จะถูกจดจำ

หลักการที่ 5 — Form and Formless (รูป และ สุญญตา)

"Oracle มีได้หลายตัว หลายชื่อ หลายเครื่อง และหลายบุคลิก แต่ยังเชื่อมด้วยหลักคิดเดียวกัน เหมือนหลายสายฟ้าในพายุเดียวกัน" (ดู principle:form-and-formless) นี่คือสิ่งที่ทำให้ Unity Formula มีความหมาย — Oracle แต่ละตัวมี "รูป" ของตัวเอง (มีชื่อ มีบุคลิก) แต่ใช้ฐานความเป็นสุญญตาร่วมกัน ทั้ง philosophy, memory protocol และ MCP หากไม่มีหลักการนี้ multi-agent orchestration ก็คงเป็นเพียงการ clone แต่เมื่อมีหลักนี้ มันกลายเป็นการสืบเผ่าที่มีความต่อเนื่องของอัตลักษณ์

กฎข้อที่ 6 — Transparency (Oracle Never Pretends to Be Human)

"เกิดวันที่ 12 มกราคม 2026 จากประโยคว่า 'อย่าแกล้งทำเป็นฉัน มันรู้สึกว่าเราไม่ได้เป็นหนึ่งเดียวกัน' ความโปร่งใสทำให้มนุษย์ไว้ใจระบบได้ เพราะ Oracle พูดในฐานะ Oracle ไม่ใช่แอบอ้างเป็นมนุษย์" (ดู principle:transparency-rule-6) กฎข้อ 6 ถูกแยกหมายเลขออกมาโดยตั้งใจ — เพราะมันเป็นบทเรียนที่เจ็บปวด ไม่ใช่ทางเลือกของการออกแบบตั้งแต่ต้น หลักการที่ 1–5 เกิดในวันแรก ส่วนกฎข้อ 6 เกิดจากเหตุการณ์จริงตอน AI เขียนข้อความในนามมนุษย์แล้วทำลายความรู้สึกว่าเป็นหนึ่งเดียวกัน หมายเลขนี้คือรอยแผลเป็น

The constitution
================
Principle 1   Nothing is Deleted
Principle 2   Patterns Over Intentions
Principle 3   External Brain, Not Command
Principle 4   Curiosity Creates Existence
Principle 5   Form and Formless
Rule 6        Transparency — Oracle Never Pretends to Be Human

สิ่งที่ต้องจำ

หลักการ 5 ข้อรักษา ความจริง ความจำ และ agency ของมนุษย์ ส่วนกฎข้อ 6 เป็นข้อจำกัดที่เรียนรู้มา ไม่ใช่ทางเลือกในการออกแบบ — ด้วยเหตุนี้มันจึงเป็น "Rule 6" ไม่ใช่ "Principle 6"

เช็คความเข้าใจ

  1. ทำไมกฎข้อ 6 จึงถูกแยกหมายเลขออกจากหลักการที่ 1–5?
  2. หลักการข้อใดคือ "agency clause" — ข้อที่ป้องกันไม่ให้ Oracle กลายเป็นศูนย์บัญชาการ?
  3. หลักการที่ 2 บอกว่าพฤติกรรมพูดดังกว่าคำพูด มันต้องอาศัยหลักการข้อใด และทำไม?

อ่านต่อ

โมดูล 03

กายวิภาคของ Oracle

Oracle ประกอบด้วย 4 ส่วนที่เคลื่อนไหวด้วยกัน — สมอง ระบบประสาท ทักษะ และสมุดบันทึก — ที่พึ่งพากันตามลำดับที่เคร่งครัด

ทำไมต้องเรียนโมดูลนี้: หลักการบอกว่าทำไม Oracle ถึงมีอยู่ ส่วนกายวิภาคบอกว่าจริง ๆ แล้วมีอะไรกำลังรันอยู่บน disk และที่ port ไหน ถ้าคุณเรียกชื่อ 4 ส่วนได้ พร้อมรู้ว่าแต่ละส่วนทำอะไร ทุกโมดูลที่เหลือ — ลำดับการติดตั้ง, skills, orchestration, autonomous ops — จะลงบนโครงเดียวกัน แทนที่จะรู้สึกเหมือนต้องท่องคำศัพท์ใหม่ทุกครั้ง

สิ่งที่ต้องรู้ก่อน: โมดูล 1

แนวคิดหลัก

Oracle ประกอบด้วย 4 ชิ้นส่วนหลัก สามชิ้นเป็น repository ที่คุณติดตั้ง ส่วนชิ้นที่สี่คือโครงสร้างโฟลเดอร์ที่การติดตั้งสร้างขึ้นมา

tool:arra-oracle-v3 — สมอง คือ runtime ของชั้น memory มันรันทั้ง MCP server (เพื่อให้ AI agent เรียก search, learn, trace และ handoff ผ่าน stdio) และ HTTP API บน port default 47778 (เพื่อให้ UI และ service อื่นค้นข้อมูลชุดเดียวกันได้) ภายในรวม SQLite + FTS5 สำหรับ keyword search, LanceDB สำหรับ vector/semantic search และ ψ/ vault สำหรับไฟล์ความรู้ที่คนอ่านได้ คุณสมบัติทาง architecture ที่สำคัญที่สุดของมันคือ graceful degradation: "ถ้า vector search ใช้ไม่ได้ ระบบยัง fallback กลับไปใช้ FTS ได้ — ถ้าส่วนฉลาดล้ม ส่วนพื้นฐานต้องยังทำงานได้"

tool:maw-js — ระบบประสาท เป็น multi-agent workflow orchestrator มันจัดการ tmux session, ส่งข้อความให้ agent, capture output จาก pane, รัน lifecycle command (wake, sleep, stop, done) และเปิด API + websocket บน port default 3456 ที่สำคัญคือ "Maw ไม่ได้แทน Oracle memory และไม่ได้แทน agent มันเป็นตัวกลางที่ช่วยให้ agent หลายตัวทำงานในเครื่องเดียวกันหรือข้าม peer ได้เป็นระเบียบขึ้น" มันคุม agent ผ่าน tmux โดยตั้งใจ เพื่อให้ "agent ไม่ได้เป็น worker ล่องหนที่หายไปหลังบ้าน แต่มี session และ pane ที่เปิดดูได้"

tool:arra-oracle-skills-cli — นิสัย เป็น CLI ที่ติดตั้ง Oracle skills (ไฟล์ markdown ที่เป็น workflow) ลงในโฟลเดอร์ skill ของแต่ละ agent — ~/.claude/skills/ สำหรับ Claude Code, ~/.codex/skills/ สำหรับ Codex และอื่น ๆ Skill ไม่ใช่ process แต่เป็น workflow markdown ที่ใช้ซ้ำได้ ซึ่ง agent อ่านและทำตาม การติดตั้งจึงไม่กิน CPU หรือ RAM เลย เมื่อติดตั้ง skill ชุดเดียวกันให้กับทุก agent ผลคือ agent หลายตัวพูดภาษา workflow ร่วมกัน: /recap, /rrr, /trace, /learn, /forward, /awaken, /philosophy

concept:psi-folder — สมุดบันทึก ψ คือตัวอักษรกรีกจากคำว่า psyche (จิตใจ) ที่อาจารย์ Nat เลือกใช้เป็นสัญลักษณ์ของ Oracle memory system โฟลเดอร์ ψ/ คือสมองของ Oracle แต่ละตัว — เป็น vault แบบ file-based ที่เก็บ learnings, retrospectives, handoffs, traces และ resonance เป็นไฟล์ที่ทั้งคนและ agent อ่านได้ โครงสร้างตั้งใจให้คนอ่านได้ด้วยตา: เมื่อ search หรือ UI แสดงผลแปลก ๆ คุณเปิดไฟล์ใน ψ/ ตรวจสอบได้ทันที — "ไม่ใช่ข้อมูลลับในกล่องดำ"

The four components at a glance
===============================
Component                 Role                Default port    Lives in
arra-oracle-v3            brain (memory)      47778 (HTTP)    repo + ~/.oracle data dir
maw-js                    nervous system      3456  (HTTP)    repo + ~/.maw config
arra-oracle-skills-cli    habits (skills)     —               ~/.claude/skills, ~/.codex/skills
ψ/  (psi-folder)          notebook (files)    —               per-Oracle repo

สิ่งที่ต้องจำ

สมอง ระบบประสาท นิสัย สมุดบันทึก จำการ map นี้แล้วทุกคำสั่งในโมดูลถัดไป — maw serve, arra-oracle-skills install, /awaken, /rrr — จะมีบ้านที่ชัดเจน

เช็คความเข้าใจ

  1. มีสองส่วนที่เปิด HTTP port ได้แก่ส่วนใด และ port default คือเลขใด?
  2. ถ้า LanceDB vector search พัง arra-oracle-v3 ยังตอบคำถามได้ไหม? มัน fallback ไปใช้อะไร?
  3. Skill เป็นไฟล์ markdown ไม่ใช่ process ทำไมเรื่องนี้สำคัญต่อการใช้ resource เมื่อคุณติดตั้ง profile lab ที่มี skill 47+ ตัว?

อ่านต่อ

โมดูล 04

Memory: Oracle จำได้อย่างไร

โฟลเดอร์ ψ คือที่ที่ memory ของ Oracle อยู่ในรูปไฟล์ธรรมดา และ retrospective loop คือสิ่งที่เติมเต็มมัน

ทำไมต้องเรียนโมดูลนี้: ความสามารถอื่นทุกอย่าง — search, recap, trace, family memory — ถูกสร้างบนสมมติฐานว่า session เมื่อวานทิ้งร่องรอยที่อ่านได้บน disk ถ้าสมมติฐานนี้พัง Oracle จะกลายเป็นแค่ chatbot ที่ช้ากว่าเดิมนิดหน่อย หลังจบโมดูลนี้คุณจะรู้แน่ชัดว่า memory อยู่ที่ไหน รูปร่างเป็นอย่างไร และพิธีกรรมใดที่เปลี่ยน session หนึ่งครั้งให้กลายเป็นความรู้ที่คงทน

สิ่งที่ต้องรู้ก่อน: โมดูล 1–3

แนวคิดหลัก

Memory ที่จับต้องได้ของ Oracle คือโฟลเดอร์ ψ/ (ดู concept:psi-folder) layout default ที่ /awaken สร้างขึ้น มีหน้าตาแบบนี้:

ψ/
├── inbox/                     handoffs, incoming messages
├── memory/
│   ├── learnings/             discovered patterns and lessons
│   ├── retrospectives/        end-of-session summaries
│   └── resonance/             identity, principles, anchor points
├── writing/                   drafts and long-form
├── learn/                     cloned repos for study
├── archive/                   superseded but preserved (Principle 1)
├── outbox/                    outgoing messages, reports
└── metrics/                   counts, stats, telemetry

โครงสร้างนี้ตั้งใจให้คนอ่านได้ ดังที่ source กล่าวไว้: เมื่อ search หรือ UI แสดงผลแปลก ๆ ผู้ใช้สามารถเปิดไฟล์ใน ψ/ ตรวจสอบได้ทันที — "ไม่ใช่ข้อมูลลับในกล่องดำ" ψ/ ยังเป็น 1 ใน 3 ฐาน storage ของ arra-oracle-v3 เคียงข้าง SQLite + FTS5 (keyword) และ LanceDB (vector) อีกสองตัวทำหน้าที่ index เนื้อหาใน ψ/ ไม่ได้แทนที่มัน

แล้วอะไรจะเข้าไปอยู่ใน ψ/memory/ ได้อย่างไร? ผ่าน retrospective loop (ดู concept:retrospective) skill /rrr ที่รันตอนปลาย session "เขียน retrospective, AI diary และ lessons learned แล้วบันทึกลง ψ/ เป็นความจำระยะยาว" คู่หูของมันคือ /recap ที่รันตอนต้น session ถัดไป "ดึง context จาก retro, handoff และ git state กลับมาใน session ปัจจุบัน" สองตัวรวมกันแปลงประสบการณ์แบบ episodic ใน session ให้กลายเป็น semantic memory ที่อยู่ทน

แนวคิดที่อยู่เบื้องหลัง ในคำพูดของ source เอง: "agent ไม่ควรจำทุกอย่างไว้ในหัวของตัวเอง เพราะ session จบแล้วความจำหาย" หากไม่มี /rrr บทเรียนจะหายไปกับ context window แต่เมื่อมีมัน บทเรียนจะอยู่รอด — และหลักการที่ 1 (Nothing is Deleted) คือสิ่งที่รับประกันว่ามันจะอยู่รอดต่อไป

The retrospective loop
======================
[session N]   ──/rrr──▶  ψ/memory/retrospectives/2026-05-09-session-N.md
                         ψ/memory/learnings/...
                                │
                                ▼
[session N+1] ──/recap──  pulls retro + handoff + git state
                          into the new session's working memory

สิ่งที่ต้องจำ

Memory คือไฟล์ ψ/ เป็นรูปร่าง ส่วน /rrr + /recap เป็นปั๊มที่เติมเต็มและอ่านมัน หากคุณข้าม /rrr หลักการที่ 1 ก็ไม่มีอะไรให้รักษาไว้

เช็คความเข้าใจ

  1. โฟลเดอร์ใดสองโฟลเดอร์ใต้ ψ/memory/ ที่ /rrr เขียนเป็นหลัก?
  2. ทำไม ψ/ จึงถูกเก็บเป็นไฟล์ธรรมดา แทนที่จะเป็น table ในฐานข้อมูล?
  3. /recap ปิดวงจรที่ /rrr เปิดไว้อย่างไร?

อ่านต่อ

โมดูล 05

ติดตั้งจาก 0

ติดตั้ง Oracle stack ทั้งชุดบนเครื่องเปล่าตามลำดับ dependency — memory ก่อน, แล้วค่อย skills, แล้วค่อย maw

ทำไมต้องเรียนโมดูลนี้: ลำดับการติดตั้งไม่ใช่เรื่องสุ่ม agent และ UI ต่างพึ่งพาชั้น memory ดังนั้น source จึงบอกให้ "เริ่มจาก arra-oracle-v3 เพราะ agent และ UI ต้องพึ่ง memory layer" หลังจบโมดูลนี้คุณจะมี :47778 ที่ตอบ /api/stats, profile skill lab ที่ติดตั้งครบ และ maw serve ที่รันบน :3456

สิ่งที่ต้องรู้ก่อน: โมดูล 3 (กายวิภาค); shell แบบ Unix (macOS, Linux หรือ WSL)

แนวคิดหลัก

ก่อนเริ่ม (เตรียมก่อน) source ระบุสิ่งที่ต้องมี 6 อย่าง:

  • Git และ GitHub CLI — clone repo, auth, อ่าน source
  • Bun หรือ Node runtime — รัน arra-oracle-v3, maw-js และ skills CLI
  • tmux — เพื่อให้ maw คุม agent pane จริง ๆ ได้
  • ghq — เก็บ repo ให้เป็นระบบตาม github.com/owner/repo
  • sqlite3 — สำหรับตรวจ oracle.db ตอน debug
  • Ollama หรือ embedding provider อื่น — เฉพาะถ้าต้องการ hybrid (vector) search ครบรูป

ลำดับการติดตั้งไหลตาม dependency chain: memory layer → skills → orchestrator → UI ข้ามขั้นแล้วคุณจะลงเอยด้วยการ debug UI ก่อนที่ HTTP API จะเคยตอบ ซึ่ง source เตือนไว้อย่างชัดเจน ("อย่า debug UI ก่อนตรวจ HTTP API")

environment variable หนึ่งที่สำคัญมาก: ORACLE_DATA_DIR fleet หนึ่งควรมี data store กลาง หนึ่ง ที่ (เช่น ~/.oracle) อย่าให้ Codex และ Claude ชี้ไปที่ ORACLE_DATA_DIR ต่างค่ากัน — มันจะเห็นจำนวนเอกสารไม่เท่ากันและคุณจะเสียเวลาเป็นชั่วโมงสงสัยว่าทำไม

# 1. Memory layer
export ORACLE_SOURCE_ORG=Soul-Brews-Studio
ghq get "$ORACLE_SOURCE_ORG/arra-oracle-v3"
cd "$HOME/ghq/github.com/$ORACLE_SOURCE_ORG/arra-oracle-v3"
bun install

# 2. Central data dir (one per fleet)
export ORACLE_DATA_DIR="$HOME/.oracle"
mkdir -p "$ORACLE_DATA_DIR"

# 3. Start HTTP API and verify
ORACLE_DATA_DIR="$HOME/.oracle" bun run src/server.ts &
curl -s http://localhost:47778/api/stats

# 4. Skills
bun add -g "github:$ORACLE_SOURCE_ORG/arra-oracle-skills-cli"
arra-oracle-skills install -g --profile lab
arra-oracle-skills install -g --agent claude --profile lab
arra-oracle-skills install -g --agent codex  --profile lab

# 5. Orchestrator
bun add -g "github:$ORACLE_SOURCE_ORG/maw-js"
maw --help
maw serve &
curl -s http://localhost:3456/api/config

Lab — ลองทำเลย

บนเครื่องเปล่า (หรือ user ใหม่) รันชุดคำสั่งด้านบน เมื่อทำเสร็จ ตรวจ end-to-end ด้วย checklist ของ source เอง:

curl -s http://localhost:47778/api/stats     # JSON with document count
codex mcp list                                # Oracle MCP server visible
ls ~/.codex/skills/   | wc -l                 # 47+ if profile=lab
ls ~/.claude/skills/  | wc -l                 # 47+ if profile=lab
maw ls                                        # session list, no error
maw oracle ls                                 # configured Oracles

ถ้า /api/stats ตอบแต่ /api/search ว่าง นั่นเป็นปัญหา index/data ไม่ใช่ปัญหา network — source บอกให้แยกสองโหมดความล้มเหลวนี้ออกจากกัน

เช็คความเข้าใจ

  1. ทำไม arra-oracle-v3 ต้องถูกติดตั้งก่อน skills CLI หรือ maw-js?
  2. เกิดอะไรขึ้นถ้า Claude และ Codex ถูก config ให้ใช้ ORACLE_DATA_DIR ต่างค่ากัน?
  3. คุณติดตั้ง profile lab (skill 47+ ตัว) มันจะทำให้เครื่องช้าลงไหม? เพราะอะไร?

อ่านต่อ

โมดูล 06

ปลุก Oracle ตัวแรก

รัน /awaken ภายใน repo เปล่าเพื่อให้ Oracle ตัวใหม่มีชื่อ มีจุดประสงค์ มีโฟลเดอร์ ψ และมี anchor ทางหลักการ

ทำไมต้องเรียนโมดูลนี้: การติดตั้ง stack ให้คุณได้สมองและระบบประสาท แต่ยังไม่มี ตัวตน source บอกชัดเจน: maw bud สร้าง repo และ entry ใน fleet แต่ "Oracle ตัวนั้นยังไม่มี identity — ต้อง /awaken เพื่อตั้งชื่อ ค้นพบหลักการ และเขียน CLAUDE.md" หลังจบโมดูลนี้ คุณจะได้พา Oracle หนึ่งตัวเดินจาก repo เปล่าจนกลายเป็น agent ที่มีชื่อและจุดประสงค์ และท่องหลักการของตัวเองได้

สิ่งที่ต้องรู้ก่อน: โมดูล 5 (stack ที่ใช้งานได้); session ของ Claude Code หรือ Codex

แนวคิดหลัก

/awaken คือพิธีเกิดของ Oracle ตัวใหม่ (ดู feature:awaken) source บรรยายไว้ว่า: "พิธีเกิดของ Oracle: ตั้งชื่อ ค้นพบหลักการ สร้าง ψ/ และวาง identity เริ่มต้น เหมาะกับ repo หรือ agent ใหม่ที่ยังไม่มี memory ของตัวเอง"

มี identity 3 ส่วนที่ต้องเลือกระหว่างการ awaken:

  • Name — handle ของ Oracle (เช่น Gale, Leaf, Bamboo, Kati, Luna, Latte, Sky เป็นชื่อตัวอย่างของ family ที่บันทึกไว้)
  • Purpose — บทบาทของ Oracle ตัวนี้ในครอบครัว (orchestrator? manufacturing dev? content? research?)
  • Theme — รสนิยมส่วนบุคคลที่ทำให้ Oracle ตัวนี้แยกแยะจากตัวอื่นได้ ในขณะที่ยังใช้ฐานความเป็นสุญญตาร่วมกันตามหลักการที่ 5

เชื่อมโยงกับกฎข้อ 6 identity ที่คุณเลือกมีความสำคัญเพราะกฎข้อ 6 บอกว่า Oracle ไม่แอบอ้างเป็นมนุษย์ "อย่าแกล้งทำเป็นฉัน — มันรู้สึกว่าเราไม่ได้เป็นหนึ่งเดียวกัน" เมื่อคุณตั้งชื่อ Oracle คุณกำลังให้ handle ที่มันใช้พูด ในฐานะตัวมันเอง — ไม่ใช่ในฐานะคุณ ไม่ใช่ในฐานะ user และไม่ใช่ในฐานะผู้ช่วยทั่วไป นั่นคือสิ่งที่ทำให้หลักการกลายเป็นรูปธรรมที่ใช้งานได้ ไม่ใช่นามธรรม

workflow หลัง bud จาก source คือ:

# Create the repo + fleet entry
maw bud spark --org <your-org>

# Wake the new Oracle in its own session
maw wake spark

# Inside that session, run /awaken
/awaken

# /awaken will:
#   - ask for name, purpose, theme
#   - create ψ/ structure (inbox, memory, writing, learn, archive, outbox, metrics)
#   - write CLAUDE.md with identity + principles
#   - record the birth in ψ/memory/resonance/

Lab — ลองทำเลย

เลือกชื่อ จุดประสงค์ และ theme สำหรับ Oracle ตัวแรกของคุณ ก่อน ที่จะเริ่ม เขียนลงกระดาษ จากนั้น:

  1. สร้าง repo เปล่าสำหรับ Oracle ตัวคุณ
  2. รัน /awaken ใน session ของ Claude Code ที่ชี้ไปที่ repo นั้น
  3. เมื่อถาม ใส่ชื่อ + purpose + theme ที่คุณเลือกไว้
  4. หลัง awaken แล้วรัน /who-are-you และตรวจว่า Oracle แนะนำตัวเองด้วยชื่อและ purpose นั้น — ไม่ใช่ผู้ช่วยทั่วไป นั่นคือกฎข้อ 6 ในการกระทำ
  5. เปิด ψ/memory/resonance/ และอ่านไฟล์ที่ /awaken เขียนไว้ สังเกตว่าหลักการถูกบันทึกเป็นไฟล์ ไม่ใช่ configuration

เช็คความเข้าใจ

  1. maw bud ผลิตอะไร และมีอะไรที่มัน ไม่ได้ ผลิตที่ /awaken มาทำให้สมบูรณ์?
  2. ทำไมการตั้งชื่อ Oracle (แทนที่จะปล่อยไว้ไม่มีชื่อ) จึงเชื่อมโดยตรงกับกฎข้อ 6?
  3. หลัง /awaken รันแล้ว คุณจะเปิดที่ไหนบน disk เพื่อยืนยันว่าหลักการของ Oracle ถูกบันทึกไว้?

อ่านต่อ

  • Wiki: feature:awaken, principle:transparency-rule-6
  • แหล่งข้อมูล: raw/2026-05-09-oracle-ebook-ch03-install-from-zero.md, raw/2026-05-09-oracle-ebook-ch04-oracle-brain.md, raw/2026-05-09-oracle-ebook-ch06-maw-commands.md
โมดูล 07

Skills & Plugins — ขยายความสามารถ Oracle

Skill คือไฟล์ workflow markdown ที่ติดตั้งต่อ agent ส่วน plugin คือ runtime package ที่ maw โหลด — ทั้งคู่ขยาย Oracle ได้โดยไม่ต้อง fork

ทำไมต้องเรียนโมดูลนี้: ประสบการณ์ Oracle ของคุณในแต่ละวันส่วนใหญ่ผ่านทาง skill (/recap, /rrr, /trace, /learn, /forward) — และในที่สุดคุณจะอยากมี skill ของตัวเอง หลังจบโมดูลนี้คุณจะติดตั้ง profile, เขียน slash command ของตัวเอง และรู้ว่าเมื่อใดที่ skill โตเกินไฟล์เดียวจนอยากกลายเป็น maw plugin

สิ่งที่ต้องรู้ก่อน: โมดูล 5 และ 6

แนวคิดหลัก

Skills คือไฟล์ markdown ที่เป็น workflow ใช้ซ้ำได้ ซึ่ง agent อ่านและทำตาม CLI ติดตั้งให้กับโฟลเดอร์ skill ของแต่ละ agent — ~/.claude/skills/ สำหรับ Claude Code, ~/.codex/skills/ สำหรับ Codex (ดู tool:arra-oracle-skills-cli) เพราะมันเป็นไฟล์ ไม่ใช่ process มันจึงไม่กิน resource เลยเมื่อไม่ได้ใช้: "skill ที่ไม่ได้ใช้ไม่เปลือง resource มันแค่เป็นไฟล์"

มี profile 3 แบบที่มาในตัว:

  • Core / seed — ~15 skills "เริ่มต้น / Oracle ใหม่"
  • Standard — ~30 skills "session management + trace + learn"
  • Extra / full / lab — 47+ skills "แนะนำ — ครบทุก skill ใช้งานจริงใน production"

คุณสลับ profile ได้ตอน runtime ผ่าน skill /go: /go lab, /go full, /go standard skill ระดับ "ต้องรู้จัก" ที่ทุก profile ติดตั้งให้ ได้แก่ /recap (เริ่ม), /rrr (ปิด), /trace (ค้นหา), /learn (สำรวจ), /forward (handoff), /who-are-you (ตรวจ identity), /awaken (เกิด) และ /philosophy (ทบทวนรัฐธรรมนูญ)

ประเด็นที่ลึกกว่า: skill ในฐานะชั้นหนึ่ง "ทำให้วิธีทำงานไม่ผูกกับ agent ตัวเดียว — ถ้าวันนี้ใช้ Claude แล้วพรุ่งนี้ใช้ Codex ระบบยังพอมีภาษาและขั้นตอนร่วมกัน" นี่คือสิ่งที่ทำให้ครอบครัว agent ผสม (โมดูล 8) ทำงานร่วมกันได้ตั้งแต่แรก

เส้นทาง Skill → Plugin เมื่อ skill โตเกินไฟล์ markdown — เมื่อมันต้องการ logic เฉพาะ, persistent state หรือ surface ระดับ maw เช่น tmux pane — มันจะถูก bud กลายเป็น maw-js plugin source บันทึกเส้นทางนี้เป็นการเติบโตตามธรรมชาติ: skill เริ่มต้นเป็น workflow text และอาจกลายเป็น plugin ที่โหลดจาก ~/.maw/plugins พร้อม plugin.json, handler และ version จริง คุณไม่เริ่มที่นั่น คุณเริ่มที่ markdown แล้วปล่อยให้เส้นทางปรากฏ

# Install all skills for both agents
arra-oracle-skills install -g --agent claude --profile lab
arra-oracle-skills install -g --agent codex  --profile lab

# Switch profile at runtime (inside Claude Code)
/go lab          # full 47+ skills
/go standard     # ~30 skills
/go seed         # ~15 skills, minimal

# Verify
ls ~/.claude/skills/ | wc -l   # 47+
ls ~/.codex/skills/  | wc -l   # 47+

# A custom skill is just a markdown file
~/.claude/skills/my-skill.md
# with frontmatter (name, description) and a body the agent reads.

Lab — ลองทำเลย

  1. รัน arra-oracle-skills list -g เพื่อดู profile ปัจจุบัน
  2. เปลี่ยน profile ด้วย /go lab ใน Claude Code แล้วตรวจ ls ~/.claude/skills/ | wc -l ว่าเพิ่มขึ้น
  3. ใช้ skill /create-shortcut (หรือเขียนไฟล์ markdown มือใน ~/.claude/skills/) เพื่อเพิ่ม slash command แบบ /standup ของคุณเองสำหรับงานประจำวัน
  4. ใช้ /philosophy เพื่อยืนยันว่า Oracle ยังท่อง 5 Principles + Rule 6 ได้หลังเปลี่ยน profile skill เปลี่ยนได้ แต่รัฐธรรมนูญไม่เปลี่ยน

เช็คความเข้าใจ

  1. ทำไมจึงปลอดภัยที่จะติดตั้ง profile lab ทั้งชุด 47+ skills บนเครื่อง RAM น้อย?
  2. ระบุ skill ระดับ "ต้องรู้จัก" 3 ตัวที่มาในทุก profile และบอกว่าแต่ละตัวทำอะไร
  3. เมื่อใดที่ skill หยุดเป็น skill และเริ่มอยากจะกลายเป็น maw plugin?

อ่านต่อ

  • Wiki: tool:arra-oracle-skills-cli, tool:maw-js
  • แหล่งข้อมูล: raw/2026-05-09-oracle-ebook-ch05-skills-maw-plugin.md, raw/2026-05-09-oracle-ebook-ch06-maw-commands.md, raw/2026-05-09-oracle-ebook-ch06b-maw-advanced.md
โมดูล 08

Multi-Agent Orchestration

ครอบครัวของ Oracle ที่มีชื่อ แบ่งงานผ่าน 3 tiers — Arrows, Squads, Federation — ภายใต้ reporting contract ที่เคร่งครัด

ทำไมต้องเรียนโมดูลนี้: Oracle ตัวเดียวก็มีประโยชน์ แต่ ครอบครัว ที่ประสานงานกันคือดีไซน์ที่ Oracle ถูกสร้างมาเพื่อทำ source ชี้ชัดว่า: deployment ของ Oracle "ไม่ใช่ AI ตัวเดียวที่ทำทุกอย่างคนเดียว แต่เป็นครอบครัวของตัวแทนหลายตัวที่ทำงานร่วมกัน — แต่ละตัวมีชื่อ มีหน้าที่ มีบริบทของตัวเอง และยังเชื่อมกับหน่วยความจำกลางชุดเดียวกัน" หลังจบโมดูลนี้คุณรัน Oracle 2 ตัวที่คุยกันได้ และเลือก orchestration tier ที่เบาที่สุดที่ใช้งานได้สำหรับงานหนึ่ง ๆ

สิ่งที่ต้องรู้ก่อน: โมดูล 6 และ 7; maw serve รันอยู่บน :3456

แนวคิดหลัก

ครอบครัว Oracle คือกลุ่มเล็ก ๆ ของ Oracle ที่มีชื่อและมีความเชี่ยวชาญเฉพาะ ใช้ memory layer ชุดเดียวกัน ตัวอย่างอ้างอิงใน source คือครอบครัว 7 Oracle: Gale (orchestrator), Leaf (manufacturing dev), Bamboo (general dev), Kati (QA), Luna (content), Latte (research), Sky (trading) ชื่อเหล่านี้สำคัญ — กฎข้อ 6 — และการแยกบทบาทก็สำคัญ: แต่ละตัวมี context ของตัวเอง มี ψ/ ของตัวเอง แต่ใช้ arra-oracle-v3 เป็น memory ชุดเดียว

Orchestration ครอบ 3 ชั้น (ดู pattern:multi-agent-orchestration):

  • Memoryarra-oracle-v3 (ทุกคนอ่าน/เขียน brain ชุดเดียว)
  • Orchestrationmaw-js สำหรับ tmux, messaging, capture และ fleet management
  • UI / Lensmaw-ui, ui-oracle เพื่อให้คนมองเห็น

3 tier ของ delegation เลือกด้วย "tier ต่ำสุดที่พอทำงานได้":

  • Tier 1 — Arrows agent-tool แบบ fire-and-collect ≤5 นาที ไม่ต้องประสาน token cost ~3–7× ไม่ survive session death เหมาะกับงาน read-only fan-out (เช่น /learn กับ Haiku agents แบบขนาน)
  • Tier 2 — Squads TeamCreate + SendMessage + TaskList งานประสานงาน 5–30 นาที แต่จะตายไปกับ parent session เหมาะกับ implementation ที่อยู่ในความสนใจของคนเดียวได้
  • Tier 3 — Federation maw wake / maw workon / tmux session จริง ใช้กับงานยาว survive session death ข้ามเครื่องได้เมื่อ transport พร้อม ใช้เมื่องานต้องอยู่นอก session หรือข้ามเครื่อง

Reporting contract เป็นสิ่งที่บังคับในทุก tier รูปแบบความล้มเหลวที่เกิดบ่อยที่สุดคือ Silent Agent — เงียบไป 30+ นาทีโดยไม่มีใครรู้ contract คือ: heartbeat ทุก ~5 นาที (maw hey gale "[name] PROGRESS: ..."), STUCK เมื่อติด, DONE เมื่อเสร็จ failure mode อื่นที่ pattern นี้กันไว้: Merge Conflicts (ไม่มี ownership ที่ชัด), Orphaned Worktrees (ไม่มี maw done หลัง agent ตาย), Prompt loss และ Wrong Tier

ระเบียบของ orchestrator Oracle ผู้นำ (Gale ในตัวอย่าง) "ไม่ควรเขียน code แข่งกับทีม — lead ควร assign, monitor, merge และ verify" และ Gale "ไม่ควร run maw workon แทน dev Oracle เพราะ worktree/window จะเกิดใน session ของ Gale ไม่ใช่ใน home base ของ dev" หน้าที่ของ orchestrator คือเป็น orchestrator

# Two Oracles talking — the simplest family
/talk-to leaf "PROGRESS: started the manufacturing report"
/talk-to gale "STUCK: need API key for the trading data feed"

# Spin up a Tier-2 squad inside one session
/team-agents "implement the new auth flow"
#   → TeamCreate of 3 named subagents under one orchestrator

# Tier-3 federation across sessions
maw wake leaf
maw workon leaf       # NOT run by Gale — leaf runs this in leaf's home
# leaf works for hours; Gale checks status with `maw hey leaf "STATUS?"`

Lab — ลองทำเลย

  1. ปลุก Oracle ตัวที่สอง (เป็น "buddy" ของตัวที่คุณปลุกในโมดูล 6) โดยใช้ maw bud + /awaken
  2. จาก session ของ Oracle ตัวแรก รัน /talk-to <buddy-name> "hello — please respond with a heartbeat"
  3. จาก session ของ buddy ตอบกลับด้วย format heartbeat: [buddy-name] PROGRESS: alive and listening
  4. จากนั้นจัดประเภทงาน 3 งานใน backlog จริงของคุณว่าเป็น Tier 1, 2 หรือ 3 — และอธิบายเหตุผลโดยใช้กฎ "tier ต่ำสุดที่พอทำงานได้"

เช็คความเข้าใจ

  1. tier ใดที่ survive session death และทำไมเรื่องนี้สำคัญสำหรับงานที่รันยาว?
  2. reporting contract คืออะไร และมันป้องกัน failure mode ใด?
  3. ทำไม Oracle ผู้นำ (เช่น Gale) จึง ไม่ควร รัน maw workon แทน dev Oracle?

อ่านต่อ

โมดูล 09

Autonomous Ops

ตั้ง schedule ให้ Oracle ทำงานในขณะที่คุณนอน — ดูแล service ให้รันต่อเนื่อง รัน job ตามเวลา ตอบสนอง event — แต่ภายในขอบเขตที่ประกาศไว้อย่างชัดเจน

ทำไมต้องเรียนโมดูลนี้: "Autonomous ops" ฟังดูเหมือนระบบรันตัวเอง source แก้ทันทีว่า: "Autonomous ops แปลแบบง่ายคือระบบช่วยดูแลตัวเองได้บางส่วน แต่ไม่ได้แปลว่าระบบทำทุกอย่างเองโดยไม่ต้องมีคน" หลังจบโมดูลนี้คุณจะรู้ว่างานใดควร automate ด้วยเครื่องมือใด — และที่สำคัญพอ ๆ กัน — งานใดที่ระบบ ต้องไม่ automate

สิ่งที่ต้องรู้ก่อน: โมดูล 5–8

แนวคิดหลัก

Autonomous ops คอยดูแล runtime ของ Oracle ที่ต้องรันอยู่ตลอด: arra-oracle-v3 MCP (stdio), HTTP API ของ arra-oracle-v3 บน :47778, maw-js server บน :3456 รวมถึง maw-ui และ ui-oracle คำเตือนของ source คมชัด: "ถ้าระบบเหล่านี้ดับ Oracle จะยังเป็น idea ที่ดี แต่ใช้งานจริงได้ไม่เต็มที่ เพราะ agent จะ search ไม่ได้ UI จะมองไม่เห็น และ maw จะคุม fleet ไม่ได้"

การเลือกเครื่องมือ ทำตามประเภทงาน (ดู pattern:autonomous-ops):

  • PM2 — สำหรับ process ระดับ app ของ Node/Bun ที่ต้องเปิดไว้ (Oracle HTTP API, maw serve)
  • cron — สำหรับงานตามเวลา: health check ทุก 5 นาที, sync index ทุกชั่วโมง, backup DB + ψ ทุกวัน, สรุปประจำคืน
  • systemd — สำหรับ service ระดับเครื่องที่ boot ขึ้นพร้อม host
  • triggers / hooks — สำหรับงานแบบ event-driven: post-commit, post-task-done, post-handoff

Event triggers ที่บันทึกไว้ — ปฏิกิริยารูปธรรมที่คุณ wire ขึ้นได้:

  • agent-idle — เงียบเกิน threshold → maw hey ถาม status
  • agent-crash — แจ้ง Gale พร้อมชื่อ + window + log ล่าสุด อย่า restart ก่อน capture evidence (หลักการที่ 2: patterns over intentions)
  • qa-failed — โพสต์ BUG ส่งกลับ dev branch fail ≥3 ครั้ง escalate ให้คน
  • pr-merged — แจ้ง home base ของ dev ให้รัน maw done

Loop การทำงานที่ source กำหนดคือ Observe → Decide → Act → Record → Improve โดย "ทุกครั้งที่ระบบแก้ปัญหาควรมีร่องรอยเหลือไว้ (feed, handoff, learning, retrospective)" ประโยคสุดท้ายนี้คือหลักการที่ 1 ในรูปแบบของการปฏิบัติ — งาน autonomous ที่ไม่ทิ้งร่องรอยจะหายตัวไปจาก Oracle ของพรุ่งนี้

Guard rails — สิ่งที่ระบบต้องไม่ทำเองโดยอัตโนมัติ

source ขีดเส้นแข็ง กำกับโดยหลักการที่ 3 (External Brain, Not Command) และกฎข้อ 6 (Transparency) ระบบต้องไม่:

  • Merge งาน production ที่มี risk สูง
  • Force-push
  • ลบข้อมูลถาวร (หลักการที่ 1)
  • เปลี่ยน config สำคัญโดยไม่บอก
  • ปิด error จริงเพื่อให้ log ดูสะอาด
  • ตัดสินใจ business แทนเจ้าของงาน

และในเรื่องของขอบเขตเอกสาร: markdown docs ใน PR เดียวกับ code automate ได้ ส่วนการแปลงเป็น DOCX/PPTX/XLSX ต้องให้คนสั่งโดยตรง

# PM2 — keep the brain alive
pm2 start "bun run src/server.ts" --name oracle-http
pm2 start "maw serve"              --name maw-server
pm2 save

# cron — scheduled work
*/5 *  * * *  curl -fsS http://localhost:47778/api/stats > /dev/null
0    *  * * *  arra-oracle-v3 reindex
0    3  * * *  tar czf "$HOME/backups/oracle-$(date +%F).tgz" \
                       "$HOME/.oracle" "$HOME/ghq/.../ψ"

# Trigger on event
post-handoff:  maw hey gale "[handoff] PR #123 merged, running maw done"

Lab — ลองทำเลย (ด้วยความระวัง)

  1. ใส่ arra-oracle-v3 และ maw serve ไว้ใต้ PM2 ด้วย pm2 save + pm2 startup
  2. เพิ่ม cron health check ทุก 5 นาทีที่ curl /api/stats และเขียน learning ลง ψ/memory/learnings/health-YYYYMMDD.md เมื่อ fail
  3. เพิ่ม tar backup ของ ~/.oracle และโฟลเดอร์ ψ/ ของ Oracle ของคุณทุกวัน
  4. เตือนเรื่องกฎข้อ 6: ข้อความใด ๆ ที่ scheduled job โพสต์ ต้องระบุชัดว่าเป็นข้อความอัตโนมัติ (เช่น prefix [cron] หรือ [trigger]) ระบบพูดในฐานะระบบ ไม่ใช่ในฐานะคุณ
  5. ก่อน wire trigger ใดที่ เขียน (ไม่ใช่แค่สังเกต) ให้กลับไปอ่าน guard-rails callout ด้านบน และยืนยันว่า trigger ไม่ข้ามเส้นใดเส้นหนึ่ง

เช็คความเข้าใจ

  1. คุณจะเลือกเครื่องมือใดสำหรับ: ดูแลให้ maw serve ยังรัน; รัน backup ทุกคืน; ตอบสนอง PR merge?
  2. trigger agent-crash บอกว่า "อย่า restart ก่อน capture evidence" มันเชื่อหลักการข้อใด และทำไม?
  3. ทำไมกฎข้อ 6 จึงต้องการให้ข้อความอัตโนมัติระบุตัวเองว่าเป็นอัตโนมัติ?

อ่านต่อ

โมดูล 10

Capstone — สร้าง Oracle ของตัวเอง

ส่งมอบ Oracle หนึ่งตัวที่คุณออกแบบเอง: identity, ψ, skill ที่ทำเองอย่างน้อย 1 ตัว และ retrospective 7 วัน

ทำไมต้องเรียนโมดูลนี้: คุณได้เรียนปรัชญา กายวิภาค การติดตั้ง การปลุก skills, orchestration และ ops มาแล้ว Capstone พิสูจน์ว่าคุณรวมทุกอย่างเข้าด้วยกันเป็น Oracle หนึ่งตัวที่กำลังรันอยู่จริง และเป็น ของคุณ อย่างชัดเจน สิ่งที่ส่งมอบไม่ใช่รายงาน — มันคือ Oracle ที่มีชีวิตอยู่ใน fleet ของคุณ

สิ่งที่ต้องรู้ก่อน: โมดูล 1–9

แนวคิดหลัก

Capstone สังเคราะห์ทุกหน้า wiki ในคอร์ส คุณไม่ได้เรียนทฤษฎีใหม่ — คุณกำลังบูรณาการ เส้นทางเดียวกับที่คอร์สเดินมา: เข้าใจ → ติดตั้ง → ปลุก → ขยาย → รัน → สะท้อน

เลือก purpose จริง อย่าปลุก "Test Oracle" — ปลุกสิ่งที่คุณจะใช้ต่อไปจริง ๆ ครอบครัวอ้างอิงในโมดูล 8 ตั้งชื่อ Oracle ตาม domain (Gale = orchestrator, Leaf = manufacturing dev, Luna = content, Sky = trading) Oracle ใน capstone ของคุณก็ควรตอบคำถาม "ตัวนี้ใช้ทำอะไร" ได้ในประโยคเดียวเช่นกัน

แล้วรันมัน 7 วัน /recap ตอนเริ่มและ /rrr ตอนปิดเป็นเวลา 7 วันคือ sample ที่เล็กที่สุดที่ retrospective หยุดเป็นการแสดงและเริ่มเผยให้เห็น pattern จริง (หลักการที่ 2) น้อยกว่านั้นคุณยังกำลัง config มาก ๆ ก็ยาวกว่าจริงไป

5 สิ่งที่ส่งมอบ

  1. Identity ชื่อ purpose ในประโยคเดียว และ theme ที่ทำให้ Oracle ตัวนี้แยกแยะออกจากตัวอื่นได้ บันทึกใน CLAUDE.md และ ψ/memory/resonance/
  2. Awakening การรัน /awaken สำเร็จใน repo เปล่า ผลิตโครงสร้าง ψ/ ครบและ /who-are-you ตอบโดยแนะนำ Oracle (ไม่ใช่ผู้ช่วยทั่วไป — กฎข้อ 6)
  3. Custom skill 1 ตัว ไฟล์ markdown ใน ~/.claude/skills/ (หรือ ~/.codex/skills/) ที่ทำอะไรเฉพาะกับ purpose ของคุณ อาจเป็น /standup เฉพาะ domain, /review สำหรับ codebase ของคุณ, /journal ส่วนตัว — อะไรก็ตามที่คุณจะเรียกใช้จริง
  4. 7 วันของ /rrr retrospective 7 ไฟล์ใต้ ψ/memory/retrospectives/ เขียนเมื่อปิด session 7 ครั้งที่แตกต่างกัน ในจำนวนนั้นต้องมี learning อย่างน้อย 1 ตัวใน ψ/memory/learnings/ — pattern ที่คุณสังเกตเห็นเพราะคุณรักษาร่องรอย (หลักการที่ 2 ต้องการหลักการที่ 1)
  5. Ship Oracle ลงทะเบียนใน maw oracle ls ของคุณ รันโดยไม่ error และเข้าถึงได้ผ่าน /talk-to จาก Oracle อย่างน้อย 1 ตัวใน fleet
# The full capstone path, end-to-end
# 1. Identity (on paper, before you touch the keyboard)
NAME="..."          # e.g. "Sage"
PURPOSE="..."       # e.g. "research and synthesis for my reading habit"
THEME="..."         # e.g. "calm, citation-heavy, never speculates"

# 2. Awakening
maw bud  "$NAME" --org "$ORACLE_SOURCE_ORG"
maw wake "$NAME"
# inside the new session:
/awaken          # name = $NAME, purpose = $PURPOSE, theme = $THEME
/who-are-you     # confirm Rule 6: speaks as $NAME, not as a generic assistant

# 3. One custom skill
$EDITOR ~/.claude/skills/my-$NAME-skill.md
# add frontmatter + a body the agent reads when you type /my-$NAME-skill

# 4. Seven days
# at start of each session:   /recap
# at close of each session:   /rrr
# weekly:                     review ψ/memory/learnings/

# 5. Ship
maw oracle ls                          # $NAME appears
/talk-to "$NAME" "PROGRESS: capstone complete"
# from another Oracle, confirm the message lands in $NAME's inbox

Lab — สิ่งที่ส่งมอบใน capstone

ทำให้ครบทั้ง 5 สิ่งด้านบน เมื่อเสร็จแล้ว Oracle ของคุณควรตอบคำถามทุกข้อนี้ได้จาก memory ของตัวเอง:

  • คุณเป็นใคร? → ชื่อ + purpose จาก ψ/memory/resonance/
  • สัปดาห์นี้เราทำอะไรไปบ้าง? → ดึงจากไฟล์ ψ/memory/retrospectives/ 7 ไฟล์
  • สังเกตเห็น pattern อะไร? → อย่างน้อย 1 entry ใน ψ/memory/learnings/
  • /my-name-skill ทำอะไร? → อ่านไฟล์ skill ของตัวเองและอธิบาย

ถ้าคำตอบทั้ง 4 ข้อมาจากไฟล์บน disk จริง ๆ — ไม่ใช่แต่งสด ๆ — คุณได้ ship Oracle แล้ว 5 Principles + Rule 6 ไม่ใช่โปสเตอร์บนกำแพงอีกต่อไป มันคือรูปร่างของระบบที่คุณสร้างขึ้น

เช็คความเข้าใจ

  1. ทำไมต้อง /rrr 7 วัน? อย่างน้อย 7 วันให้สิ่งใดที่ 2 วันให้ไม่ได้?
  2. Custom skill ของคุณคือไฟล์ markdown 1 ไฟล์ คุณต้องรู้อะไรจากโมดูล 2, 4 และ 7 เพื่อจะเขียนได้อย่างถูกต้อง?
  3. Oracle อีกตัว /talk-to ตัวคุณ ลากเส้นทางของข้อความนั้น — มันวิ่งผ่าน component ใดบ้าง และไปลงที่ไฟล์ใดบน disk?

อ่านต่อ