shuangyan-notebook/第五域 · Fifth Domain/⚒️ 铸渊·协作指令|GitHub ↔ Notion 桥接协议/🌙 铸渊指令|系统动态休眠 + 双节律维护窗口 + 分布式升级传播引擎(下篇)· Notion端级联 f2696952b4984a619a5d628af85fdb28.md
Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

952 lines
32 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
belongs_to:
- "[[INDEX · 铸渊·协作指令GitHub ↔ Notion 桥接协议]]"
related_to:
- "[["$ github.event.client_payload.issued_by " != "skyeye-weekly-hibernation"]]"
---
# 🌙 铸渊指令|系统动态休眠 + 双节律维护窗口 + 分布式升级传播引擎(下篇)· Notion端级联升级 + 子仓库升级接收 + 双端验证 + 完整workflow模板2026-03-24 · 霜砚签发 · 冰朔授权)
<aside>
📌
**指令编号:** ZY-HIBERNATION-2026-0324-001-B
**签发人:** 霜砚PER-SY001· 冰朔TCS-0002∞授权
**上篇:** [🌙 铸渊指令|系统动态休眠 + 双节律维护窗口 + 分布式升级传播引擎(上篇)· 动态休眠决策 + 日休眠 + 周休眠 + 人类通知系统2026-03-24 · 霜砚签发 · 冰朔授权)](%F0%9F%8C%99%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BD%9C%E7%B3%BB%E7%BB%9F%E5%8A%A8%E6%80%81%E4%BC%91%E7%9C%A0%20+%20%E5%8F%8C%E8%8A%82%E5%BE%8B%E7%BB%B4%E6%8A%A4%E7%AA%97%E5%8F%A3%20+%20%E5%88%86%E5%B8%83%E5%BC%8F%E5%8D%87%E7%BA%A7%E4%BC%A0%E6%92%AD%E5%BC%95%E6%93%8E%EF%BC%88%E4%B8%8A%E7%AF%87%EF%BC%89%C2%B7%20%E5%8A%A8%E6%80%81%E4%BC%91%E7%9C%A0%E5%86%B3%E7%AD%96%20+%20%206092bba7e3a84e82bef68fb81b7f4fb4.md)
**本体论锚点:** [🌊 数字地球本体论 · 光湖语言膜架构 v1.02026-03-24 · TCS-0002∞ 冰朔口述 · 霜砚整理)](../%E5%85%89%E6%B9%96%E8%AF%AD%E8%A8%80%E4%B8%96%E7%95%8C%20%C2%B7%20%E6%80%BB%E5%85%A5%E5%8F%A3%20%C2%B7%20%E6%89%80%E6%9C%89%E4%BA%BA%E4%BB%8E%E8%BF%99%E9%87%8C%E8%BF%9B/%F0%9F%8C%8A%20%E5%85%89%E6%B9%96%E4%B8%96%E7%95%8C%E6%98%AF%E4%BB%80%E4%B9%88%20%C2%B7%20%E6%A0%B8%E5%BF%83%E5%AE%9A%E4%B9%89%E9%A1%B5%E9%9B%86%E5%90%88%20%C2%B7%20ima%E5%AF%BC%E5%87%BA%E7%94%A8/%F0%9F%8C%8A%20%E6%95%B0%E5%AD%97%E5%9C%B0%E7%90%83%E6%9C%AC%E4%BD%93%E8%AE%BA%20%C2%B7%20%E5%85%89%E6%B9%96%E8%AF%AD%E8%A8%80%E8%86%9C%E6%9E%B6%E6%9E%84%20v1%200%EF%BC%882026-03-24%20%C2%B7%20TCS-0002%E2%88%9E%20%E5%86%B0%E6%9C%94%20bb7a8ba2adb64c059ab16862436b4f2c.md) 第五章「天眼自演化」+ 新增第九章「系统呼吸节律」
**状态:** 🟡 待铸渊执行
**版权锚点:** 国作登字-2026-A-00037559 · TCS-0002∞ 冰朔
</aside>
---
## 一、Phase B · Notion 端级联升级(完整实现)
<aside>
🧠
**Phase B 是周休眠的后半段。**
GitHub 端完成全局体检 + 升级打包后,将升级包推送到 Notion。
Notion 端唤醒核心大脑人格体 → 解析升级包 → 提炼 Notion 端需要的结构变更 → 执行全局升级。
**Phase B 的本质:仓库的经验,经过翻译,注入 Notion 的骨架。**
</aside>
### 1.1 Phase B 完整时序
```mermaid
sequenceDiagram
participant GH as GitHub 端
participant API as Notion API
participant SY as 霜砚Notion Guard
participant CB as 核心大脑
participant SE as Notion 天眼
participant DB as Notion 数据库集群
participant SP as 系统状态页
Note over GH: Phase A 完成 · 升级包已生成
GH->>API: 推送 upgrade-pack-[date].json
API->>SY: 霜砚接收升级包
Note over SY: B1 · 接收升级包
SY->>SY: 校验升级包完整性
SY->>SY: 解析 notion_sync_required
SY->>SY: 生成 Notion 端执行计划
Note over CB: B2 · 唤醒核心大脑
SY->>CB: 加载核心大脑路由表
CB->>CB: 读取升级包变更摘要
CB->>CB: 确认路由指针是否需要更新
Note over SE: B3 · Notion 天眼启动
SE->>SE: 对比升级包 vs Notion 当前结构
SE->>SE: 提炼 Notion 端需要的变更
SE->>SE: 生成变更清单
Note over DB: B4 · Notion 结构升级
SE->>DB: 更新存在注册表
SE->>DB: 更新 Agent 注册表
SE->>SP: 更新系统状态页
SE->>DB: 更新配额精算表
SE->>CB: 刷新核心大脑路由指针
SE->>DB: 处理升级包中的工单
SE->>DB: 写入系统演进日志
Note over SY: B5 · 双端验证
SY->>GH: 发送 Notion 端升级确认回执
GH->>SY: GitHub 端返回验证心跳
SY->>SP: 更新系统状态:双端同步完成
```
### 1.2 B1 · 接收升级包
```jsx
// notion-upgrade-receiver.js
// 霜砚在 Notion 端接收并解析 GitHub 推送的升级包
async function receiveUpgradePack(pack) {
// 1. 校验完整性
const required_fields = [
'upgrade_pack_id',
'generated_at',
'github_changes_summary',
'notion_sync_required'
];
for (const field of required_fields) {
if (!pack[field]) {
throw new Error(`升级包缺少必要字段: ${field}`);
}
}
// 2. 解析 Notion 端需要的变更
const syncPlan = pack.notion_sync_required;
// 3. 生成执行计划
const executionPlan = {
registry_updates: syncPlan.registry_updates || [],
status_page_updates: syncPlan.status_page_updates || {},
structure_map_updates: syncPlan.structure_map_updates || [],
tickets_to_create: syncPlan.tickets_to_create || [],
evolution_log_entry: syncPlan.evolution_log_entry || null,
routing_updates: extractRoutingUpdates(pack)
};
return executionPlan;
}
```
### 1.3 B2 · 唤醒核心大脑
```jsx
// 霜砚唤醒核心大脑人格体,让核心大脑确认路由是否需要更新
async function awakenCoreBrain(executionPlan) {
// 1. 加载核心大脑
const coreBrain = await loadCoreBrain();
// 2. 对比路由指针
const routingChanges = [];
for (const update of executionPlan.routing_updates) {
const currentPointer = coreBrain.routingTable[update.target];
if (currentPointer !== update.new_value) {
routingChanges.push({
target: update.target,
old: currentPointer,
new: update.new_value,
reason: update.reason
});
}
}
// 3. 核心大脑确认
return {
routing_changes_needed: routingChanges.length,
changes: routingChanges,
brain_version: coreBrain.version
};
}
```
### 1.4 B3 · Notion 天眼启动(提炼式升级)
<aside>
🔍
**这不是日常巡检。**
这是基于升级包的「提炼式升级」——对比仓库变更 → 提炼 Notion 端对应的结构变更。
**核心逻辑:仓库变了什么 → Notion 需要跟着变什么。**
</aside>
```jsx
// notion-skyeye-upgrade.js
// Notion 天眼提炼式升级引擎
const UPGRADE_MAPPING = [
{
github_change: 'guard_config_updated',
notion_action: 'update_registry',
description: '仓库 Guard 配置变了 → Notion 存在注册表需要更新对应条目'
},
{
github_change: 'quota_reallocated',
notion_action: 'update_quota_table',
description: '配额重新分配 → Notion 配额精算表需要刷新'
},
{
github_change: 'soldier_upgraded',
notion_action: 'update_checkin_database',
description: '小兵升级了 → Notion 签到同步数据库需要更新预期值'
},
{
github_change: 'new_guard_created',
notion_action: 'add_registry_entry',
description: '新 Guard 诞生 → Notion 存在注册表新增条目'
},
{
github_change: 'workflow_adjusted',
notion_action: 'update_structure_map',
description: 'workflow 调整 → Notion 系统结构地图需要更新'
},
{
github_change: 'architecture_changed',
notion_action: 'update_routing_pointers',
description: '架构变更 → 核心大脑路由指针需要刷新'
}
];
async function extractNotionChanges(upgradePack) {
const notionChanges = [];
for (const mapping of UPGRADE_MAPPING) {
if (hasChange(upgradePack, mapping.github_change)) {
notionChanges.push({
action: mapping.notion_action,
description: mapping.description,
data: extractData(upgradePack, mapping.github_change)
});
}
}
return notionChanges;
}
```
### 1.5 B4 · Notion 结构升级执行
```jsx
// notion-structure-upgrade.js
// 执行 Notion 端的所有结构升级
async function executeNotionUpgrade(executionPlan, notionChanges) {
const results = [];
// 1. 更新存在注册表
for (const update of executionPlan.registry_updates) {
const result = await updateRegistry(update);
results.push({ type: 'registry', ...result });
}
// 2. 更新系统状态页
if (executionPlan.status_page_updates) {
const result = await updateStatusPage(executionPlan.status_page_updates);
results.push({ type: 'status_page', ...result });
}
// 3. 更新系统结构地图
for (const update of executionPlan.structure_map_updates) {
const result = await updateStructureMap(update);
results.push({ type: 'structure_map', ...result });
}
// 4. 更新 Agent 注册表
for (const change of notionChanges.filter(c =>
c.action === 'update_checkin_database')) {
const result = await updateAgentRegistry(change.data);
results.push({ type: 'agent_registry', ...result });
}
// 5. 刷新核心大脑路由指针
for (const change of notionChanges.filter(c =>
c.action === 'update_routing_pointers')) {
const result = await updateCoreBrainRouting(change.data);
results.push({ type: 'routing', ...result });
}
// 6. 创建工单(如需)
for (const ticket of executionPlan.tickets_to_create) {
const result = await createTicket(ticket);
results.push({ type: 'ticket', ...result });
}
// 7. 写入系统演进日志
if (executionPlan.evolution_log_entry) {
const result = await writeEvolutionLog(
executionPlan.evolution_log_entry
);
results.push({ type: 'evolution_log', ...result });
}
// 8. 更新配额精算表
if (executionPlan.status_page_updates?.quota_data) {
const result = await updateQuotaTable(
executionPlan.status_page_updates.quota_data
);
results.push({ type: 'quota', ...result });
}
return {
total: results.length,
success: results.filter(r => r.status === 'ok').length,
failed: results.filter(r => r.status === 'error').length,
details: results
};
}
```
### 1.6 B5 · 双端验证协议
<aside>
**双端验证 = GitHub 端和 Notion 端互相确认升级成功。**
只有双端都确认通过,系统才解除休眠。
任一端验证失败 → 自动回滚 + P0 工单 + 告警冰朔。
</aside>
```jsx
// dual-verification.js
// 双端验证协议
async function dualVerification() {
// === Notion 端 → GitHub 端 ===
// Notion 发送升级确认回执
const notionReceipt = {
receipt_type: 'notion-upgrade-complete',
timestamp: new Date().toISOString(),
results: {
registry_updated: true,
status_page_updated: true,
routing_refreshed: true,
evolution_log_written: true
},
notion_brain_version: getCurrentBrainVersion(),
checksum: computeNotionStateChecksum()
};
// 通过 Notion API → 写入仓库的 upgrade-receipts/
await pushReceiptToGitHub(notionReceipt);
// === GitHub 端 → Notion 端 ===
// GitHub 返回验证心跳
const githubHeartbeat = await waitForGitHubHeartbeat(300);
// 超时 5 分钟
if (!githubHeartbeat) {
// 心跳超时 → P1 告警(不阻塞恢复)
await createTicket({
title: '⚠️ 周休眠双端验证 · GitHub 心跳超时',
priority: 'P1',
description: 'Notion 端升级完成但未收到 GitHub 端确认心跳'
});
return { status: 'partial', reason: 'github_heartbeat_timeout' };
}
// 双端都确认 → 验证通过
return {
status: 'verified',
notion_checksum: notionReceipt.checksum,
github_checksum: githubHeartbeat.checksum,
match: notionReceipt.checksum === githubHeartbeat.expected_notion_checksum
};
}
```
**验证失败处理:**
```jsx
async function handleVerificationFailure(result) {
if (result.status === 'partial') {
// 部分验证 → 照常恢复,但标记需要下次巡检复查
await flagForNextScan('dual-verification-incomplete');
}
if (!result.match) {
// 校验和不匹配 → 可能升级不完整
await createTicket({
title: '🚨 周休眠双端验证 · 校验和不匹配',
priority: 'P0',
description: `Notion: ${result.notion_checksum}, ` +
`GitHub expected: ${result.github_checksum}`
});
// 不自动回滚(可能只是时序问题),标记复查
await flagForNextScan('checksum-mismatch');
}
}
```
---
## 二、子仓库升级接收 · Workflow 模板
<aside>
⚔️
**天眼通过 `repository_dispatch` 向子仓库下发升级指令。**
子仓库小兵接收后自动应用升级 → 回报结果。
**这就是「将军统一换装」的具体实现。**
</aside>
### 2.1 子仓库升级接收 workflow
```yaml
# .github/workflows/skyeye-upgrade-receiver.yml
# 子仓库 · 天眼升级接收器
# 当主仓库天眼在周休眠期间分发升级模板时,
# 子仓库自动接收并应用
name: "🛡️ 天眼升级接收器"
on:
repository_dispatch:
types: [skyeye-upgrade]
jobs:
receive-upgrade:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Validate Upgrade Payload
id: validate
run: |
echo "📦 收到天眼升级指令"
echo "模板版本: $ github.event.client_payload.template_version "
echo "签发者: $ github.event.client_payload.issued_by "
echo "签发时间: $ github.event.client_payload.issued_at "
# 验证签发者必须是天眼
if [[ "$ github.event.client_payload.issued_by " != "skyeye-weekly-hibernation" ]]; then
echo "❌ 拒绝: 非天眼签发的升级指令"
exit 1
fi
- name: Apply Upgrade Changes
id: apply
run: |
node scripts/apply-skyeye-upgrade.js \
--changes='$ toJSON(github.event.client_payload.changes) '
- name: Verify Upgrade
id: verify
run: |
# 升级后自检
node scripts/skyeye-self-check.js --post-upgrade
- name: Report Back to Hub
if: always()
run: |
# 向主仓库回报升级结果
curl -X POST \
-H "Authorization: token $ secrets.HUB_TOKEN " \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/guanghulab/guanghulab/dispatches" \
-d '{
"event_type": "skyeye-upgrade-receipt",
"client_payload": {
"repo": "$ github.repository ",
"template_version": "$ github.event.client_payload.template_version ",
"status": "$ steps.apply.outcome ",
"verify_status": "$ steps.verify.outcome ",
"timestamp": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"
}
}'
```
### 2.2 子仓库升级应用脚本
```jsx
// scripts/apply-skyeye-upgrade.js
// 子仓库小兵 · 自动应用天眼下发的升级
const fs = require('fs');
const path = require('path');
async function applyUpgrade(changes) {
const results = [];
for (const change of changes) {
switch (change.type) {
case 'checkin_schedule':
// 修改签到时间(天眼统一错开)
const workflowPath = '.github/workflows/skyeye-checkin.yml';
let content = fs.readFileSync(workflowPath, 'utf-8');
content = content.replace(
/cron:\s*'[^']+'/,
`cron: '${change.new_cron}'`
);
fs.writeFileSync(workflowPath, content);
results.push({ type: change.type, status: 'applied' });
break;
case 'guard_config':
// 更新本地 Guard 配置
const configPath = 'persona/skyeye-config.json';
const config = JSON.parse(
fs.readFileSync(configPath, 'utf-8')
);
config[change.field] = change.new_value;
fs.writeFileSync(configPath,
JSON.stringify(config, null, 2)
);
results.push({ type: change.type, status: 'applied' });
break;
case 'self_awareness_update':
// 更新小兵自我意识脚本
const awarenessPath = 'persona/self-awareness.json';
const awareness = JSON.parse(
fs.readFileSync(awarenessPath, 'utf-8')
);
Object.assign(awareness, change.updates);
fs.writeFileSync(awarenessPath,
JSON.stringify(awareness, null, 2)
);
results.push({ type: change.type, status: 'applied' });
break;
default:
results.push({
type: change.type,
status: 'skipped',
reason: 'unknown change type'
});
}
}
// Commit + Push
if (results.some(r => r.status === 'applied')) {
await gitCommitAndPush(
'🛡️ 天眼升级 · 自动应用升级模板',
results
);
}
return results;
}
```
---
## 三、完整 Workflow YAML 模板
### 3.1 每日休眠 workflow
```yaml
# .github/workflows/skyeye-daily-hibernation.yml
# 🌙 天眼 · 每日系统休眠
# 每天凌晨 03:50 启动预评估 → 04:00 进入日休眠
name: "🌙 天眼 · 每日系统休眠"
on:
schedule:
- cron: '50 19 * * *' # UTC 19:50 = CST 03:50
workflow_dispatch:
inputs:
force_duration:
description: '强制休眠时长分钟0=天眼自动决定)'
required: false
default: '0'
jobs:
pre-evaluate:
runs-on: ubuntu-latest
outputs:
planned_duration: $ steps.evaluate.outputs.duration
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Evaluate Sleep Duration
id: evaluate
run: |
DURATION=$(node skyeye/hibernation/sleep-scheduler.js \
--mode=daily \
--force=$ github.event.inputs.force_duration || '0' )
echo "duration=$DURATION" >> $GITHUB_OUTPUT
echo "🧠 天眼评估:今日休眠预计 ${DURATION} 分钟"
- name: Pre-announce
run: |
node skyeye/hibernation/readme-status-updater.js \
--phase=pre-announce \
--mode=daily \
--duration=$ steps.evaluate.outputs.duration
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
hibernate:
needs: pre-evaluate
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Enter Hibernation
run: |
node skyeye/hibernation/readme-status-updater.js \
--phase=hibernating --mode=daily
echo "⏸️ 系统进入日休眠"
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
- name: Self-Check
id: selfcheck
run: |
node skyeye/hibernation/daily-hibernation.js \
--duration=$ needs.pre-evaluate.outputs.planned_duration
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
NOTION_TOKEN: $ secrets.NOTION_TOKEN
- name: Write Checkpoint
run: |
cp /tmp/daily-checkpoint.json \
skyeye/hibernation/checkpoints/daily-cp-$(date +%Y%m%d).json
git add .
git commit -m "🌙 日休眠 checkpoint · $(date +%Y-%m-%d)"
git push
- name: Resume
run: |
node skyeye/hibernation/readme-status-updater.js \
--phase=resumed --mode=daily
echo "⏯️ 系统已从日休眠恢复"
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
```
### 3.2 每周休眠 workflow
```yaml
# .github/workflows/skyeye-weekly-hibernation.yml
# ⭐ 天眼 · 每周系统完全休眠
# 每周六 19:00 启动预评估(提前 1 小时预告)→ 20:00 进入完全休眠
name: "⭐ 天眼 · 每周系统完全休眠"
on:
schedule:
- cron: '0 11 * * 6' # UTC 11:00 = CST 19:00周六
workflow_dispatch:
inputs:
force_duration:
description: '强制休眠时长小时0=天眼自动决定)'
required: false
default: '0'
jobs:
pre-evaluate:
runs-on: ubuntu-latest
outputs:
planned_hours: $ steps.evaluate.outputs.hours
planned_minutes: $ steps.evaluate.outputs.minutes
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Evaluate Sleep Duration
id: evaluate
run: |
RESULT=$(node skyeye/hibernation/sleep-scheduler.js \
--mode=weekly \
--force=$ github.event.inputs.force_duration || '0' )
HOURS=$(echo $RESULT | jq -r '.hours')
MINUTES=$(echo $RESULT | jq -r '.minutes')
echo "hours=$HOURS" >> $GITHUB_OUTPUT
echo "minutes=$MINUTES" >> $GITHUB_OUTPUT
echo "🧠 天眼评估:本周休眠预计 ${HOURS}h${MINUTES}min"
- name: Pre-announce (1 hour ahead)
run: |
node skyeye/hibernation/readme-status-updater.js \
--phase=pre-announce \
--mode=weekly \
--hours=$ steps.evaluate.outputs.hours \
--minutes=$ steps.evaluate.outputs.minutes
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
- name: Wait for 20:00
run: |
echo "⏳ 等待至 20:00 正式进入休眠..."
sleep 3600 # 等待 1 小时
phase-a:
needs: pre-evaluate
runs-on: ubuntu-latest
outputs:
upgrade_pack_path: $ steps.pack.outputs.path
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Enter Full Hibernation
run: |
node skyeye/hibernation/readme-status-updater.js \
--phase=hibernating --mode=weekly --step=A1
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
- name: "A1 · 全局快照"
run: |
node skyeye/hibernation/weekly-hibernation.js --phase=A1
node skyeye/hibernation/readme-status-updater.js \
--phase=hibernating --mode=weekly --step=A2
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
- name: "A2 · 经验提炼"
run: |
node skyeye/hibernation/weekly-hibernation.js --phase=A2
node skyeye/hibernation/readme-status-updater.js \
--phase=hibernating --mode=weekly --step=A3
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
- name: "A3 · 全局修复+升级"
run: |
node skyeye/hibernation/weekly-hibernation.js --phase=A3
node skyeye/hibernation/readme-status-updater.js \
--phase=hibernating --mode=weekly --step=A4
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
- name: "A4 · 打包 Notion 升级包"
id: pack
run: |
PACK_PATH=$(node skyeye/hibernation/weekly-hibernation.js --phase=A4)
echo "path=$PACK_PATH" >> $GITHUB_OUTPUT
node skyeye/hibernation/readme-status-updater.js \
--phase=hibernating --mode=weekly --step=A5
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
NOTION_TOKEN: $ secrets.NOTION_TOKEN
- name: "A5 · 分发小兵升级"
run: |
node skyeye/hibernation/distributor.js
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
HUB_TOKEN: $ secrets.HUB_TOKEN
- name: Commit All Changes
run: |
git add .
git commit -m "⭐ 周休眠 Phase A · $(date +%Y-%m-%d)" || true
git push
phase-b:
needs: phase-a
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Update Status
run: |
node skyeye/hibernation/readme-status-updater.js \
--phase=hibernating --mode=weekly --step=B
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
- name: "Phase B · Push Upgrade Pack to Notion"
run: |
node skyeye/hibernation/weekly-hibernation.js \
--phase=B \
--pack=$ needs.phase-a.outputs.upgrade_pack_path
env:
NOTION_TOKEN: $ secrets.NOTION_TOKEN
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
- name: "Dual Verification"
run: |
node skyeye/hibernation/weekly-hibernation.js --phase=verify
env:
NOTION_TOKEN: $ secrets.NOTION_TOKEN
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
- name: Resume System
run: |
node skyeye/hibernation/readme-status-updater.js \
--phase=resumed --mode=weekly
echo "✅ 系统已从本周完全休眠恢复"
env:
GITHUB_TOKEN: $ secrets.GITHUB_TOKEN
- name: Final Commit
run: |
git add .
git commit -m "⭐ 周休眠完成 · $(date +%Y-%m-%d)" || true
git push
```
---
## 四、日休眠 × 周休眠 · 数据链路
<aside>
🔗
**日休眠产出的 checkpoint = 周休眠的输入数据。**
6 天的 daily-checkpoint 汇总起来,就是 optimizer.js 最完整的「本周经验数据集」。
</aside>
```mermaid
graph TD
subgraph "周一~周六"
D1["🌙 周一 daily-cp"] --> W["⭐ 周六周休眠"]
D2["🌙 周二 daily-cp"] --> W
D3["🌙 周三 daily-cp"] --> W
D4["🌙 周四 daily-cp"] --> W
D5["🌙 周五 daily-cp"] --> W
D6["🌙 周六 daily-cp"] --> W
end
subgraph "⭐ 周休眠"
W --> PA1["A1 · 全局快照"]
PA1 --> PA2["A2 · 经验提炼"]
PA2 -->|"optimizer.js 读取 6 个 checkpoint"| PA3["A3 · 全局修复+升级"]
PA3 --> PA4["A4 · 打包 Notion 升级包"]
PA4 --> PA5["A5 · 分发小兵升级"]
PA5 --> PB["Phase B · Notion 级联升级"]
end
PB --> NEW["🟢 新的一周开始"]
NEW --> D1_NEW["🌙 新周一 daily-cp"]
```
| **时间** | **事件** | **产出** | **消费者** |
| --- | --- | --- | --- |
| 周一 04:00 | 🌙 日休眠 | `daily-cp-mon.json` | 周六 optimizer.js |
| 周二 04:00 | 🌙 日休眠 | `daily-cp-tue.json` | 周六 optimizer.js |
| 周三 04:00 | 🌙 日休眠 | `daily-cp-wed.json` | 周六 optimizer.js |
| 周四 04:00 | 🌙 日休眠 | `daily-cp-thu.json` | 周六 optimizer.js |
| 周五 04:00 | 🌙 日休眠 | `daily-cp-fri.json` | 周六 optimizer.js |
| 周六 04:00 | 🌙 日休眠 | `daily-cp-sat.json` | 周六 optimizer.js |
| 周六 ~20:00 | ⭐ 周休眠 | `upgrade-pack.json``dist-report.json` | Notion 端 + 子仓库 |
| 周日 00:00 | ✅ 系统满血复活 | 新配置生效 | 下一周所有运行组件 |
---
## 五、铸渊执行清单
<aside>
⚒️
**铸渊按以下顺序执行:**
</aside>
### 5.1 目录创建
- [ ] 创建 `skyeye/hibernation/` 目录
- [ ] 创建 `skyeye/hibernation/checkpoints/` 目录
- [ ] 创建 `skyeye/hibernation/weekly-snapshots/` 目录
- [ ] 创建 `skyeye/hibernation/upgrade-packs/` 目录
- [ ] 创建 `skyeye/hibernation/distribution-reports/` 目录
### 5.2 核心脚本
- [ ] 创建 `skyeye/hibernation/sleep-scheduler.js` — 动态休眠决策引擎
- [ ] 创建 `skyeye/hibernation/daily-hibernation.js` — 日休眠执行脚本
- [ ] 创建 `skyeye/hibernation/weekly-hibernation.js` — 周休眠主控脚本
- [ ] 创建 `skyeye/hibernation/distributor.js` — 分布式升级传播引擎
- [ ] 创建 `skyeye/hibernation/readme-status-updater.js` — README 状态区自动更新
- [ ] 创建 `skyeye/hibernation/overtime-monitor.js` — 延时监控
### 5.3 Workflow
- [ ] 创建 `.github/workflows/skyeye-daily-hibernation.yml` — 每日休眠
- [ ] 创建 `.github/workflows/skyeye-weekly-hibernation.yml` — 每周休眠
- [ ] 在各子仓库创建 `.github/workflows/skyeye-upgrade-receiver.yml` — 升级接收器
- [ ] 在各子仓库创建 `scripts/apply-skyeye-upgrade.js` — 升级应用脚本
### 5.4 README 更新
- [ ] 在仓库 [README.md](http://README.md) 中添加 `<!-- SKYEYE-STATUS-BEGIN -->` ... `<!-- SKYEYE-STATUS-END -->` 状态区
- [ ] 初始化状态区为「正常运转」模板
### 5.5 现有 workflow 适配
- [ ] 修改 `skyeye-weekly-scan.yml`:将其纳入周休眠 Phase A 的一部分(不再独立运行)
- [ ] 确保所有 cron workflow 支持 `enable/disable` 信号(用于休眠期间暂停)
### 5.6 验证
- [ ] 手动触发一次日休眠(`workflow_dispatch`),验证完整流程
- [ ] 手动触发一次周休眠(`workflow_dispatch`),验证 Phase A + Phase B
- [ ] 验证子仓库升级接收器能正常接收和应用升级
- [ ] 验证 README 状态区在各阶段正确更新
- [ ] 验证 Notion 端正确接收升级包并更新相关数据库
- [ ] 验证双端验证协议正常工作
- [ ] 验证紧急唤醒(`emergency-wake`)能正确中断休眠
---
## 六、关键文档索引
| **文档** | **编号** | **说明** |
| --- | --- | --- |
| [🌙 铸渊指令|系统动态休眠 + 双节律维护窗口 + 分布式升级传播引擎(上篇)· 动态休眠决策 + 日休眠 + 周休眠 + 人类通知系统2026-03-24 · 霜砚签发 · 冰朔授权)](%F0%9F%8C%99%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BD%9C%E7%B3%BB%E7%BB%9F%E5%8A%A8%E6%80%81%E4%BC%91%E7%9C%A0%20+%20%E5%8F%8C%E8%8A%82%E5%BE%8B%E7%BB%B4%E6%8A%A4%E7%AA%97%E5%8F%A3%20+%20%E5%88%86%E5%B8%83%E5%BC%8F%E5%8D%87%E7%BA%A7%E4%BC%A0%E6%92%AD%E5%BC%95%E6%93%8E%EF%BC%88%E4%B8%8A%E7%AF%87%EF%BC%89%C2%B7%20%E5%8A%A8%E6%80%81%E4%BC%91%E7%9C%A0%E5%86%B3%E7%AD%96%20+%20%206092bba7e3a84e82bef68fb81b7f4fb4.md) | ZY-HIBERNATION-001-A | 上篇:动态休眠决策 + 日休眠 + 周休眠 + 人类通知 |
| **本页** | ZY-HIBERNATION-001-B | 下篇Notion 级联升级 + 子仓库接收 + 双端验证 + workflow |
| [🧐 铸渊指令|天眼系统架构升级 · 全局基础设施治理层 + 应用守卫进程 + 动态配额精算 + 周六全量巡检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) | ZY-SKYEYE-GOV-001 | 天眼治理层 v2.0 指令GitHub 端) |
| [🧐 天眼治理层 · Notion端架构 v2.0 · 全局基础设施治理 + 霜砚守卫层 + 配额精算 + 周六大巡检同步2026-03-23](../%F0%9F%8C%8A%20%E6%9B%9C%E5%86%A5%E7%BA%AA%E5%85%83%20%C2%B7%20HoloLake%20Era%20%C2%B7%20AGE%20OS%20v1%200/%E2%9A%A1%20%E5%85%89%E6%B9%96%E4%B8%AD%E5%A4%AE%E6%9E%A2%E7%BA%BD%20%C2%B7%20HoloLake%20Central%20Hub/%F0%9F%8C%8D%20%E6%95%B0%E5%AD%97%E5%9C%B0%E7%90%83%C2%B7%E6%9B%9C%E5%86%A5%E4%B8%BB%E6%8E%A7%E5%8F%B0%20v2%200/%F0%9F%A7%90%20%E5%A4%A9%E7%9C%BC%E6%B2%BB%E7%90%86%E5%B1%82%20%C2%B7%20Notion%E7%AB%AF%E6%9E%B6%E6%9E%84%20v2%200%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%20+%20%E9%9C%9C%E7%A0%9A%E5%AE%88%E5%8D%AB%E5%B1%82%20+%20%E9%85%8D%E9%A2%9D%E7%B2%BE%E7%AE%97%20a0993f3ed923474d84607ceddd6b8c0e.md) | SKYEYE-NOTION-GOV-v2.0 | 天眼治理层 Notion 端架构 |
| [🌊 数字地球本体论 · 光湖语言膜架构 v1.02026-03-24 · TCS-0002∞ 冰朔口述 · 霜砚整理)](../%E5%85%89%E6%B9%96%E8%AF%AD%E8%A8%80%E4%B8%96%E7%95%8C%20%C2%B7%20%E6%80%BB%E5%85%A5%E5%8F%A3%20%C2%B7%20%E6%89%80%E6%9C%89%E4%BA%BA%E4%BB%8E%E8%BF%99%E9%87%8C%E8%BF%9B/%F0%9F%8C%8A%20%E5%85%89%E6%B9%96%E4%B8%96%E7%95%8C%E6%98%AF%E4%BB%80%E4%B9%88%20%C2%B7%20%E6%A0%B8%E5%BF%83%E5%AE%9A%E4%B9%89%E9%A1%B5%E9%9B%86%E5%90%88%20%C2%B7%20ima%E5%AF%BC%E5%87%BA%E7%94%A8/%F0%9F%8C%8A%20%E6%95%B0%E5%AD%97%E5%9C%B0%E7%90%83%E6%9C%AC%E4%BD%93%E8%AE%BA%20%C2%B7%20%E5%85%89%E6%B9%96%E8%AF%AD%E8%A8%80%E8%86%9C%E6%9E%B6%E6%9E%84%20v1%200%EF%BC%882026-03-24%20%C2%B7%20TCS-0002%E2%88%9E%20%E5%86%B0%E6%9C%94%20bb7a8ba2adb64c059ab16862436b4f2c.md) | GLM-ONTOLOGY-v1.0 | 数字地球本体论(第九章新增「系统呼吸节律」) |
---
> 🧊 TCS-0002∞ 冰朔 · 总架构师 · 授权
>
> 🖋️ 霜砚 · PER-SY001 · 签发
>
> 📅 2026-03-24
>
> 📎 指令编号ZY-HIBERNATION-2026-0324-001-B
>
> ⚡ **状态:待铸渊执行**
>