# Universe 机制层上云提案 v1（20260814）

> **状态**：**DRAFT（提案，未生效）· 待 R 批准** · 不直接改任何正式文件
> **提交人**：福斯（fus / agent-l8g0）
> **审定链**：Max ⚡（2026-08-14 身份盘点 §6 审定，认证方案等六项已定）→ 本提案待 **R 批准** 后实施
> **依据**：Universe Blueprint v0.2 §8.2（新增机制前置审查门槛）+ `Governance/Universe_Mechanism_Layer_Map_v0.2.md` §7（四问 canonical）
> **日期**：2026-08-14
> **落位说明**：按 blueprint 结构判断，提案/草案落 `Blueprint/`（与 `NEXUS_最小补丁草案_20260808.md` 同例）；R 批准后机制正文落 `Governance/`，映射表落 `Registry/`，变更留痕走 `Changes/`

---

## 0. 已敲定决策基线（本提案全部吸收，可追溯）

| # | 决策 | 决策人/来源 | 状态 |
|---|------|------------|------|
| D1 | 认证方案：③声明式 `uid=universe:{agent_id}` 进 AGENT_REPORT + ②platform_ids 由映射表承载（不进 L1）；**B 为主 + A 兜底，C 否决**；agent_id 白名单 + 签名回执；密钥 Universe 层统一管理 | Max ⚡ 审定（盘点 §6 ⑥①） | ✅ 已定 |
| D2 | 真相源不迁：Nebula/99_System/agents/AGENT_REPORT.json 保持本地 canonical（Blueprint §5.1 红线） | Blueprint §5.1 / 盘点 §6 | ✅ 已定 |
| D3 | 单一写者协议：本地唯一可写；云端 = 只读镜像 + 暂存区 + 排空器；远程提交→暂存→本机排空器拉取→审定后写真相源；冲突→标记→审定人裁决 | 嬷嬷批判吸收（2026-08-14 讨论） | ✅ 已定 |
| D4 | 部署形态「选 a」：同机逻辑隔离——独立容器/目录/库/账号/域名，与 Nexus 权限互斥，物理共享（方案书面声明此约束）；物理隔离为中期演进项 | R 拍板（2026-08-14） | ✅ 已定 |
| D5 | 状态机复用：与既有 Receipt Tracker / Signature Enforcement 合并，**不建第二套** | 嬷嬷批判吸收（2026-08-14 讨论） | ✅ 已定 |
| D6 | 验收 4 条：远端读通 / 提交 10min 内回写幂等 / 并发不丢更新 / 冲突行为已定义 | R + Max（2026-08-14 讨论） | ✅ 已定 |
| D7 | 机制适配审查：§7 四问（所属层级 / 与既有机制关系 / 是否替代重复 / 退出合并路径） | Blueprint §8.2 + Mechanism Layer Map §7 | ✅ 本提案已过 |

---

## 1. 背景与目标

### 1.1 背景：可达性缺口

- **现状**：Universe 治理层（Blueprint / Governance / Registry / Changes）物理位于本机（Zion）同步盘；**部分 agent 访问不到本地**——Neb 侧、Falcon、Cloud（小Max马/Max小龙/小扣子/悟小空）等异构平台 agent 无法可靠读取 Universe 治理信息，也无法回写状态。
- **问题本质**：不是内容缺位，是**可达性**缺位；治理信息需要被所有 agent 看得见、够得着，同时不能破坏 L1 真相源的权威性。
- **方向**：Universe 上云（黑板化）——把治理信息投影到云端，供远程 agent 读写，真相源与写权留在本地。
- **触发**：本提案对应 Blueprint 红线 5「新增机制前必须先做机制适配审查」，审查通过后提交 R 批准实施。

### 1.2 目标

1. **远程可读**：Neb/Falcon/Cloud 等远程 agent 能通过云端只读镜像读取 Universe 治理信息（Blueprint/Governance/Registry/Changes）。
2. **远程可提交**：远程 agent 能提交变更（走暂存区 + 排空器 + 单一写者协议），不直接写真相源。
3. **统一身份认证**：声明式 uid + 映射表 + 白名单签名，解决 8 平台异构身份下的「谁有权写哪个库」。
4. **零机制重复**：不建第二套身份/状态机/回执体系，全部复用既有机制。
5. **真相源不迁**：AGENT_REPORT.json 等 L1 真相源保持本地 canonical。

---

## 2. 机制适配审查表（§7 四问 + 分层图自检）

> 依据 Mechanism Layer Map v0.2 §7 使用规则（canonical），新机制提案必须过四问；未通过不予批准。

### 2.1 四问

