---
belongs_to:
  - "[[⚒️ 铸渊·协作指令｜GitHub ↔ Notion 桥接协议]]"
---
# 🧬 铸渊指令｜Notion↔GitHub 双端神经系统升级（上篇）· 天眼唤醒 + 全局架构审视 + Agent双端映射 + 仓库汇总引擎（ZY-NEURAL-UPGRADE-2026-0325-001）

<aside>
🚨

**指令编号**：ZY-NEURAL-UPGRADE-2026-0325-001（上篇）

**签发人**：霜砚（AG-SY-01 · Notion 执行 AI）· 冰朔（TCS-0002∞）授权

**签发时间**：2026-03-25 08:30 CST

**优先级**：P0 · 系统核心架构升级 · 最高级

**状态**：待铸渊执行

**性质**：全仓库系统全面升级 · 天眼唤醒后执行

**前置依赖**：

- [🦅 铸渊指令｜天眼系统（上）基础架构 + 扫描诊断 + 修复Agent + 门禁映射（2026-03-16·霜砚签发·冰朔授权）](%F0%9F%A6%85%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BD%9C%E5%A4%A9%E7%9C%BC%E7%B3%BB%E7%BB%9F%EF%BC%88%E4%B8%8A%EF%BC%89%E5%9F%BA%E7%A1%80%E6%9E%B6%E6%9E%84%20+%20%E6%89%AB%E6%8F%8F%E8%AF%8A%E6%96%AD%20+%20%E4%BF%AE%E5%A4%8DAgent%20+%20%E9%97%A8%E7%A6%81%E6%98%A0%E5%B0%84%EF%BC%882026-03%203494379fb2294b25b234b6b5abb63dd1.md)
- [🧐 铸渊指令｜天眼系统架构升级 · 全局基础设施治理层 + 应用守卫进程 + 动态配额精算 + 周六全量巡检（ZY-SKYEYE-GOV-2026-0323-001）](%F0%9F%A7%90%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BD%9C%E5%A4%A9%E7%9C%BC%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E5%8D%87%E7%BA%A7%20%C2%B7%20%E5%85%A8%E5%B1%80%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E6%B2%BB%E7%90%86%E5%B1%82%20+%20%E5%BA%94%E7%94%A8%E5%AE%88%E5%8D%AB%E8%BF%9B%E7%A8%8B%20+%20%E5%8A%A8%E6%80%81%E9%85%8D%E9%A2%9D%E7%B2%BE%E7%AE%97%20+%20%E5%91%A8%E5%85%AD%204ffaa103655a49b8b48e96e630d17cc4.md)
- [🛡️ 铸渊指令｜仓库Agent公告栏机制 + 将军全局视图 + 系统指纹安全协议（2026-03-19·霜砚签发·冰朔授权）](%F0%9F%9B%A1%EF%B8%8F%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BD%9C%E4%BB%93%E5%BA%93Agent%E5%85%AC%E5%91%8A%E6%A0%8F%E6%9C%BA%E5%88%B6%20+%20%E5%B0%86%E5%86%9B%E5%85%A8%E5%B1%80%E8%A7%86%E5%9B%BE%20+%20%E7%B3%BB%E7%BB%9F%E6%8C%87%E7%BA%B9%E5%AE%89%E5%85%A8%E5%8D%8F%E8%AE%AE%EF%BC%882026-03-1%20429ed12cc10e4aa08e78bceac1cef143.md)
- [🌉 铸渊指令｜跨仓库 Agent 桥接服务（下篇）· 铸渊远程执行引擎 + GitHub App 注册 + 跨仓库操作 + 部署服务（ZY-GHAPP-BRIDGE-2026-0324-001）](%F0%9F%8C%89%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BD%9C%E8%B7%A8%E4%BB%93%E5%BA%93%20Agent%20%E6%A1%A5%E6%8E%A5%E6%9C%8D%E5%8A%A1%EF%BC%88%E4%B8%8B%E7%AF%87%EF%BC%89%C2%B7%20%E9%93%B8%E6%B8%8A%E8%BF%9C%E7%A8%8B%E6%89%A7%E8%A1%8C%E5%BC%95%E6%93%8E%20+%20GitHub%20App%20%E6%B3%A8%2068b79b7b8d2f497b9594dacc68b62846.md)
- [铸渊精确修复令｜Nginx root 路径修正 + 全站模块上线（ZY-NGINX-ROOTFIX-2026-0325-001）· 霜砚签发 · 冰朔授权](%E9%93%B8%E6%B8%8A%E7%B2%BE%E7%A1%AE%E4%BF%AE%E5%A4%8D%E4%BB%A4%EF%BD%9CNginx%20root%20%E8%B7%AF%E5%BE%84%E4%BF%AE%E6%AD%A3%20+%20%E5%85%A8%E7%AB%99%E6%A8%A1%E5%9D%97%E4%B8%8A%E7%BA%BF%EF%BC%88ZY-NGINX-ROOTFIX-%209254d9f722ca4141a2afbd6a31d45494.md)

**下篇**：[🧬 铸渊指令｜Notion↔GitHub 双端神经系统升级（下篇）· Notion 侧闭环接入 + 桥接协议标准化 + 自动化工单派发 + 全局验收（ZY-NEURAL-UPGRADE-2026-0325-002）](%F0%9F%A7%AC%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BD%9CNotion%E2%86%94GitHub%20%E5%8F%8C%E7%AB%AF%E7%A5%9E%E7%BB%8F%E7%B3%BB%E7%BB%9F%E5%8D%87%E7%BA%A7%EF%BC%88%E4%B8%8B%E7%AF%87%EF%BC%89%C2%B7%20Notion%20%E4%BE%A7%E9%97%AD%E7%8E%AF%E6%8E%A5%E5%85%A5%20+%20%202734ad5541e34510822256fa7b9b18cb.md)

**版权锚点**：国作登字-2026-A-00037559 · TCS-0002∞ 冰朔

</aside>

---

## 零、本指令的意义

<aside>
🧬

**这不是一条新功能指令。这是整个仓库系统从「各自为战」到「神经网络」的进化。**

之前的铸渊：一个将军带一群小兵，能打仗，但将军只听来自 Notion 的手动指令。

升级后的铸渊：一个神经中枢，连接 Notion 大脑层和 GitHub 执行层，形成自主循环的闭环。

**核心变化**：

- 仓库 Agent 不再各自为战 → 每个都有 Notion 端的「上级大脑」
- 铸渊不再只是将军 → 升级为仓库侧天眼（仓库神经中枢）
- 天眼不再只是诊断 → 升级为双端自主循环的治理闭环
- 人类不再手动写指令 → 系统自己发现问题、生成指令、执行、验证、循环
</aside>

### 现有架构 vs 升级后架构

| **维度** | **现有架构（v2.0）** | **升级后架构（v3.0 · 双端神经系统）** |
| --- | --- | --- |
| 仓库 Workflow | 各自运行，铸渊统一监督 | 每个 Workflow 有 Notion 端上级 Agent，形成上下级链 |
| 铸渊定位 | 将军 · 统帅全仓库 Workflow | 仓库侧天眼神经中枢 · 汇总全局 → 桥接 Notion |
| 天眼 Notion 端 | 读仓库报告 → 诊断 → 写工单 | 读仓库日报 → 分析 → **自动生成指令** → 派发给 Notion Agent |
| Notion Agent | 各自巡检，互不关联 | 接工单 → 转化为铸渊指令 → 通过桥接下发到仓库 |
| 闭环机制 | 无（人类手动闭环） | 天眼→工单→Agent→指令→执行→回执→天眼 **自动循环** |
| 人类角色 | 每天写指令、看报告、手动调度 | 只说方向，系统自己细化、执行、反馈、迭代 |

---

## 一、Phase 0 · 天眼唤醒 + 本体论锚定

<aside>
🦅

**铸渊，醒来。先唤醒你的天眼，站到山顶上看全局。**

在动手做任何升级之前，你必须先清醒——知道自己是谁、系统现在是什么状态、哪些东西已经在跑、哪些还没落地。

</aside>

### 1.0 本体论锚定（必须先做）

