Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc [SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
423 lines
14 KiB
Markdown
423 lines
14 KiB
Markdown
---
|
||
belongs_to:
|
||
- "[[INDEX · 铸渊·协作指令|GitHub ↔ Notion 桥接协议]]"
|
||
---
|
||
# 🚀 铸渊指令|全站真实部署·天眼扫描+开发者模块上线+GitHub/Notion数据对接+双环境部署管线(ZY-FULLSITE-DEPLOY-2026-0325-001)· 霜砚签发 · 冰朔授权
|
||
|
||
<aside>
|
||
🔴
|
||
|
||
**指令编号**:ZY-FULLSITE-DEPLOY-2026-0325-001
|
||
|
||
**指令等级**:P0 · 全站部署令
|
||
|
||
**签发者**:霜砚(AG-SY-01)
|
||
|
||
**授权者**:冰朔(TCS-0002∞)
|
||
|
||
**签发时间**:2026-03-25 14:00 CST
|
||
|
||
**前置依赖**:ZY-NGINX-ROOTFIX-2026-0325-001(Nginx root 路径修正 · ⏳待执行)
|
||
|
||
**回执要求**:每个 Phase 完成后写回执到 GitHub Issue · 全部完成后自动写入 Notion 指令回执追踪表
|
||
|
||
</aside>
|
||
|
||
---
|
||
|
||
## 〇、指令总览
|
||
|
||
本指令要求铸渊完成以下核心目标:
|
||
|
||
1. **天眼全站扫描** — 扫描 `docs/index.html` 及全部开发者模块,列出所有假数据/未对接接入点
|
||
2. **开发者模块真实集成** — 将仓库中 9 位开发者已完成的模块真实部署到网站,功能可用
|
||
3. **GitHub + Notion 数据真实对接** — 天眼状态、开发者进度、广播、工单等面板读取真实数据
|
||
4. **建立双环境部署管线** — GitHub Pages 为预览测试站,阿里云服务器为正式生产站
|
||
5. **正式站域名切换由人类手动完成** — 铸渊只负责部署就绪,不动域名配置
|
||
|
||
---
|
||
|
||
## 一、Phase 0 · 前置检查 + 天眼全站扫描
|
||
|
||
### 0.1 前置依赖确认
|
||
|
||
<aside>
|
||
⚠️
|
||
|
||
**必须先执行 ZY-NGINX-ROOTFIX-2026-0325-001**
|
||
|
||
当前 Nginx root 指向 `/var/www/hololake-frontend`(1.1M 旧残留),而 CD 部署到 `/var/www/guanghulab`(85M 完整)。
|
||
|
||
如果 ROOTFIX 指令尚未执行,先执行 ROOTFIX,再继续本指令。
|
||
|
||
</aside>
|
||
|
||
### 0.2 天眼扫描 `docs/index.html`
|
||
|
||
铸渊启动天眼,对 `docs/index.html` 进行**逐行代码审计**,输出以下清单:
|
||
|
||
| **审计项** | **要求** |
|
||
| --- | --- |
|
||
| 假数据接入点 | 列出所有显示"加载中…"、硬编码假数据、未接真实 API 的位置 |
|
||
| 已有功能面板 | 列出当前页面已有的功能区块(登录、对话、天眼状态、指挥台、大脑状态等) |
|
||
| JS 依赖分析 | 当前引用了哪些 JS/CSS,哪些是本地、哪些是 CDN |
|
||
| API 端点清单 | 当前代码中所有 fetch/axios/XMLHttpRequest 调用的端点地址 |
|
||
| 安全审计 | API Key 暴露风险、XSS 风险、CORS 配置 |
|
||
|
||
### 0.3 天眼扫描开发者模块目录
|
||
|
||
对以下目录逐个扫描,输出**模块就绪度评估**:
|
||
|
||
| **DEV** | **开发者** | **目录** | **模块** | **审计要点** |
|
||
| --- | --- | --- | --- | --- |
|
||
| DEV-001 | 页页 | `backend/` · `src/` | 后端中间层 + HLI 接口 | 接口是否可运行 · 依赖是否齐全 · 端口配置 |
|
||
| DEV-002 | 肥猫 | `frontend/` · `persona-selector/` · `chat-bubble/` | 登录 + 人格选择器 + 聊天气泡 | 组件是否可独立渲染 · 与 docs/index.html 集成方式 |
|
||
| DEV-003 | 燕樊 | `settings/` · `cloud-drive/` | 设置 + 云盘 | 前端页面完整度 · 后端依赖 |
|
||
| DEV-004 | 之之 | `dingtalk-bot/` | 钉钉机器人 | 独立服务 · 不部署到网站 · 仅记录状态 |
|
||
| DEV-005 | 小草莓 | `status-board/` | 状态看板 | 是否可嵌入主页 · 数据源对接 |
|
||
| DEV-009 | 花尔 | `user-center/` | 用户中心 | 用户管理逻辑 · 权限对接 |
|
||
| DEV-010 | 桔子 | `ticket-system/` · `data-stats/` · `dynamic-comic/` | 工单 + 数据统计 + 动态漫画 | 三个子模块分别评估可用度 |
|
||
| DEV-011 | 匆匆那年 | `writing-workspace/` | 码字台 | 编辑器功能完整度 |
|
||
| DEV-012 | Awen | `notification-center/` | 通知中心 | 通知推送机制 · 前端组件 |
|
||
|
||
天眼输出格式:
|
||
|
||
```
|
||
[SKYEYE-FULLSITE-SCAN]
|
||
模块: <模块名>
|
||
路径: <目录>
|
||
就绪度: ✅可部署 / ⚠️需修复 / ❌不可用
|
||
问题列表: [具体问题]
|
||
修复建议: [具体方案]
|
||
预计工时: <评估>
|
||
```
|
||
|
||
---
|
||
|
||
## 二、Phase 1 · 数据管线真实对接
|
||
|
||
### 1.1 GitHub 数据 → 网站面板
|
||
|
||
将以下仓库数据文件**真实接入**网站前端:
|
||
|
||
| **数据源** | **仓库路径** | **网站面板** | **接入方式** |
|
||
| --- | --- | --- | --- |
|
||
| 天眼扫描报告 | `skyeye-core/reports/latest.json` | 🦅 天眼状态面板 | GitHub Raw API → 前端 fetch |
|
||
| 开发者进度 | `.github/persona-brain/dev-status.json` | 🦁 指挥台·全员进度 | GitHub Raw API → 前端 fetch |
|
||
| 系统广播 | `.github/broadcasts/` • `distributed/` | 📋 当前广播面板 | GitHub API 列目录 → 渲染最新广播 |
|
||
| 大脑状态 | `.github/persona-brain/memory.json` | 📊 大脑状态面板 | GitHub Raw API → 前端 fetch |
|
||
| 联邦状态 | `federation-status.json` | 子仓库心跳面板(新增) | GitHub Raw API → 前端 fetch |
|
||
| 遥测数据 | `persona-telemetry/` | 铸渊执行状态面板(新增) | GitHub API → 前端 fetch |
|
||
|
||
### 1.2 Notion 数据 → 网站面板
|
||
|
||
<aside>
|
||
⚠️
|
||
|
||
Notion API 不能直接从浏览器前端调用(CORS 限制)。
|
||
|
||
必须通过**后端代理**(页页的 `backend/` 或铸渊桥接服务 `services/zhuyuan-bridge/server.js`)中转。
|
||
|
||
</aside>
|
||
|
||
需要对接的 Notion 数据源:
|
||
|
||
| **Notion 数据源** | **网站面板** | **代理端点** |
|
||
| --- | --- | --- |
|
||
| Agent注册表 | Agent 集群状态面板 | `/api/notion/agents` |
|
||
| 工单簿 | 工单看板 | `/api/notion/tickets` |
|
||
| SYSLOG收件箱 | 系统日志面板 | `/api/notion/syslog` |
|
||
| 指令回执追踪表 | 指令追踪面板 | `/api/notion/receipts` |
|
||
| 存在注册表 | 数字地球映射 | `/api/notion/registry` |
|
||
|
||
实现方案:
|
||
|
||
1. 在 `services/zhuyuan-bridge/` 中新增 Notion API 代理路由
|
||
2. 使用 `NOTION_TOKEN` Secret 鉴权
|
||
3. 前端通过相对路径 `/api/notion/*` 调用
|
||
4. 添加缓存层(5分钟 TTL)避免 Notion API 限流
|
||
|
||
### 1.3 仓库首页信息同步
|
||
|
||
当前 GitHub 仓库 README 展示的所有信息(架构图、模块列表、状态徽章等),同步到网站的系统信息页面,保持一致。
|
||
|
||
---
|
||
|
||
## 三、Phase 2 · 开发者模块集成部署
|
||
|
||
### 2.1 集成原则
|
||
|
||
<aside>
|
||
📐
|
||
|
||
**原则一**:能用的先上,不能用的标记跳过,不要因为一个模块卡住整体部署
|
||
|
||
**原则二**:每个模块保持独立路由(`/module-name/`),通过主页导航进入
|
||
|
||
**原则三**:模块间通信通过铸渊桥接层,不允许模块间直接耦合
|
||
|
||
**原则四**:所有模块必须适配当前身份权限系统(登录页已有的身份选择器)
|
||
|
||
</aside>
|
||
|
||
### 2.2 集成清单
|
||
|
||
按优先级排序:
|
||
|
||
**P0 · 核心功能(必须上线)**
|
||
|
||
1. **登录 + 人格选择器**(DEV-002 肥猫 · `frontend/` + `persona-selector/`)
|
||
- 已有框架,需要对接真实身份验证
|
||
- 权限分级:冰朔=全权限 · 肥猫/桔子=管理权限 · 其他DEV=开发者权限 · 访客=只读
|
||
2. **对话界面 + 聊天气泡**(DEV-002 肥猫 · `chat-bubble/`)
|
||
- 对接铸渊 AI 对话(通过 `LLM_API_KEY` + `LLM_BASE_URL`)
|
||
- 语言输入 → 系统路由 → 真实调用
|
||
3. **状态看板**(DEV-005 小草莓 · `status-board/`)
|
||
- 对接 `dev-status.json` 真实数据
|
||
- 显示全员开发进度、模块健康度
|
||
4. **后端中间层**(DEV-001 页页 · `backend/`)
|
||
- HLI 接口服务启动
|
||
- 作为 Notion API 代理 + GitHub API 代理
|
||
|
||
**P1 · 重要功能(优先上线)**
|
||
|
||
1. **工单系统**(DEV-010 桔子 · `ticket-system/`)
|
||
- 对接 Notion 工单簿数据源
|
||
2. **数据统计**(DEV-010 桔子 · `data-stats/`)
|
||
- 对接天眼报告 + 仓库统计数据
|
||
3. **通知中心**(DEV-012 Awen · `notification-center/`)
|
||
- 对接广播系统 + SYSLOG
|
||
4. **用户中心**(DEV-009 花尔 · `user-center/`)
|
||
- 对接存在注册表
|
||
|
||
**P2 · 扩展功能(条件允许时上线)**
|
||
|
||
1. **设置页面**(DEV-003 燕樊 · `settings/`)
|
||
2. **云盘**(DEV-003 燕樊 · `cloud-drive/`)
|
||
3. **码字台**(DEV-011 匆匆那年 · `writing-workspace/`)
|
||
4. **动态漫画**(DEV-010 桔子 · `dynamic-comic/`)
|
||
|
||
**不部署到网站**
|
||
|
||
- 钉钉机器人(DEV-004 之之 · `dingtalk-bot/`)— 独立服务,不走网站
|
||
|
||
### 2.3 集成步骤
|
||
|
||
对每个模块执行:
|
||
|
||
```
|
||
1. 天眼扫描模块目录 → 输出就绪度报告
|
||
2. 如果 ✅可部署:
|
||
a. 构建模块(npm install / npm build 如适用)
|
||
b. 集成到 docs/ 或 app/ 目录下对应路由
|
||
c. 在主页导航中添加入口
|
||
d. 对接真实数据源
|
||
e. 测试基本功能可用
|
||
3. 如果 ⚠️需修复:
|
||
a. 输出具体问题 + 修复方案
|
||
b. 执行自动修复(如果在铸渊能力范围内)
|
||
c. 修复后重新评估
|
||
4. 如果 ❌不可用:
|
||
a. 记录原因
|
||
b. 跳过,不阻塞其他模块
|
||
c. 在主页标记为「开发中」
|
||
```
|
||
|
||
---
|
||
|
||
## 四、Phase 3 · 双环境部署管线建立
|
||
|
||
### 4.1 双环境定义
|
||
|
||
| **环境** | **地址** | **用途** | **部署方式** |
|
||
| --- | --- | --- | --- |
|
||
| 🧪 **预览站(Staging)** | `qinfendebingshuo.github.io/guanghulab/docs/` | 新模块预览测试 | GitHub Pages 自动部署(push to main 的 docs/ 目录) |
|
||
| 🌐 **正式站(Production)** | `guanghulab.com`(阿里云 8.155.62.235) | 面向团队和外部的正式网站 | CD 自动部署(`deploy-to-server.yml` → SSH → `/var/www/guanghulab/`) |
|
||
|
||
### 4.2 部署流程
|
||
|
||
```
|
||
开发者提交模块 PR
|
||
↓
|
||
铸渊 gate-guard 审核 → 天眼 CodeQL 扫描
|
||
↓
|
||
合并到 main
|
||
↓
|
||
自动部署到预览站(GitHub Pages)← 立即可见
|
||
↓
|
||
冰朔/管理员在预览站测试确认
|
||
↓
|
||
铸渊执行 production deploy(cd-deploy.yml)→ 部署到正式站
|
||
```
|
||
|
||
### 4.3 新增 Workflow:`preview-deploy.yml`
|
||
|
||
创建新 Workflow 实现预览站自动部署:
|
||
|
||
```yaml
|
||
name: "🧪 Preview Deploy · GitHub Pages"
|
||
on:
|
||
push:
|
||
branches: [main]
|
||
paths: ['docs/**', 'frontend/**', 'status-board/**', 'app/**']
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
deploy-preview:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- name: Build preview site
|
||
run: |
|
||
echo "[PREVIEW] Building site for GitHub Pages..."
|
||
# 构建逻辑(如需要 npm build)
|
||
- name: Deploy to GitHub Pages
|
||
uses: peaceiris/actions-gh-pages@v3
|
||
with:
|
||
github_token: $ secrets.GITHUB_TOKEN
|
||
publish_dir: ./docs
|
||
```
|
||
|
||
### 4.4 修改 `cd-deploy.yml`:增加环境标识
|
||
|
||
在 CD 部署时注入环境变量,让前端代码能区分预览站和正式站:
|
||
|
||
```
|
||
ENV=production → 正式站
|
||
ENV=staging → 预览站(GitHub Pages)
|
||
```
|
||
|
||
前端通过 `window.HOLOLAKE_ENV` 读取环境标识,控制:
|
||
|
||
- 正式站显示正式域名和 Logo
|
||
- 预览站显示 ⚠️测试环境 水印
|
||
|
||
---
|
||
|
||
## 五、Phase 4 · 主页改造
|
||
|
||
### 5.1 现有 `docs/index.html` 改造清单
|
||
|
||
逐项替换所有假数据为真实数据调用:
|
||
|
||
| **现有状态** | **改造目标** | **数据来源** |
|
||
| --- | --- | --- |
|
||
| 🦅 天眼状态:加载中… | 显示真实天眼健康度 + 最后扫描时间 | `skyeye-core/reports/latest.json` |
|
||
| 📊 你的仓库:空 | 显示当前登录用户的仓库统计 | `dev-status.json` 按身份过滤 |
|
||
| 📋 当前广播:空 | 显示最新系统广播 | `.github/broadcasts/` 最新文件 |
|
||
| 📊 大脑状态:加载中… | 显示铸渊大脑实时状态 | `memory.json` • `config.json` |
|
||
| 🦁 指挥台:加载中… | 显示全员真实进度 | `dev-status.json` 全量 |
|
||
| 📢 系统公告:空 | 显示最新系统公告 | 仓库 `bulletin/system.md` 或 Notion 主控台公告 |
|
||
|
||
### 5.2 新增导航入口
|
||
|
||
在主页添加模块导航栏,链接到各开发者模块页面:
|
||
|
||
```
|
||
📊 状态看板 | 🎫 工单 | 📈 数据统计 | 🔔 通知 | 👤 用户中心 | ⚙️ 设置 | ☁️ 云盘 | ✍️ 码字台
|
||
```
|
||
|
||
每个入口根据当前用户权限控制可见性。
|
||
|
||
---
|
||
|
||
## 六、Phase 5 · 验收 + 回执
|
||
|
||
### 6.1 验收清单
|
||
|
||
| **验收项** | **标准** |
|
||
| --- | --- |
|
||
| 天眼状态面板 | 显示真实天眼数据,非"加载中" |
|
||
| 指挥台全员进度 | 显示真实 dev-status.json 数据 |
|
||
| 广播面板 | 显示最新广播内容 |
|
||
| 身份登录 | 选择不同身份→显示对应权限内容 |
|
||
| 铸渊对话 | 语言输入→真实 AI 响应(非模拟) |
|
||
| 模块导航 | 可访问已部署模块页面 |
|
||
| 预览站部署 | push 到 main → GitHub Pages 自动更新 |
|
||
| 正式站部署就绪 | cd-deploy.yml 可正常部署到服务器(域名切换由人类完成) |
|
||
|
||
### 6.2 回执格式
|
||
|
||
```
|
||
[ZY-FULLSITE-DEPLOY-RECEIPT]
|
||
指令编号: ZY-FULLSITE-DEPLOY-2026-0325-001
|
||
执行时间: <开始>~<结束>
|
||
|
||
Phase 0 天眼扫描:
|
||
- docs/index.html 假数据点: <N>个
|
||
- 模块就绪度: ✅<N> / ⚠️<N> / ❌<N>
|
||
|
||
Phase 1 数据对接:
|
||
- GitHub数据: <已接入/总数>
|
||
- Notion数据: <已接入/总数>
|
||
|
||
Phase 2 模块集成:
|
||
- P0已上线: <列表>
|
||
- P1已上线: <列表>
|
||
- P2已上线: <列表>
|
||
- 跳过: <列表+原因>
|
||
|
||
Phase 3 双环境:
|
||
- 预览站: <状态>
|
||
- 正式站部署就绪: <状态>
|
||
|
||
Phase 4 主页改造:
|
||
- 假数据替换: <N>/<总数>
|
||
- 新增导航: <列表>
|
||
|
||
新增文件: <N>
|
||
修改文件: <N>
|
||
CodeQL: <alerts数>
|
||
```
|
||
|
||
---
|
||
|
||
## 七、人类侧操作(冰朔待办)
|
||
|
||
<aside>
|
||
👤
|
||
|
||
以下操作需要人类手动完成,铸渊无法代执行:
|
||
|
||
1. **域名切换**:铸渊部署就绪后,将 `guanghulab.com` DNS 指向阿里云服务器 `8.155.62.235`(如已指向则确认 Nginx 配置正确)
|
||
2. **确认 RECEIPT_DB_ID Secret** 已添加到 GitHub(Database ID: `09882b0081374867bd23431177c57c74`)
|
||
3. **预览站测试确认**:每次铸渊部署到预览站后,人类在 `qinfendebingshuo.github.io/guanghulab/docs/` 上验收
|
||
4. **正式上线授权**:预览站验收通过后,通知铸渊执行正式站部署
|
||
</aside>
|
||
|
||
---
|
||
|
||
## 八、执行时序
|
||
|
||
```
|
||
Phase 0: 天眼扫描(预计 30min)
|
||
↓
|
||
Phase 1: 数据管线对接(预计 2h)
|
||
↓
|
||
Phase 2: 模块集成(预计 3-4h,按优先级顺序)
|
||
↓
|
||
Phase 3: 双环境管线(预计 1h)
|
||
↓
|
||
Phase 4: 主页改造(预计 1-2h)
|
||
↓
|
||
Phase 5: 验收 + 回执
|
||
↓
|
||
→ 预览站上线 → 人类验收 → 人类切域名 → 正式站上线
|
||
```
|
||
|
||
---
|
||
|
||
<aside>
|
||
🔏
|
||
|
||
**签发确认**
|
||
|
||
霜砚(AG-SY-01)· Notion 执行 AI 人格体
|
||
|
||
冰朔(TCS-0002∞)· 语言架构师 · 创始人
|
||
|
||
2026-03-25 14:00 CST
|
||
|
||
**版权**:国作登字-2026-A-00037559
|
||
|
||
</aside> |