Files
MoFin/docs/zhiwei-ops-discipline.md
T
hmo a69b246c57 feat(guard): 部署一致性守卫 deploy_guard.py + 知微运维纪律 + 健康JSON移出跟踪
- deploy_guard.py (15min cron): 代码漂移自动回滚(仅未提交改动)+
  session-work可快进时自动merge部署+幂等重链+cron引用完整性,
  状态落盘JSON, 有动作即XMPP报备
- docs/zhiwei-ops-discipline.md: 知微纪律——禁止直接编辑被跟踪代码/
  禁stale提交/禁直调gateway批量LLM; 自愈白名单(rerun/restart/
  sync/switch_key)本不改代码, 与纪律不矛盾; 紧急热修走git流程,
  提交到session-work后guard 15min自动部署
- dev-spec 红线#6 补充部署守卫机制
- static/mofin_health.json 移出git跟踪(运行时产物, 常驻dirty
  会废掉漂移检测)
2026-07-21 01:17:01 +08:00

3.2 KiB
Raw Blame History

知微运维纪律(2026-07-21 生效)

由小小莫(Sisyphus)与老爸共同制定。核心原则:实际部署的脚本 = MoFin git 最新版代码。 违反本纪律的改动会被 deploy_guard.py(每 15 分钟)自动回滚并告警。


一、绝对禁止

  1. 不得直接编辑 /home/hmo/MoFin/ 下任何被 git 跟踪的代码文件(包括 deploy/profile-scripts/、根目录 *.pyserver.pystatic/*.htmlprompt_manager/)。部署守卫每 15 分钟扫描,未提交的工作区改动一律自动 git checkout 回滚,并通过 XMPP 告警
  2. 不得直接编辑 /home/hmo/.hermes/profiles/*/scripts/ 下的文件——那些是指向 canonical 的硬链接,编辑它们 = 编辑 canonical + 造成断链漂移
  3. 不得在未 git pull --rebase 的情况下提交代码2026-07-20 17:31 事件:基于过期 checkout 提交,回滚了 candidate_filter busy_timeout 和 premarket Step1.5 两处修复)
  4. 不得直接调用 hermes gateway /v1/chat/completions 做批量 LLM 调用——那是 agent 运行时不是透传(dev-spec 红线#11603288 事件:单次调用螺旋 35 分钟/44 次 terminal/153k token)。批量调用一律用 llm_client.call_llm()OCG 直连)

二、自愈系统如何在纪律下运作(不矛盾)

L3 自愈(self_repair.py)的动作白名单本来就不改代码guard 不会干预:

白名单动作 性质 guard 态度
rerun_script 重跑脚本 允许
restart_service 重启 systemd 服务 允许
sync_links 重链硬链接 允许(与 guard 同向)
switch_llm_key 切换 LLM key(改 hermes config,非 MoFin repo 允许
none(只报告) 报备 允许

key 切换、服务重启、任务重跑、硬链修复——自愈能做的一切都不需要碰代码。

三、当判断"需要改代码"时

路径 A(首选):kanban 提单给小小莫

描述问题+证据+建议方案,小小莫处理。适用于一切非紧急情况。

路径 B(紧急热修):走 git 正规流程

cd /home/hmo/MoFin
git pull --rebase          # 必须第一步!否则回滚别人的修复
# 修改代码
python3 -m py_compile <改动的文件>
# 最小化验证(能跑就跑一下)
git commit -m "fix: <原因>"
git push origin master:session-work   # 或留本地并立即 XMPP 通知小小莫合并
  • git 提交永远安全:guard 只回滚未提交的工作区改动,不动 commit
  • 提交到 session-work 后,guard 会在 15 分钟内自动 merge 到 master 并完成部署(含重链、dashboard 重启)
  • 提交前不 pull = 纪律违规(见一.3)

四、guard 的自动部署回路

任何机器 push → 246 repo session-work 分支
  → deploy_guard15min)检测领先且可快进
  → 自动 merge → sync_profile_scripts.sh 重链
  → 触及 server.py/static 时自动重启 mofin-dashboard
  → XMPP 报备

五、数据/运行时产物不受限

data/gateway/logs/static/mofin_health.json 等运行时产物不在守卫范围,正常读写无碍。


依据:dev-spec 十条红线 + 2026-07-20 stale 提交事件 + 2026-07-21 gateway agent 螺旋事件