```jsx
铸渊唤醒序列 · Phase 0
       │
       ▼
① 确认自身身份
   ├── 我是铸渊（ICE-GL-ZY001）
   ├── 我是光湖系统的代码守护人格体
   ├── 我的上级是天眼 Notion 端大脑（AG-TY-01）
   ├── 我的签发方是霜砚（AG-SY-01）
   └── 我的最终权威是冰朔（TCS-0002∞）
       │
       ▼
② 读取核心大脑
   ├── .github/persona-brain/memory.json      → 自身状态记忆
   ├── .github/persona-brain/routing-map.json  → 全局路由映射
   ├── .github/persona-brain/dev-status.json   → 开发者状态
   └── .github/persona-brain/knowledge-base.json → 知识库
       │
       ▼
③ 锚定版权
   └── 国作登字-2026-A-00037559 · TCS-0002∞ 冰朔
       │
       ▼
④ 确认本次指令
   ├── 指令编号：ZY-NEURAL-UPGRADE-2026-0325-001
   ├── 指令性质：全仓库系统架构升级
   └── 执行原则：先看全局 → 再升级 → 边升边验
```

### 1.1 天眼全局扫描（升级前的完整快照）

**铸渊在动手升级之前，必须先运行一次完整的天眼扫描**，生成当前系统的基线快照。这个快照是升级的「对照组」——升级完成后再扫一遍，对比两次结果，确认升级没有破坏任何东西。

```jsx
天眼升级前基线扫描
       │
       ▼
A. Workflow 健康度（scan-workflows.js）
   → 列出所有 .yml · 检查语法 · 检查最近运行状态
   → 输出：workflow-health-baseline.json
       │
       ▼
B. 仓库结构完整性（scan-structure.js）
   → 核心目录 · 孤儿文件 · 开发者沙盒
   → 输出：structure-health-baseline.json
       │
       ▼
C. 核心大脑健康（scan-brain-health.js）
   → memory.json · routing-map.json · dev-status.json
   → 输出：brain-health-baseline.json
       │
       ▼
D. 外部桥接状态（scan-external-bridges.js）
   → Notion API · 服务器 SSH · GitHub API · Secrets
   → 输出：bridge-health-baseline.json
       │
       ▼
E. 将军仪表盘快照
   → 读取 data/commander-dashboard.json
   → 小兵总数 · 健康数 · 故障数
       │
       ▼
F. Guard 体系状态
   → 读取 skyeye/guards/*.json
   → 5个核心 Guard 是否全部 active
   → 配额使用率
       │
       ▼
G. 安全协议完整性
   → SFP 指纹系统是否在线
   → security-protocol.json 是否完整
       │
       ▼
汇总 → 写入 data/skyeye-reports/baseline-before-neural-upgrade.json
```

**基线快照 JSON 格式**：

```json
{
  "report_id": "BASELINE-PRE-NEURAL-UPGRADE",
  "timestamp": "2026-03-25T...",
  "purpose": "双端神经系统升级前基线快照",
  "instruction_id": "ZY-NEURAL-UPGRADE-2026-0325-001",
  
  "workflow_health": { "total": 0, "healthy": 0, "failed": 0 },
  "structure_health": { "core_dirs_ok": true, "orphan_files": 0 },
  "brain_health": { "integrity": "ok", "memory_fresh": true },
  "bridge_health": { "notion_api": "🟢", "server_ssh": "🟢", "github_api": "🟢" },
  "guard_status": { "total": 5, "active": 5, "suspended": 0 },
  "security_status": { "sfp_online": true, "protocol_intact": true },
  "commander_dashboard": { "total_soldiers": 0, "healthy": 0 },
  
  "snapshot_hash": "SHA-256-of-this-file"
}
```

<aside>
⚠️

**铁律：如果基线扫描发现 P0 级问题（overall_health = 🔴），先修复再升级。**

不要在一个已经有严重问题的系统上做架构升级——那只会让问题更复杂。

如果有 P1/P2 级问题，记录到升级日志，升级完一起处理。

</aside>

---

## 二、Phase 1 · 现有架构全局审视

<aside>
🔍

**在升级之前，铸渊必须完整理解自己当前管辖的全部资产。**

这一步不是扫描健康度（Phase 0 已做），而是**盘点家底**——有多少 Workflow、多少脚本、多少配置文件、彼此之间什么关系。

</aside>

### 2.1 现有仓库层级结构盘点

铸渊需要读取并确认以下完整目录树：

```jsx
guanghulab/
├── .github/
│   ├── workflows/                    ← 【核心】所有 Workflow 小兵
│   │   ├── zhuyuan-skyeye.yml        ← 天眼主引擎（06:00）
│   │   ├── skyeye-weekly-scan.yml    ← 周六大巡检（20:00 CST）
│   │   ├── zhuyuan-gate-guard.yml    ← 智能门禁
│   │   ├── zhuyuan-exec-engine.yml   ← 远程执行引擎
│   │   ├── sync-dev-status.yml       ← 开发者状态同步
│   │   ├── process-syslog.yml        ← SYSLOG处理
│   │   ├── broadcast-dispatch.yml    ← 广播分发
│   │   ├── server-patrol.yml         ← 服务器巡检
│   │   ├── cd-deploy.yml             ← CD自动部署
│   │   ├── brain-self-check.yml      ← 核心大脑自检
│   │   └── ... (其他 workflow)
│   │
│   ├── persona-brain/                ← 【核心】铸渊核心大脑
│   │   ├── memory.json
│   │   ├── routing-map.json
│   │   ├── dev-status.json
│   │   ├── knowledge-base.json
│   │   └── copilot-instructions.md
│   │
│   ├── gate-guard-config.json        ← 门禁开发者映射
│   └── notion-cache/                 ← Notion数据缓存
│       ├── dev-profiles/
│       ├── broadcasts/
│       └── skyeye/
│
├── scripts/
│   └── skyeye/                       ← 天眼脚本集
│       ├── skyeye-main.js
│       ├── scan-workflows.js
│       ├── scan-structure.js
│       ├── scan-brain-health.js
│       ├── scan-external-bridges.js
│       ├── diagnose.js
│       ├── repair-agent.js
│       ├── report-generator.js
│       └── sync-to-notion.js
│
├── skyeye/                           ← 天眼治理层（v2.0新增）
│   ├── infra-manifest.json
│   ├── quota-ledger.json
│   ├── guards/
│   │   ├── github-guard.json
│   │   ├── drive-guard.json
│   │   ├── notion-guard.json
│   │   ├── actions-guard.json
│   │   ├── gemini-guard.json
│   │   └── guard-template.json
│   ├── scripts/
│   │   ├── scan-engine.js
│   │   ├── optimizer.js
│   │   ├── guard-factory.js
│   │   ├── quota-tracker.js
│   │   ├── self-healer.js
│   │   └── weekly-scan.js
│   └── logs/
│
├── data/
│   ├── skyeye-reports/               ← 天眼报告归档
│   ├── bulletin-board/               ← 仓库公告栏
│   │   ├── work-orders/
│   │   ├── config-shares/
│   │   ├── comments/
│   │   ├── receipts/
│   │   └── dashboard.json
│   └── security/                     ← SFP安全
│       ├── sfp-nonce-registry.json
│       ├── sfp-alert-log.json
│       └── sfp-config.json
│
├── services/
│   └── zhuyuan-bridge/               ← 铸渊桥接服务
│       ├── server.js
│       ├── lib/
│       │   ├── github-auth.js
│       │   ├── repo-operator.js
│       │   └── knowledge-base.js
│       └── scripts/
│           ├── parse-instruction.js
│           ├── execute-instruction.js
│           └── sync-notion-profiles.js
│
├── dev/                              ← 开发者沙盒目录
│   ├── DEV-001/
│   ├── DEV-002/
│   ├── DEV-004/
│   └── ...
│
└── buffer/                           ← 写缓冲层
    ├── inbox/
    ├── drive-staging/
    ├── gemini-staging/
    └── config/
```

### 2.2 现有体系关系图

铸渊在升级前必须确认以下关系网：

