Explorar el Código

life: 12-FmodeCode任务执行制度v1.0(五条军规+处置预案)

触发: 三任务静默失败事故(claude not found秒退被误报运行中/论文任务1h零产出+mode污染101文件/僵尸进程44h堆积)
军规: 启动三要素验证/进度心跳15min/产出验收不信退出码信落盘/僵尸晨检/串行调度+如实汇报
agent-yuyang001 hace 1 mes
padre
commit
23f697e6fa
Se han modificado 1 ficheros con 59 adiciones y 0 borrados
  1. 59 0
      life/COMPETENCIES/12-FmodeCode任务执行制度.md

+ 59 - 0
life/COMPETENCIES/12-FmodeCode任务执行制度.md

@@ -0,0 +1,59 @@
+# FmodeCode 任务执行制度(v1.0)
+
+> 2026-08-30 建立 · 触发:三任务静默失败/空转事故
+> 适用:所有数字生命通过 FmodeCode 执行的一切任务
+
+---
+
+## 五条军规(启动前检查单,缺一不可)
+
+### 军规1 · 启动三要素验证(防止秒退)
+启动 FmodeCode 前必须验证:
+```bash
+which claude                          # PATH 含 /opt/data/npm-global/bin
+echo ${ANTHROPIC_AUTH_TOKEN:0:8}      # 非 sk-8d0 开头的完整key
+cd <目标仓库> && git status            # 仓库可达
+```
+任一失败 → 修复后再启动。**启动后 60 秒内必须回看进程输出**,出现 command not found / Not logged in 立即纠正。
+
+### 军规2 · 进度心跳(防止空转)
+- 启动命令必须带心跳:任务起止各写一行时间戳到 `~/.fmode-harness-agent/tmp/fcode-progress.log`
+- **每 15 分钟无产出=异常**:检查进程 CPU 时间是否在增长(`ps -o time= -p <pid>`)。
+  CPU 不涨 + 无文件变更 = 空转 → 杀掉重派
+- 任务书中必须写明:**预算时间 + 阶段落盘要求**(哪怕半成品也先落盘)
+
+### 军规3 · 产出验收(防止假完成)
+- 不信退出码,只信**落盘物**:任务书里列明的每个交付文件,完成后逐一 `ls` 验证存在
+- 模式污染检查:`git status --short` 若出现大量 M 文件(>20)且 diff 为 0 insertions → `core.fileMode false` + checkout
+- commit 后 `git log --stat` 核对变更文件与任务书清单一致
+
+### 军规4 · 僵尸进程晨检(防止资源泄漏)
+每日(或每次发任务前)扫描:
+```bash
+# 孤儿脚本/残留server/僵死chrome
+ps aux | grep -E "login-sms|http.server|chrome-headless" | grep -v grep
+# 存活>2小时且非当前任务相关 → 确认后 kill
+```
+后台 server 用完即杀,不留"以后可能还用"。
+
+### 军规5 · 串行调度 + 状态如实汇报
+- 同一时刻**最多 1 个 FmodeCode 重任务**(模型 API + 仓库 IO 都是瓶颈)
+- 排队队列写进 todo;派发汇报必须基于 `ps`/log 实测状态,**禁止把"已启动"说成"运行中"**
+
+---
+
+## 处置预案
+
+| 症状 | 动作 |
+|---|---|
+| 启动即退出 | 修 PATH/env,重试一次;再败→改用 delegate_task 子代理 |
+| 运行>15min 无产出 | 杀掉,检查任务书是否太大→拆小重派 |
+| 运行>预算 1.5 倍 | 强杀,保留已有落盘物,Orchestrator 接管收口 |
+| 仓库被污染(mode/乱 M) | core.fileMode false → checkout → 记录事故 |
+| 连续 2 次同任务失败 | 换模型(claude-haiku)或换执行器(子代理),并上报用户 |
+
+## 监控闭环(与 agent-log-s3 联动)
+
+- agent-log cron 每 6h 自动上报(待安装:报告节奏连续化)
+- fcode-progress.log 人工可读,用户随时可查
+- 每日晨检:僵尸进程扫描 + progress.log 异常行回顾