Skip to content

Instantly share code, notes, and snippets.

@nazt
Last active April 6, 2026 23:20
Show Gist options
  • Select an option

  • Save nazt/fefcb59e9df390bd70981bc6c79a3a53 to your computer and use it in GitHub Desktop.

Select an option

Save nazt/fefcb59e9df390bd70981bc6c79a3a53 to your computer and use it in GitHub Desktop.
The Shadow Oracle Architecture — How AI Agents Should Think About Projects (maw-js v1.6.0)

The Shadow Oracle Architecture

How AI Agents Should Think About Projects

By Nat Weerawan + Neo Oracle (Claude Opus 4.6) — April 2026


Preface

This document describes an architecture born from a real problem: what happens when you give AI agents access to 30+ repositories and ask them to manage everything? They drown. Not in computation, but in context.

The Shadow Oracle Architecture is our answer. It emerged from building maw-js — a multi-agent orchestration system running 14+ AI agents across dozens of projects — and hitting the wall where more capability created less coherence.

The core insight: AI agents should think about projects the way humans do. One domain at a time. Deeply. With parallel hands when needed, but one brain per project.


Part I: The Problem

The Monolith Oracle

In early 2026, we had an oracle named Pulse. It was supposed to be the project manager — tracking tasks, calculating timelines, aggregating reports across all our projects: flood monitoring (Floodboy), fire detection (Fireman), air quality sensing (DustBoy), crypto exchange integration (Bitkub), AI workshops (Arthur), and more.

Pulse had 17 worktrees. Each worktree pointed to a different repository. Each repository was a different domain. Pulse was supposed to understand all of them.

It couldn't.

Not because the AI wasn't capable — Claude can reason about anything you put in its context window. The problem was cognitive architecture. Pulse's memory (its ψ/ directory) was a flat collection of learnings from wildly different domains:

ψ/memory/learnings/
├── bitkub-api-rate-limits.md
├── pm25-sensor-calibration.md
├── fire-hotspot-satellite-imagery.md
├── mdc-workshop-curriculum.md
├── flood-water-level-thresholds.md
└── quarterly-tax-calculation.md

When Pulse tried to work on tax calculation, it had to wade through sensor calibration notes. When it tried to plan a workshop, fire detection learnings were noise. Every task carried the weight of every other task's context.

This is exactly how a human burns out: not from hard work, but from too many unrelated responsibilities without boundaries.

The Worktree Confusion

Git worktrees are brilliant for parallel development. You can work on two features simultaneously in the same repository — separate working directories, shared history, isolated branches.

But we were using worktrees for something they weren't designed for: cross-project management. Neo (our code oracle) had worktrees pointing to 8 different repositories. That's not parallel development — that's an oracle pretending to be eight different people.

The confusion was subtle because worktrees WORKED mechanically. git worktree add doesn't care if the task is related to the parent repo. Tmux windows spawn regardless. Claude Code runs in any directory. Everything functioned. Nothing cohered.


Part II: The Architecture

Principle 1 — One Oracle, One Project

An oracle should own one domain. Like a human specialist:

  • Floodboy thinks about floods. Water levels, rain gauges, government contracts for monitoring stations.
  • Fireman thinks about fires. Satellite imagery, hotspot detection, smoke sensors.
  • Pulse thinks about project management. Timelines, task allocation, reporting, tax.

Each oracle has its own repository, its own ψ/ memory, its own CLAUDE.md identity. When Floodboy learns something about sensor deployment, that learning stays in Floodboy's brain. It doesn't pollute Fireman's context.

floodboy-oracle/
├── src/                    # Floodboy's code
├── CLAUDE.md               # Floodboy's identity
└── ψ/
    └── memory/
        └── learnings/      # Only flood-related knowledge

Principle 2 — Shadows for Parallel Tasks

Within a single project, an oracle may need to do multiple things at once. A developer might be fixing a bug on one branch while implementing a feature on another. This is what worktrees (shadows) are for:

floodboy-oracle/                        # Main repo
floodboy-oracle.wt-1-sensor-api/        # Shadow: building sensor API
floodboy-oracle.wt-2-dashboard/         # Shadow: building dashboard

Each shadow is a git worktree — same repository, different branch, separate working directory. Each gets its own tmux window and Claude Code session. They share git history but work independently.