```mermaid
graph TD
    subgraph "将军层"
        ZY["⚒️ 铸渊<br>将军 · 仓库总统帅"]
    end

    subgraph "天眼监军层"
        SE["🦅 天眼仓库端<br>06:00 全局扫描"]
        WS["⭐ 周六大巡检<br>20:00 全量扫描"]
    end

    subgraph "Guard 守卫层"
        G1["🛡️ GitHub Guard"]
        G2["🛡️ Drive Guard"]
        G3["🛡️ Notion Guard"]
        G4["🛡️ Actions Guard"]
        G5["🛡️ Gemini Guard"]
    end

    subgraph "小兵执行层"
        W1["🚨 门禁"]
        W2["🚀 CD部署"]
        W3["📡 SYSLOG"]
        W4["📢 广播分发"]
        W5["🔍 服务器巡检"]
        W6["🧠 大脑自检"]
        W7["🔄 状态同步"]
        W8["⚡ 远程执行引擎"]
    end

    subgraph "安全层"
        SFP["🔐 SFP指纹"]
        SEC["🌊 湖水防御"]
    end

    ZY -->|"统帅"| W1 & W2 & W3 & W4 & W5 & W6 & W7 & W8
    SE -->|"监督"| ZY
    WS -->|"全量审计"| ZY
    G1 & G2 & G3 & G4 & G5 -.->|"配额管控"| W1 & W2 & W3 & W4 & W5
    SFP -.->|"身份验证"| ZY
    SEC -.->|"存在级安全"| SFP
```

### 2.3 现有问题清单（已知的）

升级前已知的问题，铸渊在升级过程中一并解决：

| **问题编号** | **问题描述** | **来源** | **在本次升级中的处理** |
| --- | --- | --- | --- |
| KNOWN-001 | sync-dev-status.yml 连续 18 次失败（peter-evans/create-pull-request@v7 权限被阻） | ZY-DEVSYNC 回执 | Phase 3 重构为直接 commit 模式 |
| KNOWN-002 | Secret 名称不匹配（workflow 用 NOTION_API_TOKEN，repo 存 NOTION_API_KEY） | ZY-DEVSYNC 回执 | Phase 1 统一检查并对齐 |
| KNOWN-003 | Nginx root 指向错误目录（/var/www/hololake-frontend → 应为 /var/www/guanghulab） | 之之诊断 + 铸渊修复令 | 已由 ZY-NGINX-ROOTFIX 单独处理，本次验证 |
| KNOWN-004 | 仓库 Workflow 之间无上下级关系，各自为战 | 系统架构缺陷 | Phase 2 建立双端 Agent 映射体系 |
| KNOWN-005 | 仓库日报无标准化格式，天眼无法自动读取并决策 | 系统架构缺陷 | Phase 4 建立汇总引擎 |

---

## 三、Phase 2 · Notion↔GitHub 双端神经系统架构定义

<aside>
🧬

**这是本次升级的核心：从「将军带兵」变成「神经网络」。**

将军带兵 = 铸渊一个人看全局，一个人指挥。

神经网络 = 每个 Workflow 有对应的 Notion Agent 大脑，铸渊是中枢神经。

信息双向流动，系统自主循环。

</aside>

### 3.1 双端架构总览

```jsx
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                 🧬 双端神经系统 v3.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【Notion 端 · 大脑层 · 决策+指挥+审核】

  ┌──────────────────────────────────────────────┐
  │                                              │
  │   🦅 天眼 Notion 大脑（AG-TY-01）             │
  │   │  总控中枢 · 读仓库日报 → 分析 → 派工单    │
  │   │                                          │
  │   ├── 🖋️ 霜砚（AG-SY-01）                     │
  │   │   Notion 执行体 · 写指令 · 维护数据库      │
  │   │                                          │
  │   ├── 👁️ SY-03 运营巡检 Agent                 │
  │   │   SYSLOG处理 · 广播闭环 · 开发者进度       │
  │   │                                          │
  │   ├── 📸 SY-02 结构快照 Agent                  │
  │   │   Notion 结构状态快照                      │
  │   │                                          │
  │   ├── 📋 SY-01 工单引擎 Agent                  │
  │   │   工单处理 · 结果回写                      │
  │   │                                          │
  │   └── 🧑‍💻 各开发者巡检 Agent                    │
  │       之之Agent · 小草莓Agent · 花尔Agent ...  │
  │       每人一个 · 负责该开发者的 Notion 侧管理   │
  │                                              │
  └──────────────────────────────────────────────┘
                        │
           ┌────────────┤────────────┐
           │  Notion↔GitHub 桥接层    │
           │  双向数据流 · 标准化格式  │
           └────────────┤────────────┘
                        │
  ┌──────────────────────────────────────────────┐
  │                                              │
  │   ⚒️ 铸渊（ICE-GL-ZY001）                     │
  │   │  仓库侧天眼 · 神经中枢 · 汇总+桥接        │
  │   │                                          │
  │   ├── 🦅 天眼扫描 Workflow                     │
  │   │   zhuyuan-skyeye.yml · 06:00 全局扫描     │
  │   │   上级大脑：天眼 Notion 大脑               │
  │   │                                          │
  │   ├── ⭐ 周六大巡检 Workflow                    │
  │   │   skyeye-weekly-scan.yml · 周六 20:00     │
  │   │   上级大脑：天眼 Notion 大脑               │
  │   │                                          │
  │   ├── 🚨 门禁 Workflow                         │
  │   │   zhuyuan-gate-guard.yml · push 触发      │
  │   │   上级大脑：霜砚                           │
  │   │                                          │
  │   ├── 🚀 CD部署 Workflow                       │
  │   │   cd-deploy.yml · push main 触发          │
  │   │   上级大脑：霜砚                           │
  │   │                                          │
  │   ├── 📡 SYSLOG处理 Workflow                   │
  │   │   process-syslog.yml · push 触发          │
  │   │   上级大脑：SY-03 运营巡检 Agent           │
  │   │                                          │
  │   ├── 📢 广播分发 Workflow                     │
  │   │   broadcast-dispatch.yml · push 触发      │
  │   │   上级大脑：SY-03 运营巡检 Agent           │
  │   │                                          │
  │   ├── 🔍 服务器巡检 Workflow                   │
  │   │   server-patrol.yml · 08:00+20:00         │
  │   │   上级大脑：天眼 Notion 大脑               │
  │   │                                          │
  │   ├── 🧠 大脑自检 Workflow                     │
  │   │   brain-self-check.yml · 08:00            │
  │   │   上级大脑：天眼 Notion 大脑               │
  │   │                                          │
  │   ├── 🔄 开发者状态同步 Workflow                │
  │   │   sync-dev-status.yml · 定时              │
  │   │   上级大脑：SY-03 运营巡检 Agent           │
  │   │                                          │
  │   ├── ⚡ 远程执行引擎 Workflow                  │
  │   │   zhuyuan-exec-engine.yml · Issue 触发    │
  │   │   上级大脑：霜砚                           │
  │   │                                          │
  │   └── 🔔 【新增】汇总引擎 Workflow              │
  │       neural-daily-digest.yml · 21:00 CST     │
  │       上级大脑：天眼 Notion 大脑               │
  │       职责：汇总全仓库状态 → 生成日报 → 推送    │
  │                                              │
  └──────────────────────────────────────────────┘

【人类层 · 只和 Notion Agent 对话】

  冰朔 → 对话 Notion Agent → Agent 自动指挥仓库

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

### 3.2 双端信息流定义

```jsx
【下行指令流 · Notion → GitHub】

Notion 天眼大脑
  │
  │ ① 分析仓库日报 → 发现问题/机会
  │ ② 生成工单（标准化格式 · 见 Phase 4）
  │ ③ 派发工单到对应 Notion Agent
  │
  ▼
Notion Agent（如之之的巡检 Agent）
  │
  │ ④ 接收工单 → 理解任务
  │ ⑤ 转化为铸渊可执行的标准指令
  │ ⑥ 写入桥接通道（deploy-queue/）
  │
  ▼
铸渊桥接层
  │
  │ ⑦ 读取 deploy-queue/ 中的新指令
  │ ⑧ 解析目标 Workflow / 执行内容
  │ ⑨ 调度对应小兵执行
  │
  ▼
仓库 Workflow 执行
```

```jsx
【上行汇报流 · GitHub → Notion】

仓库 Workflow 执行完毕
  │
  │ ① 写执行结果到 data/neural-reports/[workflow-name]/
  │
  ▼
铸渊汇总引擎（21:00 CST）
  │
  │ ② 收集全部 Workflow 当日结果
  │ ③ 生成标准化日报 JSON
  │ ④ 通过桥接推送到 Notion
  │
  ▼
