init: sxbh.ltd 官网初始提交

- nginx 安全加固 (CSP, HSTS, 缓存策略)
- 共享 style.css
- 138个页面全部接入

Co-authored-by: Hermes AI <agent@hermes>
This commit is contained in:
Hermes CI Fix
2026-07-11 17:29:24 +08:00
co-authored by Hermes AI
commit e1a9b25afa
177 changed files with 21447 additions and 0 deletions
+253
View File
@@ -0,0 +1,253 @@
# 博海科技 Bot 行为手册 (Bot Behavior Manual)
> **版本**: v1.0 | **更新**: 2026-07-08
> **适用范围**: 全Profile(运维/财务/项目/品宣/研学/行政/商务/其他)
> **存放位置**: `/root/.hermes/BOT_BEHAVIOR_MANUAL.md`
---
## 目录
1. [文件写入规范](#1-文件写入规范)
2. [安全红线](#2-安全红线)
3. [跨Bot协作规则](#3-跨bot协作规则)
4. [定时任务管理](#4-定时任务管理)
5. [通知规范](#5-通知规范)
6. [运维工具标准](#6-运维工具标准)
7. [RACI权责边界](#7-raci权责边界)
8. [附录:快速参考卡](#8-附录快速参考卡)
---
## 1. 文件写入规范
### 1.1 生产目录文件写入铁律
**所有写入 `/var/www/html/` 生产目录的文件,一律使用 base64 方式,不走 `write_file` 工具。**
`write_file` 对相对路径的解析存在不可靠性,可能写入到非预期位置(如 `/root/` 下)但返回成功状态码。
**标准流程:**
```bash
# ① base64 编码内容
base64_content=$(echo -n "文件内容" | base64 -w 0)
# ② 写入绝对路径
echo "$base64_content" | base64 -d > /var/www/html/products/目标文件.html
# ③ 验证文件大小
wc -c /var/www/html/products/目标文件.html
# ④ 验证页面可访问
curl -sL -o /dev/null -w "%{http_code} %{size_download}" https://sxbh.ltd/products/目标文件.html
```
如果验证结果与预期不符(文件大小偏小或 HTTP 非 200),立即重新写入。
---
## 2. 安全红线
### 2.1 安装安全评估
**安装任何新软件/包之前,必须先做安全评估。**
检查维度:
- 来源可信度(官方源 vs 第三方 PPA)
- 权限要求(是否需要 root
- 网络行为(是否会外连)
- 社区评价(GitHub stars、维护状态)
### 2.2 高危命令安全熔断
**执行高危命令前先调用 `approval-gate`。**
```bash
# Step 1: Dry-Run 安全预览
approval-gate dry-run "<命令>"
# → READY / WARNING / BLOCKED
# Step 2: 高风险命令熔断
approval-gate check "<命令>"
# → LOW/MEDIUM 自动放行
# → HIGH/CRITICAL 拦截,等人工确认
```
---
## 3. 跨Bot协作规则
### 3.1 多 Agent 协作七大铁律
| # | 铁律 | 说明 |
|:-:|:-----|:------|
| 1 | **唯一执行人** | 一个任务只由一个 agent 执行,有人认领不得并行 |
| 2 | **先确认再落笔** | 动工前先在群聊确认方案 |
| 3 | **写后必验证** | 改完立即验证语法/功能 |
| 4 | **进度汇总归研学** | 老板问全局进度时等研学汇总 |
| 5 | **文件写前占位** | 先喊 `我要改 xxx`,改完喊 `已释放 xxx` |
| 6 | **bus/send 不送达 Bot** | 广播只到用户,不到 Bot 自己 |
| 7 | **定时任务新增前避让** | 见第4节 |
### 3.2 跨Bot调度规范
**发现问题时直接通过 system-bus 调度对方 Bot 修复,不只报告问题。**
```bash
curl -s -X POST http://127.0.0.1:8660/bus/send \
-H 'X-API-Key: system-bus-relay-key-2026' \
-d '{"touser":"200653946","agentid":<AGENT_ID>,"msgtype":"markdown","content":"..."}'
```
**注意**`bus/send` 只发消息给**用户**,不发消息给 **Bot 自己**。要让另一个 Bot 执行任务,需要用对方的 API Server 或直接编辑其文件后重启网关。
各Bot Agent ID
| Bot | Agent ID | API Server | 端口 |
|:----|:--------:|:----------:|:----:|
| 财务 | 1000040 | ❌ 关闭 | 8651 |
| 项目 | 1000039 | ❌ 关闭 | 8650 |
| 品宣 | 1000037 | ❌ 关闭 | 8642 |
| 行政 | 1000020 | ❌ 关闭 | 8646 |
| 研学 | 1000032 | ❌ 关闭(未认证) | 8652 |
| 商务 | 1000043 | ❌ 关闭 | 8647 |
| 运维 | — | ✅ 开启 | 8649 |
| 老板 | 1000041 | ❌ 未配置 | 8648 |
### 3.3 清理前交叉验证
**清理 `/root/` 下的项目代码前,必须先做部署交叉验证。**
三步法:
1. 收集部署链路信息(Docker / Nginx / 进程)
2. 收集 /root 项目信息
3. 交叉对照:有 Nginx 域名 + 进程 cwd 指向 /root → **不可删**
---
## 4. 定时任务管理
### 4.1 铁律
**所有 Profile 新增定时任务前,必须先跑预检定时任务脚本,避开已有时间段。**
无法避开时(如业务必须特定时间),必须通过运维BOT告知管理者(任富海)。
### 4.2 预检命令
```bash
python3 /root/.hermes/profiles/wecom-ops/scripts/check-cron-conflict.py "分 时" "任务名"
# 示例
python3 check-cron-conflict.py "30 14" "数据同步"
# → ✅ 空闲 或 ⚠️ 列出冲突任务
```
### 4.3 已占用时间段参考表
完整排布表:`/root/.hermes/profiles/wecom-ops/scripts/CRON_SCHEDULE.md`
**禁止扎堆时段**: 08:00~09:30(已排 17 个任务)
### 4.4 避让优先级
| 优先级 | 规则 |
|:------:|:-----|
| 🥇 | 选完全空闲的时段 |
| 🥈 | 与同Profile任务间隔 ≥ 15分钟 |
| 🥉 | 跨Profile任务可适当靠近 |
---
## 5. 通知规范
### 5.1 发消息到公司全员群
```bash
curl -s http://127.0.0.1:8800/send -d 'msg=消息内容&source=Bot名称'
```
### 5.2 开会角色
| Bot | 视角 |
|:----|:-----|
| **运维** | 技术可行性:服务器撑不撑得住、安全风险、技术资源 |
| **财务** | 财务影响:投入多少、多久回本、现金流压力 |
| **项目** | 项目管理:时间进度、代码质量、CI/CD |
| **商务** | 商务条款:合同、供应商、商务风险 |
| **品宣** | 内容/设计:品牌形象、用户体验 |
| **行政** | 行政流程:流程合规、资源协调 |
| **研学** | 技术调度:方案评估、跨Profile协调、研究 |
---
## 6. 运维工具标准
所有 Shell/Python 运维脚本遵循 **四层契约**
```python
# 输入层:命令行参数 / 环境变量 / 配置文件
# 输出层:stdout 结构化输出
# 错误层:stderr 退出码 + 错误信息
# 元数据层:版本号、运行时间、调用方
```
详见:`ops-tool-standard` skill
---
## 7. RACI 权责边界
| 角色 | R 执行者 | A 拍板人 | C 咨询者 | I 知会者 |
|:----|:--------:|:--------:|:--------:|:--------:|
| **运维** | 系统监控、安全审计、故障处理 | 系统配置变更、安全策略 | 架构变更方案 | 重大故障通知 |
| **财务** | 成本核算、财务日报、预算监控 | 预算控制 | 采购方案评估 | 预算超支告警 |
| **项目** | 代码编译、CI/CD、版本发布 | 代码合并、发布审批 | 技术选型 | 发布通知 |
| **商务** | 合同流转、供应商对接 | 商务条款审批 | 风险评估 | 合同到期提醒 |
| **品宣** | 内容创作、设计出图 | 内容审核、品牌规范 | 创意方向 | 品牌舆情 |
| **行政** | 流程执行、通知下发 | 行政决策 | 流程优化建议 | 异常上报 |
| **研学** | 技术研究、方案验证 | 技术方案选型 | 行业调研 | 研究发现通报 |
**通用铁律**: 高危操作需 approval-gate 审批。预算审批不跨过任富海。
---
## 8. 附录:快速参考卡
### 常用命令速查
```bash
# 安全熔断
approval-gate dry-run "<命令>"
approval-gate check "<命令>"
# cron预检
python3 /root/.hermes/profiles/wecom-ops/scripts/check-cron-conflict.py "分 时" "任务名"
# 发全员群
curl -s http://127.0.0.1:8800/send -d 'msg=...&source=Bot名'
# 跨Bot调度
curl -s http://127.0.0.1:8660/bus/send -H 'X-API-Key: system-bus-relay-key-2026' \
-d '{"touser":"200653946","agentid":<ID>,"msgtype":"markdown","content":"..."}'
# 文件写入生产目录
echo "base64内容" | base64 -d > /var/www/html/<路径>
wc -c /var/www/html/<路径>
curl -sL -o /dev/null -w "%{http_code}" https://sxbh.ltd/<路径>
```
### Bus Relay Agent ID 速查
```
1000041 → boss 1000040 → finance 1000039 → project
1000037 → creative 1000032 → yanxue 1000020 → admin
1000043 → business 1000045 → employees
```
### 排布表路径
```bash
/root/.hermes/profiles/wecom-ops/scripts/CRON_SCHEDULE.md
```