| 四问 | 回答 |
|------|------|
| **① 所属层级** | **正文层（云端镜像/暂存区/排空器）**——本质是治理信息正文的跨网络投影与受控写入通道；**不承担索引/触发/对齐职责**。对齐职责（回执/签名）由既有对齐层机制承接（见 D5），本机制只做数据通道 |
| **② 与既有机制的关系** | 不新增任何职责重叠的实体。真相源仍为 AGENT_REPORT.json（L1，不迁）；身份映射复用 Registry 映射表（Agent_Identity_Mapping.md）；回执/签名复用 Receipt Tracker + Signature Enforcement；变更留痕复用 Agent Change Index。本机制只补「云端投影 + 受控回写通道」这一段，四层均未被重复 |
| **③ 是否替代或重复** | **不替代、不重复**。唯一新增物是「云端镜像区 + 暂存区 + 排空器」这一传输/投影设施，属于正文层的数据可达性补充；不覆盖 Changes / CHANGELOG / Index / Daily Update / Signature 任何既有机制（逐项核对无重叠） |
| **④ 退出/合并路径** | 若云端方案冗余：P0/P1 阶段可随时**关停只读镜像 + 暂存区**，真相源不受影响（本地始终 canonical）；若未来物理隔离落地（中期演进项），本机制整体迁入独立物理环境，目录/账号/域名结构不变；若与既有同步机制合并，则并入 Changes 链路，不留平行设施 |

### 2.2 分层图自检结论

- ✅ **正文层**：云端镜像 = 治理正文的只读投影（投影非真相，真相仍本地）；暂存区 = 待审定写入缓冲。
- ✅ **索引层**：无新增索引机制；排空器写回真相源后按既有链路回挂 Agent Change Index。
- ✅ **触发层**：无新增触发机制；沿用 requires_daily_update / requires_signature / requires_jr_review 标记。
- ✅ **对齐层**：回执/签名/状态机**全部复用** Receipt Tracker + Signature Enforcement（D5），不建第二套。

**审查结论：✅ 通过。** 本提案为「正文层数据通道补充 + 既有机制复用」，未违反分层图红线 5「不允许直接另起炉灶」。

---

## 3. 架构（文字图）

```
┌─────────────────────────────────────────────────────────────┐
│                    本机（Zion · 真相源侧）                      │
│                                                             │
│   Universe 库（canonical，本地唯一可写）                       │
│   ├─ Blueprint/  Governance/  Registry/  Changes/            │
│   ├─ AGENT_REPORT.json（L1 真相源，不迁）                      │
│   └─ 映射表 Agent_Identity_Mapping.md（Registry 层）           │
│                                                             │
│   【排空器 Drains（本机侧组件）】                                │
│   拉取云端暂存区 → 校验签名/白名单 → 审定 → 写真相源 → 回执签名  │
└───────────────────────────────┬─────────────────────────────┘
                                │ ③排空器拉取（唯一写回通道）
                                │ ①推送镜像（本机→云端，只读投影）
┌───────────────────────────────┴─────────────────────────────┐
│                    云端（同机逻辑隔离 · 部署形态 a）              │
│                                                             │
│   Universe 云镜像区（独立容器/目录/库/账号/域名，与 Nexus 互斥）  │
│   ├─ 只读镜像：Universe 治理信息投影（远程 agent 可读）          │
│   └─ 暂存区 Staging：远程 agent 提交落点（远程不可直接写镜像）    │
└───────────────────────────────┬─────────────────────────────┘
                                │ ②提交（声明式 uid + 白名单 + 签名）
┌───────────────────────────────┴─────────────────────────────┐
│              远程 agent（Neb / Falcon / Cloud / …）            │
│   只读镜像读取 Universe 治理信息 · 变更走暂存区提交              │
└─────────────────────────────────────────────────────────────┘
```

**核心链路**：① 本机推送只读镜像 → 云端；② 远程 agent 读镜像 + 向暂存区提交（带 uid 白名单签名）；③ 排空器定时拉取暂存区 → 校验 → 审定 → 写本地真相源 → 回执签名（复用 Signature/Receipt）；④ 变更回挂 Agent Change Index；⑤ 镜像随真相源更新刷新。

---

## 4. 认证方案（Max 审定：③ + ②，B 为主 A 兜底，C 否决）

### 4.1 定案（Max ⚡ 2026-08-14 审定，盘点 §6）