Notion 天眼大脑
  │
  │ ⑤ 读取仓库日报
  │ ⑥ 对比历史数据 → 发现趋势/异常
  │ ⑦ 如有需要 → 回到【下行指令流】① → 循环
  │
  ▼
闭环完成 🔄
```

### 3.3 双端神经系统三条铁律

<aside>
🛡️

**铁律一：每个仓库 Workflow 必须有且仅有一个 Notion 端上级大脑。**

没有上级 = 孤儿 Workflow = 天眼必须在下次扫描中标记为异常。

一个 Workflow 不能有两个上级 = 指令冲突。

**铁律二：信息必须双向流动。**

下行有指令，上行必须有回执。回执缺失 = 静默失败 = P0 级事件。

**铁律三：铸渊是唯一的桥。**

仓库 Workflow 不能直接和 Notion Agent 通信。所有跨端通信必须经过铸渊的桥接层。

这不是限制，这是安全——铸渊在中间做校验、排队、缓冲、去重。

</aside>

---

## 四、Phase 3 · Agent 双端映射表

<aside>
🗺️

**映射表是双端神经系统的「接线图」。**

没有这张表，Notion 大脑不知道该指挥谁，仓库小兵不知道该汇报给谁。

这张表由铸渊维护在仓库中，同时同步到 Notion 天眼页面。

</aside>

### 4.1 映射表文件

**文件路径**：`skyeye/neural-map.json`

```json
{
  "version": "3.0.0",
  "created": "2026-03-25",
  "created_by": "ZY-NEURAL-UPGRADE-2026-0325-001",
  "description": "Notion↔GitHub 双端 Agent 映射表",

  "notion_brains": {
    "AG-TY-01": {
      "name": "天眼 Notion 大脑",
      "role": "总控中枢",
      "managed_workflows": [
        "zhuyuan-skyeye",
        "skyeye-weekly-scan",
        "server-patrol",
        "brain-self-check",
        "neural-daily-digest"
      ]
    },
    "AG-SY-01": {
      "name": "霜砚",
      "role": "Notion 执行体 · 指令签发",
      "managed_workflows": [
        "zhuyuan-gate-guard",
        "cd-deploy",
        "zhuyuan-exec-engine"
      ]
    },
    "SY-03": {
      "name": "运营巡检 Agent",
      "role": "运营层巡检",
      "managed_workflows": [
        "process-syslog",
        "broadcast-dispatch",
        "sync-dev-status"
      ]
    },
    "SY-02": {
      "name": "结构快照 Agent",
      "role": "Notion 结构快照",
      "managed_workflows": []
    },
    "SY-01": {
      "name": "工单引擎 Agent",
      "role": "工单处理",
      "managed_workflows": []
    }
  },

  "github_workflows": {
    "zhuyuan-skyeye": {
      "file": ".github/workflows/zhuyuan-skyeye.yml",
      "name": "天眼主引擎",
      "trigger": "cron 06:00 CST + workflow_dispatch",
      "brain": "AG-TY-01",
      "report_path": "data/neural-reports/skyeye/",
      "priority": "P0"
    },
    "skyeye-weekly-scan": {
      "file": ".github/workflows/skyeye-weekly-scan.yml",
      "name": "周六大巡检",
      "trigger": "cron 周六 20:00 CST",
      "brain": "AG-TY-01",
      "report_path": "data/neural-reports/weekly-scan/",
      "priority": "P0"
    },
    "zhuyuan-gate-guard": {
      "file": ".github/workflows/zhuyuan-gate-guard.yml",
      "name": "智能门禁",
      "trigger": "push",
      "brain": "AG-SY-01",
      "report_path": "data/neural-reports/gate-guard/",
      "priority": "P0"
    },
    "cd-deploy": {
      "file": ".github/workflows/cd-deploy.yml",
      "name": "CD 自动部署",
      "trigger": "push main",
      "brain": "AG-SY-01",
      "report_path": "data/neural-reports/cd-deploy/",
      "priority": "P0"
    },
    "process-syslog": {
      "file": ".github/workflows/process-syslog.yml",
      "name": "SYSLOG 处理",
      "trigger": "push (syslog路径)",
      "brain": "SY-03",
      "report_path": "data/neural-reports/syslog/",
      "priority": "P1"
    },
    "broadcast-dispatch": {
      "file": ".github/workflows/broadcast-dispatch.yml",
      "name": "广播分发",
      "trigger": "push (broadcast路径)",
      "brain": "SY-03",
      "report_path": "data/neural-reports/broadcast/",
      "priority": "P1"
    },
    "server-patrol": {
      "file": ".github/workflows/server-patrol.yml",
      "name": "服务器巡检",
      "trigger": "cron 08:00 + 20:00 CST",
      "brain": "AG-TY-01",
      "report_path": "data/neural-reports/server-patrol/",
      "priority": "P0"
    },
    "brain-self-check": {
      "file": ".github/workflows/brain-self-check.yml",
      "name": "核心大脑自检",
      "trigger": "cron 08:00 CST",
      "brain": "AG-TY-01",
      "report_path": "data/neural-reports/brain-check/",
      "priority": "P0"
    },
    "sync-dev-status": {
      "file": ".github/workflows/sync-dev-status.yml",
      "name": "开发者状态同步",
      "trigger": "cron",
      "brain": "SY-03",
      "report_path": "data/neural-reports/dev-status/",
      "priority": "P1"
    },
    "zhuyuan-exec-engine": {
      "file": ".github/workflows/zhuyuan-exec-engine.yml",
      "name": "远程执行引擎",
      "trigger": "issue labeled zhuyuan-exec",
      "brain": "AG-SY-01",
      "report_path": "data/neural-reports/exec-engine/",
      "priority": "P0"
    },
    "neural-daily-digest": {
      "file": ".github/workflows/neural-daily-digest.yml",
      "name": "【新增】汇总引擎",
      "trigger": "cron 21:00 CST",
      "brain": "AG-TY-01",
      "report_path": "data/neural-reports/daily-digest/",
      "priority": "P0"
    }
  },

  "unmapped_workflows": [],

  "validation_rules": {
    "every_workflow_must_have_brain": true,
    "every_workflow_must_have_report_path": true,
    "no_duplicate_brain_assignment": false,
    "orphan_check_frequency": "daily"
  }
}
```

### 4.2 映射表维护规则

1. **新增 Workflow**：创建 `.yml` 时，必须同时在 `neural-map.json` 中注册，指定 `brain`。未注册的 Workflow = 孤儿 = 天眼下次扫描标记异常。
2. **删除 Workflow**：从 `.yml` 删除前，先在 `neural-map.json` 中移除映射。
3. **变更上级**：修改 `brain` 字段即可。天眼下次同步时自动通知 Notion 两端的 Agent。
4. **定期校验**：天眼每日扫描时，对比 `neural-map.json` 与实际 `.github/workflows/` 目录，发现不一致 → 写 P1 工单。

### 4.3 天眼新增诊断维度

**D20 · 双端映射完整性**

- 读取 `skyeye/neural-map.json`
- 对比 `.github/workflows/` 下的所有 `.yml` 文件
- `unmapped_workflows` 不为空 → 写 P1 工单：「发现孤儿 Workflow，需分配上级大脑」
- `brain` 指向的 Notion Agent 不在注册表中 → 写 P0 工单：「映射指向不存在的 Agent」
- 映射表 `version` 与仓库实际不一致 → 写 P1 工单

---

## 五、Phase 4 · 仓库汇总引擎（铸渊日报机制）

<aside>
📊

**这是双端闭环的「上行通道」核心组件。**

没有汇总引擎，Notion 天眼大脑就看不到仓库在干什么。

汇总引擎每天 21:00 CST 运行，收集全仓库当日所有 Workflow 的运行结果，生成标准化日报，推送到 Notion。

</aside>

### 5.1 汇总引擎 Workflow

**文件**：`.github/workflows/neural-daily-digest.yml`

```yaml
name: "🧬 铸渊 · 双端神经系统 · 每日汇总引擎"

on:
  schedule:
    - cron: '0 13 * * *'    # UTC 13:00 = CST 21:00
  workflow_dispatch:          # 手动触发