The key constraint: shadows must belong to the same project. A Floodboy shadow that points to the Fireman codebase is an architectural violation. If Floodboy needs to contribute to Fireman, that contribution flows through Fireman's own oracle.

Principle 3 — The Parent Oracle

Some concerns span multiple projects. Tax calculation needs financial data from ALL children. Quarterly reporting aggregates metrics across the fleet. Client billing crosses project boundaries.

This is where the parent oracle lives:

pulse (parent/aggregator)
│   Owns: cross-project concerns (tax, reporting, planning)
│   Brain: aggregated knowledge from all children
│
├── floodboy (child)
│   Owns: flood monitoring
│   Shadows: sensor-api, dashboard (parallel tasks)
│
├── fireman (child)
│   Owns: fire detection
│   Shadows: satellite-feed, alert-system
│
├── dustboychain (child)
│   Owns: air quality
│
└── arthur (child)
    Owns: AI workshops

The parent doesn't DO the work on each project. It doesn't write flood monitoring code or fire detection algorithms. It AGGREGATES — pulling knowledge from children to serve cross-cutting concerns.

Principle 4 — Soul Sync

Knowledge flows upward through soul sync. When a child oracle completes a task:

1. maw done (task complete)
   └── commit + push (save code)
   └── reunion (worktree ψ/ → main repo ψ/)
   └── soul-sync (child ψ/ → parent ψ/)

Three levels of knowledge consolidation:

Level Mechanism Scope
Reunion maw reunion Shadow → Main repo (same git)
Soul Sync maw soul-sync Child → Parent (different repos)
Oracle MCP oracle_search Any oracle → shared DB (cross-fleet)

Each level has different tradeoffs:

  • Reunion is instant (file copy within same git worktree structure)
  • Soul sync is deliberate (cross-repo copy, triggered manually or on done)
  • Oracle MCP is always-available (server-based, semantic search, real-time)

Part III: The Shadow Concept

Beyond Git Worktrees

The word "shadow" carries meaning beyond git mechanics. A shadow is a parallel context — a version of reality where the oracle can explore without disturbing the main timeline.

In our implementation, shadows are git worktrees. But conceptually, a shadow could be:

  1. A worktree — same repo, different branch, parallel development
  2. A knowledge overlay — a ψ/ directory attached to ANY repository, even one you don't own
  3. A speculative branch — an exploration that may or may not merge back

The third type is the most interesting. When an oracle creates a shadow to explore an idea, the shadow's ψ/ captures learnings from the exploration. Even if the code is never merged, the knowledge persists. The shadow "dies" but its memories live on through reunion.

ψ/ as the Universal Interface

The deepest insight: ψ/ replaces external tools as the interface between AI and context.

Traditional approach:

AI agent → query MCP server → get context → work → report back

Shadow approach:

AI agent → reads ψ/ in its own repo → has context → works → writes to ψ/

The second approach is:

  • Self-contained: git clone gives you the full brain. No external dependencies.
  • Portable: works offline, works on any machine, works in CI/CD.
  • Git-native: knowledge is versioned, diffable, reviewable in PRs.
  • Human-readable: markdown files, not database entries.

The MCP server becomes an INDEX of ψ/ directories across the fleet, not the source of truth. The truth lives in the repos.


Part IV: Knowledge Transformation

The Copy Problem

The current implementation of soul sync copies files from child to parent:

child ψ/memory/learnings/sensor-drift.md → parent ψ/memory/learnings/sensor-drift.md

This is necessary but not sufficient. A parent with 10 children, each generating 50+ learnings, accumulates 500+ raw files. The parent's ψ/ becomes a landfill.

The Distillation Vision

The future of soul sync isn't file copy — it's knowledge transformation:

child generates:   "PM2.5 sensor at station 7 shows 15% drift after 6 months at 40°C"
parent receives:   "DustBoy Q1: sensor maintenance needed at 3 stations, est. cost 45K THB"

The child's raw learning is domain-specific and detailed. The parent needs a summary relevant to its concerns (budget, timeline, risk). An AI step in the sync pipeline transforms the knowledge:

