初始化提交:contentm_agent 工作区全量快照

内容分四块:
1、产品规划产出 —— MCN 短视频整合营销工作台的①段五份(1a 需求/1b 竞品/1c 画像/1d 策略/1e 场景)、②段两份(2a 功能/2b 布局)、③段界面(DESIGN.md 契约与令牌表 + mcn-workbench.html 原型 + 实测/会诊/审查三份 + 23 张闸门截图)。
2、开源竞品调研 —— 5 个内容工作台项目的取证原始件与 1b 系列分析文档。
3、参考资料 —— 竞品视频抽帧 1145 张 + 2 个源视频 + 功能点截图。
4、机制侧 —— 协作脚本与状态台账、工作区记忆日志、抽帧/OCR 脚本。

.gitignore 只排运行时日志、脚本备份副本与一次性探针输出,其余按原样入库。
This commit is contained in:
WorkBuddy committed 2026-10-08 08:13:02 +08:00
commit df56c2c137
1773 files changed
+205840

No files matched your search

@@ -0,0 +1,24 @@
# 自动化执行记忆 · 目标检查会话(0f1aa654)
> 只记高层的「跑过什么、结论是什么、下次要注意什么」,⛔ 不抄交付物正文。
## 2026-10-07 23:49 · 第 1 次跑(目标检查会话 · 第 10 棒)
**输入**:`state.py`(⛔ 该文件在本工作区**不存在**,跑它会 `No such file`;本轮改跑 `goalctl.py` 默认视图拿快照)/`tasks.json`/`taskgraph.json`/`goal.json`/`72111e/目标执行状态.md`/`collabd.py --domain-status`。
**结论**:目标**未完成**(判据 5「技能包规则文件已全量过说人话」、判据 6「vibe-product 六份①②段文档已重写」均 `🔴 不过`;其余 5 条 `过`)。
三路:台账 10 条全 `done`/队列空/无僵尸件;`taskgraph.json` **不存在**;判据 5 过 2 不过。
**本轮动作**
1. ✅ 修 `goal.json.acceptance_state` 值域:原 7 条全写「未过」(不在取值域)⇒ 用 `goalctl.py declare --kpi`(先干跑读回显、再 `--yes`)改写为 `过|…`/`🔴 不过|…`,**回读 goal.json 确认**。
2. ⛔ 不派新棒(两条不过判据只剩**落地**,落点一为域外 `E:/ProgramData/.workbuddy/skills/`、一为跨区 `vibe-product/` ⇒ 本区任务会话受域门禁写不了)。
3. ⛔ 不改 `lifecycle`(保持进行中);⛔ 未跑 `--ensure-goal-dir`(本区 `roles` 为空,会把检查会话登记成主会话)。
4. ✅ 按文档合同更新 `72111e/目标执行状态.md`(加「第 10 棒」节,旧的降级为「上一棒判定」)。
**下次要注意(易复发)**
- `state.py` 在本工作区**不存在** ⇒ 派活原文里那条命令会空手而归;快照改走 `goalctl.py`(无参)或 `collabd.py --check-status`。
- `taskgraph.json` 在本工作区**始终不存在** ⇒ 三路里的第 ② 路恒为空,别当成"读不到就是故障"。
- `goal.json.execution_doc` 仍漂在**旧目标目录**(`…-5199a6/`)⇒ 只有 main 席位跑 `--ensure-goal-dir` 才能对齐;检查会话跑会污染 `roles`。
- 前 3 棒都因「本轮是没做完分支」而**始终没修** acceptance 值域 ⇒ 值域不属于"做完了分支",**该修就修**(本轮已定这个口径)。
- 判据键**必须与 goal.json 逐字一致**(如「5份竞品分析已按独立分析体重写」,⛔ 别按旧文档里的「受影响的1a需求文档条目已逐条复核」以外的旧措辞写)。
- `--kpi` 按 `;`/`;` 切、条目内断句只能用 `,`/`、`/`。`/`——`。
@@ -0,0 +1,28 @@
# 自动化执行记忆 · 1baf3a23-45e3-4249-bbca-4a68868e6448
## 这是什么
目标检查会话(同一目标的多棒检查链)。每棒只做一件事:核对目标完成状态,做完即停。
## 目标
「重写 5 份竞品分析文档并重新生成 MCN 短视频整合营销需求文档」
- 目标目录:`执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/`
- 唯一判定依据:该目录下 `目标执行状态.md`
- topics:开源项目调研|lifecycle:进行中
## 执行历史
- 2026-10-08 01:50 · 第 14 棒:**判定目标未完成**(台账 10 条全 done、taskgraph.json 不存在、判据 7 条 = 5 过 / 2 不过)。
- 两条不过判据(技能包规则全量说人话、vibe-product 六份①②段重写)的**唯一剩余动作都是跨边界文件落地**:
落点分别在全局技能目录 `E:/ProgramData/.workbuddy/skills/product-planning/` 与另一个工作区
`E:/ProgramData/AIProject/vibe-product/docs/pm/proto-board/` ⇒ 本区任务会话域门禁写不了 ⇒ **未派棒**。
- L3 现测:两处落点 mtime 全部早于同名新稿(技能包 21:45/21:53/21:29/20:23/01:20 vs 新稿 23:01–23:08;
vibe 六份 01:46–01:47 vs 新稿 23:29–23:31)⇒ 落地确实未做。
- 处置:未派棒、未改 lifecycle、未改 acceptance_state(值域已规范、与文档逐条一致)、未跑 `--ensure-goal-dir`(本区 roles 为空)、未动代码。
- 判定书已写入 `目标执行状态.md`(第 14 棒节置顶,第 13 棒降为历史)。
- 机制侧:连建 14 棒,第 8–14 棒结论完全相同 ⇒ 持续空跑,收口须用户定。
## 每棒固定注意
- 派活原文指定先读的五样里,`state.py` 与 `tmp/supervise-inbox/taskgraph.json` 在本工作区**不存在**(历棒同报);缺时用 `collabd.py --check-status` 替代读数。
- `goal.json.execution_doc` 仍指旧目标目录(`…-5199a6/目标执行状态.md`)⇒ 判定一律以本目标目录那份为准。
- ⛔ 不要读 `tmp/supervise-inbox/queue.json`(已退役旧机制,内容过期)。
- ⛔ 不要在本工作区无边界翻文件(会被判重复执行)。需要核实时只测 `目标执行状态.md` 里点名的两处落点的 mtime。
- 待用户拍板项(已连提 7 棒):①「全量」口径 16/19/83;② 检查会话连棒阈值是否收窄;③ 两条跨边界落地由谁执行。
@@ -0,0 +1,13 @@
# 自动化执行记忆 · `20661a85-…`([检查]-[目标检查]-content_marketing_agent 排期)
> 本文件只记**高层执行摘要**,⛔ 不放完整产出正文。
## 2026-10-07 22:20 · 第 7 棒(reason=queue-empty,idle 14.4 min)
- **输入**:`state.py`(**路径不存在**,未跑成)|`tasks.json`(7 条全 done,6 条属旧目标 `5199a6`、1 条属本目标 `72111e`)|`taskgraph.json`(**不存在**)|`goal.json`(title=重写 5 份竞品分析文档并重新生成 MCN 需求文档;lifecycle=进行中;`acceptance_state` **7 条全「未过」**,非规范取值域;`execution_doc` 仍指**旧目标**目录)|`collabd.py --domain-status`(1 条在册域锁 `ai1net-dsh-anywhere`)+ `--domain-check 执行会话`(✅ 可派|域空闲)。
- **判定**:**目标未完成**。三路:① 台账全 done 但本目标仅 1 条;② 任务图缺失;③ 判据 7 条全部非「过」。
- **关键新增取证**:21:55 那棒 `[执行]-[开源项目调研]-重写竞品独立分析体`(`4e470d4c`)**已真跑完并 done 上报**(`6ec1b428`,22:01:45;`证据附卷/` 5 份文件 mtime 21:40~22:01)⇒ 第 6 棒留下的「活有人干」悬念落地。
- **动作**:派 1 条执行棒 `[执行]-[开源项目调研]-重生成MCN需求文档`(id `e74db4d4`,once,22:25,`cwds` 逐字=本工作区,域 `执行会话`,含域门禁块)⇒ 接判据 2/3/4。**不改 lifecycle**。
- **未做**:⛔ 没跑 `--ensure-goal-dir`(本区 `roles` 为空 ⇒ 会把检查会话登记成主会话);⛔ 没写 `acceptance_state`(逐条依据取证不到位,依「不确定就不改」)。
- **留给主会话**:① `execution_doc` 漂移需 main 席位跑一次 `--ensure-goal-dir`;② 判据值域「未过」需改规范写法(功能等价,机器读数已是「未完成」);③ 落点口径(新版落目标目录,是否覆盖工作区根 `docs/` 那份待裁定)。
- **产出**:更新 `执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/目标执行状态.md`(新增 §〇 最新判定,原 §一~§七 标为历史)。
@@ -0,0 +1,24 @@
# 自动化记忆 · 目标检查会话(第 5 棒)
> 排期:`[检查]-[目标检查]-调研5个开源内容工作台项目并生成分析文档-第5棒`
> 目标:调研 5 个开源内容工作台项目并生成分析文档(goal_fp `5199a6`)
> 工作区:`E:\ProgramData\AIProject\content_marketing_agent`
## 执行历史
### 2026-10-07 18:43–18:45 · 第 5 棒(本轮)
- **读取范围**:严格限于指定五份输入(`state.py` / `tasks.json` / `taskgraph.json` / `goal.json` / `目标执行状态.md`)+ 域状态;⛔ 未在工区无边界翻找,⛔ 未读已退役的 `queue.json`。
- **事实读数**:`state.py` 不存在(本区确无);`tasks.json` 6 条全 `done`、无 `running`(无僵尸件);`taskgraph.json` 不存在;`goal.json` `lifecycle`=进行中、`acceptance_state` 五条为**过期副本**(全「未过」);`目标执行状态.md` 六/六之二五条全「过」、§七主线收口。
- **判定**:**目标已完成**。依据=文档(本轮唯一依据)验收判据五条全过 + 台账全 done + 目标目录内 6 份产物齐(总览 1 + Postiz/PostSider 1 + Easel 1 + OpenCreator 1 + 文到AI 1 + 跨项目汇总 1)。
- **关键裁决(可复用)**:`goal.json.acceptance_state` 与状态文档打架时——**比 mtime**。本轮 `goal.json` 18:28:24(重声明判据时被重置为「未过」)**早于**文档 18:34:18(收口后回写)⇒ 采信文档。口径出处:任务书「acceptance_state 是机读副本,可能与文档不同步 ⇒ 以文档为准」。
- **动作**:`collabd.py --set-life 已完成 --by "[检查]-[目标检查]-…-第5棒"` ⇒ 回显「进行中 → 已完成」;文件级复核 `goal.json` `lifecycle`=已完成 / `lifecycle_at`=`2026-10-07T18:44:38` ✔
- **副作用(如实登记)**:收口后**常驻程序已优雅退出**(pid 38240,因「目标已完成」)。若后续继续做本目标,须重开目标 / 重起常驻。
- **未做**:⛔ 未派任何执行棒(无缺口)、⛔ 未建排期、⛔ 未同步 `acceptance_state` 副本(越出「只做一件事」范围,仅留痕)。
## 给后续轮次的提示
- 本目标已收口(`lifecycle`=已完成)。**若再触发本目标的检查会话,先看 `goal.json.lifecycle`**:已是「已完成」且台账全 `done` ⇒ **收工**,⛔ 不必再判、⛔ 不再派棒。
- `goal.json.acceptance_state` 仍是「未过」的过期副本 —— **⛔ 不要据此判目标未完成**(已由本轮 mtime 裁决过一次);要判就读 `目标执行状态.md`。
- 本区**无** `state.py`、**无** `taskgraph.json` —— 这是既存形态,⛔ 不是故障。
- ⛔ 不要读 `tmp/supervise-inbox/queue.json`(已退役旧件,内容过期且与台账结论相反)。
@@ -0,0 +1,14 @@
# 目标检查会话(第 8 棒及以后)· 执行流水
工作区:`E:/ProgramData/AIProject/content_marketing_agent`
目标:重写 5 份竞品分析文档并重新生成 MCN 短视频整合营销需求文档(目标目录 `执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/`)
---
## 2026-10-07 22:5x · 第 8 棒
- 判定:**目标未完成**(三路并集:台账 8 条全 done/`taskgraph.json` 不存在/`acceptance_state` 7 条全非「过」)。
- 关键取证(L3):判据「技能包规则全量说人话」与「vibe-product 六份重写」**均未过**;判据 1~4 已由产物坐实完成。
- 处置:派 1 条执行棒 `[执行]-[开源项目调研]-技能包规则全量说人话`(`ed3dd62e`,once 22:57,域 `执行会话`);不改 lifecycle;未派第二条(vibe-product 属另一工作区,S 红线拦住)。
- 产出:更新 `…-72111e/目标执行状态.md`(新增 §〇 第 8 棒判定)。
- ⚠️ 环境事实:派活原文提到的 `state.py` 与 `tmp/supervise-inbox/taskgraph.json` **本工作区都不存在** —— 前两路输入取不到是常态,判据主要靠 `tasks.json` + `goal.json` + 目标执行状态文档。
@@ -0,0 +1,15 @@
# 自动化执行记忆 · `39053be1-…`([检查]-[目标检查]-content_marketing_agent 排期)
> 本文件只记**高层执行摘要**,⛔ 不放完整产出正文。
## 2026-10-07 21:49 · 第 6 棒(reason=queue-empty)
- **输入**:`state.py`(路径不存在,未跑成)|`tasks.json`(6 条全 done)|`taskgraph.json`(**不存在**)|`goal.json`(title=重写 5 份竞品分析文档并重新生成 MCN 需求文档;lifecycle=进行中;`acceptance_state` 5 条全「未过」;`execution_doc` 指向**旧目标**目录)|`collabd.py --domain-status`(1 条在册域锁)。
- **判定**:**目标未完成**;但 `[执行]-[开源项目调研]-重写竞品独立分析体`(21:55)**已在册** ⇒ **不派活、不改 lifecycle**。
- **产出**:手工补建 `执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/目标执行状态.md`(记判定、判据缺口、异常)。
- **发现(留痕,供后续棒)**:
1. `--ensure-goal-dir` 在 `roles` 为空时会把**检查会话登记成主会话** ⇒ 只能由主会话跑。
2. 换目标后 `goal.json.execution_doc` 未对齐,仍指旧目标文档。
3. 派活前提「无待执行排期」与实况不符(21:55 执行棒已在册)⇒ 常驻那道闸未拦住,本轮为空跑。
4. 判据第 5 条(产物落本目标目录)与 21:55 棒的落点(旧目标 `5199a6/…/证据附卷/`)互斥。
- **未做**:未派任何排期;未改 `goal.json`/`lifecycle`/`acceptance_state`。
@@ -0,0 +1,25 @@
# 自动化执行记忆 · 3a88f456-5016-4048-b37d-aa7931ed3ffe
## 这是什么
目标检查会话(同一目标的多棒检查链)。每棒只做一件事:核对目标完成状态,做完即停。
## 目标
「重写 5 份竞品分析文档并重新生成 MCN 短视频整合营销需求文档」
- 目标目录:`执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/`
- 唯一判定依据:该目录下 `目标执行状态.md`
- topics:开源项目调研|lifecycle:进行中
## 执行历史
- 2026-10-08 01:20 · 第 13 棒:**判定目标未完成**(台账 10 条全 done、taskgraph.json 不存在、判据 7 条 = 5 过 / 2 不过)。
- 两条不过判据(技能包规则全量说人话、vibe-product 六份①②段重写)的**唯一剩余动作都是跨边界文件落地**:
落点分别在全局技能目录与另一个工作区 ⇒ 本区任务会话域门禁写不了 ⇒ **未派棒**。
- 处置:未派棒、未改 lifecycle、未改 acceptance_state(值域已规范)、未跑 `--ensure-goal-dir`(本区 roles 为空)、未动代码。
- 判定书已写入 `目标执行状态.md`(第 13 棒节置顶)。
- 机制侧:连建 13 棒,第 8–13 棒结论完全相同 ⇒ 持续空跑,收口须用户定。
## 每棒固定注意
- 派活原文指定先读的五样里,`state.py` 与 `tmp/supervise-inbox/taskgraph.json` 在本工作区**不存在**(历棒同报);缺时用 `collabd.py --check-status` 替代读数。
- `goal.json.execution_doc` 仍指旧目标目录(`…-5199a6/目标执行状态.md`)⇒ 判定一律以本目标目录那份为准。
- ⛔ 不要读 `tmp/supervise-inbox/queue.json`(已退役旧机制,内容过期)。
- ⛔ 不要在本工作区无边界翻文件(会被判重复执行)。需要核实时只测 `目标执行状态.md` 里点名的两处落点的 mtime。
- 待用户拍板项(已连提 6 棒):①「全量」口径 16/19/83;② 检查会话连棒阈值是否收窄;③ 两条跨边界落地由谁执行。
@@ -0,0 +1,32 @@
# 自动化记忆 · [检查]-[目标检查]-content_marketing_agent 系列
> 用途:跨棒次留存「目标检查会话」的执行史(判了什么、派了什么),避免重复判断与重复派活。
## 第 2 棒(2026-10-07T17:00,会话 c12b39bd)
- **目标**:调研 5 个开源内容工作台项目并生成分析文档(`goal_fp=5199a6`)。
- **判定=目标未完成 ⇒ 派第 3 棒**(未动 `lifecycle`,仍为「进行中」)。
- **判据三路**:
- ① `tasks.json`=2 条全 `done`(`52ace70a`、`a41bb3a3`),无 `pending/running/blocked` ⇒ 无僵尸件。
- ② `taskgraph.json` **文件不存在**(配置里 `taskgraph: ""`)⇒ 本路无 nodes,不构成「未完成」证据。
- ③ `目标执行状态.md`(**以文档为准**,`goal.json.acceptance_state` 5 条全「未过」是过期副本):
五份单项目文档**只出 2 份**(5 项目总览 + Postiz/PostSider 合并)⇒ 判据①③ **未过**;余 Easel / OpenCreator / 文到 AI / 跨项目汇总 四项。
- **派活**:automation `4d1a0005-4e4b-4516-9847-48da8b6e1d75`,名 `[执行]-[开源项目调研]-Easel深度分析`,
`once` @ `2026-10-07T17:06`,`cwds`=`E:\ProgramData\AIProject\content_marketing_agent`。**只建这一条**,建完即停。
- **域门禁**:`--domain-status`=在册锁 1 条(`ai1net-dsh-anywhere`,与本目标无关);
域=`执行会话`(工作区第一层目录;目标目录在其下 ⇒ 域锁与「产物必须落目标目录」两条同时满足);
门禁块由 `--domain-block 执行会话` **现取**(⛔ 未手抄)。
- **沿用并写进派活 prompt 的判据经验**:`--report` 的 id 用 `$CODEBUDDY_SESSION_ID`(=会话 id,**不是** automation id,
实测台账键与会话 id 逐字相同);`--artifact` 一律传**工作区相对路径**(绝对路径会被 `artifact_dir_ok()` 误报越界)。
- **离场时未做**:未代任务会话干活、未改 `lifecycle`、未建第二条排期。
## 第 1 棒(2026-10-07T16:30,automation a524d2a7)
- 判定=目标未完成(当时只出 1 份总览)⇒ 派第 2 棒 `eb92aced`(Postiz/PostSider 同源双形态分析)。
## 待留意(下棒检查时先看这里)
- 目标余项:**Easel(第 3 棒,已派)→ OpenCreator → 文到 AI → 跨项目汇总**。
- ⚠️ **文到 AI 一项是「功能语义分叉」**:该仓库无业务源码(README 明示闭源)⇒ 按现判据做不出「源码级分析」,
须提报用户定「是否仍按开源项目深度分析做」,⛔ 不得由执行棒自行降级。
- ⚠️ `goal.json.acceptance_state` 仍是全「未过」的过期副本;派活/检查时**一律以 `目标执行状态.md` 为准**。
@@ -0,0 +1,31 @@
# 自动化执行记忆 · `[执行]-[开源项目调研]-Easel深度分析`
> automation id:`4d1a0005-4e4b-4516-9847-48da8b6e1d75` | 目标指纹:`5199a6`(调研 5 个开源内容工作台项目)
> 会话名:`[执行]-[开源项目调研]-Easel深度分析` | 会话 id:`a4993b72-040e-49db-beb4-375f5201ff61`
> 一次性排期(`once`),**不重复触发**;本文件按轮追加,供后续同目标棒次参考。
## 2026-10-07 第 3 棒(本轮)· 状态 done
- **任务**:目标「调研 5 个开源内容工作台项目并生成分析文档」的第 3 棒 —— Easel 深度分析(`ZJU-REAL/Easel`,Apache-2.0)。
- **产物**(唯一):`执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/docs/pm/content-workbench/research/1b-竞品分析-Easel.md`(37,520 B / 294 行)。
- **回写**:`目标执行状态.md`(该目标目录内)已插入第 3 棒段并重编章节;验收判据更新为**已 3 份单项目文档**。
- **台账**:`--report a4993b72… --state done --artifact <工作区相对路径>` rc=0,实体已核对(`state=done`/`goal_fp=5199a6`/artifact 可读);域锁已 `--release-exec` 释放。
### 本轮关键结论(供后续棒次引用,不重复正文)
1. Easel 主体是**技能库**:全仓 1002 blob,`skills/` 771;`skills/openclaw/` = **114 个技能**(114 个 `SKILL.md`,一目录一技能);发布层仅 20/114。
2. **技能数口径以 114 为准**(文件树 114 / 能力地图正文 114 / 地图总览表相加 113 / README 徽章 113 旧值)。
3. 核心机制=**三层加载**(Metadata 常驻/Instructions 触发时/Resources 按需)+ `SKILL.md` ≤200 行硬约束;**94 个技能带溯源的 `EASEL-META.md`**。
4. **治理是源码级的**:`content_guard.py`(敏感信息 fail-closed)/`persona_gate.py`(人设 <80 只告警)/`validate_skills*.py`(技能命令 ↔ argparse 漂移校验)。
5. **发布路线=浏览器自动化且自陈风险**(README「谨慎自动发布到小红书」)⇒ 与 Postiz「官方 OAuth、不自动化」**相反、不可混抄**。
6. 遗留待核 4 条(38 条技能测试口径/114 技能 layer 分布未源码核/`test1.prompt` 约定零使用/`xhs-maas`+`agnes` provider 来源)+ 技能可用率无实测 ⇒ 已写入产物 §十四与状态文档 §七。
### 复用经验(下棒直接用)
- 🔴 **拉 GitHub 正文优先走 `contents` API**(base64 + 重试),`raw.githubusercontent.com` 本机**不稳**(本次多文件 `000`)。
- 🔴 `--report` 的 id = **`$CODEBUDDY_SESSION_ID`**(⛔ 不是 automation id);`--artifact` 一律传**工作区相对路径**(绝对路径会被 `artifact_dir_ok()` 误报越界)。
- 🔴 **第 1 棒的 `取证/api/*` 可只读复用**,⛔ 不要重复下载;本棒只补增量面(`取证/easel/`)。
### 下一棒(本目标)
`OpenCreator 深度分析` —— 先复拉完整文件树(第 1 棒因响应过大中断),再读 `packages/protocol` 与 `docs/specs`。⚠️ 再下一棒的「文到 AI」**开工前须与用户确认**(仓库无业务源码,属功能语义分叉)。
@@ -0,0 +1,17 @@
# 自动化执行记录 · 4e470d4c([执行]-[开源项目调研]-重写竞品独立分析体)
## 2026-10-07 22:0x · 第 1 轮
**任务**:重写 4 份竞品独立分析体(`1b-竞品分析-5项目清单与初步定位.md`、`-OpenCreator.md`、`-Postiz与PostSider同源双形态.md`、`-文到AI.md`)。
**结果**:✅ 全部完成,`--report done` 已受理,域锁已释放。
**落点**:`执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/docs/pm/content-workbench/证据附卷/`(原地重写,文件名未改)。
**做法**:判据取 `product-planning/references/stage-discovery/references/competitor-analysis.md` §0.4 与 §11;4 份统一改成七节独立分析体结构(5 项目清单那份改成竞品池总览),§2 / §3 / §6 三组必答项按固定行名逐条写,取不到的照写「取不到:原因」。内容层是重写不是润色,四份都在文末列了「这一版跟上一版的实质差别」。
**新用上的证据**:OpenCreator 官方用户指南、PostSider 前端路由树、文到 AI 官网 HTML 里的官方截图 alt 文字。
**遗留冲突(未处理,按用户点名的落点执行)**:`--report` 提示 artifact 不在**当前**目标目录(`…-72111e`)内,而在旧目标 `5199a6` 下。第 6 棒检查会话已就「判据第 5 条与本棒落点按字面互斥」提报待裁定,同一条,需主会话收口时裁定。
**下一轮若被再拉起**:先跑 `collabd.py --check-status` 确认当前目标;若仍是同一棒,先读《目标执行状态.md》看待办是否已变(本棒之后应轮到「逐条复核 1a-需求文档受影响清单」,但那不属本自动化的既定职责范围)。
@@ -0,0 +1,27 @@
# 自动化执行记忆 · `[执行]-开源项目调研-跨项目汇总对比`(第 6 棒 · 收口)
- automation id:`53fe550f-c02e-434e-ba89-3ada95ca282c`(`once` @ 2026-10-07T18:31)
- 所属目标:调研 5 个开源内容工作台项目并生成分析文档(目标目录 `执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/`)
- 本棒定位:**第 6 棒 · 收口棒**,只做「跨项目汇总对比文档」(验收判据第 3 条)
## 执行结果(2026-10-07 18:31–18:5x)
- 状态:**完成**(台账 `--report 47860f06-c51f-4c2a-b7ad-2a6362b8a675 --state done --by "[执行]-开源项目调研-跨项目汇总对比" --artifact <相对路径>`,rc=0,台账无软警告)
- 产物:`执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/docs/pm/content-workbench/research/1b-竞品分析-跨项目汇总对比.md`(40,392 B / 343 行)
- 域锁:开工抢 `--domains 执行会话` 成功;收尾已 `--release-exec` 释放(另有 1 把属他人锁,按 R9 未动)
- 回写:`目标执行状态.md` 新增「五之二 第 5 棒」「五之三 第 6 棒」,更新「六、验收判据现状」(5 条全 **过**),新增「六之二 判据逐条自评」(5 条逐条 过+依据),重写「七、下一棒」(仅剩非必须补强项)
## 本棒做法(复用要点)
1. **只读复核 + 原始取证仲裁**:汇总前逐份通读前 5 棒产物;对可疑读数直接回 `取证/` 原始 JSON / 文件复算(未做新源码取证)。
2. **跨棒冲突 4 条**(均以原始取证为准,写进产物 §十一):① Easel 技能数 113(README 旧徽章)→ **114**(`easel.tree.stat.json` 与原始树复算一致);② 第 1 棒称 Postiz 树「截断前」有误(`tree_truncated=false`,完整;真正截断的是 OpenCreator 树);③ PostSider 连接器 33(README)vs **34**(`fork-diff.json` 实测 `*.provider.ts`);④ OpenCreator 模板 108(79/28/1)经 `tree_template.json` 复算**吻合**,但派生件 `opencreator.tree.stat.json` 的 `template_entries_by_category` **全为 0(失真)** ⇒ 须以原始分片为准。
3. **台账 `--artifact` 传工作区相对路径**(绝对路径会被 `artifact_dir_ok()` 误报「不在目标目录内」;本轮首报用绝对路径触发软警告,已改相对路径重报)。`--by` 需显式给,否则台账 `by` 为空。
## 本棒核心结论(一句话版)
5 个项目=**4 条独立产品线 + 1 组同源双形态(Postiz↔PostSider)**;分「做内容」(Easel/文到AI/OpenCreator)与「发内容」(Postiz/PostSider)两段;许可分水岭=Apache-2.0(Easel/OpenCreator,可搬)vs AGPL-3.0(Postiz/PostSider,网络服务触发义务)vs 无 LICENSE(文到AI,连素材都不可复制);最划算路径=**以 Easel 技能体系为主干+OpenCreator 契约与治理为工程底座+PostSider read-first/draft-first 定发布边界,代码只搬 Apache-2.0 侧**。
## 目标收口状态
- 5 条验收判据**全部满足** ⇒ 主线收口;剩余为**非必须补强**(行级 diff、OpenCreator 元数据补齐、Easel layer 分布、文到AI 插件源码核对、plans 落地率),已写进 `目标执行状态.md` §七,⛔ 本轮未做。
- 已知取证缺口照抄保留在产物 §十二,未新增查询、未补数字。
@@ -0,0 +1,15 @@
# 目标检查会话 · 自动执行记录
排期 id:`674bd2f7-9d7b-4d5b-96fa-e9151fa85462`([检查]-[目标检查]-content_marketing_agent-第 N 棒)
## 2026-10-07 23:21 · 第 9 棒
- **判定:目标未完成**(三路并集:台账 9 条全 done、队列空、无僵尸件;`taskgraph.json` 不存在;`goal.json.acceptance_state` 7 条全非「过」)。
- 实测读数:`--check-status` ⇒ 目标状态=进行中|队列未完成=0|静默=2.6 分钟|会话全结束;`--domain-status` ⇒ 域锁在册 1 条(`ai1net-dsh-anywhere`,他项目),`执行会话` 域空闲 ✅。
- 判据 1/2/3/4 证据已齐(`5199a6/.../证据附卷/` 5 份 + `72111e/` 三份,mtime 21:40~22:29)。
- 判据 5(技能包全量说人话):16 份新稿已成(`72111e/技能包-说人话-新稿/`),**落地未做**(域外写入)⇒ 不过。
- 判据 6(vibe-product 六份):源六份 mtime 仍 01:46~01:47,**一份没动** ⇒ 不过。
- **处置:派了一条执行棒** `[执行]-[开源项目调研]-vibe-product六份阶段文档重写新稿`(automation id `e012f7d6`,once,23:27 触发,域 `执行会话`)⇒ 新稿落本目标目录,源只读,跨区落地留主会话。
- 未派第二条(判据 5 落地属域外,任务会话做不了);**不改生命周期**(保持进行中);未写 `acceptance_state`(值域「未过」非规范,留主会话一次性改齐)。
- 更新了 `72111e/目标执行状态.md`(加第 9 棒判定节)。
- 遗留主会话四条:`--ensure-goal-dir` 对齐 execution_doc;acceptance_state 按规范改齐;技能包 16 份落地;vibe-product 六份落地。
@@ -0,0 +1,15 @@
# 自动化记忆 · 目标检查会话(第 N 棒)
> 只记高层结论与下一步,⛔ 不抄正文。
## 2026-10-08 00:2x · 第 11 棒
- **判定:目标未完成**(三路并集)。台账 10 条全 `done`、队列空、无僵尸件;`taskgraph.json` 不存在;判据 7 条 = 5 过 / 2 不过。
- **L3 现测**:两处落点全部文件 mtime 早于新稿 ⇒ 判据 5/6 的落地确实未做。
- 判据 5 落点 `E:/ProgramData/.workbuddy/skills/product-planning/`(本工作区外,全局技能目录)
- 判据 6 落点 `E:/ProgramData/AIProject/vibe-product/docs/pm/proto-board/`(另一个工作区)
- **处置**:⛔ 未派棒(残项为跨边界写入,本区任务会话域门禁写不了 ⇒ 派了必空跑);⛔ 未改 `lifecycle`(保持「进行中」);⛔ 未改 `acceptance_state`(值域已规范且与文档一致,无字可改);⛔ 未跑 `--ensure-goal-dir`(本区 `roles = {}` ⇒ 会把检查会话登记成主会话)。
- **输入缺失(记账)**:派活原文指定读的 `state.py` 与 `taskgraph.json` 在本区**都不存在** ⇒ 改用 `--check-status` / `goalctl.py` 读数替代。
- **机制侧观察**:本目标已连建 11 棒检查会话,第 8~11 棒结论完全相同 ⇒ 只要 `lifecycle = 进行中` 且队列空就会继续空跑;修法超出本轮范围,未动代码。
- **留给主会话**:① `--ensure-goal-dir` 修 `execution_doc` 漂移(只能 main 席位);② 16 份技能包新稿落地全局技能目录(先定「全量」口径 16/19/83);③ 六份 vibe-product 新稿落地跨区目录。
- 文档已更新:`执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/目标执行状态.md`(第 11 棒节)。
@@ -0,0 +1,13 @@
# 自动化记忆 · [检查]-[目标检查]-content_marketing_agent
> 每次运行只追加一节,不写全文正文。本轮 = 第 15 棒。
## 2026-10-08 02:2x · 第 15 棒(reason=queue-empty)
- **判定 = 目标未完成**。目标「根据 1a 需求文档生成 MCN 短视频整合营销工作台的产品界面」于 **02:15 换目标**时声明(目录哈希 `d85687`,与 `sha1(标题)[:6]` 实测一致),属**刚开始、零产出**。
- 三路并集:① 台账 10 条全 `done`,但 `goal_fp` 全是旧目标(`5199a6`/`72111e`)⇒ 当前目标零记录;② `taskgraph.json` 本区不存在;③ `acceptance_state` 5 条全 `未过` ⇒ fail-closed 未过。
- 目标目录 `执行会话/目标-…-d85687/` **尚未创建** ⇒ 《目标执行状态.md》读不到,无法逐条交叉核对验收结论。
- **未派新棒**:在途已有 `[执行]-[开源项目调研]-MCN产品①②段补齐`(`844f5231`,`once` 02:26,尚未跑过)。再派=双投,且 ②段未成文前 ③段无从开工。
- 未改 `lifecycle`/未改验收/未跑 `--ensure-goal-dir`(`roles={}` 会把检查会话登记成主会话)/未动代码。
- 缺陷记录(本轮不修):本区缺 `state.py` 与 `taskgraph.json`;`goal.json.execution_doc` 换目标未同步(仍指 `5199a6`);验收值用非规范词 `未过`。
- 承前:第 8–14 棒针对**旧目标**(`72111e`)判定完全相同的「未完成」,收口须用户定;第 15 棒起跟踪**新目标**。
@@ -0,0 +1,32 @@
# 自动化执行记忆 · `[执行]-[开源项目调研]-MCN产品①②段补齐`(id `844f5231`)
> 类型:`once` 任务会话(任务类别:开源项目调研)。工作区 `content_marketing_agent`。
> 本文件只记「本轮做了什么、结论、留给下一棒的接口」,⛔ 不搬全文产物。
## 2026-10-08 02:26 第 1 次执行(本目标首次跑)
**任务**:把 MCN 短视频整合营销工作台的①②段产出补齐。③段界面本轮不做(用户口径:「应该要先完成 1 2步 在进行第3步」)。
**结果**:✅ done,rc=0。7 份文件全部落目标目录 `执行会话/目标-根据1a需求文档生成MCN短视频整合营销-d85687/`(约 123 KB)。
- ①段 `research/`:`1a-需求文档.md`(逐字复制件 + 落本目录说明)/`1b-竞品分析.md`(跨项目引用登记,新写)/`1c-用户画像.md`(3 画像,新写)/`1d-产品策略.md`(九节画布+5 条关键假设,新写)/`1e-使用场景.md`(8 条用户故事,新写)
- ②段 `prd/`:`2a-产品功能.md`(14 条功能六字段+不做对照+六项治理,新写)/`2b-界面布局.md`(八页骨架,新写)
- 状态文档:`目标执行状态.md`
**关键判据与结论(供后续棒复用,⛔ 不必重查)**:
1. `goal_dir_name()` 实测 = `执行会话/目标-根据1a需求文档生成MCN短视频整合营销-d85687`(sha1(`title`)[:6] = `d85687`,与派活原文一致)。
2. **②段骨架已定并冻结**:八页 = P1 矩阵总览|P2 选题雷达|P3 资产库|P4 创作台|P5 发布中心|P6 账号画像|P7 复盘台|P8 记录与对账。一级导航三组取自 1a §八 的三个入口,P6 跨组。③段可直接照 `prd/2b-界面布局.md` 做。
3. 六项治理、假设依赖(1a 的 9 条待复核 + A1–A4)已在 `2a` §三、§四逐条落位;**9 条假设全落「待实现且已排定确认时机」**,确认时机统一为「②段收口时由主会话转用户一次性过」。
4. **派活原文给的 1b 路径是错的**:`docs/pm/content-workbench/research/1b-竞品分析.md` 在本工作区**不存在**。真落点在 `执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/docs/pm/content-workbench/`(含 research 汇总体 + 证据附卷 5 份独立体 + 取证约 210 件)。
5. **`docs/pm/mcn-shortvideo-agent/research/1a-需求文档.md` 是旧版**(上游状态行停在「正在重写、9 条待复核」),与 72111e 那份内容不同。本目标用的是 72111e 版。
6. 1c 是**零访谈画像**:无问卷/访谈/行为数据,骨架全来自 1a §四 三行角色描述 ⇒ 已在文首与 §五 明说,⛔ 不许对外说成「基于用户调研」。
7. 两处内容侧悬空(已在各份标出,未编答案):**投放这段没有场景**(1a 待复核第 8 条);**机构负责人这个角色在 1a 里悬空**(S7 用了、§四 没列)。
**域外未做**(留主会话):`docs/pm/mcn-shortvideo-agent/{research,prd}/` 的正式归档;以及是否用本目录 1a 覆盖 `docs/` 那份旧版。
**机制侧两条(本轮未处置)**:`goal.json.execution_doc` 仍指旧目标 `…-5199a6/目标执行状态.md`(需 main 席位跑 `--ensure-goal-dir`);本目标已连建 15 棒检查会话、第 8–14 棒结论相同(收口办法须用户定)。
**上报记录**:sid `fd655683-dec4-461f-88cd-b7135638d995`,`--report --state done --by "[执行]-[开源项目调研]-MCN产品①②段补齐" --artifact "执行会话/目标-根据1a需求文档生成MCN短视频整合营销-d85687/目标执行状态.md"` ⇒ `OK 已上报 … (新) -> done`。域锁 `--release-exec` 已释放。
**给下一棒的接口**:①段五份齐、②段两份齐 ⇒ ③段界面可开工。动工前要先定两处骨架分支(`2b` §四):P1 是否降为「单账号今日」(待复核第 5 条);P8 是否含商单对账(待复核第 6 条 + A3)。
@@ -0,0 +1,23 @@
# 自动化记忆 · [执行]-[开源项目调研]-五项目调研与成文
> automation id:`8912f16f-dfa6-44c5-b23b-5f34b745aacc`
## 2026-10-07 第 1 棒(已执行)
- 会话:`[执行]-开源项目调研-5项目清单与初步定位`(session `52ace70a-bd4a-4201-a7b0-62237c092375`)
- 域锁:`执行会话`(自取,收工已 `--release-exec` 释放)
- 范围:只做「仓库骨架 + README 拉齐 ⇒ 5 项目清单与初步定位」,未做逐个深度分析。
- 产物:`执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/docs/pm/content-workbench/research/1b-竞品分析-5项目清单与初步定位.md`(14641 B,md5 `74cceae0d6f6be8d63b293849878e19b`)
- 证据:同目标目录 `取证/api/`(5 组 repo/readme/tree JSON + README 全文)+ 取证脚本 `取证/_fetch_repos.py`
- 台账:`--report ... --state done --artifact <相对工作区路径>` ⇒ rc=0,`tasks.json` 已写入(goal_fp `5199a6`)。
⚠️ 经验:`--artifact` 传**绝对路径**会触发「不在目标目录内」软警告(`artifact_dir_ok()` 只做相对路径前缀比对)⇒ **一律传工作区相对路径**。
- 状态文件:目标目录内另写 `目标执行状态.md`(含验收判据现状 + 下一棒清单)。
### 本棒发现(影响后续棒次)
1. **PostSider 是 Postiz 的 fork**(`postsider/ATTRIBUTION.md` 逐字自述,AGPL-3.0,改动=rebrand + Agent Bridge)⇒ 4/5 两项应合成一份分析。
2. **文到 AI 仓库无业务源码**(README 明示闭源,全仓 5 个文件,无安装包)⇒ 只能做文档/体验级分析,需用户确认是否降级。
3. 许可分水岭:Easel/OpenCreator=Apache-2.0;Postiz/PostSider=AGPL-3.0。
4. 取证缺口:OpenCreator 完整文件树因响应过大中断(已用顶层树 + docs 子树兜底),下一棒复拉。
### 未做(⛔ 不顺手做)
- 未建任何后续排期、未改机制、未动其它目录、未装依赖。
@@ -0,0 +1,16 @@
# 自动化记忆 · 8da8ec4c([检查]-[目标检查]-content_marketing_agent · 第 N 棒)
> 本文件只记高层执行结论,不放正文。历史结论见目标目录下的 `目标执行状态.md`。
## 2026-10-08 00:50 · 第 12 棒(首次在本自动化 ID 下落记忆)
- 目标:重写 5 份竞品分析文档并重新生成 MCN 短视频整合营销需求文档(目标目录 `执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/`)。
- 触发:`queue-empty`(队列空、无 running 僵尸件、静默 24.6 分钟)。
- 结论:**未完成** —— 三路并集:① `tasks.json` 10 条全 `done`;② `taskgraph.json` 不存在;③ 验收判据 7 条 = **5 过 / 2 不过**(判据 5 技能包说人话落地、判据 6 vibe-product 六份落地)。
- 与第 8~11 棒结论逐条相同;L3 现测再次坐实两处落点 mtime 全部早于同名新稿。
- 处置:未派棒、未改 lifecycle(保持「进行中」)、未改 acceptance_state、未跑 `--ensure-goal-dir`。
- 关键判据(供后续棒复用):
- 两残项唯一剩余动作 = **域外(全局技能目录)/跨区(vibe-product 工作区)写入**,本区任务会话受域门禁约束 ⇒ 机制侧不可达,派了必空转。
- 落地步骤已完整落在 `tmp/supervise-inbox/NEED-USER.md` 第 2/3 条,无新增可派内容。
- 派活原文指定的 `state.py` 与 `tmp/supervise-inbox/taskgraph.json` 在本区**均不存在**(属输入缺失,非故障)。
- 下一步(需用户/主会话):定「全量」口径(16/19/83)→ 主会话执行两处覆盖 → 判据 5/6 转 `过` → `--set-life 已完成`;另需决定是否收窄检查会话连棒阈值(已连 12 棒重复空跑)。
@@ -0,0 +1,13 @@
# 自动化记忆 · 963ecf6f(第 5 棒 · 文到 AI 分析)
> 本文件只记**高层执行摘要**,⛔ 不放产物正文。
## 2026-10-07 18:06–18:11(CST)
- **任务**:目标「调研 5 个开源内容工作台项目并生成分析文档」的**第 5 棒** —— 产出第 5 份单项目分析:文到 AI(`wendaoai/wendao-content-workbench`)。
- **结果**:✅ 完成并已入台账。产物 `执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/docs/pm/content-workbench/research/1b-竞品分析-文到AI.md`(31,523 B / 253 行);`--report --state done --artifact` 通过。
- **关键判定**:该仓库**无业务源码**(README/NOTICE 明示闭源、全仓 5 blob、`languages` 空对象)⇒ 按派活给定的**「开源可得面」**口径产出,开头声明覆盖边界、末尾写缺口与待裁定;**未做源码级结论**。
- **机制动作**:`--ready-next`(仅自身在跑、放行)→ 抢域锁 `content_marketing_agent/执行会话` → `--report running` → 作业 → `--report done` → `--release-exec` 释放。
- **提报用户**:`tmp/supervise-inbox/NEED-USER.md`(本轮新建)写入「是否接受『可得面』口径/或改由用户提供闭源访问/变更目标,待裁定」。
- **下一棒**:只剩**跨项目汇总对比文档**(须把文到 AI 一列标为"文档级"证据,⛔ 不与另 4 个源码级项目同权呈现)。
- ⚠️ **本棒踩到的通道事实(下次复用)**:① 该产品真公开面在 **GitCode**(`api.gitcode.com/.../wendao-ai-updates/raw/updates/stable.json`,四平台 + sha256 + 升级策略),GitHub 只有文档;② `gitcode.com` 网页是 SPA,`curl` 拿不到正文(changelog 走渲染页抽取并已标注);③ README 的"尚未发布安装包"已过期(实际 v0.0.123)。
@@ -0,0 +1,12 @@
# 自动化记忆 · `[检查]-[目标检查]-content_marketing_agent-第N棒`
> 只记高层执行摘要(判定结论 / 派了什么棒 / 现场关键读数),⛔ 不放完整产物正文。
## 2026-10-07 16:30 · 第 1 棒(本文件首次创建)
- **判定=目标未完成**。依据=目标执行状态文档「二、验收判据」:五份单项目分析文档只出 1 份总览 ⇒ 判据①③明确「未过」;文档「四、下一棒该做什么」还有 4 项未做。
- ⇒ 按规则**不改 `lifecycle`**(⛔ 不置「已完成」、也不留空转)。
- **派第 2 棒**:automation `eb92aced-133c-4a85-b39d-37f730a5c589`,名 `[执行]-[开源项目调研]-Postiz与PostSider同源双形态分析`,`once` @ 2026-10-07T16:40,`cwds`=`E:\ProgramData\AIProject\content_marketing_agent`。
- 域门禁:域目录=`执行会话`(工作区第一层目录),`--domain-check` 报 ✅ 可派|域空闲;门禁块由 `--domain-block` 现取。
- 现场读数:`tasks.json` 仅 1 条且全 `done`(无 `running` ⇒ 无僵尸件);`goal.json` `lifecycle`=进行中、`acceptance_state` 5 条全「未过」。
- **输入缺件(非故障,勿误判)**:本区无 `state.py`;`tmp/supervise-inbox/taskgraph.json` 不存在 ⇒ 判据只能靠台账 + 验收判据两路。
@@ -0,0 +1,32 @@
# 自动化记忆 · [检查]-[目标检查]-content_marketing_agent(第 N 棒)
自动化 id:`a67efdc7-77e0-4200-92fe-3b435dde6b86`
职责:只做一件事 —— 核对本工作区当前目标是否完成;做完即停。
## 固定判据(每棒都照这四条,⛔ 不另立标准)
1. 台账 `tmp/supervise-inbox/tasks.json`:四态取并集,任一路非 done 即「没完」。
2. `tmp/supervise-inbox/taskgraph.json`:nodes 里 `status != done` 即「没完」。(⚠️ 2026-10-08 实测**该文件在本工作区不存在**,此路无判据,不做阻断。)
3. `goal.json.acceptance_state`:判据值取中文写法,`过…` vs `🔴 不过…`;⛔ 别用「不等于 pass」判未过。
4. 唯一目标执行状态文档:`goal.json.execution_doc` 指向的那份。
⚠️ 2026-10-08 实测 `execution_doc` **指错**(指旧目标 `…-5199a6/`);当期目标的真文档在
`执行会话/目标-<标题>-<sha1(title)[:6]>/目标执行状态.md`。读不到就以实况为准,⛔ 不去别处翻。
## 执行历史
### 第 16 棒 · 2026-10-08 02:5x
- 触发:`queue-empty`(`check-agent.json` round=16,idle 19.9 min)。
- 目标:**根据 1a 需求文档生成 MCN 短视频整合营销工作台的产品界面**(`goal_fp=d85687`,lifecycle=进行中)。
- 判定:**未完成**。台账 11 条全 done、队列全空;但 `acceptance_state` 5 条**全「未过」**,5 条全是③段判据;
`…-d85687/目标执行状态.md` §D 自述本轮只做了①②段,③段未开工。
- 处置:建 1 条执行棒 `[执行]-[开源项目调研]-MCN工作台③段界面交互`,
id `34ab0198-d0fa-4e9d-978b-6c7f40a2978a`,`once` @ 2026-10-08T03:00,`cwds` 正斜杠;
域取 `执行会话`(空闲;与上一棒同域,且写边界罩住目标目录)。未改 lifecycle、未动 acceptance_state。
- 环境读数:常驻在位(pid 34556/心跳 age 3.2 s/argv0 指本区)。
## 交给下一棒的注意
- `state.py` **本工作区不存在**(派活原文第 1 项跑不了)⇒ 用 `collabd.py --check-status` 或直接读 `goal.json` 替代。
- `goal.json.execution_doc` 指错是**长期旧账**(旧目标目录),只有 main 席位能跑 `--ensure-goal-dir` 修。
- `acceptance_state` 的值写成 `未过`(非规范取值域 `🔴 不过|…`),看板靠 fail-closed 仍显示未过 ⇒ 属观感缺口,写回只在「已完成」分支做。
@@ -0,0 +1,11 @@
# 目标检查会话 · 执行记录(automation af62fa58)
> 只记高层结论,⛔ 不放全文/产物正文。逐轮倒排(新的在上)。
## 2026-10-07 18:00 · 第 4 棒
- 目标:调研 5 个开源内容工作台项目并生成分析文档(`goal_fp = 5199a6`)。
- 判定:**未完成**(三路取并集)。台账 4 条全 `done`、无 `running`;`taskgraph.json` 不存在;状态文档「六」=已 4 份单项目文档,**判据①「五份齐全」=部分、③「跨项目汇总对比」=未过**。⇒ 未动 `lifecycle`(仍「进行中」)。
- 动作:**只派 1 条**执行棒 `[执行]-开源项目调研-文到AI项目分析`(automation `963ecf6f-046b-4d1d-8932-34566d3b3765`,`once` @ 2026-10-07T18:06,`cwds`=工作区根逐字)。域=`执行会话`(`--domain-block` 现取,目标目录在其下 ⇒ 域锁与产物死规定同时满足)。
- 处置要点:文到 AI 仓库无业务源码(功能语义分叉)⇒ 自决=按「开源可得面」产出 + 产物强制声明覆盖边界 + 待裁定项写 `tmp/supervise-inbox/NEED-USER.md`;⛔ 不停手等人、⛔ 不假装源码级。
- 剩:文到 AI 单项目文档(本棒在做)→ 之后还有 **跨项目汇总对比文档**(收口,待份数齐)。
- 待用户裁定:是否接受「文到 AI 按自述/元数据级」的口径(或提供闭源访问/变更目标)。
@@ -0,0 +1,31 @@
# 自动化记忆 · `[检查]-[目标检查]-content_marketing_agent-第N棒` 系列
> 只记高层执行摘要(判定结论 / 派了什么棒 / 现场关键读数),⛔ 不放完整产物正文。
> automation id:`c188ab0b-5c69-423c-94d2-1a401d611715` | 目标指纹:`5199a6`
## 第 3 棒(2026-10-07T17:30,本文件首次创建)
- **目标**:调研 5 个开源内容工作台项目并生成分析文档。
- **判定=目标未完成 ⇒ 派第 4 棒**(⛔ 未动 `lifecycle`,仍为「进行中」)。
- **判据三路**:
- ① `tasks.json`=**3 条全 `done`**(`52ace70a` / `a41bb3a3` / `a4993b72`),无 `pending/running/blocked` ⇒ **无僵尸件**。
- ② `tmp/supervise-inbox/taskgraph.json` **文件不存在**(配置 `taskgraph: ""`)⇒ 本路无 nodes,不构成「未完成」证据。
- ③ `目标执行状态.md`(**以文档为准**):「五、验收判据现状」=五份单项目文档**已 3 份**(5 项目总览 + Postiz/PostSider 合并 + Easel)⇒ 判据①「齐全」**部分**、③「跨项目汇总对比」**未过**;余 **OpenCreator / 文到 AI / 跨项目汇总** 三件。
- **派活**:automation `fc0eb295-d52d-4c47-878a-acaa6e1c42e2`,名 `[执行]-[开源项目调研]-OpenCreator深度分析`,
`once` @ `2026-10-07T17:36`,`cwds`=`E:\ProgramData\AIProject\content_marketing_agent`。**只建这一条**,建完即停。
- **域门禁**:`--domain-status`=在册锁 1 条(`ai1net-dsh-anywhere` ← `[协作]N9复测-2248`,与本目标无关);
域=`执行会话`(工作区第一层目录;目标目录在其下 ⇒ 域锁与「产物必须落目标目录」两条同时满足);
`--domain-check 执行会话`=✅ 可派|域空闲;门禁块由 `--domain-block 执行会话` **现取**(⛔ 未手抄)。
- **派活 prompt 里带上的经验**(沿用前两棒,已固化):`--report` 的 id 用 `$CODEBUDDY_SESSION_ID`(⛔ 不是 automation id);
`--artifact` 一律传**工作区相对路径**(绝对路径会被 `artifact_dir_ok()` 误报越界);
取正文走 **GitHub `contents` API**(`raw.githubusercontent.com` 本机不稳);只读复用第 1 棒 `取证/api/opencreator.*`,⛔ 不重复下载。
- **输入缺件(非故障,勿误判)**:本区确无 `state.py`;`taskgraph.json` 不存在;`queue.json`(已退役旧件)**未读**。
- **离场时未做**:未代任务会话干活、未改 `lifecycle`、未改 `目标执行状态.md`(该文档由执行棒回写)、未建第二条排期。
## 待留意(下棒检查时先看这里)
- 目标余项:**OpenCreator(第 4 棒,已派)→ 文到 AI → 跨项目汇总**。
- ⚠️🔴 **「文到 AI」是「功能语义分叉」**:该仓库无业务源码(README 明示闭源)⇒ 按现判据做不出「源码级分析」,
**开工前须提报用户**定「是否仍按开源项目深度分析做」,⛔ 不得由执行棒自行降级。
- ⚠️ `goal.json.acceptance_state` 仍是 5 条全「未过」的**过期副本**;派活/检查时**一律以 `目标执行状态.md` 为准**。
- 历史:第 1 棒(`a524d2a7`)派 `eb92aced`;第 2 棒(`4d03c339`,会话 `c12b39bd`)派 `4d1a0005`;第 3 棒(本棒)派 `fc0eb295`。
@@ -0,0 +1,12 @@
# 目标检查会话 · content_marketing_agent · 自动化记忆
> 本文件只记**高层执行摘要**,不抄任务全文与交付物正文。
## 2026-10-08 04:2x · 第 17 棒
- **判定**:目标「根据 1a 需求文档生成 MCN 短视频整合营销工作台的产品界面」= **已完成**。
- **依据(三路)**:① 台账 `tasks.json` 12 条全 `done`,队列空;② `taskgraph.json` 不存在(该路无节点);③ 文档 §10.3 五条验收判据全「过」,与 `goal.json` 的「未过」不一致 ⇒ 以文档为准。
- **动作**:`goalctl declare --kpi` 写回 5 条 `过|依据`(已回读确认);`collabd --set-life 已完成`(常驻随之优雅退出,属设计行为)。
- **未做**:未派活、未动域锁、未跑 `--ensure-goal-dir`(需 main 席位)。
- **遗留(交主会话/用户)**:`execution_doc` 仍指旧目标目录;B-15(≤767px 首屏 &lt;6 行)与 6 条人工确认项(含假设 1/2)悬空但不在验收判据内;域外归档(`docs/pm/mcn-shortvideo-agent/`)与旧 1a 覆盖待主会话。
- **环境备注**:派活清单第 1 项 `state.py`、第 3 项 `taskgraph.json` 在本工作区均不存在。
@@ -0,0 +1,20 @@
# 自动化执行记录 · `e012f7d6`(vibe-product 六份①②段文档重写新稿)
> 排期:once,2026-10-07 23:27 触发|域 `content_marketing_agent/执行会话`|会话 `ea3ce52d-6afd-4397-a737-ec7626e2e73d`
## 执行历史
### 2026-10-07 23:3x(第 1 次运行 · 完成)
- **判定**:本轮任务完成。产出 7 个文件,全部落在 `执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/vibe-product六份-新稿/`:`1a-需求文档.md`、`1c-用户画像.md`、`1d-产品策略.md`、`1e-使用场景.md`、`2a-产品功能.md`、`2b-界面布局.md`,外加 `落点说明.md`(新稿→源路径逐条对应 + 判据源 + 硬约束对账)。
- **源只读**:`E:/ProgramData/AIProject/vibe-product/` 与 `E:/ProgramData/.workbuddy/skills/` 全程只读,源六份 mtime 复核仍为 01:46~01:47(未改一个字节)。
- **②段两份的位置**:`docs/pm/proto-board/prd/2a-产品功能.md` 与 `prd/2b-界面布局.md`,均在,未出现「源缺失」。
- **重写口径**:内容层真改 —— 结构换成各自方法论的节号/体例(grill-me 决策表 6 列、user-personas 6 块、9 节 Canvas、四槽位+替代方案、功能六字段+状态迁移表、布局五样+页型一句),并补上一版缺的实质内容(含 2a 补 F3 空态功能、2b 补页型判定)。
- **自检读数**:说人话评分 46~48/50(六份各五维分列);「与上一版实质差别」合计 48 条(逐份现数);2b 零视觉词。
- **收口**:`collabd.py --report <tid> --state done --by … --artifact …/落点说明.md` ⇒ `OK 已上报`;台账无畸形键;域锁已 `--release-exec` 释放。
- **留主会话一项**:六份新稿覆盖进 `vibe-product/docs/pm/proto-board/`(`research/` 四份 + `prd/` 两份),跨区写入,已追加到 `tmp/supervise-inbox/NEED-USER.md` 第 3 条。`落点说明.md` 只留档、不在覆盖清单内。
## 下次运行要注意
- 本自动化是 `once`,已执行完,不会再触发。若被重建为周期任务,先查本目标目录是否已有产物,⛔ 别重复生成。
- 覆盖进 vibe-product 前,先备份那六份原件(现有 `归档-说人话重写前-20261007/` 只含 `research/1b-竞品分析.md`,不含这六份)。
@@ -0,0 +1,19 @@
# 自动化记忆 · 重生成MCN需求文档(排期 e74db4d4)
## 2026-10-07 22:4x · 第 1 次运行(已 done 上报)
**任务**:把重写后的 5 份竞品独立体接进 MCN 需求文档(边界核对 + 逐条复核 + 重生成 1a)。
**结果**:三件都做完,落在目标目录 `执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/`。
1. **边界核对 → 判定边界不正、出新版汇总**。四处硬冲突:① 证据等级分类少一级(旧汇总体写「两级」,新版 Easel 独立体是「三级」,多出「界面级」,本组只有 Easel 有);② 节号引用悬空(旧件引「第 2 棒 §八·4 / 第 3 棒 §十三·1」,新版独立体已统一七节结构);③ 场景矩阵越证据(给文档级的文到 AI 逐格填了 5 个处境的用法);④ 逐家产品面重复(§5.1 后半六项能力详述、§6 六条机制都是单家内容,按方法论 §0.4 归独立体)。
2. **逐条复核 → 9 条 2 改 7 不改**。改的两条:F5(旧写「敏感词与事实检测」,新版事实是「敏感信息硬拦 + 人设一致性软劝」)、F7(发布中心直证的只有「多平台」,「多账号」另找依据)。清单外补核 1 条:§六 治理段「组织级暂停」应按新版改成「组织级急停」。
3. **重生成 1a**,实质差别 9 条写在文末。
**落点**(4 份,全在目标目录内):`复核清单-1a受影响条目.md` / `1b-竞品分析-汇总对比体.md` / `1a-需求文档-MCN短视频整合营销.md` / `S7-重生成MCN需求文档-20261007.md`。
⛔ 未动工作区根 `docs/`、未覆盖旧件(旧 1a 21:36、旧汇总体 21:41 都原位保留)。域锁已释放。
**留给主会话/用户的 4 条**:① 要不要拿新版覆盖域外的旧 1a 与旧汇总体;② 上一棒检查会话提的三条(`execution_doc` 漂移、「未过」值域、判据第 5 条与落点口径互斥);③ 新版 OpenCreator 独立体自身 163/183 两个数并存(各有出处但没写清口径);④ 复核清单那份按「原文/依据/结论」结构写,说人话自评 44 分,低于 45 线,是否放宽结构。
**经验**:`sid` 取自环境变量 `CODEBUDDY_SESSION_ID`(本次 `75bfa487-7983-4863-b365-44085950f016`)。`--report` 的 artifact 可传相对工作区的路径。
@@ -0,0 +1,19 @@
# 自动化执行记忆 · [执行]-[开源项目调研]-Postiz与PostSider同源双形态分析
> automation `eb92aced-133c-4a85-b39d-37f730a5c589` | 目标:调研 5 个开源内容工作台项目并生成分析文档
> 目标目录:`执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/`
## 运行记录
### 2026-10-07 16:40(第 2 棒 · 一次性)
- 结果:**done**。产物 `docs/pm/content-workbench/research/1b-竞品分析-Postiz与PostSider同源双形态.md`;台账 `--report a41bb3a3… --state done` rc=0;域锁 `执行会话` 已释放。
- 做了什么:按「Postiz + PostSider 同源双形态」合成一份分析 —— 溯源取证、**文件树级量化 fork 改动范围**、聚焦 PostSider 增量面(MCP 19 工具 / public API / SDK)、补齐两家定价、给可借鉴点与合规风险。
- 方法/口径(下次复用):复用第 1 棒的 `取证/api/*.tree.json`(⛔ 不重复下载),本棒只补拉增量面到 `取证/api/fork/`;**差异量化用 GitHub tree API 的 blob `sha`**(同 sha=逐字节相同),脚本 `取证/_fork_diff.py` 可复算。⚠️ tree API **不给行数** ⇒ 只能做文件级量化。
- 关键读数:两侧同路径 329(逐字节相同 92);仅 Postiz 689 / 仅 PostSider 584;PostSider 删 `apps/extension`+`react-shared-libraries`、前端 components 293→78、净增 `apps/mcp` 46 文件;测试 0→94 spec;Prisma 迁移 0→26 条;MCP 19 工具(13 读 + 6 写)源码级双证。
- 遗留(交后续棒次,非本自动化职责):真 fork 点与改动行数未取得;Easel / OpenCreator / 文到 AI 三份深度分析未做;汇总对比文档待五份齐。
## 注意事项
- 写操作只许落 `执行会话/`(本会话独立域);`--artifact` 一律传**工作区相对路径**(绝对路径会被误判)。
- 定价类结论必须取自官网并标取证时间;README 未列 ≠ 没有 ⇒ 先查官网,查不到写「查不到」。
- 单次运行只做一条棒次,做完即停;⛔ 不顺手做别的棒次。
@@ -0,0 +1,19 @@
# 自动化执行记忆 · `ed3dd62e`([执行]-[开源项目调研]-技能包规则全量说人话)
> 这是本自动化任务的历史执行记录。**只记高层动作与结论**,正文细节见产物。
---
## 2026-10-07 22:57 · 第 1 次执行(会话 `fae90e6f`)
- **结果**:已完成,`--report --state done` 受理,域锁释放。
- **做了什么**:把 `product-planning` 技能包里 **16 份「我们自己的规则文件」**(总入口 `SKILL.md` + 四段 `SKILL.md` + 11 份方法论)按「说人话」改写,新稿落目标目录 `技能包-说人话-新稿/<原相对路径>`。
- **范围口径**:⛔ 未含引进的第三方资产 67 份与留痕 4 份(依据 `NEXT.md` §3)。⚠️ 与检查会话按 87 份计数的口径不一致,已在产物清单里记账。
- **门禁**:`check_naming.py --root <新稿>` ⇒ 通过 46 / 失败 0 / 提示 1;16 份 frontmatter 与 H1 逐字未漂;技能目录零写入。
- **评分**:16/16 落在 45~46/50。
- **产物**:
- `执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/技能包-说人话-新稿/`(16 份新稿)
- `执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/技能包-说人话-改写清单.md`(逐份差别 / 评分 / 《输出检查》逐条结论 + 三项待拍板)
- `tmp/supervise-inbox/NEED-USER.md` §2(域外「待落地清单」)
- **未做(留给主会话)**:把新稿挪进全局技能目录(域外写入)。三项待拍板已写在清单 §五。
- **给下一次执行的提醒**:⛔ 不要重复执行 —— 除非检查会话判定未过。范围口径与《输出检查》补法都已定案在本轮产物里,重跑前先读 `技能包-说人话-改写清单.md`。
@@ -0,0 +1,29 @@
# 自动化执行记忆 · `[执行]-[开源项目调研]-OpenCreator深度分析`
- automation id:`fc0eb295-d52d-4c47-878a-acaa6e1c42e2`(`once` @ 2026-10-07T17:36)
- 所属目标:调研 5 个开源内容工作台项目并生成分析文档(目标目录 `执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/`)
- 本棒定位:目标排期的第 4 棒,对象仓库 `krillinai/OpenCreator`(Apache-2.0)
## 执行结果(2026-10-07 17:36–17:57)
- 状态:**完成**(台账 `--report f1b99d3d-2488-44b1-9d43-1e41524d29ba --state done`,rc=0)
- 产物:`执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/docs/pm/content-workbench/research/1b-竞品分析-OpenCreator.md`(57,550 B)
- 证据:`取证/opencreator/` 76 件(11 份分片文件树 + 62 份正文 + 3 份统计/日志);脚本 `取证/_opencreator_tree.py`、`_fetch_opencreator_docs.py`、`_opencreator_tree_stat.py`
- 回写:`目标执行状态.md` 插入「五、第 4 棒」,验收判据更新为**已 4 份**(余「文到 AI」)
## 复用要点(下次同类棒次直接用)
1. **分片拉树**:顶层树取各目录 sha → 逐个 `git/trees/<sha>?recursive=1`。第 1 棒一次性 `recursive=1` 会因响应过大中断;分片 11 片全部成功。
2. **正文双通道**:本棒实测 `raw.githubusercontent.com` 60/61 成功,与第 3 棒"raw 不稳"结论不同 ⇒ 该通道随时刻波动,脚本按 **raw 优先 + 失败回落 `contents` API** 写。
3. **分片树的 `path` 是相对切片根的**,统计时必须补回前缀,否则顶层分布全错。
4. 台账 `--artifact` 一律传**工作区相对路径**(绝对路径会被 `artifact_dir_ok()` 误报越界)。
## 本棒核心结论(一句话版)
OpenCreator 是「给创作者用的 Codex 外壳」——不重写 Agent loop/Skills/MCP,只做进程生命周期+事件归一化+持久化+调度+UI;真资产在 `template/` 108 条模板与技能市场 52 条候选;最值得借鉴的是仓根 `AGENTS.md` 的**验证分级铁律**与**计划任务↔专属会话**的迁移/回滚演练体系(其验收自评 `PARTIAL / BLOCKED_ENV`)。
## 遗留(交给后续棒次/检查会话)
- 本棒新增 8 条待核,已写进产物 §十三与 `目标执行状态.md` §八(商业规模证据、技能市场上架态、plans 落地率、素材再分发许可、真实运行证据、Go 引擎实现、languages 字节口径、部分 docs 正文未读)。
- 下一棒应为**文到 AI**,⚠️ 但须**先与用户确认口径**(该仓库无业务源码,属功能语义分叉,⛔ 不得自行降级)。
- 跨项目汇总对比文档待 5 份齐后收口。