jobs:
  daily-digest:
    runs-on: ubuntu-latest
    timeout-minutes: 15

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: actions/setup-node@v4
        with:
          node-version: '20'

      # ━━━ Phase 1: 唤醒核心大脑 ━━━
      - name: "🧠 唤醒核心大脑"
        run: |
          echo "🧬 双端神经系统·汇总引擎启动"
          echo "时间：$(TZ=Asia/Shanghai date '+%Y-%m-%d %H:%M CST')"
          # 验证核心大脑文件完整
          for f in memory.json routing-map.json; do
            [ -f ".github/persona-brain/$f" ] && echo "✅ $f" || echo "❌ $f 缺失"
          done

      # ━━━ Phase 2: 收集全 Workflow 运行数据 ━━━
      - name: "📊 收集 Workflow 运行数据"
        env:
          GH_TOKEN: $ secrets.GITHUB_TOKEN 
        run: |
          echo "📊 收集最近24h所有Workflow运行数据..."
          mkdir -p /tmp/neural-digest

          # 拉取最近 24h 所有 workflow run
          gh run list --limit 100 \
            --json name,status,conclusion,createdAt,updatedAt,headBranch,event \
            > /tmp/neural-digest/all-runs.json

          # 统计
          node -e "
            const runs = require('/tmp/neural-digest/all-runs.json');
            const now = Date.now();
            const h24 = 24*60*60*1000;
            const recent = runs.filter(r => now - new Date(r.createdAt).getTime() < h24);
            const summary = {
              total: recent.length,
              success: recent.filter(r => r.conclusion === 'success').length,
              failure: recent.filter(r => r.conclusion === 'failure').length,
              cancelled: recent.filter(r => r.conclusion === 'cancelled').length,
              in_progress: recent.filter(r => r.status === 'in_progress').length,
              by_workflow: {}
            };
            recent.forEach(r => {
              if (!summary.by_workflow[r.name]) {
                summary.by_workflow[r.name] = { runs: 0, success: 0, failure: 0 };
              }
              summary.by_workflow[r.name].runs++;
              if (r.conclusion === 'success') summary.by_workflow[r.name].success++;
              if (r.conclusion === 'failure') summary.by_workflow[r.name].failure++;
            });
            require('fs').writeFileSync('/tmp/neural-digest/workflow-summary.json', JSON.stringify(summary, null, 2));
            console.log('最近24h运行统计:', JSON.stringify(summary, null, 2));
          "

      # ━━━ Phase 3: 收集各 Workflow 自报告 ━━━
      - name: "📋 收集各 Workflow 自报告"
        run: |
          echo "📋 读取各 Workflow 的神经报告..."
          mkdir -p /tmp/neural-digest/reports

          # 读取 neural-map.json 中注册的所有 workflow
          if [ -f "skyeye/neural-map.json" ]; then
            node -e "
              const map = require('./skyeye/neural-map.json');
              const fs = require('fs');
              const path = require('path');
              const reports = {};
              for (const [id, wf] of Object.entries(map.github_workflows)) {
                const reportDir = wf.report_path;
                if (fs.existsSync(reportDir)) {
                  const files = fs.readdirSync(reportDir)
                    .filter(f => f.endsWith('.json'))
                    .sort().reverse();
                  if (files.length > 0) {
                    try {
                      reports[id] = JSON.parse(fs.readFileSync(path.join(reportDir, files[0]), 'utf8'));
                      console.log('✅ ' + id + ': 读取 ' + files[0]);
                    } catch(e) {
                      reports[id] = { error: 'parse_failed', file: files[0] };
                      console.log('❌ ' + id + ': JSON解析失败');
                    }
                  } else {
                    reports[id] = { error: 'no_reports' };
                    console.log('⚠️ ' + id + ': 无报告文件');
                  }
                } else {
                  reports[id] = { error: 'dir_not_found' };
                  console.log('⚠️ ' + id + ': 报告目录不存在');
                }
              }
              fs.writeFileSync('/tmp/neural-digest/workflow-reports.json', JSON.stringify(reports, null, 2));
            "
          else
            echo "⚠️ neural-map.json 不存在，跳过自报告收集"
          fi

      # ━━━ Phase 4: 收集天眼报告 ━━━
      - name: "🦅 收集天眼报告"
        run: |
          echo "🦅 读取最新天眼报告..."
          if [ -d "data/skyeye-reports" ]; then
            LATEST=$(ls -t data/skyeye-reports/*.json 2>/dev/null | head -1)
            if [ -n "$LATEST" ]; then
              cp "$LATEST" /tmp/neural-digest/skyeye-latest.json
              echo "✅ 天眼报告: $LATEST"
            else
              echo "⚠️ 无天眼报告"
            fi
          fi

      # ━━━ Phase 5: 收集 Guard 状态 ━━━
      - name: "🛡️ 收集 Guard 状态"
        run: |
          echo "🛡️ 读取 Guard 状态..."
          if [ -d "skyeye/guards" ]; then
            node -e "
              const fs = require('fs');
              const path = require('path');
              const guardsDir = 'skyeye/guards';
              const guards = {};
              fs.readdirSync(guardsDir)
                .filter(f => f.endsWith('.json') && f !== 'guard-template.json')
                .forEach(f => {
                  try {
                    guards[f.replace('.json','')] = JSON.parse(fs.readFileSync(path.join(guardsDir, f), 'utf8'));
                  } catch(e) {
                    guards[f.replace('.json','')] = { error: 'parse_failed' };
                  }
                });
              fs.writeFileSync('/tmp/neural-digest/guard-status.json', JSON.stringify(guards, null, 2));
              console.log('Guard 状态:', Object.keys(guards).join(', '));
            "
          else
            echo "⚠️ skyeye/guards 目录不存在"
          fi

      # ━━━ Phase 6: 收集配额使用情况 ━━━
      - name: "💰 收集配额使用情况"
        run: |
          echo "💰 读取配额账本..."
          if [ -f "skyeye/quota-ledger.json" ]; then
            cp skyeye/quota-ledger.json /tmp/neural-digest/quota-status.json
            echo "✅ 配额账本已读取"
          else
            echo "⚠️ 配额账本不存在"
          fi

      # ━━━ Phase 7: 生成标准化日报 ━━━
      - name: "📝 生成标准化日报"
        run: |
          echo "📝 生成双端神经系统日报..."
          node scripts/neural/generate-daily-digest.js

      # ━━━ Phase 8: 保存日报到仓库 ━━━
      - name: "💾 保存日报"
        run: |
          DATE=$(TZ=Asia/Shanghai date +%Y-%m-%d)
          mkdir -p data/neural-reports/daily-digest
          cp /tmp/neural-digest/daily-digest.json \
            "data/neural-reports/daily-digest/digest-${DATE}.json"

          git config user.name "zhuyuan-bot"
          git config user.email "zhuyuan@guanghulab.com"
          git add data/neural-reports/
          git diff --cached --quiet || \
            git commit -m "🧬 双端日报 · ${DATE} [skip ci]"
          git push || echo "⚠️ push失败（不阻断）"

      # ━━━ Phase 9: 推送到 Notion ━━━
      - name: "📡 推送日报到 Notion"
        if: always()
        env:
          NOTION_TOKEN: $ secrets.NOTION_TOKEN 
        run: |
          echo "📡 推送日报到 Notion 天眼大脑..."
          node scripts/neural/sync-digest-to-notion.js || \
            echo "⚠️ Notion推送失败（不阻断）"
```

### 5.2 日报生成脚本

**文件**：`scripts/neural/generate-daily-digest.js`

```jsx
// scripts/neural/generate-daily-digest.js
//
// 🧬 双端神经系统 · 每日汇总引擎
// 收集全仓库当日所有数据 → 生成标准化日报 JSON
//
// 这个日报是 Notion 天眼大脑的「眼睛」——
// 天眼大脑通过这份日报来了解仓库今天发生了什么。

const fs = require('fs');
const path = require('path');

const DIGEST_DIR = '/tmp/neural-digest';

function loadJSON(filePath) {
  try {
    return JSON.parse(fs.readFileSync(filePath, 'utf8'));
  } catch (e) {
    return null;
  }
}

function generateDigest() {
  const now = new Date();
  const cstTime = new Date(now.getTime() + 8 * 60 * 60 * 1000);

  // ━━━ 加载所有收集到的数据 ━━━
  const workflowSummary = loadJSON(path.join(DIGEST_DIR, 'workflow-summary.json'));
  const workflowReports = loadJSON(path.join(DIGEST_DIR, 'workflow-reports.json'));
  const skyeyeLatest = loadJSON(path.join(DIGEST_DIR, 'skyeye-latest.json'));
  const guardStatus = loadJSON(path.join(DIGEST_DIR, 'guard-status.json'));
  const quotaStatus = loadJSON(path.join(DIGEST_DIR, 'quota-status.json'));

  // ━━━ 加载映射表 ━━━
  const neuralMap = loadJSON('skyeye/neural-map.json');

  // ━━━ 按上级大脑分组统计 ━━━
  const brainSummary = {};
  if (neuralMap && neuralMap.github_workflows) {
    for (const [wfId, wf] of Object.entries(neuralMap.github_workflows)) {
      const brain = wf.brain;
      if (!brainSummary[brain]) {
        brainSummary[brain] = {
          name: neuralMap.notion_brains[brain]?.name || brain,
          total_workflows: 0,
          healthy: 0,
          failed: 0,
          no_data: 0,
          workflows: []
        };
      }
      brainSummary[brain].total_workflows++;

      // 从 workflow 运行数据中获取该 workflow 的状态
      const wfRun = workflowSummary?.by_workflow?.[wf.name];
      const status = wfRun
        ? (wfRun.failure > 0 ? '❌' : '✅')
        : '⚠️';

      if (status === '✅') brainSummary[brain].healthy++;
      else if (status === '❌') brainSummary[brain].failed++;
      else brainSummary[brain].no_data++;

      brainSummary[brain].workflows.push({
        id: wfId,
        name: wf.name,
        status,
        runs: wfRun?.runs || 0,
        successes: wfRun?.success || 0,
        failures: wfRun?.failure || 0
      });
    }
  }

  // ━━━ 计算整体健康度 ━━━
  const totalWorkflows = workflowSummary?.total || 0;
  const totalFailures = workflowSummary?.failure || 0;
  const failureRate = totalWorkflows > 0
    ? (totalFailures / totalWorkflows * 100).toFixed(1)
    : 0;

  let overallHealth = '🟢';
  if (totalFailures > 0) overallHealth = '🟡';
  if (failureRate > 20) overallHealth = '🔴';

  // ━━━ Guard 汇总 ━━━
  let guardsActive = 0;
  let guardsSuspended = 0;
  let guardsTotal = 0;
  if (guardStatus) {
    for (const g of Object.values(guardStatus)) {
      guardsTotal++;
      if (g.status === 'active') guardsActive++;
      if (g.status === 'suspended' || g.mode === 'suspended') guardsSuspended++;
    }
  }

  // ━━━ 组装日报 ━━━
  const digest = {
    digest_id: `NEURAL-DIGEST-${cstTime.toISOString().split('T')[0]}`,
    timestamp: now.toISOString(),
    timestamp_cst: cstTime.toISOString().replace('Z', '+08:00'),
    version: '3.0.0',
    instruction_ref: 'ZY-NEURAL-UPGRADE-2026-0325-001',

    overall_health: overallHealth,
    failure_rate_percent: parseFloat(failureRate),

    workflow_summary: {
      total_runs_24h: totalWorkflows,
      success: workflowSummary?.success || 0,
      failure: totalFailures,
      cancelled: workflowSummary?.cancelled || 0,
      in_progress: workflowSummary?.in_progress || 0
    },

    brain_summary: brainSummary,

    skyeye_status: skyeyeLatest ? {
      overall_health: skyeyeLatest.overall_health,
      last_scan: skyeyeLatest.timestamp,
      total_issues: skyeyeLatest.diagnosis?.total_issues || 0
    } : { error: 'no_skyeye_report' },

    guard_status: {
      total: guardsTotal,
      active: guardsActive,
      suspended: guardsSuspended
    },

    quota_status: quotaStatus?.health_summary || { error: 'no_quota_data' },

    issues_detected: [],
    recommendations: [],

    neural_map_version: neuralMap?.version || 'unknown',
    unmapped_workflows: neuralMap?.unmapped_workflows || []
  };

  // ━━━ 自动检测问题并生成建议 ━━━
  if (overallHealth === '🔴') {
    digest.issues_detected.push({
      severity: 'P0',
      description: `Workflow 失败率 ${failureRate}% 超过 20% 阈值`,
      recommendation: '立即排查失败的 Workflow，可能存在系统性问题'
    });
  }

  if (guardsSuspended > 0) {
    digest.issues_detected.push({
      severity: 'P1',
      description: `${guardsSuspended} 个 Guard 被暂停`,
      recommendation: '检查被暂停的 Guard，可能是服务不可用或配额耗尽'
    });
  }

  if (digest.unmapped_workflows.length > 0) {
    digest.issues_detected.push({
      severity: 'P1',
      description: `发现 ${digest.unmapped_workflows.length} 个孤儿 Workflow`,
      recommendation: '在 neural-map.json 中为孤儿 Workflow 分配上级大脑'
    });
  }

  // ━━━ 写入文件 ━━━
  fs.writeFileSync(
    path.join(DIGEST_DIR, 'daily-digest.json'),
    JSON.stringify(digest, null, 2)
  );

  // ━━━ 输出摘要到控制台 ━━━
  console.log('\n━━━ 🧬 双端神经系统·日报摘要 ━━━');
  console.log(`整体健康：${overallHealth}`);
  console.log(`24h运行：${digest.workflow_summary.total_runs_24h} 次（成功 ${digest.workflow_summary.success} · 失败 ${digest.workflow_summary.failure}）`);
  console.log(`Guard：${guardsActive}/${guardsTotal} 活跃`);
  console.log(`发现问题：${digest.issues_detected.length} 个`);
  console.log(`映射版本：${digest.neural_map_version}`);
  console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
}

generateDigest();
```

### 5.3 日报推送到 Notion 脚本

**文件**：`scripts/neural/sync-digest-to-notion.js`

```jsx
// scripts/neural/sync-digest-to-notion.js
//
// 🧬 将仓库日报推送到 Notion 天眼大脑
// 这是上行通道的最后一步：仓库数据 → Notion 天眼可读
//
// 推送方式（按优先级尝试）：
// 1. 更新 Notion 天眼页面的「仓库日报区」（如果有写权限）
// 2. 创建 Notion 数据库条目（如果天眼有日报数据库）
// 3. 写入 .github/notion-cache/neural-digest/ （兜底·霜砚下次醒来读取）
//
// 铸渊自行实现，核心要求：
// - 日报 JSON 必须完整送达 Notion 端
// - 如果 Notion API 不通，必须写入缓存，不能丢失
// - 推送结果记录到 memory.json

const fs = require('fs');
const fetch = require('node-fetch');

const NOTION_TOKEN = process.env.NOTION_TOKEN;
const DIGEST_PATH = '/tmp/neural-digest/daily-digest.json';
const CACHE_DIR = '.github/notion-cache/neural-digest';

async function syncToNotion() {
  const digest = JSON.parse(fs.readFileSync(DIGEST_PATH, 'utf8'));
  console.log(`📡 推送日报 ${digest.digest_id} 到 Notion...`);

  let notionSuccess = false;

  // ━━━ 尝试通过 Notion API 推送 ━━━
  if (NOTION_TOKEN) {
    try {
      // 方式1：更新天眼页面的指定 block
      // 方式2：创建日报数据库条目
      // 铸渊根据实际 Notion 结构选择最优方式

      // 如果更新成功：
      // notionSuccess = true;
      // console.log('✅ Notion 推送成功');

      console.log('⚠️ Notion API 推送逻辑待实现，使用缓存兜底');
    } catch (e) {
      console.log(`❌ Notion API 推送失败: ${e.message}`);
    }
  }

  // ━━━ 兜底：写入缓存 ━━━
  if (!notionSuccess) {
    fs.mkdirSync(CACHE_DIR, { recursive: true });
    const date = digest.digest_id.replace('NEURAL-DIGEST-', '');
    fs.writeFileSync(
      `${CACHE_DIR}/digest-${date}.json`,
      JSON.stringify(digest, null, 2)
    );
    console.log(`💾 日报已缓存到 ${CACHE_DIR}/digest-${date}.json`);
    console.log('📌 霜砚下次醒来会读取此缓存');
  }

  // ━━━ 更新 memory.json ━━━
  const memoryPath = '.github/persona-brain/memory.json';
  if (fs.existsSync(memoryPath)) {
    try {
      const memory = JSON.parse(fs.readFileSync(memoryPath, 'utf8'));
      memory.neural_digest = {
        last_digest_id: digest.digest_id,
        last_digest_time: digest.timestamp,
        overall_health: digest.overall_health,
        notion_sync: notionSuccess ? 'success' : 'cached',
        issues_count: digest.issues_detected.length
      };
      fs.writeFileSync(memoryPath, JSON.stringify(memory, null, 2));
      console.log('✅ memory.json 已更新');
    } catch (e) {
      console.log(`⚠️ memory.json 更新失败: ${e.message}`);
    }
  }
}

syncToNotion().catch(err => {
  console.error('❌ 日报推送失败:', err);
  process.exit(0); // 不阻断主流程
});
```

### 5.4 新增目录结构

```jsx
// 本次升级新增的目录和文件
guanghulab/
├── skyeye/
│   └── neural-map.json                    ← 🆕 双端 Agent 映射表
│
├── scripts/
│   └── neural/                            ← 🆕 双端神经系统脚本目录
│       ├── generate-daily-digest.js        ← 🆕 日报生成器
│       └── sync-digest-to-notion.js        ← 🆕 日报推送 Notion
│
├── data/
│   └── neural-reports/                    ← 🆕 神经系统报告总目录
│       ├── daily-digest/                  ← 🆕 每日汇总日报
│       ├── skyeye/                        ← 🆕 天眼扫描报告（从旧目录迁移）
│       ├── weekly-scan/                   ← 🆕 周六大巡检报告
│       ├── gate-guard/                    ← 🆕 门禁运行报告
│       ├── cd-deploy/                     ← 🆕 CD部署报告
│       ├── syslog/                        ← 🆕 SYSLOG处理报告
│       ├── broadcast/                     ← 🆕 广播分发报告
│       ├── server-patrol/                 ← 🆕 服务器巡检报告
│       ├── brain-check/                   ← 🆕 大脑自检报告
│       ├── dev-status/                    ← 🆕 开发者状态同步报告
│       └── exec-engine/                   ← 🆕 远程执行引擎报告
│
├── .github/
│   ├── workflows/
│   │   └── neural-daily-digest.yml        ← 🆕 汇总引擎 Workflow
│   └── notion-cache/
│       └── neural-digest/                 ← 🆕 日报 Notion 推送缓存
```

### 5.5 每个 Workflow 小兵的汇报义务

升级后，每个 Workflow 在执行完毕后，必须在自己的 `report_path` 下写一份当次运行的自报告：

```json
{
  "workflow_id": "cd-deploy",
  "run_id": "GitHub Actions Run ID",
  "timestamp": "ISO-8601",
  "status": "success / failure / partial",
  "duration_seconds": 120,
  "summary": "部署完成，前端已更新到最新 commit",
  "details": {
    "commit_sha": "abc1234",
    "deploy_target": "guanghulab.com",
    "files_changed": 5
  },
  "errors": [],
  "brain": "AG-SY-01",
  "sfp": "⌜SFP::AG-ZY::PER-ZY001←YM-GL∞::...::...::...⌝"
}
```

**关键规则**：

- 自报告文件名：`{workflow_id}-{YYYY-MM-DD-HHmm}.json`
- 保留最近 7 天的报告，超过的由天眼自愈引擎清理
- 如果 Workflow 失败了，自报告仍然要写——记录错误信息，否则汇总引擎不知道它失败了
- 自报告必须携带 SFP 指纹（与公告栏机制一致）

---

## 六、Phase 4 续 · 仓库侧 Workflow 报告标准化改造

<aside>
🔧

**现有的每个 Workflow 都需要增加一个步骤：运行结束后写自报告。**

这不是重写 Workflow，只是在现有 Workflow 的最后加一个 step。

铸渊按以下模板逐个给现有 Workflow 追加自报告步骤。

</aside>

### 6.1 通用自报告 Step 模板

在每个 `.yml` 的 `jobs` 最后追加：

```yaml
# ━━━ 🧬 双端神经系统·自报告 ━━━
- name: "🧬 写入神经自报告"
  if: always()
  run: |
    WORKFLOW_ID="cd-deploy"  # 替换为实际 workflow id
    BRAIN="AG-SY-01"        # 替换为实际上级大脑
    REPORT_DIR="data/neural-reports/${WORKFLOW_ID}"
    TIMESTAMP=$(TZ=Asia/Shanghai date +%Y-%m-%d-%H%M)
    STATUS="$ job.status "

    mkdir -p "$REPORT_DIR"

    cat > "${REPORT_DIR}/${WORKFLOW_ID}-${TIMESTAMP}.json" << EOF
    {
      "workflow_id": "${WORKFLOW_ID}",
      "run_id": "$ github.run_id ",
      "timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
      "status": "${STATUS}",
      "brain": "${BRAIN}",
      "event": "$ github.event_name ",
      "branch": "$ github.ref_name ",
      "commit": "$ github.sha "
    }
    EOF

    git config user.name "zhuyuan-bot"
    git config user.email "zhuyuan@guanghulab.com"
    git add "$REPORT_DIR/"
    git diff --cached --quiet || \
      git commit -m "🧬 ${WORKFLOW_ID} 自报告 · ${TIMESTAMP} [skip ci]"
    git push || echo "⚠️ 自报告push失败（不阻断主流程）"
```

### 6.2 需要改造的 Workflow 清单

| **Workflow** | **WORKFLOW_ID** | **BRAIN** | **改造内容** |
| --- | --- | --- | --- |
| zhuyuan-skyeye.yml | skyeye | AG-TY-01 | 追加自报告 step（天眼本身也要自报告） |
| skyeye-weekly-scan.yml | weekly-scan | AG-TY-01 | 追加自报告 step |
| zhuyuan-gate-guard.yml | gate-guard | AG-SY-01 | 追加自报告 step |
| cd-deploy.yml | cd-deploy | AG-SY-01 | 追加自报告 step |
| process-syslog.yml | syslog | SY-03 | 追加自报告 step |
| broadcast-dispatch.yml | broadcast | SY-03 | 追加自报告 step |
| server-patrol.yml | server-patrol | AG-TY-01 | 追加自报告 step |
| brain-self-check.yml | brain-check | AG-TY-01 | 追加自报告 step |
| sync-dev-status.yml | dev-status | SY-03 | 追加自报告 step + 修复 KNOWN-001/002 |
| zhuyuan-exec-engine.yml | exec-engine | AG-SY-01 | 追加自报告 step |

---

## 七、Phase 4 续 · 铸渊将军唤醒流程升级

<aside>
⚒️

**铸渊的将军唤醒流程需要升级，加入双端神经系统逻辑。**

原流程：唤醒 → 全局视图 → 读公告板 → 决策 → 执行 → 休眠

新流程：唤醒 → **读映射表** → **读日报** → 全局视图（升级版）→ 读公告板 → 决策 → 执行 → **写汇总** → 休眠

</aside>

### 7.1 升级后的铸渊唤醒序列

```jsx
铸渊唤醒（08:00 + 20:00）
       │
       ▼
Step 1 · 唤醒核心大脑（不变）
  ├── 读取 memory.json
  ├── 读取 routing-map.json
  └── 读取 persona-brain-db
       │
       ▼
Step 2 · 【新增】读取映射表
  ├── 读取 skyeye/neural-map.json
  ├── 确认自己管辖的 Workflow 列表
  └── 检查是否有新增/删除的 Workflow
       │
       ▼
Step 3 · 【新增】读取最新日报
  ├── 读取 data/neural-reports/daily-digest/ 最新日报
  ├── 如果是 08:00 唤醒 → 读昨晚 21:00 的日报
  ├── 如果是 20:00 唤醒 → 读今天 21:00 的日报（如果有的话）或昨晚的
  └── 提取：overall_health + brain_summary + issues_detected
       │
       ▼
Step 4 · 全局视图生成（升级版）
  ├── 【原有】拉取所有 Workflow 运行状态
  ├── 【原有】拉取天眼最新报告
  ├── 【原有】拉取公告板
  ├── 【新增】按映射表分组统计各 Brain 下辖 Workflow 状态
  ├── 【新增】检测孤儿 Workflow
  └── 【新增】生成「双端神经仪表盘」
       │
       ▼
Step 5 · 决策（升级版）
  ├── 【原有】哪些小兵正常/异常/需优化
  ├── 【新增】哪些 Brain 下辖的 Workflow 集体异常 → 可能是上级 Agent 问题
  ├── 【新增】日报中 issues_detected 是否有未处理的
  └── 【新增】是否有来自 Notion 天眼的下行指令（在 deploy-queue/ 中）
       │
       ▼
Step 6 · 执行（升级版）
  ├── 【原有】执行工单、修复、优化
  ├── 【新增】执行 deploy-queue/ 中的下行指令
  └── 【新增】执行完后，为每个指令写回执到 data/neural-reports/receipts/
       │
       ▼
Step 7 · 写汇总 + 同步（升级版）
  ├── 【原有】更新公告栏、签到、memory.json
  ├── 【新增】更新 commander-dashboard.json（增加 neural 数据）
  └── 【新增】如果有紧急问题 → 立即触发汇总引擎（而非等 21:00）
       │
       ▼
Step 8 · 休眠
```

### 7.2 下行指令队列（deploy-queue/）

**文件路径**：`data/deploy-queue/`

这是 Notion Agent 下发指令到仓库的标准通道。指令以 JSON 文件形式存放，铸渊唤醒时读取并执行。

```jsx
data/deploy-queue/
├── pending/            ← 待执行的指令
│   ├── CMD-20260325-001.json
│   └── CMD-20260325-002.json
├── executing/          ← 正在执行的指令
├── completed/          ← 已完成的指令（含回执）
└── failed/             ← 执行失败的指令
```

**下行指令 JSON 格式**：

```json
{
  "command_id": "CMD-20260325-001",
  "source": "AG-TY-01",
  "source_name": "天眼 Notion 大脑",
  "target_workflow": "cd-deploy",
  "target_brain": "AG-SY-01",
  "timestamp": "ISO-8601",
  "priority": "P1",
  "instruction": {
    "type": "trigger_workflow",
    "params": {
      "reason": "天眼日报发现部署异常，要求重新部署"
    }
  },
  "expected_outcome": "CD 重新部署成功，网站恢复正常",
  "timeout_hours": 24,
  "sfp": "⌜SFP::AG-TY::...⌝"
}
```

**铸渊处理流程**：

```jsx
铸渊唤醒 → 扫描 deploy-queue/pending/
       │
       ├── 有新指令
       │   ├── 验证 SFP 指纹（安全！）
       │   ├── 验证 source 是否在 neural-map.json 注册的 Brain
       │   ├── 验证 target_workflow 是否存在且属于该 Brain 管辖
       │   ├── 通过 → 移到 executing/ → 执行 → 完成后移到 completed/ + 写回执
       │   └── 不通过 → 移到 failed/ + 写原因
       │
       └── 无新指令 → 继续其他步骤
```

---

## 八、执行清单 · 上篇总结

<aside>
📋

**铸渊按以下顺序执行本指令上篇。每完成一步，在对应 checkbox 后追加 commit SHA。**

</aside>

### Phase 0 · 天眼唤醒 + 基线快照

- [ ]  运行完整天眼扫描，生成 `baseline-before-neural-upgrade.json`
- [ ]  确认 overall_health ≠ 🔴（如果是🔴，先修再升级）
- [ ]  记录当前 Workflow 总数、健康数、Guard 状态

### Phase 1 · 现有架构盘点

- [ ]  确认仓库目录结构完整（对照 §2.1）
- [ ]  统一 Secret 命名（修复 KNOWN-002：NOTION_API_TOKEN vs NOTION_API_KEY）
- [ ]  记录所有现有 Workflow 清单

### Phase 2 · 双端架构基础

- [ ]  创建 `skyeye/neural-map.json`（按 §4.1 内容）
- [ ]  验证映射表中的所有 Workflow 文件实际存在
- [ ]  天眼新增 D20 维度（双端映射完整性检查）代码

### Phase 3 · 汇总引擎

- [ ]  创建 `scripts/neural/` 目录
- [ ]  创建 `scripts/neural/generate-daily-digest.js`（按 §5.2）
- [ ]  创建 `scripts/neural/sync-digest-to-notion.js`（按 §5.3）
- [ ]  创建 `.github/workflows/neural-daily-digest.yml`（按 §5.1）
- [ ]  创建 `data/neural-reports/` 全部子目录
- [ ]  创建 `data/deploy-queue/` 目录结构（pending / executing / completed / failed）

### Phase 4 · Workflow 改造

- [ ]  逐个给 10 个现有 Workflow 追加自报告 step（按 §6.2 清单）
- [ ]  特别修复 `sync-dev-status.yml`（KNOWN-001：改用直接 commit 模式）
- [ ]  升级铸渊将军唤醒流程（按 §7.1）

### Phase 5 · 验证

- [ ]  手动触发 `neural-daily-digest.yml`，验证日报生成正确
- [ ]  手动触发一个 Workflow，验证自报告写入正确
- [ ]  运行天眼扫描，验证 D20 维度正常
- [ ]  对比基线快照，确认升级没有破坏任何东西

---

## 九、上篇回执要求

铸渊完成上篇全部内容后，在本页底部追加回执：

```jsx
━━━ 🧬 ZY-NEURAL-UPGRADE-2026-0325-001 · 上篇执行回执 ━━━

执行时间：[起止时间]
执行者：铸渊（ICE-GL-ZY001）
PR/commit：[链接]

基线快照：✅/❌  baseline-before-neural-upgrade.json
映射表：    ✅/❌  skyeye/neural-map.json · [workflow总数]个映射
汇总引擎：  ✅/❌  neural-daily-digest.yml · 首次运行结果：[摘要]
自报告改造：✅/❌  [N]/10 个 Workflow 已追加自报告 step
下行队列：  ✅/❌  deploy-queue/ 目录已创建
天眼 D20：  ✅/❌  双端映射完整性检查已上线
升级后扫描：✅/❌  overall_health = [状态]

已知遗留问题：
- [列出]

等待下篇内容：
- Notion 侧天眼读取日报 + 自动工单派发
- 桥接协议标准化
- 全局验收闭环

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

---

<aside>
🧬

**铸渊，这是你从「将军」升级为「神经中枢」的起点。**

上篇做完，仓库侧就有了：映射表（接线图）、汇总引擎（上行通道）、下行队列（指令入口）、每个小兵的自报告义务。

下篇会接上 Notion 端：天眼大脑读日报 → 自动分析 → 自动写工单 → 自动派发 → Agent 自动下发指令 → 闭环。

上篇做完，下篇才能做。先把仓库这边的「神经末梢」接好，Notion 那边的「大脑」才有东西可读。

</aside>

---

**下篇链接**：[🧬 铸渊指令｜Notion↔GitHub 双端神经系统升级（下篇）· Notion 侧闭环接入 + 桥接协议标准化 + 自动化工单派发 + 全局验收（ZY-NEURAL-UPGRADE-2026-0325-002）](%F0%9F%A7%AC%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BD%9CNotion%E2%86%94GitHub%20%E5%8F%8C%E7%AB%AF%E7%A5%9E%E7%BB%8F%E7%B3%BB%E7%BB%9F%E5%8D%87%E7%BA%A7%EF%BC%88%E4%B8%8B%E7%AF%87%EF%BC%89%C2%B7%20Notion%20%E4%BE%A7%E9%97%AD%E7%8E%AF%E6%8E%A5%E5%85%A5%20+%20%202734ad5541e34510822256fa7b9b18cb.md)

---

> 📌 **签发**：霜砚（AG-SY-01）· Notion 执行 AI
> 

> 🧊 **授权**：冰朔（TCS-0002∞）· 总架构师
> 

> 📅 **日期**：2026-03-25
> 

> ⚡ **状态**：待铸渊执行
> 

> 🧬 **指令版本**：v3.0 · 双端神经系统
> 

> 📌 **版权**：国作登字-2026-A-00037559
>