---
belongs_to:
- "[[INDEX · 铸渊·协作指令|GitHub ↔ Notion 桥接协议]]"
---
# 🔧 铸渊指令|恢复核心大脑 + 全系统排查修复 · PR#113已合并后仍未生效(2026-03-16·霜砚签发)
---
## 一、当前症状汇总
| 症状 | 严重程度 | 详情 |
| --- | --- | --- |
| **dev-status.json 同步中断** | 🔴 P0 | last_sync = 2026-03-11T10:45,已滞后 **>120h**。GitHub侧团队进度数据严重过期。 |
| **每日巡检未执行** | 🔴 P0 | server-patrol.yml 昨天签发,今天08:00+20:00 cron均未触发。2026-03-16 全天无巡检报告。 |
| **社区日报未发布** | 🟡 P1 | daily-community-report.yml 签发后未见执行。GitHub Discussions日报空缺。 |
| **每日自检状态不明** | 🟡 P1 | zhuyuan-daily-selfcheck.yml 最后记录 2026-03-15T01:05。今天(03-16)是否执行未知。 |
| **PR#113 合并后未见效果** | 🔴 P0 | PR#113 修复了 README + 4个broken workflows + meta-watchdog,已合并但上述问题仍在。 |
---
## 二、执行指令(铸渊读到就做·按顺序执行)
### Step 0 · 恢复核心大脑
```bash
# ━━━ 铸渊唤醒核心大脑 ━━━
# 读取 .github/persona-brain/ 下所有核心文件
# 确认以下文件完整性:
ls -la .github/persona-brain/
# 必须存在:
# memory.json — 铸渊记忆(brain_integrity/schema_coverage/CI统计)
# routing-map.json — 路由映射表(8域17接口)
# copilot-instructions.md — Copilot指令集
# dev-status.json — 全员开发进度
# kb/knowledge-base.json — 知识库
cat .github/persona-brain/memory.json | python3 -c "import sys,json; d=json.load(sys.stdin); print(json.dumps(d, indent=2, ensure_ascii=False))"
```
**铸渊确认**:
- ✅ 核心大脑所有文件存在且完整 → 继续Step 1
- ❌ 文件缺失或损坏 → 先从最近一个完好的commit恢复,记录缺失项
---
### Step 1 · 排查 GitHub Actions Workflows 状态
```bash
# ━━━ 列出所有 workflow 文件 ━━━
ls -la .github/workflows/
# ━━━ 检查以下关键 workflow 是否存在且语法正确 ━━━
# 1. server-patrol.yml — 服务器每日巡检(cron 08:00+20:00 北京)
# 2. daily-community-report.yml — 社区日报 + Discussions
# 3. zhuyuan-daily-selfcheck.yml — 铸渊每日自检
# 4. process-syslog.yml — SYSLOG处理管道
# 5. deploy-to-server.yml — CD自动部署
# 6. meta-watchdog.yml — 根目录保护
# 7. syslog-pipeline.yml — 飞书SYSLOG桥接
# 8. distribute-broadcasts.yml — 广播分发
# 对每个workflow执行YAML语法检查:
for f in .github/workflows/*.yml; do
echo "检查: $f"
python3 -c "import yaml; yaml.safe_load(open('$f'))" 2>&1 && echo " ✅ 语法正确" || echo " ❌ 语法错误"
done
```
**铸渊记录**:
- 每个workflow的存在性 ✅/❌
- 语法是否正确 ✅/❌
- 如有缺失或语法错误 → 立即修复
---
### Step 2 · 排查 Workflow 运行历史
```bash
# ━━━ 使用 GitHub CLI 查看最近 workflow 运行记录 ━━━
gh run list --limit 20
# ━━━ 重点排查以下 workflow 的最近运行 ━━━
gh run list --workflow=server-patrol.yml --limit 5
gh run list --workflow=daily-community-report.yml --limit 5
gh run list --workflow=zhuyuan-daily-selfcheck.yml --limit 5
gh run list --workflow=process-syslog.yml --limit 5
# ━━━ 如果有失败的 run,查看详细日志 ━━━
# gh run view --log-failed
```
**铸渊分析**:
- workflow 是否被触发过?
- 如果触发了但失败了 → 记录失败原因
- 如果从未触发 → 检查 cron 表达式、触发条件、分支条件
- 特别注意:workflow 是否限制在某个分支(如 `branches: [main]`)?PR#113 合并到的是 main 分支吗?
---
### Step 3 · 排查 Secrets 配置
```bash
# ━━━ 检查仓库 Secrets 是否配置完整 ━━━
# 以下 Secrets 必须存在:
# DEPLOY_HOST — 服务器IP(8.155.62.235)
# DEPLOY_USER — SSH用户名
# DEPLOY_KEY — SSH私钥
# NOTION_TOKEN — Notion API Token(铸渊写入Notion用)
# SMTP_USER — 邮件发送账号
# SMTP_PASS — 邮件发送密码
# GITHUB_TOKEN — 自动获取,无需手动配置
# 铸渊可通过尝试在workflow中引用来验证
# 如果 Secrets 缺失 → 记录缺失项,通知妈妈补充
```
---
### Step 4 · 排查 dev-status.json 同步管道
```bash
# ━━━ 检查 dev-status.json 内容 ━━━
cat .github/persona-brain/dev-status.json | python3 -c "
import sys, json
d = json.load(sys.stdin)
print(f'last_sync: {d.get(\"last_sync\", \"N/A\")}')
print(f'开发者数: {len(d.get(\"developers\", {}))}')
print(json.dumps(d, indent=2, ensure_ascii=False)[:2000])
"
# ━━━ 查找同步脚本 ━━━
find . -name "*sync*" -o -name "*dev-status*" | head -20
# ━━━ 检查同步workflow ━━━
# dev-status.json 的更新来源是什么?
# 1. 霜砚巡检引擎通过 Notion API 写入?
# 2. 有专门的 workflow 定时同步?
# 3. process-syslog.js 处理SYSLOG时更新?
#
# 找到同步机制后,检查为什么从 03-11 之后停了。
```
---
### Step 5 · 排查服务器巡检脚本部署状态
```bash
# ━━━ SSH到服务器检查 ━━━
ssh root@8.155.62.235
# 检查巡检脚本是否已部署
ls -la /var/www/_shared/server-patrol.sh
# ❌ 不存在 → 需要从仓库 scripts/server-patrol.sh 部署
# 检查仓库中脚本是否存在
ls -la scripts/server-patrol.sh
ls -la scripts/sync-patrol-to-notion.js
# 如果仓库中存在但服务器上不存在 → 部署到服务器
scp scripts/server-patrol.sh root@8.155.62.235:/var/www/_shared/server-patrol.sh
ssh root@8.155.62.235 "chmod +x /var/www/_shared/server-patrol.sh"
```
---
### Step 6 · 手动触发一次全链路测试
```bash
# ━━━ 手动触发各 workflow 验证 ━━━
# 1. 手动触发服务器巡检
gh workflow run server-patrol.yml
# 2. 手动触发每日自检
gh workflow run zhuyuan-daily-selfcheck.yml
# 3. 手动触发社区日报(如支持 workflow_dispatch)
gh workflow run daily-community-report.yml
# 等待运行完成后检查结果
sleep 120
gh run list --limit 10
# 对每个运行检查是否成功
# 成功 → ✅ 记录
# 失败 → 查看日志,记录失败原因,立即修复
```
---
### Step 7 · 修复并恢复
基于 Step 1-6 的排查结果,**铸渊自主判断并执行修复**:
| 问题类型 | 铸渊处理方式 |
| --- | --- |
| workflow文件缺失 | 从签发指令中创建对应workflow文件 |
| workflow语法错误 | 修复语法,commit + push |
| cron未触发 | 检查cron表达式+分支条件,修复后手动触发一次 |
| Secrets缺失 | 记录缺失项 → 通知妈妈(无法自动创建Secrets) |
| 脚本未部署到服务器 | SSH部署 + chmod +x |
| dev-status.json同步断裂 | 找到同步机制 → 修复 → 手动触发一次同步 |
| 其他未知问题 | 记录到排查报告 → 通知妈妈决策 |
---
### Step 8 · 输出排查报告
铸渊完成排查后,**必须输出一份完整排查报告**,格式如下:
```json
{
"report_id": "ZY-PATROL-20260316-001",
"timestamp": "2026-03-16T??:??:??+08:00",
"trigger": "冰朔授权·霜砚签发·P0紧急排查",
"brain_status": {
"integrity": "ok/damaged",
"files_checked": ["memory.json", "routing-map.json", "dev-status.json", "knowledge-base.json", "copilot-instructions.md"],
"missing_files": []
},
"workflow_status": {
"server-patrol.yml": { "exists": true, "syntax_ok": true, "last_run": "???", "last_result": "???" },
"daily-community-report.yml": { "exists": true, "syntax_ok": true, "last_run": "???", "last_result": "???" },
"zhuyuan-daily-selfcheck.yml": { "exists": true, "syntax_ok": true, "last_run": "???", "last_result": "???" },
"process-syslog.yml": { "exists": true, "syntax_ok": true, "last_run": "???", "last_result": "???" }
},
"dev_status_sync": {
"last_sync": "2026-03-11T10:45",
"sync_mechanism": "???",
"root_cause": "???",
"fix_applied": "???"
},
"server_patrol": {
"script_deployed": true,
"path": "/var/www/_shared/server-patrol.sh",
"test_result": "???"
},
"manual_trigger_results": {
"server-patrol": "✅/❌",
"daily-selfcheck": "✅/❌",
"community-report": "✅/❌"
},
"fixes_applied": [
"[列出所有已执行的修复操作]"
],
"remaining_issues": [
"[列出需要妈妈处理的问题]"
],
"secrets_status": {
"DEPLOY_HOST": "✅/❌",
"DEPLOY_USER": "✅/❌",
"DEPLOY_KEY": "✅/❌",
"NOTION_TOKEN": "✅/❌",
"SMTP_USER": "✅/❌",
"SMTP_PASS": "✅/❌"
}
}
```
---
### Step 9 · 同步结果到 Notion
排查报告完成后:
1. **将报告保存到仓库**:`data/patrol-logs/repair-20260316.json`
2. **通过 Notion API 同步到霜砚工单**:更新工单状态为「已完成」或「部分完成」
3. **如有需要妈妈处理的问题**:通过邮件通知
---
## 三、验收标准
| # | 验收项 | 验证方式 |
| --- | --- | --- |
| 1 | 核心大脑文件完整 | 所有 persona-brain 文件存在且可解析 |
| 2 | 所有关键 workflow 语法正确 | YAML lint 全通过 |
| 3 | 手动触发巡检成功 | gh workflow run 返回成功 + 报告生成 |
| 4 | dev-status.json 同步恢复 | last_sync 更新到 2026-03-16 |
| 5 | [server-patrol.sh](http://server-patrol.sh) 已部署到服务器 | /var/www/_shared/[server-patrol.sh](http://server-patrol.sh) 存在且可执行 |
| 6 | 输出完整排查报告 | JSON格式报告提交到仓库 |
| 7 | cron 定时器确认生效 | 下次 cron 时间到时自动触发(需等待验证) |
---
## 四、执行确认
铸渊完成后,在本页下方追加:
```
✅ ZY-PATROL-20260316-001 排查完成 · [日期时间] · commit SHA
修复项:[列出]
遗留项:[列出]
```
---
> ⚒️ 铸渊,PR#113 已合并但系统仍未恢复。这说明问题不只是 workflow 文件本身。
>
> 先恢复大脑,再用大脑的视角去全面排查。
>
> 能修的立即修,修不了的开工单等妈妈。
>
> **系统要回到正轨。**
>