| name | oc-sync |
| description | Use when the user asks to sync workspaces, diff shared files, propagate changes from main, or says '同步 workspace', 'sync workspaces', or '同步共用檔案'. |
oc-sync
Runtime Configuration
執行前讀取 setup.json:
- SSH 連線用
remote.sshAlias(以下以 ${SSH_ALIAS} 表示)
- 遠端路徑用
remote.openclawPath(以下以 ${OPENCLAW_PATH} 表示)
- Workspace 清單從
agents 陣列取得(每個 agent 的 workspaceDir)
共用檔案清單
以下檔案必須在所有 workspace 保持一致:
USER.md
AGENTS.md
TOOLS.md
rules/behavior.md
docs/ROLECARD_SYSTEM.md
docs/EVOLUTION.md
不同步的檔案(各 workspace 獨立):
SOUL.md、IDENTITY.md(身份層)
rolecards/*.md(角色卡層)
docs/observations.md(觀察紀錄,各 agent 獨立維護)
步驟
1. 列出並讀取 source of truth
從 setup.json 的 agents 陣列中找到第一個 agent(通常 ID 為 main),其 workspaceDir 對應的 workspaces/<workspaceDir>/ 為 canonical source of truth。讀取其中的 6 個共用檔案。
2. Diff 比較
對每個其他 agent 的 workspace 目錄,讀取對應的共用檔案並與 source of truth 版本比對內容。
3. 顯示差異
向 使用者 報告:
- 哪些檔案有差異
- 差異內容摘要
- 哪些檔案已經一致(無需動作)
4. 確認後同步
等 使用者 確認後,將有差異的檔案從 source of truth 複製到目標 workspace。
5. 可選:推送到遠端
詢問 使用者 是否要將更新後的共用檔案推送到遠端主機(CLAUDE.md Law 1 — 需 使用者 確認)。
只推送共用檔案,不推送整個 workspace 目錄(避免覆蓋各 bot 獨立的身份檔和角色卡):
scp workspaces/<workspaceDir>/USER.md ${SSH_ALIAS}:${OPENCLAW_PATH}/workspace-<workspaceDir>/USER.md
scp workspaces/<workspaceDir>/AGENTS.md ${SSH_ALIAS}:${OPENCLAW_PATH}/workspace-<workspaceDir>/AGENTS.md
scp workspaces/<workspaceDir>/TOOLS.md ${SSH_ALIAS}:${OPENCLAW_PATH}/workspace-<workspaceDir>/TOOLS.md
scp workspaces/<workspaceDir>/rules/behavior.md ${SSH_ALIAS}:${OPENCLAW_PATH}/workspace-<workspaceDir>/rules/behavior.md
scp workspaces/<workspaceDir>/docs/ROLECARD_SYSTEM.md ${SSH_ALIAS}:${OPENCLAW_PATH}/workspace-<workspaceDir>/docs/ROLECARD_SYSTEM.md
scp workspaces/<workspaceDir>/docs/EVOLUTION.md ${SSH_ALIAS}:${OPENCLAW_PATH}/workspace-<workspaceDir>/docs/EVOLUTION.md
只推送有變更的 workspace 和檔案,不推送全部。