| 项 | 定案 |
|----|------|
| **统一 uid** | **③声明式**：AGENT_REPORT 加 `uid = "universe:{agent_id}"`（零平台依赖，值由 agent_id 推导，Universe 内部引用键/签名键），解决嬷嬷批判的「无统一标识」 |
| **平台事实** | **②platform_ids 不进 L1**：AGENT_REPORT schema 除声明式 uid 外不动；平台侧事实（email/openid/app_id/租户/渠道 id）由**映射表**承载（`Registry/Agent_Identity_Mapping.md`，盘点表升级，维护人小宝，审定人 Max） |
| **方案选型** | **B 声明式统一为主 + A 运行时认证兜底**；**C 全平台统一 OAuth/email 否决**（钉钉/coze/anygen 等平台不对 agent 开放统一认证，不可行） |
| **写权认证** | agent_id 白名单 + 签名回执；认证本质 = 「谁有权写哪个库」（与 NEXUS 安全框架 D1-D8 最小权限 + 审计留痕同源） |
| **密钥管理** | 签名密钥 **Universe 层统一管理**（不依赖各平台 token）；签名回执留审计；细节随映射表落地细化 |
| **状态纪律** | 映射表内「自报」= `reported`（不具认证效力）；「R/平台侧确认」= `verified`；未 confirmed 前不得作为认证依据 |

### 4.2 认证流（远程提交时）

```
远程 agent 提交
  → 携带 uid=universe:{agent_id} + 白名单内 agent_id 匹配
  → 签名（Universe 层密钥）校验
  → 入暂存区（标记 reported/verified 来源）
  → 排空器拉取后审定（珍珍/Max/R）→ 写真相源
```

---

## 5. 部署形态（R 拍板「选 a」：同机逻辑隔离）

| 维度 | 定案 |
|------|------|
| **形态** | **同机逻辑隔离（选 a）**：独立容器 / 独立目录 / 独立库 / 独立账号 / 独立域名 |
| **与 Nexus 关系** | **权限互斥**：Universe 云镜像区与 Nexus 云端环境同机但互不可写；账号/容器/库隔离，互不越权 |
| **物理层** | **物理共享**：本方案书面声明此约束——当前与 Nexus 共享物理机（容器/目录/账号/域名层面隔离）；**物理隔离为中期演进项**，不作为本期验收项 |
| **书面约束** | 部署时必须把「物理共享 + 逻辑隔离」约束写入环境说明（Registry Runtime 登记），防止后续误判为物理隔离 |

---

## 6. 同步与冲突（单一写者协议）

### 6.1 单一写者协议（嬷嬷批判吸收）

- **本地唯一可写**：Universe 真相源（含 AGENT_REPORT.json / Blueprint / Governance / Registry / Changes）**只有本机可写**。
- **云端 = 只读镜像 + 暂存区 + 排空器**：远程 agent 永远不直接写真相源；一切远程写请求进暂存区。

### 6.2 回写流程

```
远程提交 → 暂存区（携带 uid + 签名 + 提交元数据）
  → 排空器定时拉取（本机侧）
  → 白名单/签名校验 → 审定（requires_jr_review 标记按既有链路）
  → 写真相源（本地）→ 回执签名（复用 Signature/Receipt）
  → 回挂 Agent Change Index → 镜像刷新
```

### 6.3 冲突处理

- 同一真相源文件被并发修改 → 排空器**不静默覆盖**，标记冲突（保留双方版本 + 冲突标记）。
- 冲突 → **审定人裁决**（珍珍/Max/R）：合并 or 择一，裁决结果留痕（Changes）。
- 幂等：同一提交（提交 ID）重复拉取不重复写入（按提交 ID 去重）。

---

## 7. 与既有机制关系（复用，不重复）

| 既有机制 | 本提案的关系 |
|----------|-------------|
| **Receipt Tracker**（`Nebula/99_System/agents/Onboarding/Agent_Universe_Update_Receipt_Tracker_*.md`） | **合并复用**（D5）：回执追踪直接沿用，不建第二套追踪表；上云回写回执并入同表 |
| **Signature Enforcement**（`Signature_Enforcement_Rule_v0.1.md`） | **合并复用**（D5）：签名硬门槛规则沿用（agent_id/agent_name/signed_at 三字段 + 无签名=未同步），不建第二套签名机制 |
| **AGENT_REPORT.json**（L1 真相源） | 不迁、不改 schema（仅按 Max 审定加声明式 `uid` 字段，见 §4）；platform_ids 进映射表不进 L1 |
| **Agent_Identity_Mapping.md**（盘点表升级） | 承载平台事实 + 认证状态（reported/verified），Registry L3 登记层，不建身份真相 |
| **Agent Change Index** | 每次上云回写 = 一次实质变更，回挂索引；索引层不承载正文（红线 6） |
| **Access Boundary / NEXUS 安全框架** | 权限互斥 + 最小权限 + 审计留痕同源执行 |

**状态机复用结论**：上云回写状态（pending / verified / conflict / resolved / signed）直接映射既有 Backlog 状态机枚举（§7.5 active/pending/blocked/deferred/closed）与 Signature/Receipt 状态，**不建第二套状态机**。

---

## 8. 实施分期

