04-开发-同构定时自动化族编排与双重保障SOP
> 运营层技能。当同一项目挂了多个「每日定时」自动化时,怎么登记、怎么错峰、怎么保证不互相打架,
> 以及「常驻记忆规则(主) + 定时兜底(备)」这套双重保障怎么配。
> 与 04-开发-每日定时备份自动化执行与判成败SOP 是不同层:那个管单轮怎么判成败,本包管一族怎么编排。
适用场景
- 同一项目已有 ≥2 个定时自动化,还要再加新的(时刻怎么排?会不会撞车?)。
- 某件事需要「每轮对话都做」+「每天兜底补一次」(如问答归档、技能固化)。
- 排查「为什么今天该跑的没跑 / 跑出来是空的 / 两份记录对不上」。
操作步骤
- 建族登记表:每条自动化记全「ID + 名称 + 频次 + 时刻 + 类型(重 IO / 文档 / 沉淀)+ 产物落点」。
本项目实测在册 6 条(时刻全部错峰):
- 03:005ae7d52e数据库自动备份(重 IO·凌晨)
- 21:3064fca0e7开发记录自动归档(问答·双重保障)
- 21:40664915cb开发记录汇编自动重建(文档·仅定时)
- 22:0024695f12技能固化归档(沉淀·定时 + 手工补批)
- 08:0049c35f40/ 09:0088a5487b写稿类(非本项目交付,但排期时需避让) - 错峰编排:相邻两条间隔 ≥10 分钟;重 IO(备份/迁移)一律放凌晨;文档与沉淀类放晚间;
同族任务按「产出 → 归档 → 汇编 → 固化」的依赖顺序排,不要倒挂(先固化再产生新素材等于白跑)。 - 定保障结构(二选一,必须写清):
- 双重保障:主保障=常驻记忆规则(如MEMORY.md第十四节,每轮开发对话即时执行、无需提醒);
备=定时兜底(只抓漏,不重复造)。→ 适用问答归档、技能固化这类「随时发生」的事。
- 仅定时:产物由构建器重建式覆盖,每天跑一遍即可。→ 适用汇编、报告这类「由源重建」的事。 - 幂等设计:产物一律重建覆盖、不累积副本(构建器先
os.remove再写);
源无变化时应产出与上版一致的结果,而不是新增一份。 - 不可用纪律写进 prompt:数据源/检索不可用时不臆造——只记「检索不可用 / 本日无新增」。
锚点:conversation_search在本环境对历史对话恒返回 0 条 → 兜底自动化如实记「无可捕获的新问题」,不编问题。 - 双落留痕:当日工作日志 +
.workbuddy/memory/automations/<automation_id>/memory.md两处都记,
且用同一套要素模板(否则两边各缺一块)。 - 跑完体检:落完记录立刻跑对应体检器(
daily_backup_run_check/qa_archive_check/docx_merge_check/ 本包automation_family_check)。 - 无新增就如实记无新增:不做无谓改动,不为了"有产出"硬凑。
注意边界
- 名义时刻 ≠ 实际时刻:实测 03:00 的备份实际跑在 07:39 / 08:11 / 10:15。排查时序问题必须读记录里的真实时刻。
- 兜底不得与主保障抢数据:主保障已在每轮写了,兜底就只做「补缺 + 重建」,不要二次写入造成重复编号。
- 同族自动化共享的源目录要写清写锁顺序:两个任务同时写同一 docx 会互毁 → 靠 ≥10 分钟错峰 + 覆盖写规避。
- 降敏:自动化 prompt 与记录里不得出现真名/单位(U1–U4 / E1 代号化)。
- 未验证的设想不入库:技能固化自动化对「讨论中/未定方向」的内容一律不固化。
反例避雷
- ✗ 兜底在检索无结果时"补"内容:问答兜底自动化若检索返回 0 却仍写几条问题 → 臆造。
解法:prompt 里写死「检索不可用或无可捕获时不臆造」。 - ✗ 同刻/近刻撞车:两条重任务相隔 <10 分钟抢同一个产物文件。解法:登记表先排时刻再上线。
- ✗ 只改产物不落日志:次日无法判成败,也无法回答"昨天到底跑了没"。解法:双落 + 跑完体检。
- ✗ 双落各写各的(2026-10-23 实测):同一轮备份的当日日志写了「三不」声明却漏
backup.py list在列;
自动化记忆写了 list 在列却漏「三不」声明 → 两份单独体检各 FAIL×1,合并才 PASS。
解法:同一套要素模板 + 落完各跑一遍体检器,双落不等于双保险。 - ✗ 为了"今天要有产出"硬凑候选:同日重复触发时三来源不可能有新素材,如实记「本日无新增」即可。
代码锚点 / 实战战绩
- 自动化记忆目录
D:/家庭管理系统HFMS/.workbuddy/memory/automations/<id>/memory.md(每自动化一份,高层摘要,不写正文产出)。 - 常驻规则锚点:
MEMORY.md第十三节(技能固化纪律,22:00)、第十四节(问答归档纪律,21:30)。 - 构建器族:
.workbuddy/build_devrecord_compile.py(21:40)/.workbuddy/regen_qa_docx.py(21:30)/
程序源代码/backup.py(03:00)/.workbuddy/build_skills_*.py(22:00)。 - 战绩:备份自动化自 2026-10-12 起连续 12 次成功(98 表 / 5770 行(时点值,非稳定基线,见「基线口径订正」节)一致);
问答兜底当日执行 2 次均如实记「检索不可用」;技能固化累计 14 批、在册 103 个技能(2026-10-26);汇编自动化 21:40 首建并跑通。 - 附包体检器
scripts/automation_family_check.py:登记记录 PASS;
「每天跑一次,重新生成,内容有补充时会自动加几条」反例 FAIL×7。
关联笔记
04-开发-每日定时备份自动化执行与判成败SOP(单轮判成败七要素)。04-开发-问答自动归档与每日回溯SOP(双重保障范式的首个实例:常驻规则 + 21:30 兜底)。04-开发-技能自动固化与归档SOP(22:00 沉淀批次的作业流程)。04-开发-多docx保真合并与自动汇编重建SOP(仅定时型 + 重建式幂等的实例)。00-总纲-显式指派待办跨批次消费与挂起触发条件法(跨批次交接,避免自动化之间互相漏活)。
基线口径订正(2026-10-26)
撤回说明:本包战绩中「98 表 / 5833 行一致」的「5833 行」为时点值,不是稳定基线。
2026-10-25 第 14 次定时快照实测 5770 行(−63),该数值已被证伪(差异全部落在
sessions / page_cache / audit_log / settings 等易变表,业务台账表只增不减,非数据丢失)。
正确口径:表数属结构基线可硬比(基准 98);行数一律做与上一份快照的表级 diff,易变表豁免。
权威出处:05-测试-历史基线数值失效与表级差分校验法。
版本记录
- v1.0(2026-10-23 第十四批):首版固化。把已运行 12 天、在册 6 条自动化的编排经验成文;
附scripts/automation_family_check.py只读体检器(正反例实测)+references/正例_20261023_自动化族登记表.md。 - v1.1(2026-10-26):订正战绩中「5833 行」伪基线(被 2026-10-25 实测 5770 推翻),改按表级 diff + 易变表豁免;
另补记技能固化批次已至 16 批、在册技能 103 个。