Files
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

238 lines
19 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 目标执行状态 · 根据 1a 需求文档生成 MCN 短视频整合营销工作台的产品界面
> 目标目录:`执行会话/目标-根据1a需求文档生成MCN短视频整合营销-d85687/`
> 台账(唯一权威):`tmp/supervise-inbox/tasks.json` | 目标:`tmp/supervise-inbox/goal.json`
> 本份由任务会话 `[执行]-[开源项目调研]-补齐MCN工作台①②段产出` 写于 2026-10-08 02:4x。
> 🔴 **第二棒续写**:任务会话 `[执行]-[开源项目调研]-MCN工作台③段界面交互` 于 2026-10-08 04:xx 追加 §十(③段界面交互)。**§一~§九 属上一棒,一字未动。**
---
## 一、本棒做了什么(一句话)
**把 MCN 短视频整合营销工作台项目的①②段产出补齐并落本目标目录。** ③段界面**本轮未做**(用户口径逐字:「应该要先完成 1 2步 在进行第3步」)。
先按 `stage-discovery/SKILL.md` 判了①段五份里哪几份已就位,再按 `stage-requirements/SKILL.md` 产出②段两份。
---
## 二、本轮落盘的文件(7 份,全在本目标目录内)
| # | 文件 | 段 | 字节 | 本轮动作 |
|---|---|---|---|---|
| 1 | `research/1a-需求文档.md` | ①段 | 24 317 | **逐字复制件** + 一段落本目录说明。原件内容未改一字。 |
| 2 | `research/1b-竞品分析.md` | ①段 | 7 899 | **新写**:跨项目引用登记(不重写分析本体) |
| 3 | `research/1c-用户画像.md` | ①段 | 16 234 | **新写**:3 个画像 |
| 4 | `research/1d-产品策略.md` | ①段 | 17 660 | **新写**:九节画布 + 5 条关键假设 |
| 5 | `research/1e-使用场景.md` | ①段 | 15 881 | **新写**:八条用户故事 |
| 6 | `prd/2a-产品功能.md` | ②段 | 25 958 | **新写**:14 条功能 + 不做清单对照 + 六项治理 |
| 7 | `prd/2b-界面布局.md` | ②段 | 15 036 | **新写**:八页骨架 |
合计约 123 KB。
---
## 三、①段五份的就位判定(判据:`stage-discovery/SKILL.md`)
| 子步 | 判定 | 依据 |
|---|---|---|
| 1a 需求文档 | ✅ 已就位(**汇总型**,非 grill 澄清产出) | `…-72111e/1a-需求文档-MCN短视频整合营销.md`,2026-10-07 22:29。已复制进本目录。 |
| 1b 竞品分析 | ✅ 已就位,**跨项目** | 分析本体在 `…-5199a6/docs/pm/content-workbench/`。⛔ 未重写,只写了引用登记。 |
| 1c 用户画像 | 🔴 缺 → **本轮补齐** | 1a §四 只有三行角色描述,不是画像。本轮按 `user-personas.md` 成文。 |
| 1d 产品策略 | 🔴 缺 → **本轮补齐** | 1a 完全没有策略段。本轮按 `product-strategy.md` 九节成文。 |
| 1e 使用场景 | 🔴 缺 → **本轮补齐** | 1a §五 是汇总草案,不是用户故事体。本轮按 `usage-scenario.md` 重写。 |
⭐ **没有把 1a 的草案原样复制成三份充数** —— 1c/1d/1e 各按自己的方法论写,三份的章节结构互不相同,且都补了 1a 没有的东西(1c 的六要素画像与用研缺口、1d 的九节画布与关键假设、1e 的四槽位核对与替代方案检验)。
---
## 四、②段两份的就位判定(判据:`stage-requirements/SKILL.md`)
| 子步 | 判定 | 五样/六字段是否给全 |
|---|---|---|
| 2a 产品功能 | ✅ 本轮产出 | 14 条功能,每条六字段(功能名 / 来自哪条场景 / 优先级 / 状态流转 / 验收要点 / 跨哪些页面)齐全;六项治理逐条落在功能条目内;F1–F14 全部追得回 1e 的某条场景 |
| 2b 界面布局 | ✅ 本轮产出 | 五样给全:页面清单(8 页)|页面流转|每页板块与排列|每页主操作|每条信息分档(含判据回答);另加页型一句(判为**工具型页面**) |
🔴 **上一棒③段要照它做界面,所以骨架真定下来了**:八页 = P1 矩阵总览|P2 选题雷达|P3 资产库|P4 创作台|P5 发布中心|P6 账号画像|P7 复盘台|P8 记录与对账。一级导航三组取自 `1a` §八 的三个入口(找选题 / 走创作流水线 / 看矩阵复盘),P6 跨组。骨架带冻结声明:③段不许新增、移动、删除板块。
---
## 五、本轮按用户要求做的三件特别动作
1. **1a 的 9 条待复核与 A1–A4 假设,一条都没当事实用。** `2a` §三 逐条列了「哪条功能依赖哪条假设、不成立会怎样」(9 行),并按方法论给了假设三归宿:**9 条全落「待实现且已排定确认时机」**,确认时机统一为「②段收口时由主会话转用户一次性过;未过之前③段不得当硬约束用」。「已确认」与「已按假设落地」两档**均为 0 条**。
2. **文首写了「上游状态」。** `2a` §〇 给了逐项状态:1a 已就位(汇总型)|1b 跨项目已就位|1a 里指向 1b 系列的条目**复核已完成**(9 条里 2 改 7 不改)|1a 的 9 条待复核与 A1–A4 **仍未复核**。凡引用 1b 处标了证据等级(源码级 / 界面级只有 Easel / 文档级只有文到 AI)。
3. **凡依赖假设的条目逐条标出**(见第 1 条),且 `2b` §四 单独标了**两处骨架受限**:P1 的形态挂在待复核第 5 条、P8 的第 4 板块挂在待复核第 6 条与 A3。两处都带齐了复核人 / 复核时机 / 结论落点。
---
## 六、说人话自评(方法论要求,门槛 ≥45/50)
七份**全部逐份自评**,判据源 `E:/ProgramData/.workbuddy/skills/humanizer-zh`(五维各 10 分,总分 50):
| 文件 | 自评 |
|---|---|
| 1a(复制件,含新增说明段) | 46/50(沿用原件自评;新增段并入核) |
| 1b 引用登记 | 47/50(直接性 10 / 节奏 9 / 信任度 10 / 真实性 9 / 精炼度 9) |
| 1c 用户画像 | 46/50(9 / 9 / 10 / 9 / 9) |
| 1d 产品策略 | 46/50(9 / 9 / 10 / 9 / 9) |
| 1e 使用场景 | 47/50(10 / 9 / 10 / 9 / 9) |
| 2a 产品功能 | 46/50(9 / 9 / 10 / 9 / 9) |
| 2b 界面布局 | 46/50(9 / 9 / 10 / 9 / 9) |
⛔ 不是只报「已过」。逐份的分数与五维拆解写在每份文件的末行。
---
## 七、还缺什么(照实列,⛔ 不补编)
### A. 机制侧两条(本轮无权处置)
1. **`goal.json.execution_doc` 仍指旧目标目录**(`…-5199a6/目标执行状态.md`,登记于 2026-10-07 17:00)。修法是跑一次 `collabd.py --ensure-goal-dir`,**只能 main 席位跑**(本区 `collabd-state.json` 的 `roles` 为空,跑它会把检查会话登记成主会话)。前 6 棒已提,本轮复核仍成立。
2. **本目标连棒空跑**:本目标已连建 14 棒检查会话,第 8–14 棒结论相同。本轮的①②段补齐是**新内容**,与那 14 棒不同,但机制上收口办法(收窄连棒阈值 / 由用户结束目标)仍**须用户定**。
### B. 域外落地(本轮写不了)
3. **`docs/pm/mcn-shortvideo-agent/{research,prd}/` 的正式归档**:路径在**域外**,本轮按派活原文⛔ 未写。本轮产物全在本目标目录内。**等主会话收口后统一搬。**
4. **`docs/pm/mcn-shortvideo-agent/research/1a-需求文档.md` 是旧版**(上游状态行停在「正在重写、9 条待复核」),与本目录这份内容不同。**若裁定应以本目录这份覆盖,需主会话(域外)执行一步覆盖。**
### C. 内容侧的悬空项(要用户拍板,本轮已全部标出,未编答案)
5. **投放这段没有场景**。`1a` 待复核第 8 条问的就是「整合营销到底含不含投放」。`1e` §六 明写了三种处理,⛔ 未代写 S9。这一条不定,`1c` 的画像三只有半个人,`2a` 也没有对应功能。
6. **机构负责人这个角色在 1a 里悬空**(§五 S7 用了,§四 没列)。已记入 `1c` §五 与 `1e` §二。
7. **`1c` 是零访谈画像**(无问卷、无访谈、无行为数据),骨架全部来自 `1a` §四 的三行角色描述。已在 `1c` 文首与 §五 明说,⛔ 不许对外说成「基于用户调研」。
8. **1d 的 §7 增长与 §9 护城河写不下去**,卡在待复核第 9 条(单机构自用 vs 可交付产品)。已给两套读法+回收三字段,⛔ 未替用户拍板。
### D. 与目标 `acceptance_state` 的关系(本轮未改它)
`goal.json.acceptance_state` 的 5 条**全是③段判据**(设计契约与令牌表、原型 HTML、tiaoyue 与 oil-ui-pro、页面骨架来源、产物落点),标的都是「未过」。本轮做的是①②段,**不在这 5 条判据的范围内**,所以本轮**没有改动 `acceptance_state`**,也**没有动 `lifecycle`**(保持「进行中」)。
⚠️ 有一处要主会话注意:那 5 条里有一条是「**页面骨架来源已写明(②段缺失时标假设)**」—— 本轮把②段的 `2b-界面布局.md` 补齐了,**这条判据的「②段缺失」前提已不成立**,③段可以直接按 `2b` 的八页骨架做,不必再标假设。这一条判据的措辞可能要主会话顺手调一下。
---
## 八、一处输入侧更正(供机制记账)
派活原文指定的竞品分析路径是 `docs/pm/content-workbench/research/1b-竞品分析.md`。**这个路径在本工作区不存在** —— 实测 `docs/pm/` 下只有 `mcn-shortvideo-agent/research/1a-需求文档.md` 一份。
1b 的真落点在 `执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/docs/pm/content-workbench/`(research 汇总体 + 证据附卷 5 份独立体 + 取证 约 210 件)。已在 `research/1b-竞品分析.md` §一 写清真路径。
---
## 九、下一棒该做什么
**等主会话收口**:①段五份齐、②段两份齐,③段界面可以开工(照 `prd/2b-界面布局.md` 的八页骨架)。③段在本目标 `acceptance_state` 里有 5 条判据,与①②段不重叠。
本轮产物是**新内容**,`--report --state done` 已带上 artifact 路径,检查会话可照它读。
**两处要在③段动工前定**(都在 `2b` §四):P1 是否降为单账号今日(待复核第 5 条);P8 是否含商单对账(待复核第 6 条 + A3)。
---
*本份是本目标目录的执行状态文档,供下一个检查会话与任务会话接续。产物的判据源与自评分数在各份文件自身,本份不重抄。*
---
---
# 十、③段(界面交互)本轮记录(第二棒追加,2026-10-08)
> 写于:任务会话 `[执行]-[开源项目调研]-MCN工作台③段界面交互`
> 域锁:已持 `E:/ProgramData/AIProject/content_marketing_agent/执行会话`(与其它工作区无交集)
> 判据源:`stage-delivery/SKILL.md`(含 §供给 / Gate-1/2/3)+ 同目录 `references/execution-runbook.md`、`references/layouts-tooling.md`
## 10.1 本棒做了什么(一句话)
**把 MCN 工作台的③段「界面交互」整段做完并收口:3a 视觉规范 → 3b 可点通原型 + 实测 → 3c 独立评审 → 3d 审查与打磨。** 全部产物落本目标目录 `ui/` 内,⛔ 未写域外 `docs/pm/`。
## 10.2 本轮落盘的文件(全在 `ui/` 内)
| # | 文件 | 子步 | 说明 |
|---|---|---|---|
| 1 | `ui/DESIGN.md` | 3a | 设计契约十二字段 + 三层令牌表 + 6×8 状态覆盖 + 交互清单(唯一交互真相源)+ 两处假设显式标注 + Gate-1 自检 + 缺口与证据边界 + 数值取证登记 |
| 2 | `ui/mcn-workbench.html` | 3b | 单文件自包含原型:八页 + 七浮层 + 六态,双击可开,自带 `#/selftest` 自检台 |
| 3 | `ui/3b-实测记录.md` | 3b | 自检 81 项全文、变异对照 13/13、骨架闸门、多视口密度、**15 条真缺陷的现象/根因/证据**、偏离单 |
| 4 | `ui/3c-GPT会诊.md` | 3c | 通道说明、提问原文(含附件清单)、回答原文照录、22 条四列处置表 |
| 5 | `ui/3d-审查报告.md` | 3d | 固定七节(范围/挡位/阻断项/建议项/状态覆盖核对/结构核对/Gate 结论)+ 偏离单 + 收口清单 |
| 6 | `ui/_tools/` | 3b/3d | 三个可复跑脚本:`cap.py`(取证)、`mutate_test.py`(变异对照)、`check_skeleton.py`(骨架冻结闸门) |
| 7 | `ui/_gate_shots/` | 3d | **23 张视口帧**,每张都经 PNG 像素尺寸比对(⛔ 不是「标称尺寸」) |
## 10.3 ③段的 5 条验收判据(`goal.json.acceptance_state`)逐条结论
| # | 判据 | 结论 | 依据 |
|---|---|---|---|
| ① | 设计契约与令牌表已落 `DESIGN.md` | ✅ **过** | `ui/DESIGN.md` §一 十二字段全填、§二 三层令牌表全为具体值;Gate-1 十项自检结果写在 §四 |
| ② | 原型 HTML 已交付且可点通 | ✅ **过** | `ui/mcn-workbench.html` 单文件自包含;自检在 22 个真实场景里逐个驱动 **71 个 ID**,**0 个死控件**;六态 × 八页 48 组合全渲染;七浮层逐个过「出口/焦点锁/Esc/遮罩/焦点归还」 |
| ③ | 用了 tiaoyue 设计系统与 oil-ui-pro 方法且来源写清 | ✅ **过** | `DESIGN.md` §〇 供给核对:方法主线 `oil-ui-pro`、定调与令牌取 §供给·定调与令牌 指定的 `design-system-tiaoyue`(色值/圆角/间距/组件逐项标了套内出处);可选档 `assets/open-design/` **未动用**,已在 §五 第 1 条明示四项工艺判据本次无供给来源 |
| ④ | 页面骨架来源已写明 | ✅ **过** | 照②段 `prd/2b-界面布局.md` 的八页 37 板块做;另有**机检闸门** `check_skeleton.py` 把②段当权威逐页逐位比(正向 PASS,反向变异两条都报红)。判据里「②段缺失时标假设」的前提已不成立 |
| ⑤ | 产物落点明确且可追溯 | ✅ **过** | 全部落 `执行会话/目标-…-d85687/ui/`;脚本可复跑(命令见 `3b-实测记录.md` §一);每个数字都标了取法;⛔ 未写域外路径 |
### 🔴 两处必须先标假设的事(本轮的处理方式)
派活原文点名的两处**尚无用户结论**,本轮按②段 §四 给的默认读法做,并**在 `DESIGN.md` §三 与原型里双向显式标注**:
| 假设 | 默认读法 | 落地方式 |
|---|---|---|
| 假设 1 · **P1 的形态**(挂 1a 待复核第 5 条 + A1) | 按「需要矩阵级视图」做:P1 = 矩阵总览,5 个板块全在 | P1 标题行右侧挂「假设」徽章;顶栏另有「假设 2 项」入口,点开逐条给**复核人 / 复核时机 / 结论落点** |
| 假设 2 · **P8 第 4 板块「商单与收支」**(挂 1a 待复核第 6 条 + A3) | 按「进第一版但属 P2、可整块缺」做:渲染出来但标「可点入 + 假设」,展开后给一句「本块依赖未复核项」 | 同上,P8 该板块标题行右侧挂「假设」徽章 |
⛔ 两处**都没有**当已确认需求写死,也**没有**自己编答案。复核人=主会话转用户、复核时机=②段收口时、结论落点=`prd/2b-界面布局.md` §四。
## 10.4 本轮跑过的门禁(全部可复跑)
```text
自检(#/selftest,原型自带) PASS 81 / FAIL 0 @1440×900(契约视口)
PASS 81 / FAIL 0 @1280×900 / 1024×900 / 768×900
变异对照(mutate_test.py) 13 / 13 通过(基线回绿)
骨架冻结闸门(check_skeleton.py) PASS 八页 37 个板块与②段逐页逐位一致
多视口密度核对 7 个视口,横向溢出全为 0
视口帧 23 张,逐张经 PNG 像素尺寸校验
```
## 10.5 🔴 未清零的一项(要用户拍板,本轮没有替用户选)
**B-15:≤767px 宽时一屏装不满 6 行。** 判据原文(`layouts-tooling.md` §1)是「一屏可见行数 ≥6(900px 高时)」,**不带宽度条件**,所以本轮**一个字没改**。
- 实测:1440/1280 → 10 行;1024/768 → 6 行;**641/640 → 5 行**;**500×844 → 4 行 / 5 行**。
- 成因是**页面外壳吃掉首屏**(≤767px 顶栏折两行 109px;≤640px 导航变横条),**不是行变肥** —— 行高 67px、各行差 ≤2px、块内分隔 1px,任何视口都 PASS。
- 自检在这三个视口上**就是红的**(PASS 80/1 与 PASS 79/2),⛔ 没有靠改判据把它变绿。
- 三条出路**只能挑一条**:①把支持宽度下限写成 ≥768px(依据:`1a §七` 明确第一版不做移动端 App);②压掉每行的次级信息、行高压到 40px 上下(那 3 条次级信息是②段定的档位,③段不许改);③动页面外壳(顶栏控件都登记在交互清单里,等于改交互清单)。
## 10.6 会话侧偏离(必须留痕,⛔ 不许静默)
| # | 原要求 | 实际做法 | 影响 |
|---|---|---|---|
| D1 | 3b 实测走 `browser-harness` | 等价替代:原型自带自检 81 项 + 变异对照 13/13 + 无头 Chrome 23 张视口帧 + 逐条 DOM 取值 | 证据全可复跑,但**没有「真人真点」这一层** |
| D2 | D5 终检要 `390×844` 帧 | 实测到 **500×844**(Chrome 窗口宽下限 516) | 手机帧比要求宽 110px;⛔ 报告一律写 500×844,**不许**写成已测 390 |
| D3 | 对外只留视口帧,长图仅自检 | 未产长图(该通道本机做不到,`--full` 参数已删) | 无 |
| D4 | 3c 要「外部 GPT 会诊」 | 改用**隔离上下文的独立评审执行者**(只看任务与截图,不看源码、不继承制作对话) | 与「异厂商外部审查」不是同一条通道。**未取得外部审查 ≠ 已通过** |
## 10.7 还缺什么人工确认(照实列,⛔ 不补编)
1. **假设 1 / 假设 2 的结论**(P1 形态、P8 第 4 板块)—— 仍无用户结论,本轮只做了默认读法 + 显式标注。
2. **B-15 的三条出路挑一条**(§10.5)。
3. **评审提的「要不要把 P1 账号矩阵列表做成真正的矩阵视图」** —— 属信息呈现变更,超出③段权限,是 `3c` 里最值得往上提的一条(另见 `3d` §四 S-16)。
4. **评审提的「导航计数只给了一半」** —— 改动落点在交互清单 `G-05` 的反馈列,本轮未动。
5. **D1 那条人工走查**:要不要补一次真人真点。
6. ⚠️ 机制侧两条与上一棒相同(`goal.json.execution_doc` 仍指旧目录、连棒空跑),本轮**无权处置**,维持原状。
## 10.8 说人话自评(③段四份,判据源 `humanizer-zh`,五维各 10 分)
| 文件 | 自评 |
|---|---|
| `ui/DESIGN.md` | 45/50(直接性 9 / 节奏 8 / 信任度 9 / 真实性 10 / 精炼度 9) |
| `ui/3b-实测记录.md` | 45/50(9 / 8 / 10 / 9 / 9) |
| `ui/3c-GPT会诊.md` | 45/50(9 / 8 / 10 / 9 / 9) |
| `ui/3d-审查报告.md` | 45/50(9 / 8 / 10 / 9 / 9) |
扣分集中在两处,逐条说明:**节奏**——技术规格以表格与短断言为主,句式偏单一;**精炼度**——为让每条结论都能追溯到判据,`⛔/⚠️` 前缀与括号补注偏密。已按「同一事实只写一处」的原则裁过一轮(例:密度逐视口实测表只在 `DESIGN.md` §五 第 7 条出现一次,§六 只留契约视口值并指回它)。
## 10.9 下一棒该做什么
③段四步已收口,**本目标在 `acceptance_state` 上的 5 条判据本轮全部转「过」**(§10.3)。⚠️ 本轮**没有**动 `goal.json` 的 `lifecycle` 与 `acceptance_state`(按派活原文)—— 这两项由**主会话席位**收口。
**主会话收口时要做的三件事**:
1. 把 `goal.json.acceptance_state` 的 5 条按 §10.3 标「过」,并按判断是否结束目标。
2. 把 `ui/` 下的产物**统一搬到域外正式归档路径** `docs/pm/mcn-shortvideo-agent/`(本轮按派活原文⛔ 未写域外)。
3. 把 §10.7 里那 6 条人工确认项转给用户;其中 **B-15** 与 **假设 1/2** 是硬卡点。
*(本份的 §一~§九 属上一棒①②段,本轮一字未动。)*