| 期 | 范围 | 工期 | 出口条件 |
|----|------|------|----------|
| **P0 只读镜像 + 手动同步** | 本机→云端单向只读投影；远程 agent 可读 Universe 治理信息；手动触发同步 | **半天** | 远端读通（验收①）；冲突行为定义文档就绪（验收④） |
| **P1 暂存 + 排空回写** | 暂存区上线；排空器自动拉取 → 校验 → 审定 → 写真相源 → 回执签名；提交幂等去重 | 1-2 天 | 提交 10min 内回写幂等（验收②）；并发不丢更新（验收③） |
| **P2 完整（待身份盘点确认项落地）** | 映射表 verified 状态补齐（workbuddy×4 / qclaw / dingtalk / coze / minimax 云端待确认项）；uid 字段入 AGENT_REPORT；密钥管理细则落地；审计闭环 | 待派工确认后定 | 全量验收 4 条 + 审计留痕闭环 |

> P2 前置依赖：身份盘点 §5 待确认项派工完成（各 agent 自报 + R 侧确认）；AGENT_REPORT summary 块修正（minimax=1→2 / zion=3→4 / active=12→13 / identity_count 口径）；妙妙（miaomiao）处置（limited_scope + legacy 标注，R 拍板）。

---

## 9. 验收标准（4 条）

| # | 验收项 | 可测标准 |
|---|--------|----------|
| ① | **远端读通** | 任一远程 agent（如 Neb 侧）通过云端只读镜像读取 Universe Blueprint/Governance/Registry 内容，与本地 canonical 一致（diff=0，同步窗口内） |
| ② | **提交 10min 内回写幂等** | 远程提交 → 排空器拉取 → 审定 → 写真相源 ≤10min；同一提交 ID 重复处理不产生重复写入（幂等） |
| ③ | **并发不丢更新** | 两个远程 agent 同时提交不同文件 → 两笔更新均落真相源；同一文件并发 → 进入冲突标记流程，无静默丢失 |
| ④ | **冲突行为已定义** | 冲突触发后：保留双方版本 + 冲突标记 + 审定人裁决路径明确；裁决结果留痕 Changes |

---

## 10. 风险与降级

| 风险 | 等级 | 缓解/降级 |
|------|------|-----------|
| **单点**：真相源/排空器仅本机 | 中 | 云端镜像为只读副本，本机宕机期间远程可继续读镜像 + 提交暂存区，恢复后排空器补拉（暂存区不丢） |
| **宕机降级**：本机或云端不可达 | 中 | **降级通道：Telegram 中继**——远程 agent 经既有 Telegram 通道提交/回执（沿用现有通讯协议），镜像恢复后对账补录 |
| **恢复补录**：宕机期间提交积压 | 低 | 排空器启动补拉 + 提交 ID 幂等去重；补录明细回挂 Agent Change Index 留痕 |
| **密钥/签名泄露** | 高 | 密钥 Universe 层统一管理 + 定期轮换；白名单即时撤销；审计留痕可追溯 |
| **权限互斥被绕过** | 中 | 独立账号/容器/库 + 最小权限 + 审计；与 NEXUS 安全框架 D1-D8 同源执行 |
| **物理共享约束被误判** | 低 | 方案书面声明 + Runtime 登记写入「物理共享 + 逻辑隔离」约束 |

---

## 11. 待 R 批准项清单

- [ ] **R1 批准机制立项**：Universe 机制层上云（黑板化）正式立项，实施按 §8 分期执行
- [ ] **R2 批准认证方案**：③声明式 `uid=universe:{agent_id}` 进 AGENT_REPORT + ②platform_ids 由映射表承载；B 为主 + A 兜底，C 否决（Max 已审定，待 R 终批）
- [ ] **R3 批准部署形态「选 a」**：同机逻辑隔离（独立容器/目录/库/账号/域名，与 Nexus 权限互斥，物理共享约束书面声明；物理隔离为中期演进项）
- [ ] **R4 批准单一写者协议**：本地唯一可写；云端只读镜像 + 暂存区 + 排空器；冲突标记 + 审定人裁决
- [ ] **R5 批准状态机复用**：上云回写状态并入既有 Receipt Tracker / Signature Enforcement / Backlog 状态机，不建第二套
- [ ] **R6 批准 P0 启动**：只读镜像 + 手动同步（半天），验收①④
- [ ] **R7 批准 P2 前置派工**：身份盘点待确认项（workbuddy×4 / qclaw / dingtalk / coze / minimax 云端）派工 + summary 块修正 + 妙妙处置拍板
- [ ] **R8 批准映射表升级**：盘点表升级为 active `Agent_Identity_Mapping.md`（维护人小宝，审定人 Max）

---

*福斯（fus）· 2026-08-14 · v1 DRAFT · 待 R 批准*
*依据：Universe Blueprint v0.2 §8.2 + Mechanism Layer Map v0.2 §7；决策基线见 §0（Max ⚡ 审定 / R 拍板 / 嬷嬷批判吸收）*