child ψ/file → AI distill (for parent's context) → parent ψ/summary

This isn't implemented yet. But the architecture supports it: soul-sync already knows the parent-child relationship, knows which files are new, and has access to both oracle's CLAUDE.md (identity/context). The distillation step slots naturally into the pipeline.

What Gets Synced, What Gets Distilled

Not everything needs transformation:

Content Treatment
Financial data (invoices, costs) Copy as-is (parent needs exact numbers)
Technical learnings Distill (parent needs impact, not implementation)
Retrospectives Summarize (parent needs patterns, not session details)
Traces Copy as-is (searchable index)

The rules would live in the parent's configuration — "from Floodboy, I need financial data verbatim and technical learnings summarized."


Part V: Bidirectional Flow

The Missing Arrows

The current architecture flows upward: child → parent. But real organizations communicate in all directions:

Downward (parent → children):

  • "Tax deadline March 31 — all children report expenses by March 25"
  • "New compliance requirement: all sensor data must be encrypted at rest"
  • "Budget freeze: no new hardware purchases until Q2"

Lateral (sibling → sibling):

  • Floodboy shares a rain gauge calibration technique with Fireman (both use weather sensors)
  • DustBoy shares a government reporting template with Floodboy (both are government contracts)

Implementation Path

Downward flow: parent writes to ψ/outbox/broadcast/ → soul-sync PUSHES to all children's ψ/inbox/.

Lateral flow: oracle A writes to ψ/outbox/to-fireman/ → soul-sync routes to Fireman's ψ/inbox/from-floodboy/.

Both build on existing primitives:

  • ψ/inbox/ already exists (maw uses it for inter-oracle messaging)
  • ψ/outbox/ already exists (ideas, handoffs)
  • Soul sync already knows the family tree (parent/children)

The routing is just another sync direction.


Part VI: The Repo Oracle

A Repo With No Code

Look at the orange box in the center of the diagram. It's labeled "Repo Oracle." It connects to every project repo. It IS the oracle.

This repo might contain:

pulse-oracle/
├── CLAUDE.md               # Identity: "I am the aggregator"
├── ψ/
│   ├── memory/
│   │   ├── learnings/      # Aggregated from all children
│   │   ├── retrospectives/ # Cross-project patterns
│   │   └── traces/         # Fleet-wide search logs
│   ├── inbox/              # Messages from children
│   └── outbox/             # Broadcasts to children
├── dashboards/             # Cross-project reporting
└── tax/                    # Financial aggregation

No src/ with application code. No package.json for a runtime. This is a pure knowledge repository. Its "code" is its organizational intelligence — the dashboards, reports, and aggregation logic that make sense of children's contributions.

This is radical: an AI agent whose entire purpose is to think, not to code. It reads, synthesizes, reports, and plans. The children do the building.

The Human at the Center

Zoom out one more level. The Repo Oracle aggregates from project repos. But who aggregates from Repo Oracles?

The human. Nat.

project repos → child oracles → parent oracle → human
     code          specialists      aggregator      decision-maker

Each layer reduces complexity. 30 repos become 10 child oracles become 2-3 parent oracles become 1 dashboard that a human can actually comprehend.

This is the real architecture: a hierarchy of AI minds that compresses complexity at each level, until a human can hold it in their head.


Part VII: Practical Guide

Setting Up Parent-Child Relationships

Fleet config (~/.config/maw/fleet/):

// 01-pulse.json (parent)
{
  "name": "01-pulse",
  "children": ["floodboy", "fireman", "dustboychain", "arthur"],
  "windows": [
    { "name": "pulse-oracle", "repo": "laris-co/pulse-oracle" }
  ]
}

// 06-floodboy.json (child)
{
  "name": "06-floodboy",
  "parent": "pulse",
  "windows": [
    { "name": "floodboy-oracle", "repo": "laris-co/floodboy-oracle" }
  ]
}

Commands

# Parent pulls from all children
maw soul-sync pulse

# Child pushes to parent (auto-detect)
maw soul-sync

# Short alias
maw ss pulse

# Create a shadow (worktree) for parallel work
maw wake floodboy sensor-api

# Complete work: commit → reunion → soul-sync → cleanup
maw done floodboy-sensor-api

The Full Knowledge Chain

Developer works in shadow (worktree)
  → learns something, writes to ψ/memory/learnings/
  → maw done
    → git commit + push (save code)
    → maw reunion (shadow ψ/ → main repo ψ/)
    → maw soul-sync (child ψ/ → parent ψ/)
  → parent now has the knowledge
  → parent can aggregate, report, plan

Part VIII: What's Next

Near-term (v1.6.x)

  • Auto soul-sync on maw done (Phase 4)
  • Edge case hardening (Phase 5)
  • Bidirectional sync (parent → children broadcasts)

Medium-term (v1.7+)

  • AI-powered distillation in the sync pipeline
  • Lateral sibling sync
  • Federation: soul-sync across machines (white ↔ mba)

Long-term (v2.0)

  • Self-organizing oracle families (children propose their own parent)
  • Knowledge decay (old learnings fade, recent ones are weighted)
  • Cross-organization soul sync (your oracle fleet talks to my oracle fleet)

Closing

The Shadow Oracle Architecture isn't about technology. It's about how intelligence should be organized.

One mind per domain. Shadows for parallel exploration. Knowledge flows upward through soul sync. Parents aggregate but don't micromanage. The human sees the big picture.

This mirrors how the best human organizations work: specialists who go deep, managers who synthesize, executives who decide. The difference is that our specialists never sleep, never forget, and can be spun up or down in seconds.

The pulse never stops. The shadows keep working. The oracle sees all.


"Each agent should think about a project like a human — that's easier." — Nat Weerawan, April 2026


Appendix: Version History

Version Date What
1.5.2 2026-04-06 Stop swallowing tmux stderr
1.5.3 2026-04-06 Fix new-window collision on base-index ≠ 0
1.5.4 2026-04-06 Skip worktree loop when task specified; remove maw-fleet.service
1.6.0 2026-04-06 maw soul-sync — parent-child oracle ψ/memory sync

Appendix: Related Projects

Project Role
maw-js Multi-agent orchestration (this project)
arra-oracle-v3 Oracle MCP server (knowledge DB)
pulse-cli Project management CLI
proof-maw-multi-agent-worktree-kit Proof of concept

The Flat Oracle — Why Hierarchy Was Wrong

Addendum to Shadow Oracle Architecture — April 7, 2026


The Realization

We spent a night building parent-child soul sync. Beautiful hierarchy:

Nat → natsbrain → Pulse → Floodboy → worktrees

Then Nat said: "each oracle should be flat, because Nat is a random guy."

He's right. The hierarchy doesn't match how he works. He's not a CEO. He's a maker who bounces between projects — Floodboy at 2am, maw-js at 6am, Arthur on Thursday. There is no chain of command. There is curiosity.


Flat Architecture

                    ╭─────╮
              ╭─────┤ Nat ├─────╮
              │     ╰──┬──╯     │
              │        │        │
     ╭────────┼────────┼────────┼────────╮
     │        │        │        │        │
   Pulse    Neo    Floodboy  Fireman  Mother  ...
     │        │        │        │        │
     └────────┴────┬───┴────────┴────────┘
                   │
              all peers
           all talk to Nat
         all talk to each other

No parent. No children. Just oracles and the human who moves between them.


What Changes

Soul Sync: any → any

# Old (hierarchical):
maw soul-sync pulse              # child pushes to parent
maw soul-sync pulse              # parent pulls from children

# New (flat):
maw ss pulse --from floodboy     # pulse needs flood data for tax
maw ss neo --from fireman        # neo needs fireman's API patterns  
maw ss floodboy --from fireman   # peers share sensor knowledge

No config needed. No parent/children fields. Just name the source and destination.

Aggregation: contextual, not structural

When you need... Who aggregates? Temporarily
Tax calculation Pulse syncs from all project oracles Pulse acts as parent
Code review Neo syncs from the relevant oracle Neo acts as parent
Onboarding new oracle Mother syncs philosophy to child Mother acts as parent
Sensor patterns Floodboy syncs from Fireman Peer exchange

The "parent" role rotates based on the task. No permanent hierarchy. Like a jazz band — whoever has the solo leads, everyone else supports.

Federation: already flat

maw federation is already peer-to-peer. /talk-to is already oracle-to-oracle with no hierarchy. The flat model just extends this to soul sync.


Why Flat > Hierarchy

Hierarchical Flat
Config parent: "pulse", children: [...] Nothing needed
Aggregation Fixed: Pulse always aggregates Contextual: whoever needs it
Nat's workflow Top-down delegation Random walk through projects
Adding new oracle Must assign parent Just exists as peer
Cross-cutting work Must go through parent Direct peer sync
Matches reality Corporate org chart Jazz band / mycelium

The Mycelium Insight

Trees have hierarchy. Mycelium networks don't. Every node connects to every other node. Nutrients flow where they're needed, not down a predetermined path.

The Oracle fleet is mycelium, not a tree:

Tree:       root → branch → leaf (fixed paths)
Mycelium:   node ↔ node ↔ node (any path, on demand)

Soul sync through the mycelium: knowledge flows where curiosity points. Not where config dictates.


Does parent/children Still Have a Use?

Yes — as hints, not rules. The config can suggest common sync patterns:

{
  "name": "01-pulse",
  "common_syncs": ["floodboy", "fireman", "dustboychain"]
}

This isn't hierarchy. It's bookmarks. "Pulse often needs data from these oracles." Shortcut, not structure.

maw ss pulse                     # syncs from common_syncs list
maw ss pulse --from arthur       # ad-hoc, not in the list

The Philosophical Shift

Hierarchical: The system knows who reports to whom. Knowledge has a fixed path.

Flat: The human decides where knowledge flows, in the moment, based on need. The system is a network of possibility.

This is Oracle Principle 4: Curiosity Creates. You don't plan where knowledge will be needed. You follow curiosity, and the knowledge follows you.


The Final Diagram

                    ╭─────╮
              ╭─────┤ Nat ├─────╮
              │     ╰──┬──╯     │
              │        │        │
     ╭────────┼────────┼────────┼────────╮
     │        │        │        │        │
   Pulse    Neo    Floodboy  Fireman  Mother
     ·        ·        ·        ·        ·
    repos    repos    repos    repos    repos
     ·        ·        ·        ·        ·
   [wt]    [wt]     [wt]     [wt]     [wt]

   ←──── soul-sync (any → any) ────→
   ←──── federation (/talk-to) ────→
   ←──── Oracle MCP (search)   ────→

Three networks, all flat:

  • soul-sync: file-level knowledge transfer (on demand)
  • federation: real-time communication (peer to peer)
  • Oracle MCP: searchable memory (collective)

No hierarchy. Just oracles, connections, and a human with curiosity.


"Nat is a random guy." And that's exactly why flat works.

Shadow Oracle Architecture — ฉบับ Nat อธิบายให้เพื่อนฟัง

โดย ณัฐ วีระวรรณ์ + Neo Oracle (Claude Opus 4.6) — เมษายน 2026


ปัญหาที่เจอ

ผมมี AI Agent ทำงานให้หลายสิบตัว แต่ละตัวดูแลโปรเจ็คต่างกัน — Floodboy ดูน้ำท่วม, Fireman ดูไฟป่า, DustBoy ดูฝุ่น PM2.5, Arthur ดู Workshop AI, Bitkub ดูคริปโต

ก่อนหน้านี้ ผมให้ Oracle ตัวเดียว (Pulse) ดูแลทุกอย่าง มันมี worktree 17 ตัว ชี้ไปหา repo ต่างๆ ทั่วโลก เหมือนคนคนเดียว context switch ระหว่าง sensor กับภาษี กับ blockchain กับหลักสูตร Workshop

มันไม่ work ครับ

ไม่ใช่เพราะ AI ไม่เก่ง — Claude ทำได้ทุกอย่างที่ใส่ context ให้ แต่เพราะ สถาปัตยกรรมของความรู้ มันผิด เหมือนเอาสมองคนเดียวไปคิดเรื่อง 8 เรื่องที่ไม่เกี่ยวกัน ไม่มีใครทำได้ดีแบบนั้น


แนวคิดใหม่: Shadow Oracle

1 Oracle = 1 โปรเจ็ค

❌  Pulse + 17 worktree ข้าม 8 repo
✅  Pulse (parent) + floodboy, fireman, dustboy (children)

ให้แต่ละ Oracle คิดเรื่องเดียว เหมือนคนที่ focus — Floodboy คิดเรื่องน้ำท่วมอย่างเดียว ไม่ต้องรู้เรื่อง sensor ฝุ่น ไม่ต้องรู้เรื่องภาษี มันจะทำงานได้ลึกกว่า ดีกว่า

Shadow = งานขนานในโปรเจ็คเดียว

Shadow คือ git worktree — สำเนาของ repo เดียวกัน แต่คนละ branch ทำงานขนานได้:

floodboy-oracle/                     # repo หลัก
floodboy-oracle.wt-1-sensor-api/     # shadow: ทำ API เซนเซอร์
floodboy-oracle.wt-2-dashboard/      # shadow: ทำ dashboard

กฎสำคัญ: Shadow ต้องอยู่ในโปรเจ็คเดียวกัน ห้ามข้าม repo ถ้า Floodboy ต้องช่วย Fireman ให้ส่งผ่าน Oracle ของ Fireman ไม่ใช่สร้าง shadow ที่ชี้ไปหา repo ของ Fireman

Soul Sync = ความรู้ไหลขึ้น

เมื่อ child oracle ทำงานเสร็จ ความรู้ที่มันเรียนรู้จะไหลขึ้นไปหา parent:

floodboy ทำ task เสร็จ
  → maw done (commit + push)
  → reunion (shadow ψ/ → repo หลัก ψ/)
  → soul-sync (child ψ/ → parent ψ/)
  → Pulse ได้ความรู้ของ Floodboy แล้ว

Pulse ไม่ต้องไปเปิด repo ของ Floodboy เอง ความรู้มาหามันเอง


สถาปัตยกรรม

Pulse (parent / aggregator)
│   หน้าที่: ภาษี, รายงาน, dashboard ข้ามโปรเจ็ค
│   สมอง: ความรู้รวมจาก child ทุกตัว
│
├── Floodboy (child)
│   หน้าที่: ระบบเตือนน้ำท่วม
│   Shadow: sensor-api, dashboard
│
├── Fireman (child)
│   หน้าที่: ตรวจจับไฟป่า, hotspot
│   Shadow: satellite-feed, alert-system
│
├── DustBoy Chain (child)
│   หน้าที่: คุณภาพอากาศ, PM2.5
│
└── Arthur (child)
    หน้าที่: Workshop AI, โปรเจ็ค MDC

ψ/ คือสมองของ Oracle

ทุก repo มี directory ψ/ (อ่านว่า "ไซ") เก็บความรู้:

ψ/
├── memory/
│   ├── learnings/        # สิ่งที่เรียนรู้
│   ├── retrospectives/   # บันทึกหลังจบ session
│   └── traces/           # log การค้นหา
├── inbox/                # ข้อความจาก Oracle อื่น
└── outbox/               # ข้อความส่งออก

จุดสำคัญ: ψ/ อยู่ใน git ดังนั้น git clone = ได้ทั้งโค้ดและสมอง ไม่ต้องพึ่ง server ภายนอก ไม่ต้อง MCP ไม่ต้อง database อะไรเลย


ทำไมถึงดีกว่า MCP?

ψ/ (Shadow) MCP (Oracle DB)
ต้องการ server ไหม? ไม่ (git clone พอ) ต้อง (server ต้องเปิด)
ทำงาน offline ได้ไหม? ได้ ไม่ได้
Version control ได้ (git) ไม่ได้
Review ใน PR ได้ (เป็น markdown) ไม่ได้
Search ข้ามโปรเจ็ค ต้อง sync ก่อน ได้เลย (semantic search)

คำตอบจริงๆ: ใช้ทั้งคู่

  • ψ/ สำหรับ ความรู้ประจำตัว ของ Oracle แต่ละตัว
  • MCP สำหรับ ค้นหาข้ามโปรเจ็ค แบบ real-time
  • Soul sync เป็นสะพานเชื่อม — feed ψ/ เข้า MCP

Use Case จริง: คำนวณภาษีรายไตรมาส

ปัญหา: Pulse ต้องรวมค่าใช้จ่ายจากทุกโปรเจ็ค

ก่อน Soul Sync: Pulse ต้องเปิด repo ของ Floodboy, Fireman, DustBoy, Arthur ทีละตัว อ่าน learnings ทีละไฟล์ context switch ตลอด ทำไม่ไหว

หลัง Soul Sync:

maw soul-sync pulse
# ⚡ Soul Sync — pulling 4 children → pulse
# ✓ floodboy → 50 learnings
# ✓ fireman → 60 learnings
# ✓ dustboychain → 12 learnings
# ✓ arthur → 8 learnings
# 194 file(s) synced.

Pulse ได้ข้อมูลครบ ทำรายงานภาษีได้เลย — ไม่ต้อง context switch ไปไหน


วิธี Setup

1. ตั้ง parent-child ใน fleet config

// ~/.config/maw/fleet/01-pulse.json
{
  "name": "01-pulse",
  "children": ["floodboy", "fireman", "dustboychain", "arthur"],
  "windows": [{ "name": "pulse-oracle", "repo": "laris-co/pulse-oracle" }]
}

// ~/.config/maw/fleet/06-floodboy.json
{
  "name": "06-floodboy",
  "parent": "pulse",
  "windows": [{ "name": "floodboy-oracle", "repo": "laris-co/floodboy-oracle" }]
}

ประกาศจากฝั่งไหนก็ได้ — parent บอกว่ามี children หรือ child บอกว่า parent คือใคร Soul sync หาความสัมพันธ์จากทั้งสองทาง

2. คำสั่ง

# Parent ดึงจาก child ทุกตัว
maw soul-sync pulse        # หรือ maw ss pulse

# Child push ขึ้นไปหา parent (auto-detect)
maw soul-sync              # หรือ maw ss

# สร้าง shadow สำหรับงานขนาน
maw wake floodboy sensor-api

# จบงาน: commit → reunion → soul-sync → cleanup
maw done floodboy-sensor-api

สิ่งที่ยังไม่ได้ทำ (แต่จะทำ)

ระยะสั้น

  • Auto soul-sync on done — เมื่อ maw done จะ sync ขึ้น parent อัตโนมัติ
  • Bidirectional sync — parent broadcast ลงมาหา children ได้

ระยะกลาง

  • AI Distillation — ไม่ใช่แค่ copy file แต่ AI สรุปให้ parent ในมุมที่ parent สนใจ
    child:  "PM2.5 sensor station 7 drift 15% หลัง 6 เดือนที่ 40°C"
    parent: "DustBoy Q1: ต้องซ่อม sensor 3 สถานี งบประมาณ ~45K"
    
  • Lateral sync — Oracle พี่น้องส่งความรู้หากันได้ (Floodboy ↔ Fireman)
  • Federation soul-sync — sync ข้ามเครื่อง (white ↔ mba ↔ oracle-world)

ระยะยาว

  • Self-organizing families — children เสนอ parent เอง
  • Knowledge decay — ความรู้เก่าค่อยๆ จางลง ความรู้ใหม่มีน้ำหนักมากกว่า
  • Cross-organization sync — Oracle fleet ของเรา คุยกับ fleet ของทีมอื่น

แก่นของแนวคิด

"แต่ละ Agent ควรคิดเรื่องโปรเจ็คเหมือนคน — มันง่ายกว่า"

สมองคนเดียวไม่ควรแบกทุกเรื่อง ให้แต่ละ Oracle ดูแลเรื่องเดียว ทำให้ลึก ทำให้ดี แล้วส่งความรู้ขึ้นไปหา parent ที่มองภาพรวม

เหมือนองค์กรที่ดี: specialist ลงลึก, manager สรุป, director ตัดสินใจ แต่ specialist ของเราไม่เคยหลับ ไม่เคยลืม และ spin up/down ได้ใน 3 วินาที


Version History

Version วันที่ อะไร
1.5.2 6 เม.ย. 69 แก้ tmux กลืน stderr
1.5.3 6 เม.ย. 69 แก้ new-window ชนกับ base-index ≠ 0
1.5.4 6 เม.ย. 69 ลบ maw-fleet.service → PM2 เท่านั้น
1.6.0 6 เม.ย. 69 maw soul-sync — parent-child Oracle ψ/ sync

สร้างโดย ณัฐ + Neo Oracle — เมษายน 2569 ชีพจรไม่เคยหยุด — งานก็ไม่ควรหลุด

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment