Files
contentm_agent/执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/目标执行状态.md
T
WorkBuddy df56c2c137 初始化提交: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 只排运行时日志、脚本备份副本与一次性探针输出,其余按原样入库。
2026-10-08 08:13:02 +08:00

19 KiB
Raw Blame History

目标执行状态 · 调研 5 个开源内容工作台项目并生成分析文档

目标目录:执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/ 台账(唯一权威):tmp/supervise-inbox/tasks.json | 目标:tmp/supervise-inbox/goal.json

一、目标与生命周期

  • 目标:使用产品规划技能调研 5 个开源项目并生成分析文档。
  • 生命周期:进行中。
  • 项目 slug:content-workbench(按任务说明「建议值」,未经用户另行指定)。

二、第 1 棒(已完成)

  • 会话:[执行]-开源项目调研-5项目清单与初步定位(id 52ace70a-bd4a-4201-a7b0-62237c092375)
  • 做了什么:把 5 个仓库的元数据 + README 全文 + 文件树拉齐(GitHub 公开 REST API),产出「5 项目清单与初步定位」一份。
  • 产物:docs/pm/content-workbench/research/1b-竞品分析-5项目清单与初步定位.md
  • 原始证据:取证/api/(*.repo.json / *.README.md / *.tree.json / postsider.ATTRIBUTION.md.txt 等)+ 取证脚本 取证/_fetch_repos.py
  • 取证时间:2026-10-07 16:13–16:17(CST)

第 1 棒的关键发现

  1. PostSider 是 Postiz 的 fork(postsider/ATTRIBUTION.md 逐字自述,AGPL-3.0)⇒ 4、5 两项同源,合成一份分析。
  2. 文到 AI 仓库不含业务源码(README 明示闭源;全仓仅 5 个文件)⇒ 无法做源码级分析。
  3. 许可分水岭:Easel / OpenCreator = Apache-2.0;Postiz / PostSider = AGPL-3.0。

三、第 2 棒(已完成)

  • 会话:[执行]-[开源项目调研]-Postiz与PostSider同源双形态分析(id a41bb3a3-1015-4a1c-9269-1fd75f998cb7)
  • 范围:按第 1 棒「四、下一棒该做什么」第 1 项 —— Postiz + PostSider 同源双形态分析(合成一份)。
  • 产物:docs/pm/content-workbench/research/1b-竞品分析-Postiz与PostSider同源双形态.md
  • 本棒新证据:取证/api/fork/(19 件:apps/mcp README / 工具契约 / server.json / SDK / package.json / releases / 迁移证据等)+ 取证/api/fork/fork-diff.json(差异量化,可复算)
  • 本棒新脚本:取证/_fetch_fork_evidence.py(补拉增量面)· 取证/_fork_diff.py(两侧文件树差异量化)
  • 取证时间:2026-10-07 16:40–17:05(CST)

第 2 棒的关键发现(会改变后续棒次排期)

  1. 改动量远不止"换牌"(文件树级量化):两侧同路径文件 329 条,其中逐字节相同仅 92。PostSider 删掉 apps/extension(16)与 libraries/react-shared-libraries(57)、前端 src/components 293→78、净增独立 MCP 包 apps/mcp(46 文件)。
  2. 工程化代差:Prisma 由 db push 升级为迁移体系(0 → 26 条迁移);测试由 0 → 94 个 *.spec.ts(根级 jest 配置 2 → 16);后端路由 32→42、服务 19→28。
  3. PostSider 的增量面确实是 Agent 桥:MCP 独立成包 @postsider/mcp、19 个工具(13 读 / 6 写,源码级双证:README + tool-inventory.ts 断言清单)、每工具四条风险注解;上游 Postiz 的 MCP 嵌在后端(chat/mcp.relay.service.ts),走"托管 endpoint + 15 个 agent 连接器"路线。
  4. 定价缺口已闭合:Postiz Cloud $29 / $39 / $49 / $99 每月;PostSider $20 / $35 / $45 / $90 每月(均 7 天试用;每档都含 API/SDK/MCP/Webhooks)。
  5. 新增未知项:真 fork 点查不到(GitHub 上未标记 fork、无 parent 指针);改动行数未做(tree API 不给行数)—— 见 §七。

四、第 3 棒(已完成)

  • 会话:[执行]-[开源项目调研]-Easel深度分析(id a4993b72-040e-49db-beb4-375f5201ff61,取自本会话 $CODEBUDDY_SESSION_ID)
  • 范围:按第 2 棒「五、下一棒该做什么」第 1 项 —— Easel 深度分析(ZJU-REAL/Easel,Apache-2.0)。
  • 产物:docs/pm/content-workbench/research/1b-竞品分析-Easel.md(37,520 B / 294 行)
  • 素材:只读复用第 1 棒已拉的 取证/api/easel.{repo.json,README.md,tree.json}(⛔ 未重复下载)+ 旁证(只读)参考资料/Easel_功能点与截图/
  • 本棒新证据:取证/easel/(17 件:官方文档 4 份 skill-function-mapping.md/SKILL-SPEC.md/prompt-stack.md/known-issues.md + 配置契约 6 件 AGENTS.md/SOUL.md/pyproject.toml/.env.example/CHANGELOG.md/openclaw.json5 + 2 个代表性 SKILL.md + releases/tags/languages/contributors)|取证/easel.tree.stat.json
  • 本棒新脚本:取证/_easel_tree_stat.py(文件树统计,可复算)
  • 取证时间:2026-10-07 17:06–17:19(CST);⚠️ raw.githubusercontent.com 通道不稳(多文件 000 失败)⇒ 改用 GitHub contents API 取正文,17 件全部成功。

第 3 棒的关键发现

  1. 主体是"技能库"不是"排期工具":全仓 1002 blob,771 在 skills/;skills/openclaw/ 716 文件 / 114 个技能目录 / 114 个 SKILL.md(源码级逐个数出);发布层只占 20/114。
  2. 三层加载是硬机制(SKILL-SPEC.md v0.3):Metadata 常驻 / Instructions 触发时 / Resources 按需,且硬规定 SKILL.md ≤200 行、领域知识外置 references/;94 个技能写了溯源的 EASEL-META.md。
  3. 能力数字有三处不一致,实测以 114 为准:文件树 114 / 能力地图正文 114 / 地图分层总览表相加 113(创作层列 51、正文实列 52)/ README 徽章 113(旧值);CHANGELOG 印证 112→113→114。
  4. 治理是源码级的,不只是文档:content_guard.py(出站内容敏感信息 fail-closed、退出码 7;AI 措辞仅告警)+ persona_gate.py(人设 <80 分只提醒不阻断)+ validate_skills.py/validate_skill_commands.py(解析技能里的命令对照 argparse 检查漂移)。
  5. 发布路线=浏览器自动化,且自陈风险:README 明写「谨慎自动发布到小红书」;skill-xhs-publisher 内置反检测参数并提示测试号/小流量/人工复核。与 Postiz「官方 OAuth、不自动化」相反 ⇒ 同一条产品线不可混抄。
  6. 本棒暴露两处待核:① CHANGELOG 称 CI 跑 38 条技能自带测试,而实测 skills/**/tests/ 仅 6 个文件 ⇒ 38 疑为用例数(未核实);② SKILL-SPEC 的 test1.prompt/.expected 约定在整树零文件(弃用)。均已写入产物 §十四。

五、第 4 棒(已完成)

  • 会话:[执行]-[开源项目调研]-OpenCreator深度分析(会话名取自本棒派活原文;产物落点见下)
  • 范围:按第 3 棒「十四、下一棒建议」第 1 项 —— OpenCreator 深度分析(krillinai/OpenCreator,Apache-2.0,默认分支 master)。
  • 产物:docs/pm/content-workbench/research/1b-竞品分析-OpenCreator.md(57,550 B / 约 430 行)
  • 素材:只读复用第 1 棒已拉的 取证/api/opencreator.{repo.json,README.md,tree.top.json,tree.docs.json}(⛔ 未重复下载)
  • 本棒新证据:取证/opencreator/(76 件:11 份分片文件树 + 62 份正文 + 3 份统计/日志)
    • 分片文件树 11 份:.github / apps / assets / packages / resources / runtime / scripts / skills / template / docs/specs / docs(递归)—— 逐片 truncated=false,整树完整(第 1 棒 recursive=1 中断的缺口已闭合)
    • 正文 62 份:AGENTS.md · 根 package.json/tsconfig.base.json/.env.example/pnpm-workspace.yaml/CONTRIBUTING.md · docs/(Runtime 设计蓝图、Runtime API v1、specs/ 图像 provider 设计、视觉组件规范、模板治理专文、计划任务运行手册与验收报告、superpowers 设计、中文 README 等 20 份)· packages/protocol/src/* 17 份契约源码 + package.json · packages/skill-market/* 5 份 · skills/* 8 份 · runtime/krillinai/go.mod · apps/{daemon,web,desktop}/package.json
  • 本棒新脚本:取证/_opencreator_tree.py(分片拉树)· 取证/_fetch_opencreator_docs.py(正文批量拉取,raw 优先、失败回落 contents API)· 取证/_opencreator_tree_stat.py(树统计 → 取证/opencreator/opencreator.tree.stat.json,可复算)
  • 取证时间:2026-10-07 17:37–17:56(CST);⚠️ 本棒实测 raw.githubusercontent.com 60/61 成功(1 件失败经 contents API 补齐)—— 与第 3 棒"raw 不稳"不同 ⇒ 该通道随时刻波动,脚本按双通道写。

第 4 棒的关键发现

  1. 路线与另 4 个项目全不同:它是「给创作者用的 Codex 外壳」—— README 与设计文档双证「不重新实现 Agent loop / Skills runtime / MCP runtime」,只做进程生命周期 + 事件归一化 + 持久化 + 调度 + UI(codex exec --json + stdin prompt + stdout JSONL)。
  2. 规模量级最大:2182 blob / 567 tree / 约 3.25 亿字节(源码级统计);apps/ 1264 文件(daemon 702 / web 437 / desktop 120 / harness 5);.ts 903 + .tsx 187 + .go 163;测试文件 416 个。
  3. 创作侧是真资产:template/ 108 个模板条目(image-generation 79 + video-generation 28 + cover-generator 1);技能市场 52 条候选 / 10 个中文分类,每条带七项风险声明(requiresLogin / requiresApiKey / externalWrite / readsLocalFiles / commercialLicenseReview / privateDataRisk / notes)。
  4. packages/protocol 契约包是精华:protocolVersion 0.1.0、provider 白名单 17 条(其中 codex-native 与 edge-tts 零凭据,且 image.provider 默认值就是 codex-native)、状态机 + expectedRevision + idempotencyKey 三件套、专为"远端到底收没收"设 unknown_remote_acceptance/abandoned_unknown 两态。
  5. 工程治理密度罕见:仓根 AGENTS.md(13,063 B)=验证分级铁律(P0/P1/P2)+"⛔ 不得过度验证"+"⛔ 不得用未执行的验证暗示无回归" + Creator 面板单一实现铁律 + Web/Desktop 一致性门禁(含构建产物哈希硬门) + 完成声明门禁。
  6. 已跑过一轮"专属会话"重构且留痕完整:Schedule ↔ Thread 一对一(schedule_task)、旧 parallel 全转 queue、演练脚本 pnpm release:verify-scheduled-task-upgrade(9 条验证 + 幂等复验)、灰度 8 项;验收自评 PARTIAL / BLOCKED_ENV(仓库不含真实原生 Desktop Host)⇒ 对我方"多会话/机制类项目"参考价值最高的一份。
  7. 一处源码级留白:skillMarketCatalog(已上架)与 customSkills 在源码里都是空数组 ⇒ "52 条有多少真上架"查不到(已入 §七缺口)。

五之二、第 5 棒(已完成)

  • 会话:[执行]-开源项目调研-文到AI项目分析(id 1b5dce36-1d47-4661-b6e5-af6c7ad2e33e)
  • 范围:目标说明 §二 清单第 2 项 wendaoai/wendao-content-workbench。
  • 产物:docs/pm/content-workbench/research/1b-竞品分析-文到AI.md(31,523 B / 253 行)
  • 素材:只读复用第 1 棒 取证/api/wendao.*;本棒新增 取证/wendao/(20 件:官网/隐私政策/sitemap/script + GitCode 更新仓 stable.json/版本清单/树/releases 渲染页 + 各 API 读数)
  • 本棒新脚本:取证/_fetch_wendao.py
  • 取证时间:2026-10-07 18:07–18:10(CST)
  • 关键结论:真闭源(全仓 5 blob、NOTICE.md 声明 proprietary、languages 空对象)⇒ 只能按文档级调研;产品侧 13 天发 11 版(0.0.113→0.0.123);独立更新清单(四平台 + sha256 + 升级策略)+ 发布助手「只填充不代发」两条最可搬。
  • 🔴 口径裁定(用户 2026-10-07 18:27 逐字):「文到AI 通过说明文档调研就行 不需要源码」⇒ 已写入目标说明 §六之二,消解了第 5 棒留在 NEED-USER.md 的待裁项。

五之三、第 6 棒(已完成 · 本轮 · 收口)

  • 会话:[执行]-开源项目调研-跨项目汇总对比(id 47860f06-c51f-4c2a-b7ad-2a6362b8a675)
  • 范围:只做跨项目汇总对比文档(验收判据第 3 条)。
  • 产物:docs/pm/content-workbench/research/1b-竞品分析-跨项目汇总对比.md(40,392 B / 343 行)
  • 做法:只读复核前 5 棒产物 + 用 取证/ 原始 JSON / 文件复核读数(未做新源码取证、未改写任何前棒产物);横向对比按主任务七维度(定位/形态/技术栈/许可/活跃度/功能覆盖/可借鉴点/风险)+ 同源单列 + 「对内容工作台方向的选型与借鉴结论」。
  • 本棒复核发现的跨棒冲突 4 条(均以原始取证为准,详见汇总文档 §十一):① Easel 技能数 113→114;② Postiz 树「截断前」措辞有误(tree_truncated=false,完整);③ PostSider 连接器 33(README)vs 34(*.provider.ts 实测);④ OpenCreator 模板条目 108(79/28/1)经原始树分片复算吻合,但派生件 opencreator.tree.stat.json 的 template_entries_by_category 全为 0(失真),须以原始分片为准。
  • 取证时间:2026-10-07 18:31–18:5x(CST)

六、验收判据现状(与 goal.json 的 acceptance_state 对齐)

  • 单项目分析文档齐全(5 个项目全覆盖,Postiz 与 PostSider 同源合并为一份并写明差异)—— 过(5 份文档覆盖 5 项目:总览 1 + Postiz/PostSider 合并 1 + Easel 1 + OpenCreator 1 + 文到 AI 1)
  • 每份含产品定位与功能清单与可借鉴点 —— 过(第 1–5 棒产物均含三段)
  • 一份跨项目汇总对比文档 —— 过(第 6 棒产物,本目标目录内)
  • 每份标注来源链接与取证时间 —— 过(逐条标链接与取证时间,含本汇总文档)
  • 产物全部落在本目标目录内 —— 过(6 份产物均在 执行会话/目标-…-5199a6/docs/pm/content-workbench/research/)

六之二、判据逐条自评(供检查会话复核 · 本轮新增)

口径:goal.json 的 acceptance_state 五条,逐条给「过/未过 + 一句依据」。⛔ 不只写「已完成」。

  1. 单项目分析文档齐全(5 项目全覆盖,Postiz 与 PostSider 同源合并为一份并写明差异)—— 过。依据:docs/pm/content-workbench/research/ 下 5 份文档分别覆盖 5 个项目;同源一份为 1b-竞品分析-Postiz与PostSider同源双形态.md,其 §二/§三写明 fork 关系与差异(文件树 329 同路径 / 92 逐字节相同)。
  2. 每份含产品定位与功能清单与可借鉴点 —— 过。依据:5 份文档各自设有「产品定位」「功能清单」「可借鉴点(按可搬性排序)」小节(汇总文档亦含 §五/§六/§九)。
  3. 一份跨项目汇总对比文档 —— 过。依据:本轮新增 1b-竞品分析-跨项目汇总对比.md(40,392 B),含七维度横向矩阵、同源单列、冲突复核、选型结论。
  4. 每份标注来源链接与取证时间 —— 过。依据:各文档末尾均列「来源链接 + 取证时间」表;本汇总文档 §十三列出 5 仓库链接与逐棒取证时间段。
  5. 产物全部落在本目标目录内 —— 过。依据:6 份产物与全部取证均在 执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/ 内;未写回 交付物/、docs/、工作区根。

七、下一棒该做什么(收口 → 仅剩非必须补强项,⛔ 本轮不顺手做)

目标 5 条判据已全部满足,主线收口。以下均为可选补强(部分属扩大取证面,须先问用户):

  1. Postiz ↔ PostSider 行级 diff(clone 两侧 + git diff --stat):把第 2 棒的文件级量化升级为行级(成本:下载/时耗大)。
  2. OpenCreator 元数据面补齐:拉 releases/tags/contributors/languages 四个 API(成本低)。
  3. Easel 114 个技能 layer 源码级分布:批拉 114 个 SKILL.md frontmatter 统计(第 3 棒遗留项,成本中)。
  4. 文到 AI 发布助手插件源码级核对:下载官方插件包(124,890 B)核对(⚠️ 扩大取证面,须用户点头)。
  5. OpenCreator docs/plans/ 10 份实施计划的「计划 vs 实现」抽样比对(成本中高)。

八、遗留的取证缺口(⛔ 不许猜,后续棒次或用户决定是否补)

  • Postiz ↔ PostSider 的 fork 点:GitHub 上 lumizone/postsider 未标记为 fork、无 parent 指针 ⇒ 用 API 求不到。
  • Postiz ↔ PostSider 的改动行数:tree API 只给 blob sha、不给行数 ⇒ 第 2 棒只做到文件级量化;行级 diff 需 clone 两侧(耗时大,建议单列一棒并先问用户)。
  • PostSider「33 个活跃连接器」口径:仓库 *.provider.ts 实数为 34、官网另写 "30+ networks" ⇒ 未逐条核对注册表。
  • PostSider 是否有托管(云)服务:官网只给试用入口与自托管文档,未见独立托管定价/SLA 页 ⇒ 查不到。
  • 各项目的用户量 / 下载量 / 营收:Postiz 自述 7M downloads(无口径),其余查不到;Easel 亦查不到(仓库无此口径,其项目主页 zju-real.github.io/Easel/ 未访问);OpenCreator 亦查不到(open-creator.ai 主页本棒未访问,未拉 releases/tags)。
  • (第 3 棒新增)Easel 的 4 条待核:① CHANGELOG 称 CI 跑 38 条技能自带测试,实测 skills/**/tests/ 仅 6 个文件(均在 skill-wechat-publisher)⇒ 38 疑为用例数,未逐条核对;② 114 个技能的 layer 源码级分布未做(层分布引用的是能力地图文档,而该表创作层 51 与正文实列 52 条不自洽);③ SKILL-SPEC 的 test1.prompt/test1.expected 约定在整树零文件(弃用,动机无记载);④ .env.example 的 xhs-maas / agnes 视频 provider 来源与可用性未核实。
  • (第 3 棒新增)Easel 技能可用率无实测:只做静态源码级取证,未运行任何技能。
  • (第 4 棒新增)OpenCreator 的 8 条待核:① 商业与规模证据全缺(主页/定价/用户量/营收/发行节奏,未拉 releases/tags/contributors/languages);② 技能市场"上架态"口径未核实(skillMarketCatalog 与 customSkills 源码里都是空数组,catalog.ts 的 sourceCommit 外部提交未访问);③ docs/plans/ 10 份实施计划的落地率未核(计划口径 ≠ 已实现);④ 火柴人角色素材与 contributors/* 头像、stickman-remotion/assets 音频的再分发许可未核(仓内只有 Apache-2.0 一份 LICENSE);⑤ 真实运行证据为零(未安装/未编译/未运行任何命令 ⇒ "十项工具可用""108 模板可跑"无实测支撑);⑥ runtime/krillinai(Go 引擎 183 文件)只做结构与依赖级取证,未读业务实现;⑦ GitHub languages 字节口径未取(本棒"语言构成"是按文件数的扩展名口径,⛔ 与官方字节口径不可混用);⑧ docs/development/ 5 份、ui-prototype-runtime-review.md、visual-component-guidelines.md、docs/plans/* 正文未逐份读。