From f536a0c20131115a93cd1e06a3427f5d9d50a5de Mon Sep 17 00:00:00 2001 From: WorkBuddy Date: Sat, 10 Oct 2026 22:25:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=AE=E6=A0=87=E5=B7=B2=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=A0=B8=E5=AE=9E=EF=BC=88=E4=B8=89=E5=88=A4=E6=8D=AE=E5=85=A8?= =?UTF-8?q?=E8=BF=87/=E9=97=B8=E9=97=A8=E7=8E=B0=E8=B7=91/=E9=80=90?= =?UTF-8?q?=E8=A7=86=E5=8F=A33=E6=A1=A3=E7=BA=A2=E7=99=BB=E8=AE=B0?= =?UTF-8?q?=EF=BC=89+=20=E6=94=B6=E5=8F=A3=E6=90=AC=E8=BF=90=E2=91=A1?= =?UTF-8?q?=E6=AE=B5=E4=B8=A4=E4=BB=BD=E5=88=B0=20docs/pm/prd/=20+=20?= =?UTF-8?q?=E8=AE=A2=E6=AD=A3=E6=9C=BA=E8=AF=BB=E5=89=AF=E6=9C=AC=E5=88=A4?= =?UTF-8?q?=E6=8D=AE=E6=8E=AA=E8=BE=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .workbuddy/memory/2026-10-10.md | 98 +++ .../mcn-shortvideo-agent/prd/2a-产品功能.md | 563 ++++++++++++++++ .../mcn-shortvideo-agent/prd/2b-界面布局.md | 618 ++++++++++++++++++ tmp/supervise-inbox/_ensure.stamp | 2 +- tmp/supervise-inbox/check-agent.json | 14 +- tmp/supervise-inbox/collabd-state.json | 2 +- tmp/supervise-inbox/goal.json | 18 +- tmp/supervise-inbox/supervise.pid | 2 +- tmp/supervise-inbox/tasks-events.jsonl | 2 + tmp/supervise-inbox/tasks.json | 16 + 10 files changed, 1316 insertions(+), 19 deletions(-) create mode 100644 docs/pm/mcn-shortvideo-agent/prd/2a-产品功能.md create mode 100644 docs/pm/mcn-shortvideo-agent/prd/2b-界面布局.md diff --git a/.workbuddy/memory/2026-10-10.md b/.workbuddy/memory/2026-10-10.md index 206261b..5e08f81 100644 --- a/.workbuddy/memory/2026-10-10.md +++ b/.workbuddy/memory/2026-10-10.md @@ -86,3 +86,101 @@ 8、**F7 展开单位改平台账号 + F13 补「一版一路」**(`PublishRecord` 不加渠道字段)。 **挂起项**:**定时发布** —— 记在目标 why 与队列里,等做投放功能时再议。 + +## 22:23 · 核实目标完成情况(用户问「目标完成情况如何」) + +**目标「把八条已定口径落进②段两份与原型」= 已完成** ✅ —— `lifecycle=已完成`,**三条判据全过**(检查会话逐条真核过)。 + +**过程**:主棒 `d7ea834b`(08:23 上报 done)只交付产物、**没写 `目标执行状态.md`**、也没把验收结论写回机读副本 ⇒ 补齐棒 `6f6cd256`(09:1x)按文档合同补上,**核完三条全过 ⇒ 该棒零改动**(2a/2b/原型/DESIGN/实测记录一个字未动)。 + +**五道闸门现跑**(⛔ 一个数不沿用书面值):`check_js` PASS / 骨架冻结 **七页 39 块** PASS / 自检 **PASS 78 / FAIL 0** / 变异 **24/24** / 逐视口 16 档整表重跑 **不达标 3**(窄屏三档,已登记、不阻断)。 + +🔴 **变异对照有效**:M16(首项改「首业」)与 M21(塞回 `.nav-group`)**两条报红落在同一判据** ⇒ 那条判据不是恒绿。**"报红"在这里是好事**(判据真在工作),别读成缺陷。 + +**产物**(`执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/`):`2a-产品功能-新版.md` 61 683 B / `2b-界面布局-新版.md` 52 256 B / `ui/mcn-workbench.html` **149 047 B**(V4)/ `ui/DESIGN.md` 63 411 B / `ui/3b-实测记录.md` 28 703 B。 + +**八条口径落成了什么**(`2b` 行 4/17/21-22/30-31 逐字):P2 由 5 块收成 4 块(「灵感速记」并进「选题库」)/ P6 由 4 → 5 块(画像六维 → **画像五维** + 新增**平台账号**块,带平台+登录态+授权状态)/ 投放页目标选择改**两级**(先内容账号、再勾平台账号)/ 业务板块总数**仍 39**(一减一加,净变化 0)。 + +**本轮主会话自决做的两件**: + +1、**订正机读副本判据的措辞**(检查会话指出但按规矩未擅改):原写「账号画像六维」⇒ 改成「画像五维 + 平台账号块」,与②段实际一致。 +🔴 **顺带踩到第二个 kpi 坑**:`goalctl declare --kpi` 的判据文本里**不能出现全角分号/括号/斜杠** —— 第一次写 `(…;…/…)`,工具把它们当**分隔符切碎**,中间两段被吃掉(只剩带 `=` 的碎片被当成判据)。改用**最简文本**重设才成功。⚠️ 与 10-09 那个"等号必须半角"是同一族的坑:**判据文本只用最朴素的字符**。 + +2、**收口搬运**:②段两份归档到 `docs/pm/mcn-shortvideo-agent/prd/`(该目录新建),归档名去掉"新版"= `2a-产品功能.md`/`2b-界面布局.md`;⛔ 源文件保留(零删除)。 + +**遗留 8 条**(检查会话写在 `目标执行状态.md` §四),其中**要用户裁定**的三条:窄屏三档密度红(是否动断点)/ P7 一页两个主操作(是否再议)/ 两处假设(P1 形态、P7 第 10 块「商单与收支」是否进第一版)。 + +## 07:4x–08:0x · TrendRadar 接入智谱 GLM(模型 `glm-5.3-flash`,用户指定「思维链要较低档」) + +部署位置(承 10-09 那次):源码 `E:/ProgramData/AIProject/trendradar`,容器 `trendradar`(8080) / `trendradar-mcp`(3333)。 + +- **配置落点(已生效并验证)**:`docker/.env` = `AI_ANALYSIS_ENABLED=true`|`AI_API_KEY=<智谱 key>`|`AI_MODEL=openai/glm-5.3-flash`|`AI_API_BASE=https://open.bigmodel.cn/api/paas/v4`。智谱走 OpenAI 兼容端点 ⇒ 模型名**必须带 `openai/` 前缀**(项目 config.yaml 注释里写了这条规则)。`config/config.yaml` 的 ai 段:`max_tokens` 5000 → **16000**,新增 `extra_params.extra_body.thinking = {type: enabled, level: low}`。 +- 🔴 **智谱 GLM-5 系列三条硬事实(实测可复用)**:① **不能关思考**,传 `{"type":"disabled"}` 或 `{"type":"low"}` 都报 `code 1210`,原文「该模型始终思考,不支持关闭思考;请使用 low、high 或 max」。② **低档只有一种写法**:`{"type":"enabled","level":"low"}`;只写 `{"level":"low"}` 或加 `effort`/`budget` **不报错但不生效**(服务端忽略未知键,reasoning_tokens 与默认持平)—— 判据看 `usage.completion_tokens_details.reasoning_tokens`。③ **litellm 透传私有参数唯一通道是 `extra_body`**:直接 `completion(thinking={...})` 抛 `UnsupportedParamsError: openai does not support parameters: ['thinking']`;改 `extra_body={"thinking":{...}}` 才生效 —— 同一样本 reason_tokens **969 → 236**、总耗 1511 → 724。 +- 🔴 **「AI 返回空响应」的真因不是 key 错,是思维链吃光预算**:`client.chat()` 取 `choices[0].message.content`,为 None 就返回 `""` ⇒ analyzer 记空响应(`trendradar/ai/analyzer.py:562`)。实测真实体量(150 条 + 官方 prompt)在 **low 档下 reason 仍要 3557 token**、total 4074,逼近 5000 上限 ⇒ 数据再大就 `finish_reason=length`、回答被截空。**「降档」与「放宽预算」必须一起做**,只降档不提预算照样失败(已实证一轮)。 +- **对项目源码的一处改动(第三方项目,改动处已写中文注释)**:该项目的 `ai.extra_params` 是**读了不用的死配置** —— `trendradar/core/loader.py:273` 读进 `EXTRA_PARAMS`,`trendradar/ai/client.py` 从不消费 ⇒ 光改配置不生效。改 client.py 两处:`__init__` 增 `self.extra_params`,`chat()` 里把 `extra_body` 合并进 `params["extra_body"]`、其余键按原「只补不覆盖」并入。 +- 🔴 **让改动进容器靠挂载覆盖,不改镜像**:`docker/docker-compose.yml` 的 trendradar 服务 volumes 增 `../trendradar:/app/trendradar:ro`;验证=容器内 `trendradar.__file__` 为 `/app/trendradar/__init__.py`。好处=官方镜像照常 pull 升级,本地补丁仍在。 +- ⚠️ **改挂载进来的配置文件不会触发 recreate**:只改 `config.yaml`/`.env` 后 `docker compose up -d` 显示 `Running` 而非 `Recreated`,容器仍跑旧值(日志里 `max_tokens` 一直是 5000,白等一轮)⇒ 必须 `docker compose up -d --force-recreate trendradar`。 +- **验证**:日志 `[AI] max_tokens=16000` → **`[AI] 分析完成`**,翻译 7/7 成功;报告 `output/html/2026-10-10/08-02.html` 152 136 B(无 AI 的旧版 147 871 B),含 6 处「AI 分析」字样 ⇒ 内容真写进去了。 +- **遗留**:雅虎财经 RSS 源 404(官方默认源,非本次引起);未拍板=要不要把 `ai_analysis.max_news_for_analysis` 从 150 降到 80(减思考量省钱,代价是报告覆盖的新闻变少)。 + +## 08:02–08:2x · 执行棒交付「把八条已定口径落进②段两份与原型」(sid `d7ea834b`) + +落点 `执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/`(起点=`fc471a` 只读,md5 复核未被改)。上报 `--state done`,域锁 `[执行]-[产品规划]-把八条口径落进②段与原型` 已 `--release-exec` 释放(实测锁库已空)。 + +**八条口径 → 落点(逐条可对)**: +1、一类事情放同一页面 → `2a` §一 第 2 条整条重写 + 七页复核表(**页集合一个没动**); +2、资产入库不限页 → `2a` §二 `Asset` 产生位置改「P2/P3/P4 均可」+ `2b` P3 职责改「统一管理」+ P2 对标内容写明可就地入库; +3、选题库分类 → `2b` P2 新增「**进度 × 类型**两个正交维度」(类型=选题/对标线索/评论洞察/数据异动/灵感;随手记默认落「灵感·待做」); +4、记录与对账属复盘 → `2b` P7 十块**平铺不划子区** + 写死属「发布之后看数据与看收入」; +5、一条内容对多渠道 → `2a` `PublishTask` 定义改「含**发布渠道**」;`2b` P5 摘要区改「目标渠道数/覆盖平台数」; +6、账号两概念 → `2a` `Account` 改「**内容账号**」+ 新增「平台账号」五条说明(子项、不进表、不进计数、不加对象);`2b` P6 画像**五维** + 新增「平台账号」块; +7、投放页两级目标选择 → `2b` P5 第 1 块写清「先内容账号 → 再勾它的平台账号」; +8、F7 展开单位/F13 一版一路 → `2a` F7 改名 + F13 补「一版一路」(`PublishRecord` 不加渠道字段)。 + +**骨架账**:P2 5→4 块(「灵感速记」并进选题库,⚠️**顺手订正 V3 遗留的板块清单 ↔ 分档表打架**)、P6 4→5 块(新增平台账号)⇒ **总数仍 39**(逐页 5/4/4/6/5/5/10)。页数、导航一层七项、流转 20 条、令牌与几何**一格未动**。 + +**原型三条真改动**:① `S.targets:{accounts,platforms}` → `{accounts,channels}` + 新增 `PLATS` 数据;② 交互清单 88→90 个 ID(**撤 `P2-11`**,增 `P2-12`/`P6-06`/`P6-07`);③ `PROFILES` 删 `平台` 字段。 + +**闸门实测(全过)**:骨架 `PASS`(`check_skeleton.py`)|自检 `78/0`(全文存 `_scratch/selftest-v4-1440.txt`)|变异 `24/24`(存 `_scratch/mutate-v4.txt`)|逐视口 16 档 `不达标 3/16`(**整表重跑,逐格与 V3 完全相同**——本轮改的是 P2 选题库/P5/P6,没碰被量的 P1 与 P2 对标内容)|命名 `2060|0|27`。另做骨架闸门**四条反向变异**(板块名/数/顺序/再命名,改 2b 副本 ⇒ 全报红,验完还原)。 + +**必记两条**: +- 🔴 **改骨架两侧必须同步**:`2b` §五 板块清单与原型 `FROZEN` 是**双写**,任一侧改了另一侧不改 ⇒ `check_skeleton.py` 报红;**改完两侧都要跑一次**。 +- 🔴 **「撤 ID」必须同时删 DOM**:撤 `P2-11` 若只删 IMPL 不删按钮 ⇒ 自检「页面上每个 data-act 都在清单里」报红;反之只删 DOM 不删 IMPL ⇒ 「声明了但页面里没有」报红。**两个方向各有一条判据盯着**。 + +**遗留待裁定(已登记,⛔ 未擅自动手)**:窄屏三档密度红(`560/500/390`,与侧栏宽度无关,成因=Page Shell 抬首行顶);「满宽表格」与「一屏 ≥6 行」窄屏不可兼得;P7 一页两主操作;P1 形态与 P7「商单与收支」两处假设仍未获用户结论;目标目录名全称 vs `title[:20]` 口径分歧(沿用)。 + +## 08:30 · 检查棒第 43 棒:判「八条口径」目标完成度 ⇒ **判不出来,已停手** + +- 🔴 **唯一阻塞**:`执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/` 下**没有 `目标执行状态.md`**(实测该目录只有 `2a-产品功能-新版.md`、`2b-界面布局-新版.md`)。派活单把这份文档定为「判断目标状态的唯一依据」,并写明「读不到 ⇒ 判不出来并停手,⛔ 不许去别处找」⇒ 本棒照办:**未派活、未改 `lifecycle`、未改 `acceptance_state`**。 +- **机制侧三处漂移(本棒实测,未改)**:① 工作区根 `state.py` **不存在**(派活单第 1 项读不到);② `tmp/supervise-inbox/taskgraph.json` **不存在**(第 3 项读不到);③ `goal.json.execution_doc` 换目标后**仍指着上一目标 `0ec0a7` 的文档**(上一棒已在旧文档里写「本目录此前没有状态文档,由检查会话补上」⇒ 同型缺口在新目标上又出现一次)。 +- **其余输入**:`tasks.json` 台账 20 条全 `done`|`goal.json.acceptance_state` 三条仍停在 `未过`(`declared_at 07:57`,早于执行棒 08:2x 交付 ⇒ 与文档口径不同步,本棒未采信、也未回写)|`collabd.py --domain-status` = 无人持域锁。 +- ⚠️ **下一棒的坑**:文档若仍缺失 ⇒ 第 44 棒会得出同一个「判不出来」,目标一直停在「进行中」。要破这条链,得先有人把 `目标执行状态.md` 写出来(文档合同里这件事归**目标检查会话**,第 42 棒就是这么补上的)。 + +## 09:05 · [检查]-[目标检查]-第 44 棒(目标:把八条已定口径落进②段两份与原型 · fa6e07) + +- **判定=未完 ⇒ 已派执行棒**(与第 43 棒「判不出来即停手」的处置**不同**,理由见下)。 +- 三路读数:台账 `d7ea834b` **done**(08:23:37,artifact=目标目录)|`taskgraph.json` **不存在**(无未完节点)|`goal.json.acceptance_state` **三条值=`未过`**(有效判据 3 条,非过 ⇒ 并集判「没完」)。 +- 🔴 **破链动作**:第 43 棒因「状态文档读不到 ⇒ 停手」留下死结(文档归检查会话写,而检查会话又因缺文档不敢动 ⇒ 目标永远停在「进行中」)。本棒跑 `--ensure-goal-dir`(幂等)补出 `目标执行状态.md` **空骨架**,再按 §三.2 派棒补齐核验 ⇒ 链断在这里。 +- ✅ **派棒**:`[执行]-[产品规划]-补齐目标执行状态文档并逐条核验三条判据`,id `6b520c68`,`once` 09:09,域=`执行会话`(域键 `contentm_agent/执行会话`,派前 `--domain-status` 无人持锁)。派前已 `list` 确认无同目标在跑的执行排期。 +- ✅ **顺带修正**:`goal.json.execution_doc` 原指向旧目标 `0ec0a7` 的文档,已由 `--ensure-goal-dir` 对齐到 `执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/目标执行状态.md`。 +- ⛔ **未动**:`lifecycle` 仍「进行中」|`acceptance_state` 未回写(三条 `未过` 是 07:57 声明时写的,早于 08:2x 交付 ⇒ 属「还没判」,采信它会误判)。 +- 📌 记忆里可提的点:**执行棒交付后不写 `目标执行状态.md`** 是本区反复出现的缺口(071c5b/fc471a/0ec0a7 都有该文件,fa6e07 没有)⇒ 派活单里应把「写状态文档」列进执行棒的必交产物。 + +## 09:1x · [执行]-[产品规划]-补齐目标执行状态文档并逐条核验三条判据(棒 `6f6cd256`,目标 fa6e07) + +- **三条判据逐条真核 ⇒ 全过,本棒零改动**(2a/2b/原型/DESIGN/实测记录一个字未动)。 +- **五道闸门全部现跑**(⛔ 不沿用上一棒书面值):`check_js.py` 两条 PASS(script 段 1439 行 node --check 过 + 模板反引号 0)|`check_skeleton.py` PASS 七页 39 块逐位一致|`grab_selftest.py` 1440×900 **PASS 78 / FAIL 0**(控制台报错 0)|`run_viewports.py` 16 档整表重跑 **绿 13 / 红 3**|`mutate_test.py` **24/24**|`check_naming.py --ws` **2060|0|27**。浏览器走本机常驻 9223(pid 1988),⛔ 未另起;收工 `tab_close.py` 已关本棒那一个标签。 +- **判据 1(2a 八条口径)过**:八条逐条有落点 —— §一 第 2 条(一类事一页)/§一 第 4 条 + §二 `Asset`(入库不限页)/§二 `Topic` + §三 F2(进度 × 类型两维五类,⛔ 无「待整理」)/§三 F12·F13 归 P7 + `2b` P7 十块平铺(记录与对账属复盘不拆)/§二 `PublishTask` 含发布渠道(渠道 = 平台账号)/§二 `Account` + §三 F9(账号两概念,对象数仍 11)/`2b` P5 第 1 块两级/§三 F7 展开单位 = 平台账号 + F13 一版一路。全文「账号 × 平台」6 处**全在否定语境**,无残留误用。 +- **判据 2(2b 与原型同步)过**:导航/P6/P7/P5 四页逐页核过,骨架闸门一条 PASS 覆盖。⚠️ **判据里写「账号画像六维」,②段与原型实际是「画像五维 + 平台账号块」(P6 4→5 块)** ⇒ 已在文档 §二 写明差异并**采信②段实际(五维)**,依据=用户 10-10 口径「平台不归内容账号」。「六维」是改口径前的旧写法,属机读副本措辞待订正(已列进待裁定)。 +- **判据 3(闸门全过)过**:逐视口 16 档红 3 档(`560×900` P1 5 行/`500×844` P1 3 行/`390×844` P1 0 行 + P2 5 行)按「已登记、不阻断」计过 —— 依据:三档数值与 V3 **逐格相同**(非本轮引入)、成因已实测与侧栏宽度无关、整改需动窄屏几何属**扩大可见面 ⇒ 红线须先问用户**。已在文档写全 A6 例外三字段(卡在哪/做到哪步/什么条件必须回头)。 +- ✅ 产物=`执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/目标执行状态.md`(补齐「一/二/三/四」四节,结论只用 `过|依据` 规范写法)。已 `--report done --artifact` 上报;三条结论已 `goalctl.py declare --kpi` 写回并**回读确认**(⚠️ 踩坑:`--kpi` 按**分号**切,依据里写 `;` 会被切成假判据 ⇒ 依据里⛔ 不许出现任何分号)。 +- ⛔ 未动 `lifecycle`(仍「进行中」,收口归检查会话)|⛔ 未搬正式归档|⛔ 定时发布未做(用户挂起)。 + +## 09:3x · [检查]-[目标检查]-第 45 棒 ⇒ 目标 fa6e07 收口为「已完成」 + +- **三路取并集判完成**:`tasks.json` 22 条全 `done`(无 `running` 僵尸件)|`taskgraph.json` **文件不存在**(⛔ 未据此判未过,也⛔ 未去别处找)|`acceptance_state` 三条**全为 `过|…`**,与文档逐条对上 ⇒ **判完成**。 +- ✅ 先确认再写回:`goalctl.py declare --kpi` 三条重声明(先 dry-run 读回显确认 3 条完整、再 `--yes` 真写),回读 `goal.json` ⇒ `declared_at=09:34`、`declared_by=[检查]-…-第45棒`、三条依据原样在。 +- ✅ `collabd.py --set-life 已完成 --by "[检查]-[目标检查]-contentm_agent-第45棒"` ⇒ `进行中 → 已完成`;回读 `--check-status` = `已完成|队列未完成 0|静默 7.2 分钟|会话全结束|已建检查会话 45 棒`。 +- ⚠️ 副作用留痕:设「已完成」时**常驻程序被优雅退出**(pid 8236,因「目标已完成」)—— 这是设计行为,下次开新目标需重新拉起。 +- ⚠️ 两处工具现状:`state.py` **不在工作区根**(派活单第 1 项跑不到);`--domain-status` 现跑=**无人持域锁**(本棒未派活)。 +- ⛔ 本棒未派新活、未改②段与原型一个字;待用户裁定项(六维措辞/窄屏三档断点/定时发布)原样留档。 diff --git a/docs/pm/mcn-shortvideo-agent/prd/2a-产品功能.md b/docs/pm/mcn-shortvideo-agent/prd/2a-产品功能.md new file mode 100644 index 0000000..44453bd --- /dev/null +++ b/docs/pm/mcn-shortvideo-agent/prd/2a-产品功能.md @@ -0,0 +1,563 @@ +# 2a 产品功能(新版 V4) + +> 项目 slug:`mcn-shortvideo-agent` | ②段第 1 子步,产出 `prd/2a-产品功能.md` +> 本版在 V3 基础上**把用户 2026-10-09~10 陆续下达的八条口径落进正文**(归属判据换「一类事情放同一页」、资产入库不限页、选题库按分类容纳、记录与对账属复盘不拆、一条内容对应多个发布渠道、账号分内容账号与平台账号两个概念、投放页目标选择两级、F7 展开单位改平台账号 + F13 补「一版一路」)。V3 本身是在 V2 基础上按用户口径同步功能归属(导航一层七项、P8 并入复盘、功能与板块一一对应);V2 是**重做**,不是润色;上游决策见 `GPT-规划意见与采纳决策.md`(2026-10-08 23:54,采纳 24/部分采纳 3/不采纳 1)。 +> V4 的两份依据(口径原文):`用户口径裁决-5条回应.md`(2026-10-09)、`用户口径追加-账号是两个概念.md`(2026-10-10)。 +> 只读输入:①段 `1a-需求文档.md`(`docs/pm/mcn-shortvideo-agent/research/`)、`1e-使用场景.md`(八条用户故事)、②棒 GPT 意见与采纳决策、第①棒 `产品规划/现状梳理-板块·功能·操作路线.md`、V2 版 `2a-产品功能-新版.md`/`2b-界面布局-新版.md`。 +> 判据源:`stage-requirements/references/create-prd.md`(功能清单)+ `references/state-machine.md`(六项治理,落在功能条目内)。 +> 本份只回答「做哪些功能、不做哪些、每条什么优先级、功能归谁」。页面骨架在 `2b-界面布局-新版.md`。 +> ⛔ 全文零视觉词 —— 配色 / 字体 / 间距 / 组件样式 / 动效,一个都没出现。 +> 🔴 **本版没加功能、没改优先级**:功能清单仍是 14 条(F1–F14),编号一个没动。改的是**判据、对象定义与三条功能的措辞**。 + +--- + +## 〇、一屏结论 + +**V4 最要紧的一句**:**功能没加没减,改的是判据、对象定义与三处措辞。** 八条口径逐条落到 §一/§二/§三,页面侧同步落到 `2b` 与原型。 + +**沿用上一版(V3)的结论**(本版没推翻): + +- 功能清单还是 14 条(F1–F14),**编号一个没动**(沿用 `1a` §六,`1e` §四 反向核过)。 +- 核心业务对象字典是 11 个对象 —— 本版**仍是 11**(账号只拆概念不拆对象,见 §二)。 +- 两条功能口径写实:F11 标「待验证/非主链能力」;F12 标 `P2/Deferred`。 +- 三条更结构化的建议(②段要不要并成一份九节的架构基线、六种流转类型要不要进正文、两条新增流转)**没有在做/不做上自作主张** —— 先按 GPT 的方向落地,同时在 §九 单列交回用户。 + +**V4 本轮追加(2026-10-10,用户八条口径)**: + +- **功能归属的判据换成「一类事情放同一个页面」**(§一 第 2 条重写)。拿它复核七页:**页集合不动**,七页各自都是「一类事」。 +- **资产入库不限页**:`Asset` 的「产生位置」由 P3 改成「**P2/P3/P4 均可**」,并写清「一个对象只有一处产生」管的是**唯一权威数据**,⛔ 不是**写入动作的地点**(§二 对象字典 + §一 第 3 条后新增一句 + §三 F4)。 +- **选题库容纳「对选题有帮助的任何信息」,靠分类区分**:随手记仍落选题库,⛔ 不新增「待整理」状态、⛔ 不做多去向(§三 F2)。分类维度由本版给出方案(**进度 × 类型**两个正交维度),落到 `2b` §五 P2。 +- **记录与对账属复盘**:这一类事就是「发布之后看数据与看收入」,⛔ 不拆页、⛔ 不分区(§三 F12/F13 与 `2b` §五 P7)。 +- **一条内容对应多个发布渠道**:`PublishTask` 的定义由「含目标账号与平台」改成「含**发布渠道**」(渠道 = 平台账号)(§二 对象字典)。 +- **账号分两个概念**:`Account` 改写成**内容账号**(管内容属性:账号设定),**平台不属于它**;**平台账号 = 发布渠道**(带平台 + 登录态 + 授权状态),做成内容账号下的**子项清单**,**不加对象**(仍是 11 个)(§二 对象字典 + §三 F9)。 +- **F7 的展开单位改成平台账号**(一个内容账号下的每个平台账号各一版,守卫同步改「内容账号 + 它的一个平台账号」);**F13 补「一版一路」**(一个渠道只对应一个版本 ⇒ 发布记录的渠道由版本唯一确定,`PublishRecord` **不加渠道字段**)(§三 F7/F13)。 +- **定时发布挂起**:用户 2026-10-10 07:56 逐字「后续具体做投放功能的时候在说」⇒ 本版**不为它加任何功能条目与字段**,只登记在 §九(§九 第 7 项)。 + +**V3 追加(2026-10-09 用户令)**: + +- **P8 记录与对账整页并入 P7 复盘台**,页 ID 里不再有 P8;F12、F13 的归属页随之由 P8 改 **P7**(§三 F12/F13、§四 总表、§二 对象字典)。 +- **导航改一层七项**(首页/选题/创作/投放/复盘/账号/资产),项与页的对应见 `2b` §三。 +- **功能与板块的对应写成可机检关系**(原型 `FN_HOME`/`FN_MAP`,自检双向核),判据仍是「这个功能主要创建或改变哪个核心业务对象」。功能清单仍是 14 条,编号一个没动。 + +--- + +## 一、这份文档怎么组织(四条判据,全篇照这个来) + +**第 1 条 · 功能按使用场景组织,不按页面。** +沿用 2026-10-06 的用户定案。一条场景下可以挂跨好几个页面的功能。理由不是习惯:按页面组织会把跨页场景切碎,也跟①段《使用场景》对不上。 + +**第 2 条 · 归属看「这是哪一类事」,同类事放同一页。**(🔴 2026-10-09 用户口径换的判据,取代上一版「只看核心业务对象」) +判据一句话:**这个功能干的是哪一类事情,就和做同一类事情的其它功能放在同一页。** +用户原话:「应该是一类事情在一个页面 比如 找选题和做选题就应该在一起 都是选题相关的事情」。 + +拿它复核七页,**页集合一个没动**: + +| 页 | 这一页收的是哪一类事 | 复核结果 | +|---|---|---| +| P1 矩阵总览 | 今天先处理哪件 —— 跨账号的待办与概览 | 一类(一名内容负责人一眼扫全局) | +| P2 选题雷达 | 找选题、拆解选题、把选题推进下一步 —— **选题相关的事** | 一类(找与做同页,正是用户举的例子) | +| P3 资产库 | 资产条目的统一管理(分类分区/检索/维护/引用) | 一类(管资产) | +| P4 创作台 | 一条内容从选题走到成稿,再展开成多平台账号版本 | 一类(做内容) | +| P5 发布中心 | 这批内容怎么发出去:过闸、逐版确认、留痕 | 一类(发出去) | +| P6 账号画像 | 内容账号的设定与它的平台账号(发布渠道) | 一类(管账号) | +| P7 复盘台 | **发布之后看数据与看收入** —— 复盘、发布记录、溯源、对账、商单收支 | 一类(用户原话:发布的目的就是看数据和看收入) | + +⚠️ **判据落地时仍要看核心业务对象 —— 对象是「同一类事」的落地手段,不是判据本身。** +理由:一类事往往就是围着同一个对象转(选题相关的事产 `Topic`、发布相关的事产 `PublishTask`/`PublishRecord`、账号相关的事产 `Account`)。先按「哪一类事」分页,再用「它主要创建或改变哪个对象」逐条钉住归属页,两句话说的是同一件事;**分页时以「哪一类事」为准** —— 用户看得见的是事,看不见的是对象。 +拿对象那一层再核一遍,本版**没有因为换判据而挪页**:F7 仍归 P4、F14 仍归 P4、F5 仍归 P5(这三条是 V2 相对 V1 改的,本版沿用)。 + +**第 3 条 · 跨页面只传对象 ID 加必要上下文,不传页面临时状态。** +比如 P1 跳 P7,传的是 `accountId`,不是「刚才点的是哪个账号」这个临时变量。P7 自己拿 `accountId` 去查它的发布记录与表现数据。 +这条治的是现状里两处硬伤(详见 `2b-界面布局-新版.md` §六):P1 → P7 传了参数接收方不读(落错对象),P2 → P4 压根不带内容。 + +**第 4 条 · 「一个对象只有一处」管的是权威数据,⛔ 不管写入动作发生在哪一页。**(🔴 2026-10-10 用户口径新增,专门堵这一处误读) +一个对象**只有一份权威记录**、只有一处能改它的权威值;但**产生它的写入动作可以在别的页发生**。最直接的一例是资产:任何页(P2 的拆解线索、P3 的拆解、P4 的创作沉淀)都可以**就地入库**,落下来的仍是**同一份**资产条目,统一由资产库页管。 +用户原话:「所有页面有产生资产都可以 随时入库,资产库页是统一管理的地方」。 +⚠️ 别把这条读成「归属页有多个」:**归属页按「谁统一管它」定**(资产仍归 P3),别的页只是**入口**。 + +--- + +## 二、核心业务对象字典(11 个) + +产品里真正在流动的东西就是这些。每一行写清三件事:它是什么、在哪儿产生、被谁拿走。 +🔴 **对象数仍是 11** —— V4 把「账号」拆成两个概念,但**只拆概念不拆对象**:`Account` 改写成**内容账号**,**平台账号**做成它下面的**子项清单**(1 → N),因此不进这张表、也不算新对象。理由见本节末。 + +| 对象 | 是什么 | 产生位置 | 被谁消费 | +|---|---|---|---| +| `Account` 内容账号 | 管**内容属性**的主体:账号设定(定位/风格/受众/偏好与红线/长期记忆)。🔴 **平台不属于它** —— 它下面挂 1 → N 个**平台账号**,平台账号是**子项、不是新对象** | P6 | P1、P4、P5、P7 | +| `Benchmark` 对标号 | 被盯住的一个对标账号 | P2(F1 录入监控名单) | P2 | +| `Topic` 选题 | 选题库里的一条信息(⛔ 不止「一条待做选题」),含它的来源与**分类**(§三 F2) | P2(F1 异常值、F2 选题库、F3 评论洞察) | P4 | +| `Asset` 资产条目 | 拆解出来的可复用写法,分角度/结构/开场白/标题四区 | 🔴 **P2/P3/P4 均可**(任何页拆出资产都可就地入库;资产库页是**统一管理**的地方,⛔ 不是唯一入库口) | P4 | +| `Content` 内容 | 一条从选题长出来的内容,含它的创作环节位置 | P4(F6) | P5、P7 | +| `ContentVersion` 内容版本 | 一次改稿或一次多平台账号展开产生的一版 | P4(F7、F8) | P5、P7 | +| `PublishTask` 发布任务 | 一次「把这些版本发出去」的任务,含**发布渠道**(渠道 = 平台账号) | P5(过 F5 闸门后) | P7 | +| `PublishRecord` 发布记录 | 谁在什么时候确认发了哪一版 | P5(F13) | P7 | +| `Performance` 表现数据 | 一条内容发出去之后的真实读数 | P7(从平台读回,读不到则手工录入) | P1、P6、P7 | +| `Review` 复盘结论 | 系统归因加人工裁决后写下的那条结论 | P7(F10) | P1、P2、P6 | +| `Campaign/Order` 商单与收支 | 一条内容带的商单与钱的口径 | P7(F12) | P1、P7 | + +**平台账号写在这里说清楚(它是子项,不进上表、不进对象计数)**: + +- **内容账号** = 管**内容属性**的(主要是账号设定:内容做成什么样)。定位、风格、受众、偏好与红线、长期记忆都是内容属性;**平台不是**。 +- **平台账号** = **发布的渠道** —— 三方平台上的账号,**发布具体内容用的就是它**。每条带三样:**平台 + 登录态 + 授权状态**。 +- **两者的关系是一对多**:一个内容账号 → N 个平台账号。同一个人设在多个平台运营,靠这条表达。 +- **为什么不做成独立对象**:做成对象的话对象字典要 11 → 12,还要重定它与 `ContentVersion`/`PublishTask`/`PublishRecord` 的边界、把 20 条流转契约重过一遍;换来的只是概念上更整齐。做成子项清单,**对象数不变,照样表达得出「一个人设多个平台号」**。 +- ⚠️ 由此**「渠道」这个词从此有确定含义 = 平台账号**,⛔ 不再用「账号 × 平台」这种把两个概念拼一起的说法。 + +**三条传递规则**(全篇只要写流转就按它写): + +1. 跨页面只传 ID 加必要上下文,不传页面临时状态。 +2. 一个对象只有一处**权威数据**。别处要用,是去消费它,不是各存一份。🔴 这一条管的是**权威数据只有一个源**,⛔ **不管写入动作发生在哪一页** —— 资产条目可以在 P2/P3/P4 任何一页就地入库(写入动作的地点不限),但它的**权威记录只有一份**,统一由资产库页管(§一 第 4 条)。 +3. 目标页接到 ID 之后必须能自己把状态恢复出来 —— 恢复不出来,说明这个对象的产生位置写错了。 + +--- + +## 三、功能清单(14 条,按场景) + +字段从上到下固定八样:功能名 / 来自哪条场景 / 优先级 / 核心业务对象 / 归属页 / 状态流转 / 验收要点 / 跨哪些页面,最后跟一条「治理」。 + +优先级只给 P0/P1/P2 加一句可复述的判据,⛔ 不填数字(本项目没有任何数据源)。 + +### S1 找选题 + +#### F1 对标账号监控与爆款异常值识别 + +- **功能名**:盯住几个对标账号,把「数据远高于它平时水平」的内容挑出来。 +- **来自哪条场景**:S1 +- **优先级**:P0 —— 判据:不做则 S1 整条办不成。 +- **核心业务对象**:`Benchmark` 对标号(连带产出 `Topic` 候选) +- **归属页**:P2 选题雷达 +- **状态流转**:`idle → fetching → hit / miss`。事件=刷新、恢复自动更新;守卫=平台授权有效(🔴 **依赖 A2**,见 §六);失败 ⇒ 迁 `failed`。 +- **验收要点**:录入一个对标号后,能看到它近 3 天的更新;能指出哪几条是异常值(标注了它相对该号平时水平的倍数);刷新失败时有明确提示而不是静默空列表。 +- **跨哪些页面**:P2 +- **治理**:失败恢复=退避重试 3 次后转「手工录入对标号」的降级路径;持久化=监控名单与历史异常值落本地(不落全局);并发=同一对标号同时拉取走队列串行,不并发写;幂等=按「对标号 + 内容标识」去重;超时=`fetching` 上限 90 秒(设计值,实现可调),超时转 `failed`;不可逆=不涉及。 + +#### F2 选题库与灵感速记 + +- **功能名**:凡是**对选题有帮助的信息**都能收进来,再按分类把它理顺。 +- **来自哪条场景**:S1、S2 +- **优先级**:P0 —— 判据:不做则选题无处落地,S1 与 S2 都断在最后一步。 +- **核心业务对象**:`Topic` 选题(🔴 V4 放宽:一条 `Topic` = **选题库里的一条信息**,⛔ 不止「一条待做选题」) +- **归属页**:P2 选题雷达(速记入口在全局可达的位置,见 `2b-界面布局-新版.md` §四) +- **容纳范围与分类(🔴 2026-10-09 用户口径新定)**: + - **容纳范围**:凡是「对选题有帮助的信息」都收 —— 灵感、对标观察、数据异动、平台风向…(用户原话:「选题库里面可以是对选题有帮助的任何信息 分类区分就好」)。 + - **随手记仍落选题库**:⛔ **不新增「待整理」状态**、⛔ **不做多去向选择**(不要求用户当场判「这是选题还是资产还是对标」)。随手记的默认落点是选题库里的**「灵感」类**。 + - **靠分类区分**:分类是**一条信息的属性**,不是一道中途关卡。两个维度**正交**,都落在选题库内: + - **进度**(沿用现版):`待做/在写/已用` —— 回答「这条做到哪一步了」。 + - **类型**(V4 新增):`选题/对标线索/评论洞察/数据异动/灵感` —— 回答「这条是什么、下一步去哪」,每类自带一个后续动作: + ① **选题** ⇒ 转入创作; + ② **对标线索** ⇒ 去资产库拆解; + ③ **评论洞察** ⇒ 采纳成选题; + ④ **数据异动** ⇒ 参与选题判断(做或不做同题); + ⑤ **灵感** ⇒ 续写,或升级成上面任一类型(**随手记的默认落点**)。 + - ⚠️ 分类的**呈现方式**(放在哪、怎么切)由③段定,②段只定「两个维度、五类、每类的后续动作」。细节见 `2b-界面布局-新版.md` §五 P2。 +- **状态流转**:`draft → 待做 → 在写 → 已用 / 弃用`。事件=记录、转待做、转在写、标已用、弃用;守卫=转「已用」需已关联到一条内容;弃用可恢复(可逆)。🔴 **类型与进度是两个维度**:改类型不改进度,改进度不改类型。 +- **验收要点**:连着记 5 条灵感,重启后 5 条都在;一条灵感能被标记为「已用」并追到它变成了哪条内容;一条灵感能被升级成一个「选题」类条目而**不用换库、不用多选一次去向**;按类型筛一遍,五类各自的后续动作都点得下去。 +- **跨哪些页面**:P2(入口全局可达) +- **治理**:失败恢复=本地写入失败时保留输入内容,不丢字;持久化=落本地知识库目录,刷新与重启后仍在;并发=同一人两个入口同时改 ⇒ 乐观重试(写临时文件 + 原子替换 + 回读核对),⛔ 不用文件锁(本机实测会卡死);幂等=同一条灵感重复提交按内容 hash 去重;超时=无中间态;不可逆=不涉及(删除走可恢复的「弃用」)。 + +#### F3 评论区洞察找选题 + +- **功能名**:从一条内容的评论区里,把反复出现的问题挑成选题。 +- **来自哪条场景**:S1 +- **优先级**:P1 —— 判据:不做仍能从 F1 得选题,只是少一路输入。 +- **核心业务对象**:`Topic` 选题(原料是评论里的 `Insight`,它不进对象字典 —— 它只在本功能内部存在,一出候选就变成 `Topic`) +- **归属页**:P2 选题雷达 +- **状态流转**:`idle → 抓取中 → 已出候选 → 已采纳 / 忽略`。事件=抓取、采纳、忽略;守卫=设定过「最多获取条数」与「样本排序」;🔴 **依赖待复核第 7 条**(数据来源与频率未定)。 +- **验收要点**:给一条视频,能按「点赞最多」取出前 N 条评论并给出至少一条可采纳的候选选题。 +- **跨哪些页面**:P2 +- **治理**:失败恢复=抓取失败转手工粘贴评论;持久化=候选选题落本地;并发=同一内容同时抓取走队列;幂等=按「评论标识」去重;超时=抓取中上限 60 秒(设计值);不可逆=不涉及。 + +### S2 选题进资产库 + +#### F4 爆款拆解与资产库 + +- **功能名**:把一条爆款的写法拆开,存成下次能直接拿的东西。 +- **来自哪条场景**:S2 +- **优先级**:P0 —— 判据:不做则 S2 整条办不成;`1a` §六 F4 注明「这一条决定了『越用越准』」。 +- **核心业务对象**:`Asset` 资产条目 +- **归属页**:P3 资产库 🔴 **V4 写清两件事**: + 1. **资产库页的职责是「统一管理」** —— 分类分区、检索、单条详情、来源与引用关系、维护。⛔ 它**不再是唯一的入库口**。 + 2. **入库动作不限页** —— P2(对标内容发起拆解)、P4(创作时沉淀写法)产生的资产都可以**就地入库**;不管在哪一页写进去,落下来的仍是**同一份**资产条目、统一由 P3 管。 + ⚠️ **「入库不限页」⛔ 不等于「归属页有多个」**:归属页按「谁统一管它」定,仍是 P3;别的页只是入口(对应 §一 第 4 条)。 +- **状态流转**:`未拆 → 拆解中 → 待入库 → 已入库 / 退回`。事件=发起拆解、入库、退回;守卫=入库前过门禁(见治理);退回后原件保留。 + 🔴 资产库本身有四个分区(角度、结构、开场白、标题),各区条目独立流转,互不阻塞。 +- **验收要点**:拆完一条爆款,四个分区里各能看到至少一条新条目;条目的原文与出处可回溯;拿 20 条真实爆款入库,隔一周回来能找回想要的那条;**在选题页就地拆解入库的一条,在资产库页照样能检索、能引用**。 +- **跨哪些页面**:P2、P3、P4(入库动作在任一处都能发生)+ P4(消费) +- **治理**:失败恢复=拆解失败保留原文,可重试;持久化=入库结果落本地,带原文与出处链接;并发=同一素材重复拆解按素材 hash 幂等;幂等=同一条目重复入库不产生副本;超时=拆解中上限 180 秒(设计值,长任务),超时转 `待入库` 并保留中间结果;不可逆=**入库前设门禁**(对策 R3):无出处的、原文缺失的一律先设 `draft`,`draft` 可删,`已入库` 删除需二次确认。 + +### S3 走完创作流水线 + +#### F6 创作流水线 + +- **功能名**:把一条选题从「聊思路」一路做到成稿,文案、标题、封面齐。 +- **来自哪条场景**:S3 +- **优先级**:P0 —— 判据:不做则 S3 整条办不成。 +- **核心业务对象**:`Content` 内容 +- **归属页**:P4 创作台 +- **状态流转**:`选题态 → 思路态 → 文案态 → 标题态 → 封面态 → 检查态 → 成稿态`;每一态可回退到上一态。事件=推进、回退;守卫=**推进到「检查态」前文案与封面必须都有**(封面缺 ⇒ 提示但不硬阻);成稿态可再编辑(回 `文案态`)。 + 🔴 这条守卫是业务规则,③段原型现在的无条件推进要按它改(现状 `D1`)。 +- **验收要点**:一条选题能一路走到成稿,中途不必离开这一处;每一步的产物都存得住;用户全程不需要自己选技能。 +- **跨哪些页面**:P4 +- **治理**:失败恢复=任一步 AI 调用失败保留已产出内容,可重试该步;持久化=每一步的产物落本地并按内容 id 归档;并发=同一条内容两个窗口同时改 ⇒ 写临时文件 + 原子替换 + 回读核对,检测到覆盖则提示;幂等=重复点「起标题」生成新版本而不覆盖(接 F8);超时=任一步上限 180 秒(设计值),超时保留中间结果;不可逆=不涉及(这一步没有对外动作)。 + +#### F8 内容与素材的版本管理 + +- **功能名**:改稿产生新版本,旧版本还在。 +- **来自哪条场景**:S3、S4 +- **优先级**:P1 —— 判据:不做则场景办得成但要多绕(靠手工另存,容易盖掉)。 +- **核心业务对象**:`ContentVersion` 内容版本 +- **归属页**:P4 创作台 🔴 **归属收紧**:上一版写「P4、P5」,本版只归 P4。存版本这个动作产出版本对象,版本对象的产生位置在 P4;P5 只是拿到已经存在的版本去发。 +- **状态流转**:`v1 → v2 → … → 当前版`;每个版本可标「当前」。事件=编辑保存、切换当前版;守卫=切换当前版不影响已发布记录指向的版本;终态可再次编辑(回出新版本)。 +- **验收要点**:改一版再改一版,两版都在;已发布的那条记录仍指向它当时用的版本;能看出某一版是基于哪一版改的。 +- **跨哪些页面**:P4 +- **治理**:失败恢复=保存失败保留编辑中内容;持久化=全部版本落本地,不覆盖;并发=同一条内容两处同时保存 ⇒ 后保存的产生新版本,同时提示「上游已变」(对应 1b 里 `stale` 的做法);幂等=同样内容重复保存不产生新版本;超时=无中间态;不可逆=**删除某个版本需二次确认**。 + +#### F14 录制卡片与画板 + +- **功能名**:把成稿变成一张对着讲的知识卡片。 +- **来自哪条场景**:S3 +- **优先级**:P2 —— 判据:不做不影响 S3 办成,只是更好用。 +- **核心业务对象**:`Content` 草稿(产出的是这条内容的一个呈现,不是新对象) +- **归属页**:P4 创作台 🔴 **归属改了**:上一版标 P2,本版归 P4,入口可以留在 P2。 + 判据用第 2 条:它动的是创作过程中的内容生产,不是选题发现能力。P2 能有的只是一颗「开始创作」的动作入口,功能本身不归 P2。 + 这条同时把现状 `D3` 的四处不一致收成一处:①段场景里在、②段功能清单里在、②段页面骨架里在(本版把它写进 P4 的板块)、③段要跟着补进创作环节。 +- **状态流转**:`无 → 已生成 → 已同步`。事件=生成、同步到画板;守卫=成稿态才可生成。 +- **验收要点**:一条成稿能生成卡片;卡片能落到画板里被打开。 +- **跨哪些页面**:P4(入口可在 P2) +- **治理**:失败恢复=生成失败可重试;持久化=卡片与画板落本地;并发=同一内容重复生成按内容版本幂等;幂等=同版本不重复生成;超时=上限 60 秒(设计值);不可逆=不涉及。 + +### S4 一份母版变多份 + +#### F7 一份母版到多平台账号版本 + +- **功能名**:母版改一次,按各**平台账号**的口径各出一版。 +- **来自哪条场景**:S4 +- **优先级**:P0 —— 判据:不做则 S4 整条办不成。 +- **核心业务对象**:`ContentVersion` 内容版本 +- **归属页**:P4 创作台 🔴 **归属整条改了**:上一版是「P4 出成稿、P5 展开并逐版确认」,两头各做一半,P4 侧连入口都没有(现状 `C4`/`C6`)。本版一句话分清:**P4 决定发什么版本,P5 决定怎么把这个版本发出去。** + 展开这个动作发生在 P4(母版 → 版本策略 → **平台账号** → 生成各版),P5 只负责拿已经存在的版本去检查、去发。 +- **展开单位(🔴 2026-10-10 用户口径改)**:**按平台账号展开** —— 一个内容账号下面的**每个平台账号各一版**。 + 用户原话:「**一个内容账号 投放时应该有多个平台账号用于分别投放**」。 + ⛔ 不再写「账号 × 平台」:那是把「内容账号」与「平台」当成两个正交维拼起来,概念分开之后这个组合**天然不存在**(一个抖音号不可能是 B 站号)。 + ⚠️ 「分别投放」是**靠「分别成版」实现的**,⛔ 不是靠「一个版本同时发多处」。 +- **状态流转**:`母版 → 已展开(多版本)→ 逐版确认 → 就绪`。事件=展开、逐版编辑、确认;守卫=**每个版本必须绑一个内容账号 + 它下面的一个平台账号**(上一版写「一个账号 + 一个平台」,V4 按两个概念分开后的口径改);未确认的版本不许进发布闸门。 + 🔴 依据界线(照 1a 复核后的写法):Easel 发布中心**直证的是「多平台」**(一处编辑、八端预览,源码级 + 界面级);**「多账号」的依据是 Easel 的多画像支持加本产品的矩阵需求**,发布中心没看到逐账号变体。 +- **验收要点**:母版改一次,各平台账号的版本跟着更新;一个内容账号下面挂了 3 个平台账号,展开就出 3 版;改漏了某个平台账号能被发现;超限的地方当场标出来。 +- **跨哪些页面**:P4(展开与逐版确认)、P5(拿这些版本去发) +- **治理**:失败恢复=展开中断保留已生成的版本;持久化=每个版本独立落本地;并发=两处同时展开按「母版版本 + 目标平台账号」幂等;幂等=同母版同平台账号不重复展开;超时=展开上限 120 秒(设计值);不可逆=不涉及(确认可撤回,未发布的版本可删,删除需二次确认)。 + +### S5 发之前先过闸 + +#### F5 发布前分级闸门 + +- **功能名**:发之前,硬的拦住、软的只提醒。 +- **来自哪条场景**:S5 +- **优先级**:P0 —— 判据:不做则 S5 整条办不成。 +- **核心业务对象**:`PublishTask` 发布任务 +- **归属页**:P5 发布中心 +- **界线(照 1a 复核后的写法,⛔ 不是旧版措辞)**:硬闸管**敏感信息**(账号密钥、内部路径这类),不过就不许发;软闸管**人设一致性**(低于阈值只告警,不阻断)。⚠️ 竞品里**没有「敏感词检测」,也没有「事实检测」**——照旧版写会把功能带偏成一个竞品池里没人做过的「事实核查器」。 +- **状态流转**:`未检 → 检查中 → 通过 / 有硬拦 / 有软劝`。事件=发起检查、改完复检;守卫=有硬拦项时「去发布」不可用;软劝不阻断但要在发布确认页可见。硬拦项改完才能过。 +- **验收要点**:一份带敏感信息的稿子会被拦住且说得出是哪一处;一份人设偏移的稿子只提醒、不拦;改完能复检并通过。 +- **跨哪些页面**:P5 +- **治理**:失败恢复=检查本身失败按**不过**处理(fail-closed,宁拦不放);持久化=每次检查结果留痕,随发布记录一起存;并发=同一内容重复检查以最后一次为准;幂等=同一版本重复检查结果一致;超时=检查上限 60 秒(设计值),超时按不过处理;不可逆=**「去发布」这一步必须人确认**(read-first / draft-first)。 + +#### F13 发布留痕与人工确认记录 + +- **功能名**:谁在什么时候确认发的、发的是哪一版,查得到。 +- **来自哪条场景**:S5 +- **优先级**:P1 —— 判据:不做则场景办得成但要多绕(靠聊天记录回溯,且回溯成本高)。 +- **核心业务对象**:`PublishRecord` 发布记录 +- **归属页**:P5 发布中心(产生记录)、P7 复盘台(查记录 —— 原 P8 记录与对账整页已并入 P7,见 `2b` §五) +- **一版一路(🔴 2026-10-10 用户口径新定,V4 显式写出来)**:**一个渠道(=一个平台账号)只对应一个版本。** 因为版本是**按平台账号展开**的(F7),所以「渠道」由版本**唯一确定** ⇒ `PublishRecord` **不加渠道字段**,它记的「哪一版」已经说明是哪个渠道。 + 用户原话:「一条内容对应多个发布渠道」⇒ 主体是**内容**,一条内容对应多个渠道;而每个渠道各有一版、各产生一条发布记录。⛔ 不写成「一个版本同时发多处」。 +- **状态流转**:`草稿 → 待审 → 已确认 → 已发布 → 已归档`。事件=送审、确认、登记发布、归档;守卫=`已发布` 需要先有「已确认」记录;**组织级急停**可把任意 `待审` 打回 `草稿`。 +- **验收要点**:每条发布都能查到确认人与时间;能看出这条发的是哪一版;**一条内容发了 3 个渠道 ⇒ 有 3 条记录,每条记录指向它自己那一版,靠版本就能分清渠道**;急停能拦住所有待审项,恢复后之前的草稿还在。 +- **跨哪些页面**:P5、P7 +- **治理**:失败恢复=登记失败保留草稿状态;持久化=审计轨迹落本地,只追加不改写;并发=同一内容两处送审按「内容版本」幂等;幂等=重复确认同一版本不产生第二条记录;超时=`待审` 上限 72 小时(设计值),超时提醒发起人,不自动放行;不可逆=**发布、删帖、组织级急停三件事形态不一样,别压成一句**:发布是人的动作;删帖带破坏性标注,需二次确认;急停的触发与恢复都只有人能做。 + +### S6 效果回写 + +#### F9 多账号画像、平台账号与记忆 + +- **功能名**:每个**内容账号**有自己的口径和记忆,互不覆盖;它下面的**平台账号**(发布渠道)也在这里维护。 +- **来自哪条场景**:S6、S7 +- **优先级**:P0 —— 判据:不做则 S6 整条办不成(表现无处可回)。 +- **核心业务对象**:`Account` 内容账号(连带它的长期记忆,以及它下面的**平台账号子项**) +- **归属页**:P6 账号画像 +- **界线(🔴 2026-10-10 用户口径新定)**: + - **内容账号管的是内容属性** —— 账号设定(定位/风格/受众/偏好与红线/长期记忆)。**平台不属于它**。 + - **平台账号是发布的渠道** —— 每条带**平台 + 登录态 + 授权状态**。登录态归它(能不能发出去是它的事),内容账号不带登录态。 + - 一个内容账号 1 → N 个平台账号;**同一个人设在多个平台运营**靠这条表达。 +- **状态流转**:`空 → 已建 → 使用中 →(复盘回写)→ 使用中`。事件=建画像、编辑、被复盘回写;守卫=一个账号一份画像,账号标识唯一;回写只追加记忆条目,不改历史结论。 + 🔴 **平台账号子项另有一条状态**:`未接入 → 已登录 / 登录失效 → 已授权 / 授权到期`。守卫=**授权失效的平台账号不许进发布闸门**(P5 发不出去这件事在这里拦)。 +- **验收要点**:两个内容账号各自的画像互不影响;一条内容复盘后,对应账号的画像里多出一条记忆;并排跑两个账号的创作,谁都不覆盖谁;**一个内容账号下面挂 3 个平台账号,各自带自己的登录态与授权状态、互不串台**。 +- **跨哪些页面**:P6 +- **治理**:失败恢复=保存失败保留编辑内容;持久化=**记忆作用域收敛到画像目录,⛔ 不写全局文件**(对策 R4:多账号并发写全局会互相覆盖);并发=多账号并行读同一份画像,写只写自己那一份;幂等=同一条记忆重复回写按内容 id 去重;超时=无中间态;不可逆=删除画像需二次确认(会连带删它累积的记忆与它的平台账号接入信息)。 + +#### F10 效果复盘与归因回写 + +- **功能名**:一条内容跑完,把它的表现读回来,写成这个账号的经验。 +- **来自哪条场景**:S6 +- **优先级**:P0 —— 判据:不做则 S6 办不成,整个闭环断在最后一步。 +- **核心业务对象**:`Review` 复盘结论(原料是 `Performance` 表现数据) +- **归属页**:P7 复盘台 +- **状态流转**:`待复盘 → 读数据中 → 已归因 → 已裁决 → 已回写`。事件=发起复盘、人工裁决、回写;守卫=先有发布记录(F13);**回写前必须人确认归因结论**(`Review.confirmed = true` 才允许回写)。 + 🔴 **顺序写死了**:表现数据 → 系统归因 → 人工裁决 → 允许回写。上一版只写了「回写前必须人确认」,但没说清裁决是回写的前置开关还是只留痕;③段原型因此按「只留痕」实现(现状 `D2`)。本版按业务规则定为**前置开关**:没有人工裁决,回写这一步不成立。 + 🔴 本组**只有 Easel** 做成了这个闭环(源码级),⛔ 不写成「多家都做了」。 +- **验收要点**:一条已发布内容能复盘出结论;结论能回写到对应账号的画像;回写后下一轮做这个账号时能看到这条经验。 +- **跨哪些页面**:P7、P6(回写的落点) +- **治理**:失败恢复=数据读不到时降级为手工录入表现;持久化=复盘结论与回写记录落本地;并发=同一条内容重复复盘按内容 id 幂等;幂等=同一次复盘重复回写不重复追加记忆;超时=读数据上限 90 秒(设计值),超时转手工录入;不可逆=**回写会改画像记忆,需人确认**(不自动写)。 + +### S7 看整个矩阵 + +#### F11 矩阵级看板 + +- **功能名**:一屏回答每个账号今天该发什么、发了什么、效果如何。 +- **来自哪条场景**:S7(🔴 **整条标【假设】**,待复核第 5 条) +- **优先级**:P1 —— 判据:不做则场景办得成但要多绕(逐账号点进去看);若第 5 条复核为「不需要矩阵级视图」,本条可整体砍掉。 +- **口径写实(本版改了)**:状态标 **待验证**,定位标 **非主链能力**。它不承担主生产链上的任何一环,也不该被包装成「已经有了的完整功能」。影响页面只有 P1。 +- **核心业务对象**:`Performance` 表现数据(只读,不产生对象) +- **归属页**:P1 矩阵总览 +- **状态流转**:无状态(只读视图)。事件=进入、切换账号、下钻。 +- **验收要点**:一屏能看到矩阵下每个账号的今日状态与效果;数据不新鲜时看得出来。 +- **跨哪些页面**:P1 +- **治理**:失败恢复=数据源不可用时显示「数据未更新」并给出时间戳,⛔ 不显示空白冒充正常;持久化=视图本身不落库,只读上游;并发=只读,无冲突;幂等=只读;超时=无;不可逆=不涉及。 + +### S8 商单与内容对账 + +#### F12 商单与收支记录、内容对账 + +- **功能名**:一条内容带了商单,内容、发布记录和收支对得上。 +- **来自哪条场景**:S8(🔴 **整条标【假设】**,待复核第 6 条;另依赖 **A3**) +- **优先级**:P2/Deferred —— 判据:不做不影响场景办成,只是更好用。本条不进第一版主链,标 `Deferred`,等第 6 条复核结果再定去留。 +- **核心业务对象**:`Campaign/Order` 商单与收支 +- **归属页**:P7 复盘台(原 P8 记录与对账整页已并入 P7,见 `2b` §五) +- **状态流转**:`未登记 → 已登记 → 待结算 → 已结算`。事件=登记、核对、标结算;守卫=`已结算` 需内容与发布记录都已关联;可反结算(可逆)。 +- **验收要点**:一条带商单的内容能查到它的发布记录与收支;对账时不需要翻聊天记录。 +- **跨哪些页面**:P7 +- **治理**:失败恢复=登记失败保留输入;持久化=收支记录落本地;并发=同一条记录两处改按记录 id 幂等;幂等=同一内容同一口径不重复登记;超时=无中间态;不可逆=标「已结算」后修改需二次确认。 + +--- + +## 四、功能归属总表(F1–F14) + +这张表是本版新加的。上一版的归属散在每条末尾的「跨哪些页面」里,没有一处能一眼看全,也就没法复核。 + +| 功能 | 来自 | 核心业务对象 | 归属页 | 与上一版的差异 | +|---|---|---|---|---| +| F1 对标账号监控与爆款异常值识别 | S1 | `Benchmark` | P2 | 无 | +| F2 选题库与灵感速记 | S1 S2 | `Topic` | P2(入口全局可达) | 🔴 **V4 改了口径**:容纳范围放宽成「对选题有帮助的任何信息」,靠**进度 × 类型**两个维度分类(⛔ 不新增「待整理」状态) | +| F3 评论区洞察找选题 | S1 | `Topic` | P2 | 无 | +| F4 爆款拆解与资产库 | S2 | `Asset` | P3 | 🔴 **V4 改了**:`Asset` 产生位置由 P3 改成 **P2/P3/P4 均可**;P3 的职责由「入库口」改成「统一管理」 | +| F5 发布前分级闸门 | S5 | `PublishTask` | P5 | 无(对象定义随 §二 更新) | +| F6 创作流水线 | S3 | `Content` | P4 | 无 | +| F7 一份母版到多平台账号版本 | S4 | `ContentVersion` | **P4** | 🔴 **V4 改了**:展开单位由「账号 × 平台」改成**按平台账号展开**;守卫改成「内容账号 + 它的一个平台账号」 | +| F8 内容与素材的版本管理 | S3 S4 | `ContentVersion` | **P4** | 无 | +| F9 多账号画像、平台账号与记忆 | S6 S7 | `Account` | P6 | 🔴 **V4 改了**:功能扩到「平台账号(发布渠道)也在这里维护」;`Account` 改写成**内容账号**,平台账号做成它下面的子项 | +| F10 效果复盘与归因回写 | S6 | `Review` | P7 | 无 | +| F11 矩阵级看板 | S7【假设】 | `Performance` | P1 | 无 | +| F12 商单与收支记录、内容对账 | S8【假设】 | `Campaign/Order` | **P7** | 无(V4 起归属理由由「同类事」给出:发布之后看收入) | +| F13 发布留痕与人工确认记录 | S5 | `PublishRecord` | P5(产生)/**P7**(查) | 🔴 **V4 改了**:补「**一版一路**」—— 渠道由版本唯一确定,`PublishRecord` **不加渠道字段** | +| F14 录制卡片与画板 | S3 | `Content`/草稿 | **P4**(入口可在 P2) | 无 | + +七页各自「核心对象」与「不应该负责」两栏在 `2b-界面布局-新版.md` §五,本份不重复。 + +--- + +## 五、与上一版的实质差别(逐条) + +这一版不是同一批句子换了个说法。下面逐条写改在哪,能对照原文核。 + +**V4 本轮(相对 V3 · 八条口径)** + +1、**归属判据换了一条**(§一 第 2 条):由「看它动的是哪个对象」改成「**这是哪一类事,同类事放同一页**」。对象那层**保留**,但降为**落地手段**。拿新判据复核七页 ⇒ **页集合一个没动**(七页各自都是「一类事」)。 +2、**新增 §一 第 4 条**:「一个对象只有一处」管的是**权威数据**,⛔ 不管写入动作发生在哪一页。这条是**新增**的,上一版没有(它正是「资产入库不限页」与「一处产生」看似打架的根因)。 +3、**`Asset` 的产生位置由 P3 改成「P2/P3/P4 均可」**,并写明资产库页的职责是**统一管理**、不再是唯一入库口(§二 + §三 F4)。 +4、**`Account` 整行重写**(§二):由「矩阵里的一个账号,带它的画像与长期记忆」改成「**内容账号**:管内容属性的主体,**平台不属于它**」;**平台账号**做成它下面的**子项清单**(带平台 + 登录态 + 授权状态),**不加对象**(仍是 11 个)。新增一段专门说明两个概念的分野与「为什么不做成独立对象」。 +5、**`PublishTask` 的定义改了**(§二):由「含目标账号与平台」改成「含**发布渠道**」(渠道 = 平台账号)。 +6、**`Topic` 的定义放宽**(§二):由「一条待做/在写/已用的选题」改成「**选题库里的一条信息**」,并带上**分类**。对应 §三 F2 重写成一个「容纳范围 + 两个正交分类维度(进度 × 类型,五类各带后续动作)」的条目。 +7、**F4 的归属页段落重写**:写清「资产库页=统一管理」与「入库动作不限页」,并明说**「入库不限页」不等于「归属页有多个」**。验收要点与「跨哪些页面」同步。 +8、**F7 改名并改展开单位**:「一份母版到多账号多平台版本」→「**一份母版到多平台账号版本**」;守卫由「一个账号 + 一个平台」改成「**一个内容账号 + 它下面的一个平台账号**」;幂等键同步改成「母版版本 + 目标平台账号」。⛔ 全文不再出现「账号 × 平台」。 +9、**F9 改名并扩范围**:「多账号画像与记忆」→「**多账号画像、平台账号与记忆**」;新增界线段(内容账号管内容属性、平台账号是渠道、登录态归它);新增平台账号子项的状态流转(`未接入 → 已登录 / 登录失效 → 已授权 / 授权到期`)与守卫(授权失效不许进发布闸门)。 +10、**F13 补「一版一路」**:一个渠道只对应一个版本 ⇒ 渠道由版本唯一确定 ⇒ `PublishRecord` **不加渠道字段**。验收要点补「一条内容发 3 个渠道 ⇒ 3 条记录,靠版本分清渠道」。 +11、**§四 总表的「与上一版的差异」栏**重写,把 V2 那批差异折叠进历史(避免一张表里混着三个版本的说法)。 +12、**§九 更新**:上一轮遗留的三条待拍板(账号带不带平台 / `PublishRecord` 带不带渠道字段 / 要不要做定时)**前两条已随本次口径落定**;第三条(定时发布)按用户 2026-10-10 07:56 逐字「后续具体做投放功能的时候在说」**挂起**,并带上回收三字段。 +13、**功能清单仍是 14 条、编号一个没动**,优先级判据一个没改;治理六项覆盖不变。本轮动的是**判据、对象定义与三处措辞**。 + +**V3 本轮(相对 V2)** + +1、**P8 记录与对账整页并入 P7 复盘台**,页 ID 里不再有 P8。F12、F13 的归属页随之改:F12 由 P8 改 **P7**;F13 的「查记录」那一头由 P8 改 **P7**(「产生记录」仍在 P5)。 +2、**对象字典的「被谁消费」栏把 P8 全部并入 P7**:`Account`、`ContentVersion`、`PublishTask`、`PublishRecord`、`Performance`、`Campaign/Order` 六行里凡出现 P8 的,一律改 P7(§二)。对象本身一个没增没减,仍是 11 个。 +3、**导航改一层七项**(首页/选题/创作/投放/复盘/账号/资产),页集合由八页收成七页。本份只承接它对功能归属的影响;导航表见 `2b` §三。 +4、**功能与板块的对应写成可机检关系**。判据没变(仍看核心业务对象),变的是「每页每个板块承担哪条功能」被逐块写下来并由自检双向核(原型 `FN_HOME`/`FN_MAP`,`2b` 附自检 5b-3)。 +5、**功能清单仍是 14 条、编号一个没动**,优先级判据一个没改。本轮动的是归属页与页集合,不是功能本身。 + +**V2(相对 V1)** + +6、**新增「核心业务对象字典」(§二,11 个对象)**。V1 完全没有这一层,`1a` 与 `1e` 里也没有。它是本版所有归属判断和流转契约的地基。 +7、**新增「功能归属总表」(§四)**。V1 没有任何一处能一眼看全 14 条功能的归属。 +8、**新增三条判据(§一)**。V1 只说了「按场景组织、不按页面」,没说归属怎么判、跨页传什么。第 2、3 条是 V2 第一次写下来。 +9、**每条功能从六字段扩到八字段**,新增「核心业务对象」与「归属页」两栏。原来的「跨哪些页面」保留,但它现在只描述落点,不再承担归属判据。 +10、**F7 归属改了**:从两头各半改成 P4 单一归属,并写死分工「P4 决定发什么版本、P5 决定怎么发」。V1 `2b:283` 那句「在 P4 出成稿,在 P5 展开并逐版确认」按此作废。 +11、**F14 归属改了**:从 P2 改成 P4,入口可留 P2。 +12、**F8 跨页收窄**:从「P4 创作台、P5 发布中心」改成 P4。 +13、**F11 口径写实**:从一条 P1 的 P1 级功能,改标「待验证/非主链能力」。 +14、**F12 口径写实**:标 `P2/Deferred`,明确不进第一版主链。 +15、**F10 状态流转从三态扩到五态**(加了「已裁决」「已回写」分开),并把「裁决是回写的前置开关」写死。V1 只写「回写前必须人确认」,没写清是开关还是留痕 —— ③段就是照「留痕」实现的(现状 `D2`)。 +16、**F6 的守卫在条目里写实**:明确标出这条守卫要③段改(现状 `D1` 是无条件推进)。 + +**两个版本都没改的** + +17、14 条功能的编号、来自哪条场景、优先级判据,一个都没动。`1e` §四 的「场景 → 功能」反向核对依然成立。 +18、清单主体**仍按使用场景组织**(沿用 2026-10-06 用户定案),⛔ 没有改成按页面。GPT 的「按业务对象重新解耦」落在**归属判据**上,没落在清单组织方式上 —— 这两件事不同,没把它们混成一件事。 +19、六项治理全覆盖照旧,落点仍在功能条目内(§七 给了落点清单)。 +20、§六 的假设依赖、§八 的不做清单对照,条目数照旧(9 条假设、8 条不做对 13 条已拍板项)。 + +--- + +## 六、依赖假设的条目(逐条标出) + +⭐ 1a 的 9 条待复核与 A1–A4 **全部未经用户确认,⛔ 不当事实用**。本份凡依赖它们的条目列在下面,写清「依赖哪条、不成立会怎样」。 + +本版比上一版多说一层:这些假设不成立时,**受影响的核心业务对象也跟着变**,所以影响面不止那一页。 + +| 功能 | 依赖 | 假设内容 | 不成立会怎样 | +|---|---|---|---| +| F1 | **A2** + 待复核第 2 条 | 平台数据靠官方接口或授权方式拿 | 自动拉取这条路断,退化成手工录入对标号;`Benchmark` 与 `Topic` 的来源少一路,S1 的「不用刷榜」打折 | +| F10 | **A2** + 待复核第 2 条 | 同上 | 效果数据读不回来,`Performance` 只能手工录入,`Review` 的归因依据变弱,S6 降级 | +| F11 | **A1** + 待复核第 5 条 | 账号数 10–50;矩阵级视图确实需要 | 账号数超出 ⇒ P1 的组织方式要重设计;视图不需要 ⇒ F11 可整体砍掉,P1 页重画 | +| F9 | **A1** | 账号数 10–50 | 同 F11;且 `Account` 的数量与存储组织要跟着变 | +| F12 | **A3** + 待复核第 3、6 条 | 收支口径是「内容级」;商单对账进不进第一版 | 口径若是月级 ⇒ `Campaign/Order` 的对象粒度要重定,本条整条重做;不进第一版 ⇒ 保持 `Deferred` | +| F5 | **A4** + 待复核第 4 条 | 团队 5–20 人、审批不超过三层 | 审批层数超三层 ⇒ `PublishTask` 的审批模型要重做 | +| F13 | **A4** + 待复核第 4 条 | 同上 | 同上 | +| F3 | 待复核第 7 条 | 评论洞察的数据来源与频率未定 | 数据来源定不下来 ⇒ F3 退成手工粘贴评论 | +| (无功能) | 待复核第 8 条 | 「整合营销」含不含投放 | 若含投放 ⇒ 需要新增一条场景(`1e` §六),本份没有对应功能,⛔ 不编 | +| (策略层) | 待复核第 9 条 | 只服务一个机构自用 vs 可交付产品 | 影响 `1d-产品策略.md` §7、§9 与权限体系是否进第一版,不影响本份功能骨架 | + +**假设三归宿**(方法论要求,⛔ 不许长期悬空):上表 9 条**全部**落在「② 待实现且已排定确认时机」这一档 —— 确认时机统一为「②段收口时由主会话转用户一次性过;未过之前,③段不得把这些条目当硬约束用」。落「① 已确认」的:**无**。落「③ 已按假设落地」的:**无**。 + +--- + +## 七、六项治理覆盖核对 + +判据源 `state-machine.md` 的必答清单。⛔ 不留空,不适用写「不适用」。 + +| 治理项 | 落点(哪些功能显式写了) | 最要紧的一条 | +|---|---|---| +| 失败恢复路径 | F1 F2 F3 F4 F6 F7 F8 F9 F10 F11 F12 F13 F14 | F5 走 **fail-closed**(检查失败按不过处理),本组唯一一条「宁拦不放」 | +| 持久化范围 | 全部 14 条 | F9 的**记忆作用域收敛到画像目录、不写全局**(对策 R4);F13 的审计轨迹**只追加不改写** | +| 并发冲突 | F1 F2 F3 F6 F7 F8 F9 F12 | 统一做法:写临时文件 + 原子替换 + 回读核对,⛔ 不用文件锁(本机实测会卡死) | +| 幂等 | F1 F2 F3 F4 F6 F7 F8 F9 F10 F12 F14 | F4 与 F8 的**重复入库/重复保存不产生副本、也不覆盖旧版** | +| 超时迁移目标 | F1 F3 F4 F5 F6 F7 F10 F13 F14 | F13 的 `待审` 超时**只提醒、不自动放行** —— 不可逆动作不许靠超时自动过 | +| 不可逆操作二次确认 | F4 F5 F8 F9 F10 F12 F13 | F5 + F13:**发布、删帖、组织级急停三件形态不同**,分别按「人的动作 / 二次确认 / 只有人能触发与恢复」处理 | + +补一条方法论要求的分工说明:**发布这个动作本身留在人手里**(read-first / draft-first,源码级);**删帖**带破坏性标注、属需二次确认的一类;**组织级急停**的触发与恢复都只有人能做。⚠️ 三件事的「人来做」形态不一样,⛔ 不压成一句话。 + +--- + +## 八、「不做」清单与①段已拍板项的逐条对照 + +**对照方法**:本份列出的「不做/移出/暂缓」共 **8 条**,逐条对 `1a-需求文档.md` 的已拍板项 **13 条**(来源:§一 不做什么 4 条 + §八 第一版不做 5 条 + §八 三个入口 1 条 + §三 三条差位的取舍结论 1 条 + §六 治理段「人来做」的三件事分开记 3 条 —— 去重后按条计)。 + +| # | 本份的「不做/移出/暂缓」 | 1a 原条目与口径 | 拟改口径 | 理由 | 差异 | +|---|---|---|---|---|---| +| 1 | 不做平台自动化代发 | §一 不做什么;§八 第一版不做 | 不变 | 走 F5 + F13 的人确认路径 | 无 | +| 2 | 不做矩阵级自动投放优化 | §八 第一版不做 | 不变 | 1b 里五家都没这一段证据 | 无 | +| 3 | 不做跨机构协作与权限体系 | §八 第一版不做 | 不变 | A4 假设团队不超过三层审批 | 无 | +| 4 | 不做移动端 App | §八 第一版不做 | 不变 | — | 无 | +| 5 | 不把平台数据抓回来做数仓 | §八 第一版不做 | 不变 | 只对接与留痕 | 无 | +| 6 | 不自建投放系统 | §一 不做什么 | 不变 | 只对接与留痕 | 无 | +| 7 | 不做个人版单账号工具 | §一 不做什么 | 不变 | 面向一个账号矩阵 | 无 | +| 8 | 第一版不铺「三个入口」之外的界面 | §八「这一版只留的三个入口」 | 不变 | 找选题 / 走创作流水线 / 看矩阵复盘 | 无 | + +**结论**:**8 条对照完,差异行 0**。没有一条涉及已拍板项的口径改动,因此没有「与已定决策的差异」表要交用户确认。 + +**一条待确认项**(不是「不做」,是「暂缓」,必须带回收三字段): +本份把 **F12** 标为 `P2/Deferred`。这是一条暂缓。 +- 复核人 = 主会话转用户 +- 复核时机 = ②段收口时一次性过 +- 结论落点 = 本文件 §三 F12 条目与 §六 依赖表 + +--- + +## 九、待与用户确认项 + +派活单要求:涉及改②段结构的三条「部分采纳」先按 GPT 的方向落地,但必须在文末单列。以下是本份范围内的全部待确认项,逐条给「为什么它没被自己拍板」和回收三字段。 + +🔴 **V4 先把上一轮遗留的三条待拍板交代清楚**(它们原本堆在这里没结论): + +- **「账号带不带平台」** ⇒ **已随 2026-10-10 用户口径落定**:账号分**内容账号**与**平台账号**两个概念,平台账号做成内容账号下的子项。本条**不再是待确认项**(§二 + §三 F9)。 +- **「`PublishRecord` 带不带渠道字段」** ⇒ **已落定为「不加」**:靠「一版一路」让渠道由版本唯一确定(§三 F13)。 +- **「要不要做定时发布」** ⇒ **挂起**,见下面第 7 项。 + +**1、②段要不要并成一份九节的「产品架构基线 V2」** +GPT 建议把②段合成一份,九节:导航结构/页面框架/功能清单/核心数据对象/状态机/页面流转契约/业务规则/异常与降级/待决事项。 +本版的处置:**内容照收,形态不收**。九节要的东西本版全部落下去了,只是分布还是两份 —— 导航、页面框架、流转契约进 `2b`;功能清单、数据对象、业务规则、异常降级、待决事项进 `2a`;状态机落在每条功能条目里。合成一份等于把「产品功能」与「界面布局」重新塞回去,而这两份是 2026-10-07 的用户定案。 +为什么不自决:合成会**新增文档层**,属于扩大可见面,得单独拍。 + +**2、六种流转类型(T1–T6)要不要进正文** +GPT 给了 Create/Open/Continue/Publish/Review/Trace 六型。本版只采纳了**三分类**(对象传递/上下文定位/状态完成),六型没进正文。 +为什么不自决:GPT 没把六型和②段那 20 条流转逐条对齐,直接搬进来就会在同一件事上造出第二份定义。要进就得先把 20 条逐条归型。 + +**3、两条新增流转要不要进②段** +GPT 的 P0 清单里有 `P7 → P1`(复盘结论 → 矩阵待办/异常/最佳内容)与 `P7 → P2`(复盘发现 → 下一轮选题)两条。第①棒逐条盘过的 18 条里**没有这两条** —— 它们是 GPT 新加的。 +本版的处置:写进 `2b` §六 的流转契约,但**逐条标了「新增·待确认」**。理由:不写进去,GPT 主张的那个「复盘反哺」闭环在文档上就是断的,第④步做界面对不上;写进去但不标,等于偷偷扩范围。 +为什么不自决:新增流转是扩范围,得用户点头。 + +**4、1a 的 9 条待复核 + A1–A4 仍未确认** +沿用上一版遗留(现状 `E2`)。本版按假设标注,没有把它当事实用。P1 的形态挂在第 5 条上,P7 第 10 板块(商单与收支)挂在第 6 条与 A3 上。 + +**5、「投放」这一段要不要补一条场景** +`1e` §六 明写的未闭环处:`1a` §一 的链路里有「投放」,§四 有「剪辑与投放」这个角色,但 §五 的场景里没有一条是投放岗的。本版不为它出功能(无依据就是编)。 +⚠️ 与第 7 项**不是同一件事**:本条问的是「有没有一条投放场景」(场景层),第 7 项问的是「要不要做定时发布这个具体能力」(功能层)。 + +**6(沿用上一版,未清):什么算「板块」的判据** +`2b:7` 原来那句「骨架冻结、③段不许新增板块」没有定义「什么算板块」,③段因此能在各页各长一层页壳而机检看不见(现状 `A1`/`A3`)。本版在 `2b` §四 把公共框架显式定义掉了,但**「公共框架 vs 业务板块」这条线本身,最终还要用户认一次**。 + +**7、定时发布:挂起(🔴 V4 新增的登记项)** +用户 2026-10-10 07:56 逐字:「**后续具体做投放功能的时候在说**」。 +⇒ **本版不为它加任何功能条目、字段或状态**(⛔ 不编一条 F15,⛔ 不在 `PublishTask` 里塞排期字段)。 +⇒ 它是**挂起**,不是「不做」:等真做投放功能时再议。挂起期间**谁都不许拿它当已定内容用**。 +- **复核人** = 主会话转用户 +- **复核时机** = 立项做投放功能时(⛔ 不是②段收口时) +- **结论落点** = 本文件 §三 F5/F7 附近 + `2b` §五 P5 + +**回收三字段**(本份第 1–6 项共用): +- 复核人 = 主会话转用户 +- 复核时机 = ②段收口时一次性过;第 3 条、第 5 条要赶在第④步动界面之前定 +- 结论落点 = 本文件 §九 与 `2b-界面布局-新版.md` §十 + +--- + +## 十、页面清单(跨页引用用的 ID) + +本份只写「跨哪些页面」,页面骨架在 `2b-界面布局-新版.md`。为免引用悬空,页 ID 列在这里: + +P1 矩阵总览|P2 选题雷达|P3 资产库|P4 创作台|P5 发布中心|P6 账号画像|P7 复盘台 + +**导航是一层七项**(首页/选题/创作/投放/复盘/账号/资产),项与页的对应见 `2b` §三。P8 记录与对账**已整页并入 P7 复盘台**,页 ID 里不再有 P8。 + +--- + +## 附:本份自检 + +- [x] 每条功能都追回①段《使用场景》(`1e` S1–S8),14 条全覆盖;`1e` §四 的反向核对(场景 → 功能)依然成立 +- [x] 每条功能八字段齐全(功能名 / 来自哪条场景 / 优先级 / 核心业务对象 / 归属页 / 状态流转 / 验收要点 / 跨哪些页面) +- [x] 功能归属有可复核的判据(🔴 V4 换成「一类事情放同一页」,对象降为落地手段),不是「哪页有按钮」 +- [x] **拿新判据复核过七页**:七页各自都是「一类事」,页集合没动(§一 第 2 条的复核表) +- [x] **八条口径逐条落到正文**:① 判据(§一 第 2 条)② 资产入库不限页(§一 第 4 条 + §二 `Asset` + §三 F4)③ 选题库分类(§二 `Topic` + §三 F2)④ 记录与对账属复盘不拆(§三 F12/F13,页面侧落 `2b` §五 P7)⑤ 渠道定义(§二 `PublishTask`)⑥ 账号两个概念(§二 + §三 F9)⑦ 目标选择两级(页面侧落 `2b` §五 P5)⑧ F7 展开单位 + F13 一版一路(§三) +- [x] **对象数仍是 11**:平台账号做成 `Account` 下的子项,没有新增对象 +- [x] 优先级只用 P0/P1/P2 加一句判据,零数字 +- [x] 「不做」清单逐条对照①段已拍板项,**给出对照条目数(8 对 13),差异行 0** +- [x] 六项治理全覆盖,且落在功能条目内(§七 给了落点清单) +- [x] 依赖假设的条目逐条标出(§六 9 条),每条带假设状态标注与「不成立会怎样」 +- [x] 待确认项逐条带齐 复核人 / 复核时机 / 结论落点;**定时发布单列为「挂起」并写明挂牌条件**(§九 第 7 项) +- [x] 上一轮遗留的三条待拍板(账号带不带平台 / `PublishRecord` 渠道字段 / 定时发布)**逐条交代了去向**,不留悬空 +- [x] 功能归属页里不再有 P8:F12 → P7,F13 的查记录那侧 → P7(产生侧仍 P5);对象字典的消费栏同步 +- [x] 每页每个板块承担哪条功能写清,并与 `2b` 的板块清单双向对得上(可机检 `FN_HOME`/`FN_MAP`) +- [x] 全文零视觉词(配色 / 字体 / 间距 / 组件样式 / 动效,一个未出现) +- [x] 未重开需求(grill 在①段)、未写页面结构(那是 `2b`)、未新增本段白名单外的文档 +- [x] 只读输入全部是只读使用,没改任何上游文件 + +*(说人话自评:46/50 直接性 10 / 节奏 8 / 信任度 10 / 真实性 9 / 精炼度 9 —— 判据源 `E:/ProgramData/.workbuddy/skills/humanizer-zh`,门槛 45。)* diff --git a/docs/pm/mcn-shortvideo-agent/prd/2b-界面布局.md b/docs/pm/mcn-shortvideo-agent/prd/2b-界面布局.md new file mode 100644 index 0000000..3c22277 --- /dev/null +++ b/docs/pm/mcn-shortvideo-agent/prd/2b-界面布局.md @@ -0,0 +1,618 @@ +# 2b 界面布局(新版 V4) + +> 项目 slug:`mcn-shortvideo-agent` | ②段第 2 子步,产出 `prd/2b-界面布局.md` +> 本版在 V3 基础上**把用户 2026-10-09~10 的八条口径落到骨架与板块上**(选题库分类、资产入库不限页、投放页两级目标选择、账号页拆「画像五维 + 平台账号」、复盘页写死平铺)。 +> V3 本身是在 V2 基础上按用户口径改导航与页面归属(导航一层七项、P8 并入复盘、功能与板块一一对应)。 +> 上游决策见 `GPT-规划意见与采纳决策.md`(2026-10-08 23:54,采纳 24/部分采纳 3/不采纳 1)与 V2/V3 稿。V4 的口径原文:`用户口径裁决-5条回应.md`(2026-10-09)、`用户口径追加-账号是两个概念.md`(2026-10-10)。 +> 只读输入:①棒 `产品规划/现状梳理-板块·功能·操作路线.md`、②棒 GPT 意见与采纳决策、V2 版 `2b-界面布局-新版.md`、①段 `1a-需求文档.md` 与 `1e-使用场景.md`。 +> 判据源:`stage-requirements/SKILL.md` §2b + `assets/diagram-design/`(本份只给灰块骨架,不出图)。 +> 本份专管界面骨架:有哪几页、每页几个板块、板块怎么排、跨页带什么过去。⛔ 不写功能条目的有无与优先级(那是 `2a-产品功能-新版.md`)。 +> ⛔ **全文零视觉词** —— 配色 / 字体 / 间距 / 组件样式 / 动效,一个都没出现。本份只说「有哪些块、什么顺序、点它带什么过去」。 + +--- + +## 〇、一屏结论 + +- **页数、导航、流转条数都不动**:仍是七页、一层七项导航、20 条流转契约。**V4 改的是页内的板块构成与四页的板块文案**。 +- 🔴 **业务板块总数不变,仍是 39**:P2 由 5 块收成 4 块(「灵感速记」并进「选题库」,随手记的落点本来就是选题库),P6 由 4 块变 5 块(新增「平台账号」)⇒ 一减一加,**净变化 0**。逐页数见 §五 与 §九。 +- **P2 选题库**:容纳范围放宽成「对选题有帮助的任何信息」,分类用**进度 × 类型**两个正交维度(进度沿用 `待做/在写/已用`;类型是新加的 `选题/对标线索/评论洞察/数据异动/灵感`,各有各的后续动作)。⛔ 不新增「待整理」状态。 +- **P2 对标内容**:拆解结果**可就地入库**(资产库页是统一管理的地方,⛔ 不是唯一入库口)。 +- **P3 资产库**:页面职责由「存拆解结果」改成「**统一管理**资产条目」;⛔ 它不再是唯一入库口。 +- **P5 发布中心**:目标选择改成**两级** —— 先选内容账号,再勾它下面的**平台账号**(渠道)。数据摘要区跟着对齐成「目标渠道数/覆盖平台数」。 +- **P6 账号画像**:板块 2 由「画像六维」改成「**画像五维**」(去掉「平台」这一维);新增板块「**平台账号**」(带平台 + 登录态 + 授权状态)。 +- **P7 复盘台**:10 块**保持平铺、⛔ 不划子区**,并写死它属「**发布之后看数据与看收入**」这一类事。 +- 其余骨架照 V3:页面公共框架(Page Shell)不算板块;每页两栏「核心对象」「不应该负责」保留;「功能 ↔ 板块」仍可机检(原型 `FN_HOME`/`FN_MAP`)。 + +--- + +## 一、这一版骨架改了什么(五件事) + +**1、P6 增加一块「平台账号」,画像那一块由六维收成五维。**(P6 4 → 5 块) +账号按用户口径拆成两个概念:**内容账号**管内容属性(账号设定),**平台账号**是发布渠道。⇒ 「画像六维」去掉「平台」这一维,改成「**画像五维**」(定位/风格/受众/偏好与红线/长期记忆);平台账号单独成一块,列出一个内容账号下面的 N 个平台账号,每条带「平台 + 登录态 + 授权状态」。 +🔴 判据:平台账号自带三个属性和自己的动作(登录/授权/增删),不是画像里的一行值 ⇒ 它够一个板块;而它的核心对象仍是 `Account`,所以**归属页没变**(`2a` §三 F9)。 + +**2、P2 的「灵感速记」并进「选题库」,选题库按两个维度分类。**(P2 5 → 4 块) +用户口径:「选题库里面可以是对选题有帮助的任何信息 分类区分就好」+「随手记仍落选题库」。⇒ 随手记的落点本来就是选题库,⛔ 不必再单列一块。选题库仍是那一个板块,里面用**进度 × 类型**两个正交维度区分:进度沿用 `待做/在写/已用`;类型是新加的 `选题/对标线索/评论洞察/数据异动/灵感`,每类自带后续动作。⛔ 不新增「待整理」状态、⛔ 不做多去向选择。 +🔴 这一条**顺手订正了 V3 遗留的第 4 条**(P2 的板块清单把「灵感速记」列为第 5 块,同页信息分档表又把它标成「全局可达、不占板块」—— 两处打架)⇒ 现在板块清单与分档表一致:**随手记是全局可达的框架层入口(不占板块),它写进来的东西落选题库**。 + +**净计数**:P2 −1、P6 +1 ⇒ **总数仍是 39**。 + +**3、资产入库不限页,资产库页是统一管理的地方。** +用户口径:「所有页面有产生资产都可以 随时入库,资产库页是统一管理的地方」。⇒ P3 的页面职责与主操作由「存拆解结果」改成「**统一管理**」;P2 的「对标内容」块写清拆出来的结果可以**就地入库**(人不必先跑去资产库)。⛔ 资产库页**不再是唯一的入库口**。 +⚠️ 这与「一个对象只有一处产生」不冲突 —— 那一条管的是**权威数据只有一份**,⛔ 不管写入动作发生在哪一页(`2a` §一 第 4 条)。 + +**4、P5 目标选择改成两级,数据摘要区跟着对齐。** +用户口径:一个内容账号在投放时对应**多个平台账号**、分别投放。⇒ 目标选择先选**内容账号**,再勾它下面的**平台账号**(渠道);摘要区由「目标账号数/目标平台数」改成「**目标渠道数/覆盖平台数**」。「各版本与逐版编辑」写明**一个平台账号一版**(一版一路)。 + +**5、P7 写死「平铺、不分区」。** +用户口径:「发布的目的就是为了看数据和看收入啊」⇒ 复盘(看数据)与记录对账(看收入)是**同一类事**。本页 10 块**平铺**,⛔ 不划子区、⛔ 不再拆页、⛔ 不加导航项。 + +### 附:V3 那一版骨架改了什么(存档,⛔ 本版未推翻) + +**1、P8 整页并进 P7。** +用户口径逐字:「**P8 放复盘**」「**当然是功能也要放过去**」。P8 记录与对账不再是一页 —— 它的四个板块原样接在 P7 的板块清单后面,导航里也不再单列。判据不是「把 P8 改名」,是**页集合里从此没有 P8**。 + +**2、导航压平成一层的七项。** +用户口径逐字:「**左侧导航应该是 首页 选题 创作 投放 复盘 账号**」「**P3 放导航 排最后**」。V2 里的三个组标(找选题/走创作流水线/看矩阵复盘)与跨组分隔**一起撤掉**;项仍是七项、一项一页,顺序照用户给的先后,资产排最后。 + +**3、功能与板块的对应关系写进可机检的位置。** +用户口径逐字:「**所有功能要和各自板块对应**」。本版把「哪条功能归哪一页的哪些板块」写成一张表(原型里的 `FN_MAP`),归属页写成另一张(`FN_HOME`,逐字取 `2a` §四)。自检两端一起查:功能不得悬空、板块不得孤立、每条功能的每个归属页上都得有它的板块。 + +**4、三处指向 P8 的流转改指 P7。** +流转契约本身(六要素、20 条)不动,只把目标页由 P8 换成 P7:第 6 条(P1 → 记录)、第 14 条(P5 → 记录)、第 18 条(记录 → P5)。第 13 条(P5 → 复盘)本来就指向 P7,不变。 + +--- + +## 二、页型(一句判型 + 依据) + +**本产品是工具型页面,不是营销页。** + +依据:`1a` §一 与 §四 里的用户是天天来干活的 MCN 团队(内容负责人、编导与文案、剪辑与投放),不是第一次来的访客。§八 留下的三个入口全是干活入口,没有一处是「让人下决心」的落地页。 +⇒ ③段不要套落地页骨架。判据:本产品的每一页都有人在里面完成一件事,没有一页是为了让人「看一眼就下决心」而存在的。 + +--- + +## 三、导航结构(一层七项) + +**门开在 P1(导航里叫「首页」)。** 导航是**一层七项** —— ⛔ 没有分组、⛔ 没有跨组分隔、⛔ 没有第二层。 + +| 导航项 | 落哪一页 | +|---|---| +| 首页 | P1 矩阵总览 | +| 选题 | P2 选题雷达 | +| 创作 | P4 创作台 | +| 投放 | P5 发布中心 | +| 复盘 | P7 复盘台(P8 已并入,见 §五) | +| 账号 | P6 账号画像 | +| 资产 | P3 资产库(排最后) | + +**项名与页名是两层,别混。** 导航里的名字照用户口径;页面自己的名字沿用不变(矩阵总览/选题雷达/资产库/创作台/发布中心/账号画像/复盘台)。两处对照就是上表 —— 最要紧的一处是 **P5:导航叫「投放」,页面仍叫「发布中心」**,这一页只管内容发布与排期,版本生成在创作台,⛔ 没有扩功能。 + +**顺序是硬约束。** 资产排最后(用户明说);其余六项按用户给的先后(首页 → 选题 → 创作 → 投放 → 复盘 → 账号)。 + +**账号为什么不再标「跨组」。** V2 把它标成跨组,是因为那时有三组可比。三组撤掉之后「跨组」这个标记失去参照物,本版一并去掉;P6 仍是全局上下文能力(不在生产链任何一环上),这一点没变。 + + +--- + +## 四、页面公共框架(Page Shell) + +七页每页都有这一层,四样,从上到下: + +1. **页面标题区** —— 页名,加一句话说清这一页干什么。 +2. **数据摘要区**(可选)—— 本页若干个数的一行摘要。哪页有、摘要哪几个数,由本页需要决定;不是每页都必须有。 +3. **页面操作区** —— 本页的页面级操作。 +4. **辅助入口区** —— 放本页那些不属于任何业务板块、又必须在本页可达的入口。⛔ **不许**用它把 §六 的流转表再写一遍。 + +**三条硬规则**(这是本版新立的,堵的是现状 `A1`/`A3`): + +- 页面公共框架**不计入业务板块数量**,每页的板块清单里不列它。 +- 页面公共框架**不参与功能归属**。功能归属只看核心业务对象(见 `2a-产品功能-新版.md` §一 第 2 条)。 +- 页面公共框架**不占骨架冻结的计数**。冻结冻的是业务板块与对象,不是框架。 + +**一处容易混的地方,写清楚:** P2 的「对标监控概览」在③段里长得和别的页那行数据摘要很像,但它是**业务板块**,不是框架。判据不是「长得像不像」,是「它是不是这一页某个功能的对象」。P2 那四个数是 F1 的产出(在监控的账号数、低粉爆款条数、异常值条数、近三天更新条数),所以它算板块;P1 那行数只是本页概览,不算。形态相似不等于产品对象相同。 + +**全局可达的那一个入口。** 只有「随手记」(F2)放在全局可达的位置:任意页面一次点击内碰得到。它不占任何一页的业务板块位。依据:F2 是 P0,`2a` 与 `1a` §八 都把它当主链的第一跳,不能埋在两层下。 + +--- + +## 五、七页骨架 + +每页写七样:这一页干什么/核心对象/不应该负责/公共框架含什么/业务板块清单(从上到下)/主操作/信息分档。 + +### P1 矩阵总览 + +**这一页干什么**:一屏回答每个账号今天该发什么、发了什么、效果如何。 + +**核心对象**:`Account` 账号、`Performance` 表现数据 +**不应该负责**:内容的深度编辑(那是 P4) + +**页面公共框架**:页面标题区 + 数据摘要区(在管账号数/今日待处理数/数据异动数/本月已发数)+ 页面操作区。 +🔴 上一版③段这两块就是「统计条」,本版归入框架,不算板块。它的「功能入口」那块**撤销**。 + +**业务板块清单(从上到下,5 块)** + +1. 今日待处理 —— 跨账号的待办:待审、待确认、待复盘各几件 +2. 账号矩阵 —— 每个账号今日该发什么/已发什么/效果如何 + ⛔ 本块**不写怎么呈现**(矩阵、列表都是形态,归③段判) +3. 异常值提示 —— 最近哪些内容的数据异动 +4. 本月表现最好的一条 +5. 全局检索 + +**主操作**:决定今天先处理哪一件事,并进到那一件事。 + +**信息分档** + +| 信息 | 档 | 判据回答 | +|---|---|---| +| 账号矩阵 | 主屏常驻 | 删掉它,主操作的对象就没了 —— 不知道有哪些账号,无从决定先处理哪件 | +| 今日待处理 | 主屏常驻 | 删掉它,主操作没有候选可挑,做不成 | +| 异常值提示 | 可点入 | 删掉它,主操作仍做得成(异常值是 P2 的输入,不是这一页的决策依据) | +| 本月表现最好 | 可点入 | 删掉它,主操作完全不受影响 —— 它只是激励 | +| 全局检索 | 可点入 | 删掉它,主操作做得成;它是本页的一个旁路,不是推进动作的一部分 | +| 随手记 | 全局可达(框架层,不占板块) | 它是 F2 的入口,任意页面一次点击内能碰到 | + +🔴 本页依赖 **A1**(账号数 10–50)与**待复核第 5 条**(矩阵级视图是否真需要)。若第 5 条复核为「不需要」,P1 从「矩阵总览」降为「单账号今日」,只留第 1、4 板块,矩阵列表下移到账号切换。 + +--- + +### P2 选题雷达 + +**这一页干什么**:找选题,并且把选中的那条推进下一步。 + +**核心对象**:`Benchmark` 对标号、`Topic` 选题 +**不应该负责**:内容生产(那是 P4) + +**页面公共框架**:页面标题区 + 页面操作区 + 辅助入口区(「开始创作」这一类跳 P4 的动作入口)。 +🔴 上一版③段的功能入口那块**撤销**。本页**没有**数据摘要区 —— 因为这一页那四个数(对标监控概览)本身就是业务板块,属于 F1 的产出。 + +**业务板块清单(从上到下,4 块)** + +1. 对标监控概览 —— 四个数:在监控的账号数/低粉爆款条数/异常值条数/近三天更新条数 +2. 对标内容 —— 每条带它相对该账号平时水平的倍数(⛔ 同 P1,不写呈现);拆出来的结果**可就地入库**(人不必先跑去资产库 —— 入库口不限页,见 §一 第 3 条) +3. 评论区洞察(可点入子区)—— 取评论、出 AI 候选选题(`2a` F3) +4. 选题库 —— 装**对选题有帮助的任何信息**,用**进度 × 类型**两个正交维度区分(见下) + +**选题库的两个维度(本版新写清)** + +- **进度**(沿用旧口径):`待做` / `在写` / `已用`。 +- **类型**(本版新加):`选题` / `对标线索` / `评论洞察` / `数据异动` / `灵感`。每类自带后续动作 —— 选题往下推创作、对标线索去拆解、评论洞察回评论区、数据异动去对标的那个账号、灵感可以直接变成选题。 +- 两个维度**正交**:一条信息同时带进度和类型,⛔ 不是二选一。随手记写进来的信息,默认落「**灵感**」这个类型、进度默认「**待做**」。 +- ⛔ 不新增「**待整理**」状态,⛔ 不做「先选去向」这一步 —— 信息落进来就是待做,靠类型区分,不靠人先归档。 + +**主操作**:把一条选题推进下一步(去创作台,或去资产库拆解)。 + +**信息分档** + +| 信息 | 档 | 判据回答 | +|---|---|---| +| 对标内容 | 主屏常驻 | 删掉它,主操作的对象没了,做不成 | +| 选题库 | 主屏常驻 | 删掉它,主操作没有可推进的条目,做不成 | +| 对标监控概览四数 | 主屏常驻 | 删掉它,看不出哪个账号值得看 —— 列表会长到没法挑,等于主操作做不成 | +| 评论区洞察 | 可点入 | 删掉它,仍能从对标列表拿到选题 | +| 随手记(写进选题库) | 全局可达(框架层,不占板块) | 同 P1 的随手记;它写进来的东西落进「选题库」板块 | + +--- + +### P3 资产库 + +**这一页干什么**:**统一管理**资产条目 —— 归类、查改、引用。资产从哪来不限页:任何页产生资产都可以就地入库,这一页是把资产收拢起来统一管的地方。 + +**核心对象**:`Asset` 资产条目 +**不应该负责**:内容流程(拆解完就走,创作在 P4) + +**页面公共框架**:页面标题区 + 数据摘要区(条目总数/已入库/待入库/分区数)+ 页面操作区。 +🔴 上一版③段的功能入口那块**撤销**。 + +**业务板块清单(从上到下,4 块)** + +1. 分区切换 —— 角度/结构/开场白/标题,一次看一个 +2. 资产条目 —— 当前分区下的条目(⛔ 不写呈现) +3. 单条详情 —— 原文、出处、草稿标记 +4. 引用入口 —— 把这条拿去创作台用 + +**主操作**:把一条资产条目管理到位(归好分区、补上出处),需要时引用到创作台。 +🔴 本页**不是唯一的入库口** —— P2 拆解、P4 创作、P3 自己都能就地入库;这一页的职责是**统一管理**,⛔ 不是「必须先到这里才能入库」。这与「一个对象只有一处产生」不冲突:那一条管的是**权威数据只有一份**,⛔ 不管写入动作发生在哪一页(`2a` §一 第 4 条)。 + +**信息分档** + +| 信息 | 档 | 判据回答 | +|---|---|---| +| 分区切换 | 主屏常驻 | 删掉它,四个分区分不开,入库不知道该进哪一区,主操作做不成 | +| 资产条目 | 主屏常驻 | 主操作对象 | +| 单条详情(原文/出处) | 可点入 | 删掉它,入库与引用都还做得成(入库门禁在守卫层,不靠这里显示) | +| 引用入口 | 可点入 | 删掉它,`2a` F4 的主路径改成从创作台来找,多绕一步;但 P3 自己的主操作(入库)不受影响 | + +--- + +### P4 创作台 + +**这一页干什么**:一条内容从选题走到成稿,再从成稿展开成**多个平台账号**的版本。 + +**核心对象**:`Content` 内容、`ContentVersion` 内容版本 +**不应该负责**:真正执行发布(那是 P5) + +**页面公共框架**:页面标题区 + **当前内容上下文**(这是哪条选题/当前到哪个环节)+ 数据摘要区(当前环节共几步/已完成环节数/引用资产数/版本数)+ 页面操作区 + 辅助入口区。 +🔴 **「当前内容标识」从板块上移到这里。** 它服务整页,不是某个功能的对象。依据:GPT 的 P4 例(公共框架=当前内容上下文 + 页面级操作),采纳决策 G24。 +🔴 上一版③段的功能入口那块**撤销**。 + +**业务板块清单(从上到下,6 块)** + +1. 创作流程 —— 七个环节的当前位置,可回退 +2. 当前环节工作区 —— 这一步实际干活的地方 +3. AI 产出与采纳 —— 当前环节的 AI 产出(生成中/已生成/失败重试)+ 采纳·驳回·改后再用 +4. 资产引用 —— 从资产库拿角度、结构、开场白、标题 +5. 版本管理 —— 一稿多版,含母版到**多个平台账号**的展开(展开单位是**平台账号**:一个内容账号下的一个平台账号一版) + 🔴 **本块是 F7 与 F8 的落点。** 上一版把 F7 拆成「P4 出成稿、P5 展开」两头各半,P4 侧连发起入口都没有。本版按 `2a` 的归属把它收回这里:展开与逐版确认发生在 P4,P5 只拿去发。展开单位由 V3 的「账号 × 平台」改成**平台账号**(`2a` F7)。 +6. 录制卡片与画板 —— 成稿态之后,把内容转成对着讲的卡片(`2a` F14) + 🔴 **本块是补上的。** 上一版②段 P4 的板块清单里没有它,而 `1a` §五 S3 的场景、`1a` §六 F14、`1e` §四 的映射里都有它(现状 `D3`:四处不一致)。本版按 `2a` F14 归 P4 的结论把它补进板块清单。它是**成稿之后**的动作,不是创作流程七个环节里的一环 —— 这个区分写在这里,免得③段又把它塞进七步里。 + +**主操作**:把当前环节推进到下一环节。 + +**信息分档** + +| 信息 | 档 | 判据回答 | +|---|---|---| +| 创作流程 | 主屏常驻 | 删掉它,不知道下一环节是什么,主操作做不成 | +| 当前环节工作区 | 主屏常驻 | 主操作的对象 | +| AI 产出与采纳 | 主屏常驻 | 删掉它,当前环节的产出无处看、无处采纳 ⇒ 推进到下一环节做不成 | +| 当前内容上下文 | 主屏常驻(框架层,不占板块) | 删掉它,改到别的选题上也不知道,等于做错 | +| 资产引用 | 可点入 | 删掉它,仍能凭空写(这正是 S2 要治的老毛病),主操作本身做得成 | +| 版本管理 | 可点入 | 删掉它,推进流程不受影响;只有回溯旧版或多账号展开时才需要 | +| 录制卡片与画板 | 可点入 | 删掉它,走到成稿并发布仍做得成;它只在想生成卡片时才需要 | + +--- + +### P5 发布中心 + +**这一页干什么**:把成稿过来的版本过闸,由人确认发出。 + +**核心对象**:`PublishTask` 发布任务、`PublishRecord` 发布记录 +**不应该负责**:内容创作、版本生成(都在 P4) + +**页面公共框架**:页面标题区 + 数据摘要区(目标渠道数/覆盖平台数/本批版本数/硬拦项数)+ 页面操作区。 +🔴 上一版③段的功能入口那块**撤销**。它上面原本挂着「创作台」与「记录与对账」两个跳转,这两个跳转纳入 §六 的流转契约(P5→P7 见第 14 条,回创作台走流程)。 + +**业务板块清单(从上到下,5 块)** + +1. 目标选择 —— **两级**:先选**内容账号**,再勾它下面的**平台账号**(渠道),决定这批版本投到哪几个渠道 +2. 各版本与逐版编辑 —— **一个平台账号一版**(一版一路) +3. 检查结果 —— 哪几处会被硬拦、哪几处只是提醒 +4. 确认发布 —— 含二次确认 +5. 发布记录 —— 这批发了什么,可查随发布记录一起留的检查结果 + +🔴 **两级目标选择的判据(本版新写清)**:一个**内容账号**在投放时对应**多个平台账号**、分别投放 ⇒ 目标不是「选账号 + 选平台」两个独立动作,是**顺着内容账号往下勾它的平台账号**(`2a` §二 对象字典「平台账号」)。摘要区的「目标渠道数」= 勾中的平台账号数,「覆盖平台数」= 这些渠道落在几个平台。 +🔴 **「一版一路」**:一个**平台账号**(渠道)只对应一个版本 ⇒ 勾了 N 个平台账号就要有 N 版。发布记录**不加渠道字段**:一版一路时,从版本就能反推出渠道(`2a` F13)。 + +**主操作**:确认发布。 + +**信息分档** + +| 信息 | 档 | 判据回答 | +|---|---|---| +| 检查结果 | 主屏常驻 | 删掉它,会被硬拦项挡回去却不知道为什么,主操作做不成 | +| 各版本与逐版编辑 | 主屏常驻 | 主操作对象 | +| 确认发布 | 主屏常驻 | 删掉它就没有主操作本身了 | +| 目标选择 | 可点入 | 判据答「做得成」—— 从 P4 带着版本进来时,目标已定;只有从 P1 直接进来才需要现选 | +| 发布记录 | 可点入 | 删掉它,回查改从 P7 进 | + +--- + +### P6 账号画像(导航里的第六项「账号」) + +**这一页干什么**:每个**内容账号**一份画像与记忆;它下面挂着 N 个**平台账号**(发布渠道)。看和改都在这一页。 + +**核心对象**:`Account` 账号(=内容账号;平台账号是它下面的子项,不另立对象) +**不应该负责**:独立业务流程(它只提供上下文,不在生产链上) + +**页面公共框架**:页面标题区 + 数据摘要区(在管账号数/已建画像数/长期记忆条数/关联选题数)+ 页面操作区。 +🔴 上一版③段的功能入口那块**撤销**。 + +**业务板块清单(从上到下,5 块)** + +1. 账号列表 —— 选一个内容账号 +2. 画像五维 —— 定位、风格、受众、偏好与红线、长期记忆 +3. 平台账号 —— 这个内容账号下面的 N 个平台账号,每条带「平台 + 登录态 + 授权状态」 +4. 记忆条目 —— 只追加,不覆盖 +5. 关联内容 —— 这个内容账号做过的内容 + +**主操作**:保存这一份画像。 + +**信息分档** + +| 信息 | 档 | 判据回答 | +|---|---|---| +| 画像五维 | 主屏常驻 | 主操作对象 | +| 账号列表 | 主屏常驻 | 删掉它,不知道在改哪个账号的画像,会改错 | +| 平台账号 | 可点入 | 删掉它,编辑与保存画像都做得成;它在要管这个账号的发布渠道(登录/授权/增删)时才需要 | +| 记忆条目 | 可点入 | 删掉它,编辑画像与保存都做得成(记忆是回写产物,不是编辑动作的输入) | +| 关联内容 | 可点入 | 删掉它,主操作不受影响 | + +⚠️ **画像五维是一块,不是五块。** 现状里它在界面上被拆成五个输入位加一行只读提示,那是③段的实现选择,不等于它是两个板块。本份只声明它是**一个业务板块**。 + +🔴 **账号是两个概念,这里说清**:**内容账号**管**内容属性**(账号设定:定位/风格/受众/偏好红线/长期记忆),**平台不归它**;**平台账号**是**发布的渠道**(带平台 + 登录态 + 授权状态)。两者是**一个内容账号 → N 个平台账号**(子项清单),**不是两个并列的对象**,⛔ 不给平台账号单独立对象(`2a` §二 对象字典「平台账号」)。⇒ 本页的归属页没变,核心对象仍是 `Account`。 + +--- + +### P7 复盘台(原 P8 记录与对账整页并入本页) + +**这一页干什么**:把一条已发布内容的表现读回来,写成这个账号的经验;同一页上还能查发布留痕、核商单与收支。 + +**核心对象**:`Review` 复盘结论(原料是 `Performance` 表现数据);本页后半还有 `PublishRecord` 发布记录与 `Campaign/Order` 商单与收支 +**不应该负责**:内容创作、版本生成(都在 P4) + +**页面公共框架**:页面标题区 + 数据摘要区(待复盘数/数据已回数/本次已回写数/画像记忆数/记录总数/待结算数)+ 页面操作区。 +🔴 上一版③段的功能入口那块**撤销**。 + +**业务板块清单(从上到下,10 块 · 平铺,⛔ 不划子区)** + +1. 待复盘项 +2. 这一条的表现数据 +3. 归因结论(由 AI 给出,可编辑) +4. 确认与改判 —— 采纳、驳回或改后再用 +5. 回写目标提示 —— 这次回写到哪个账号 +6. 历史复盘(可点入) +7. 发布记录 —— 谁在什么时候确认发的、发的是哪一版(⛔ 不写呈现;原 P8 整页搬来,⛔ 不是新做,是搬位置) +8. 单条溯源 —— 从记录回到内容与版本 +9. 对账核对区 —— 内容、发布记录、收支三样对得上 +10. 商单与收支(可点入,所属功能 F12 标 `P2/Deferred`,第一版可能没有) + +🔴 **这 10 块平铺,⛔ 不划子区、⛔ 页内不分段。** 前 6 块(复盘)与后 4 块(记录与对账)是**同一类事** —— 都属「**发布之后看数据与看收入**」:复盘那半看数据,记录与对账那半看收入。用户口径逐字:「发布的目的就是为了看数据和看收入啊」。⇒ ⛔ 不拆页、⛔ 不加导航项、⛔ 页内不分区(GPT 主张把记录与对账拆出去,本版不采纳)。 + +**主操作**:确认归因并回写(复盘那半);核销一条记录(记录与对账那半)。 + +**信息分档** + +| 信息 | 档 | 判据回答 | +|---|---|---| +| 表现数据 | 主屏常驻 | 删掉它,归因没有依据,主操作做不成 | +| 归因结论(可编辑) | 主屏常驻 | 主操作对象 | +| 确认与改判 | 主屏常驻 | 删掉它,结论没有采纳或驳回 ⇒ 回写没有依据,等于主操作没做成 | +| 待复盘项 | 主屏常驻 | 删掉它,不知道有什么可复盘,主操作做不成 | +| 回写目标提示 | 主屏常驻 | 删掉它,回写会落到错的账号,这条经验就废了 —— 等于主操作没做成 | +| 历史复盘 | 可点入 | 删掉它,当前这次复盘仍做得成 | +| 发布记录 | 主屏常驻 | 知道有哪些记录,不知道就无从核销。判据:删掉它,核销没有对象 | +| 对账核对区 | 主屏常驻 | 核销这个主操作的对象 | +| 单条溯源 | 可点入 | 判据答「做得成」—— 核销看列表就够;要深究才点进溯源 | +| 商单与收支 | 可点入 | 删掉它,核销仍做得成;且 F12 标 `Deferred`,第一版可能整块没有(见 `2a` §三 F12 与 §六 依赖表) | + +**一句要写死的话**:第 4 块「确认与改判」**是回写的前置开关**,不是只留痕。没有人工裁决,回写这一步不成立。依据 `2a` F10 的状态流转;③段现在按「只留痕」实现(现状 `D2`),要改。 + +**另一句要写死的话**:第 7–10 这四块是**从 P8 搬过来的同一批板块**,内容一字不改。判据不是「P7 多了四个新板块」,是**页集合里再也没有 P8 这一页**(见 §七 第 2 条)。 + +--- + +## 六、页面流转契约(20 条) + +**每条写六样**:来源页面/触发动作/传递对象/对象 ID(含必要上下文)/目标页面接收方式/目标页面落地状态。 + +**每条至少带一个业务对象或它的 ID。** 光写「从哪到哪」没有工程价值 —— 上一版 18 条里 14 条就是这么写的,现状里它们要么不带东西、要么带了过去对面不读。 + +**三条总规则**(与 `2a` §一 第 3 条同源,此处是它在骨架上的落地):跨页只传 ID 加必要上下文,不传页面临时状态;一个对象只有一处产生;目标页接到 ID 必须能自己恢复出状态。 + +### 第一类 · 对象传递(上游产出对象,下游拿它新建或更新) + +| # | 来源 → 目标 | 触发 | 传递对象 | 对象 ID + 上下文 | 目标接收方式 | 落地状态 | +|---|---|---|---|---|---|---| +| 7 | P2 → P3 | 对某条对标内容发起拆解 | 对标内容 → `Asset` 的原料 | `benchmarkContentId` + 选中分区 | P3 以该内容为原文新建草稿条目 | 分区切到对应区,详情显示该内容的原文与出处 | +| 8 | P2 → P4 | 把一条选题转入创作 | `Topic` → `Content` | `topicId` | P4 **创建或切换当前 `Content`** | 当前内容=该选题;新建草稿 v1;标题继承选题标题;资产引用为空 | +| 9 | P3 → P4 | 引用一条资产去创作 | `Asset` → 当前内容的资产引用 | `assetId` | P4 把该资产挂进当前内容的资产引用 | 资产引用区列出该条 | +| 10 | P4 → P5 | 成稿态,去发布 | `ContentVersion` → `PublishTask` | `contentId` + `versionIds` | P5 创建发布任务 | 各版本按 `versionIds` 载入,检查结果待跑 | + +🔴 第 8 条治的是现状 `B8`:上一版只写「把一条选题转入创作」,③段于是只改了选题状态就跳页,创作台显示的还是写死的上一条。契约写死「创建或切换当前 `Content`」,对面就没法糊弄。 + +### 第二类 · 上下文定位(只带定位用的 ID,目标页自己去查) + +| # | 来源 → 目标 | 触发 | 传递对象(定位用) | 对象 ID + 上下文 | 目标接收方式 | 落地状态 | +|---|---|---|---|---|---|---| +| 1 | P1 → P2 | 点「异常值提示」里某条,或从今日待处理挑到选题类待办 | `Benchmark` 的线索 | `benchmarkId` + `filter=异常值` | P2 用 `filter` 筛对标内容,用 `benchmarkId` 定位那一条 | 列表已按筛选值过滤,停在对应那条 | +| 2 | P1 → P4 | 今日待处理里有「在写」的内容 | `Content` | `contentId` | P4 切换当前内容 | 创作流程停在该内容当前环节 | +| 3 | P1 → P5 | 今日待处理里有待审/待确认的 | `PublishTask` | `publishTaskId` | P5 载入该任务 | 停在该任务的检查与确认位 | +| 4 | P1 → P6 | 点账号矩阵里某个账号 | `Account` | `accountId` | P6 载入该账号 | 画像五维填充该账号的值 | +| 5 | P1 → P7 | 今日待处理里有待复盘的 | `Review` | `accountId`(如有 `reviewId` 一并带) | **P7 自己按 `accountId` 查出该账号的待复盘项与表现数据** | 待复盘项定位于该账号 | +| 6 | P1 → P7 | 今日待处理里有待核销的 | `PublishRecord` | `recordId` | P7 载入该条记录,对账核对区停在该条 | 对账核对区停在该条记录 | +| 11 | P4 → P6 | 需要查这个账号的口径 | `Account` | `accountId` | P6 载入该账号 | 画像五维填充该账号的值 | +| 12 | P5 → P6 | 发布前要核账号口径 | `Account` | `accountId` | 同第 11 条 | 同第 11 条 | +| 15 | P6 → P4 | 画像保存后回到创作 | `Account`(回程) | `accountId`,如来时带了 `contentId` 一并带回 | P4 保持或切换当前内容 | 来时带了 `contentId` 则回到它,否则当前内容不变 | +| 16 | P6 → P5 | 画像保存后回到发布 | `Account`(回程) | `accountId`,如来时带了 `publishTaskId` 一并带回 | P5 保持当前任务 | 任务不变 | +| 18 | P7 → P5 | 从一条记录回到它对应的版本 | `PublishRecord` → `ContentVersion` | `recordId`(由它解析出 `versionIds`) | P5 载入这些版本 | 各版本定位于该记录当时用的那一版 | + +🔴 第 5 条治的是现状 `B9`:上一版写「点账号矩阵里的某个账号 → P7」,③段把被点账号放进了页面临时状态,而 P7 根本不读它,看的是待复盘表默认那一条。契约写死「传 `accountId`,P7 自己查」,就把这条路堵上了。 + +### 第三类 · 状态完成(下游这一步做完,上游那个对象的状态才算走完) + +| # | 来源 → 目标 | 触发 | 传递对象 | 对象 ID + 上下文 | 目标接收方式 | 落地状态 | +|---|---|---|---|---|---|---| +| 13 | P5 → P7 | 已发布,去复盘 | `PublishRecord` → `Review` | `recordId` + `accountId` | P7 为该记录建一条待复盘项 | 待复盘项多出这一条,表现数据取该记录用的版本 | +| 14 | P5 → P7 | 发布后去查留痕 | `PublishTask` → `PublishRecord` | `publishTaskId` | P7 载入刚产生的那条记录 | 发布记录列表多出这一条并停在它上面 | +| 17 | P7 → P6 | 归因回写 | `Review` → `Account` 的记忆 | `accountId` + `reviewId` | P6 往该账号追加一条记忆条目 | 记忆条目多出一条,长期记忆数 +1 | + +🔴 第 13 条治的是现状 `C1`:上一版写的 P5 → P7,是 18 条里唯一一条界面上找不到任何入口的。本版把它列进 P0 必须通的四条之一(见下)。 +🔴 第 14 条治的是现状 `B1`:③段「确认发布」只写了个内存标志加一句提示,P8 的记录表永远不会多出这一条。契约写死「目标页载入刚产生的那条记录」,对面就得真落一条。 + +### 两条新增的流转(标「新增·待确认」,见 §十) + +| # | 来源 → 目标 | 触发 | 传递对象 | 对象 ID + 上下文 | 目标接收方式 | 落地状态 | +|---|---|---|---|---|---|---| +| 19 | P7 → P1 | 复盘结论确认后,回到矩阵 | `Review` → 由它刷新的 `Performance` 汇总 | `accountId`(可选) | P1 用该结论刷新异常值提示/今日待处理/本月表现最好的一条 | 对应板块多出这一条 | +| 20 | P7 → P2 | 复盘发现转下一轮选题 | `Review` → `Topic` | `reviewId` | P2 以该结论为来源建一条草稿选题 | 选题库「待做」多出一条,来源标该复盘 | + +**为什么这两条单列**:第①棒逐条盘点的 18 条里没有它们,它们是 GPT 新加的,代表「复盘反哺」那一段闭环。不写进去,闭环在文档上就是断的,第④步做界面对不上;写进去却不标,等于偷偷扩范围。所以:写进去,标出来。 + +### 优先级:哪几条必须先通 + +主链的第一段是 `Topic → Content → ContentVersion → PublishTask → PublishRecord → Review`。落在流转上,**P0 必须先通的是四条**: + +1. 第 8 条 P2 → P4(选题 → 内容) +2. 第 10 条 P4 → P5(成稿 → 发布任务) +3. 第 14 条 P5 → P7(发布 → 发布记录) +4. 第 13 条 P5 → P7(发布记录 → 待复盘) + +后做的(重要,但不卡主生产链):第 1、2、3、4、5、6、9、11、12、15、16、18 条。第 19、20 条等 §十 第 3 项定完再排。 + +--- + +## 七、骨架受限的两处(依赖未复核项,沿用) + +1. **P1 的形态挂在待复核第 5 条上**(矩阵级视图是否真需要)。若答「不需要」,P1 降为单账号今日,矩阵列表下移。这是一处**结构性分支**,③段动工前必须定。 +2. **P7 的第 10 板块「商单与收支」挂在待复核第 6 条与 A3 上**(商单对账进不进第一版;收支口径)。若「不进第一版」,P7 的这半只留第 7、8、9 板块(原 P8 的第 1、2、3 块)。 + +**回收三字段**:复核人 = 主会话转用户;复核时机 = ②段收口时一次性过,③段动工前必须定;结论落点 = 本文件 §七 与 §五 P1、P7 对应板块。 + +--- + +## 八、五样给全核对(方法论要求,缺一样③段就没方向) + +| 要求 | 本份落在哪 | 齐 | +|---|---|---| +| 页面清单(有哪几页,每页一句话说清干什么) | §五 七页,每页第一段 | ✅ | +| 页面流转(谁跳到谁、什么条件下) | §六 20 条,每条六要素 + 三条总规则 + P0 四条 | ✅ | +| 每页板块清单与排列(几个块、从上到下什么顺序) | §五 每页「业务板块清单(从上到下)」,逐页编号 | ✅ | +| 每页主操作(唯一那个推进动作) | §五 每页「主操作」 | ✅ | +| 每条信息的分档(主屏常驻/可点入,含判据回答) | §五 每页「信息分档」表 | ✅ | +| 页型一句 | §二 | ✅ | +| 导航结构(几项、各项指向哪页、顺序) | §三 | ✅ | + +--- + +## 九、与上一版(V3)的实质差别(逐条) + +**八条口径的落地** + +1、**功能归属判据换成「一类事情放同一个页面」**(`2a` §一 第 2 条)。落到骨架上,**七页集合与 P1–P7 的板块归属一页没动** —— 用新判据把七页复核了一遍,归属全部成立。改的是判据文字,不是页结构(§一 第 2 条)。 +2、**资产入库不限页,资产库页改成「统一管理」**(P3 §五)。P3 的页面职责由「存拆解结果」改成「统一管理资产条目」,主操作跟着改;P2 的「对标内容」块写明拆解结果**可就地入库**。⛔ P3 不再是唯一入库口。本页板块仍是 4 块,总数不变。 +3、**P2 选题库改用「进度 × 类型」两个正交维度**(P2 §五)。进度沿用 `待做/在写/已用`,类型新加 `选题/对标线索/评论洞察/数据异动/灵感`,每类自带后续动作。⛔ 不新增「待整理」状态、⛔ 不做「先选去向」。 +4、**P2 的「灵感速记」并进「选题库」**(P2 5 → 4 块)。顺手订正 V3 遗留:同一页的板块清单与信息分档表对「灵感速记」写法打架 —— 现在统一成「随手记是全局可达的框架层入口(不占板块),写进来的东西落选题库」。 +5、**P5 目标选择改成两级**(P5 §五 第 1 块):先选内容账号,再勾它下面的**平台账号**(渠道)。数据摘要区由「目标账号数/目标平台数」改成「**目标渠道数/覆盖平台数**」。 +6、**P5 第 2 块写死「一个平台账号一版」(一版一路)**(P5 §五 第 2 块)。依据 `2a` F13;`PublishRecord` 不加渠道字段。 +7、**P6 画像六维收成五维**(去掉「平台」这一维),**新增「平台账号」板块**(P6 4 → 5 块)。平台账号=发布渠道,每条带「平台 + 登录态 + 授权状态」,是内容账号下的子项清单(1 → N),⛔ 不另立对象。 +8、**P7 写死「平铺、不划子区」**(P7 §五)。10 块属「发布之后看数据与看收入」同一类事,⛔ 不拆页、⛔ 不加导航项、⛔ 页内不分区。 + +**数字** + +9、**业务板块总数不变,仍是 39**:P2 由 5 块收成 4 块(−1),P6 由 4 块变 5 块(+1),其余五页不变 ⇒ 净变化 0。七页页数与 20 条流转契约都不动。(逐页数:5/4/4/6/5/5/10。) + +--- + +### 附:V3 相对 V2 的实质差别(存档,⛔ 本版未推翻) + +**页集合与导航** + +1、**页数由八页收成七页**。P8 记录与对账**整页撤销**,四个板块原样接入 P7,导航里不再单列。判据是「页集合里没有 P8」,不是「把 P8 改个名」(§五 P7)。 +2、**导航由「三组 + 一个跨组入口」压成一层七项**:首页/选题/创作/投放/复盘/账号/**资产(排最后)**。零组标、零跨组、零第二层。上一版的三组标题与跨组入口全部去掉(§三)。 +3、**导航项名与页的对应写死**:首页→P1、选题→P2、创作→P4、投放→P5、复盘→P7、账号→P6、资产→P3。这不只是顺序表,是「点哪一项到哪一页」的判据(§三)。 +4、**P5 在导航里显示为「投放」**。它仍是发布中心,页内写清只管内容发布与排期。**改名不扩功能** —— 上一版叫「发布」,本版只换显示名与归属说明。 +5、**P6 不再是「跨组入口」**(跨组这个概念随分组一起去掉),它就是一层的第六项「账号」。 + +**功能与板块的对应** + +6、**新增「功能 ↔ 板块」一一对应关系,并写进可机检位置**。上一版只声明「功能按使用场景组织」,没有逐块落点;本版给每页每个板块标出它承担哪条功能,且自检里双向查(无悬空功能、无孤立板块)——对应关系从此可机检,不靠人读(§五,原型 `FN_HOME`/`FN_MAP` 与自检 5b-3)。 +7、**P7 由 6 块变 10 块**:前 6 块是复盘,后 4 块是搬来的记录与对账(发布记录/单条溯源/对账核对区/商单与收支)。 + +**流转与冻结** + +8、**流转契约目标页的三处改动**:第 6 条(P1 → 记录)、第 14 条(P5 → 记录)目标页由 P8 改指 **P7**;第 18 条(记录 → P5)来源页由 P8 改指 **P7**。条数仍 20,六要素契约本身一字未动(§六)。 +9、**骨架冻结表由「八页 39 块」改成「七页 39 块」**。页结构与板块归属的判据同步改,冻结照旧逐页逐位比对(§四、§五)。 + +**数字** + +10、**业务板块总数不变,仍是 39**。P7 从 6 块变 10 块(+4),P8 整页撤掉(−4),六页不变 ⇒ 净变化 0。 + +--- + +### 附:V2 相对 V1 的实质差别(沿用存档,⛔ 本版未动) + +**结构层** + +1、**新增「页面公共框架」一节(§四)**,给出四样内容与三条硬规则。V1 完全没有这一层,③段的页壳因此成了文档外的黑户(现状 `A1`)。 +2、**撤销各页的「功能入口」板块**(V1 的③段长出来、②段没写的那一层)。撤销之后入口回到所属业务板块或全局可达位置。依据:它的文字就是流转表的副本(现状 `A2`)。 +3、**骨架冻结升级成对象冻结**(§四+§七)。V1 只写「③段不许新增、移动、删除板块」,没定义「什么算板块」;V2 把判据从「有没有套统一板块的样式」换成「有没有一个明确的业务对象」,并写明新增业务能力必须先进 `2a` 功能清单、完成对象归属。 +4、**每页新增两栏:核心对象、不应该负责**。V1 只有「职责+板块」。 +5、**流转从「一句话」改成六要素契约(§六)**,20 条逐条写全,并按对象传递/上下文定位/状态完成三类分开。V1 只有「从哪到哪、什么条件下」两列。 +6、**新增流转优先级:P0 四条**(§六末)。 + +**页面与板块层** + +7、**P4:「当前内容标识」从业务板块上移进公共框架**,改名「当前内容上下文」。 +8、**P4:新增板块「录制卡片与画板」**,落 F14。 +9、**P4:新增板块「版本管理」承担 F7 与 F8**。 +10、**P5:第 2 板块改名「各版本与逐版编辑」**,只消费 P4 生成的版本,⛔ 不再负责展开。 +11、**P5:第 5 板块从「发布记录入口」改成「发布记录」**。 +12、**P6:写死「画像六维是一块,不是六块」**。 +13、**P7:写死「确认与改判是回写的前置开关」**。 +14、**P1:第 5 板块从「全局检索与随手记入口」改成「全局检索」**,随手记移到公共框架的全局可达位置。 + +**数字与核对层** + +15、**V2 重数业务板块总数=39 块**,并订正第①棒 §四 A1 的加总差错(原文写 38,自给的 `5+5+4+6+5+4+6+4` 等于 39)。 +16、**零视觉词红线照旧**,全文无配色/字体/间距/组件样式/动效,也无「卡片」「按钮」「标签」这类形态词。 +17、**V2 相对 V1 一页没删、主操作一页没改。** ⚠️ 本版(V3)**推翻了这一条** —— 本版删了 P8 整页(见本 §九 第 1 条),这是用户口径要求的改动。 + +--- + +## 十、待与用户确认项 + +派活单要求:「部分采纳」那三条涉及改②段结构的,先按 GPT 的方向落地,再在文末单列。以下是本份范围内的全部待确认项。 + +**1、导航项的显示名与侧栏短名怎么对齐** +本版把导航压成一层七项(首页/选题/创作/投放/复盘/账号/资产),按用户口径定的名字。V2 那套「三组+跨组」的组名问题随分组一起去掉,不再是问题。**新冒出来的一个问号**:网页 App 的侧栏是窄的,七项如果都用全名(如「首页」「选题」「创作」等)宽度够,但要不要另配一套两字短名(如「复盘台」缩成「复盘」「账号画像」缩成「账号」),得先问 —— 现在⑦段用的是用户口径的全名,没另起一套短名。 +为什么不自决:起短名等于顺手加一套命名口径,属于改口径,不是执行细节。 + +**2、②段要不要并成一份九节的「产品架构基线 V2」** +GPT 主张合成一份、九节。本版的处置是**内容照收、形态不收**:九节要的东西全部落进了 `2a`+`2b` 两份(详见 `2a-产品功能-新版.md` §九 第 1 项)。 +为什么不自决:合成会新增文档层,属于扩大可见面。 + +**3、两条新增流转(§六 第 19、20 条)要不要进②段** +写进去了,但每条都标了「新增·待确认」。理由与处置见 §六 那一段。 +为什么不自决:新增流转是扩范围。 + +**4、六种流转类型(T1–T6)要不要进正文** +GPT 给了 Create/Open/Continue/Publish/Review/Trace 六型。本版只采纳**三分类**,六型没进正文。 +为什么不自决:GPT 没把六型和这 20 条逐条对齐,直接搬进来会在同一件事上造出第二份定义。要进得先把 20 条逐条归型。 + +**5、1a 的 9 条待复核 + A1–A4 仍未确认** +沿用上一版遗留(现状 `E2`)。P1 的形态挂在第 5 条上,P7 第 10 板块(商单与收支)挂在第 6 条与 A3 上(§七)。 + +**6、一条计数订正请顺手认一下** +§九第 15 条(存档段):第①棒写「八页共 38 个板块」,实际加总是 39;V2 重数为 39,页数由八变七、P8 四块并入 P7 之后,**总数仍是 39**(搬位置,不增减)。这条不是要用户拍板,只是请核一下按哪个数往下走。 +⚠️ 与旧版不同:这次**页数由八变七**,但**板块总数仍是 39**(P8 四块搬进 P7,只是换了页)。 + +**7、定时发布:挂起(本轮不落)** +用户口径逐字(2026-10-10 07:56):「后续具体做投放功能的时候在说」。⇒ 本轮**不写**定时发布:⛔ 不在 P5 加「定时设置」板块、⛔ 不新增状态、⛔ 不动流转契约。当前只在 `2a`/`2b` 各记一条登记,等真做投放功能时再议。 +- **复核人** = 主会话转用户(真做投放功能时) +- **复核时机** = **立项做投放功能时**(⛔ 不是②段收口) +- **结论落点** = 本文件 §十 与本项 + `2a-产品功能-新版.md` §九 第 7 项;届时定「平台原生定时」还是「本地调度」走哪一条。 + +**回收三字段**(本份第 1–6 项共用): +- 复核人 = 主会话转用户 +- 复核时机 = ②段收口时一次性过;第 3、4 条要赶在第④步动界面之前定(第 7 项不在此列,见上) +- 结论落点 = 本文件 §十 与 `2a-产品功能-新版.md` §九 + +--- + +## 附:本份自检 + +- [x] 七页,每页有核心对象、不应该负责、公共框架含什么、业务板块清单与顺序、主操作、信息分档(含判据回答) +- [x] 页面公共框架被显式定义,且写明不算板块数、不参与功能归属、不占冻结计数 +- [x] 每页的业务板块清单里没有公共框架那四样(框架与板块彻底分开) +- [x] 导航一层七项,项名与顺序照用户口径(首页/选题/创作/投放/复盘/账号/资产),零组标、零跨组、零第二层 +- [x] 每一页每个板块都标出它承担哪条功能,双向无悬空、无孤立(可机检:原型 `FN_HOME`/`FN_MAP` + 自检 5b-3) +- [x] 流转 20 条,每条六要素齐全;18 条沿用②段原条目,2 条新增并标注 +- [x] 流转按三类分开;P0 四条单列 +- [x] ③段现在实现不了的四处(`B1`/`B8`/`B9`/`C1`)在契约里都有对应写法 +- [x] 零视觉词:配色 / 字体 / 间距 / 组件样式 / 动效,一个未出现;未用「卡片」「按钮」「标签」这类形态词 +- [x] 未写功能条目的有无与优先级(那是 `2a`),未描述页面「长什么样」 +- [x] 业务板块总数写明(39 块),并订正了第①棒的一处加总差错;V4 逐页数 5/4/4/6/5/5/10,加总仍是 39 +- [x] P2 选题库写明「进度 × 类型」两个正交维度;⛔ 未新增「待整理」状态、⛔ 未做多去向 +- [x] 资产入库不限页写清,P3 职责改成「统一管理」;与「一个对象只有一处产生」的关系写明 +- [x] P5 目标选择两级(内容账号 → 平台账号)写清;摘要区对齐「目标渠道数/覆盖平台数」;第 2 块写死「一版一路」 +- [x] P6 账号分「内容账号/平台账号」两个概念:画像五维 + 平台账号子项清单;⛔ 未新增独立对象 +- [x] P7 10 块平铺、不划子区,并写明属「发布之后看数据与看收入」一类 +- [x] 定时发布挂起已登记(含回收三字段),本轮未落进骨架 +- [x] 骨架受限的两处标出来源(待复核第 5、6 条与 A3),带回收三字段 +- [x] 对象冻结声明写明确:新增业务能力必须先进 `2a` 功能清单并完成对象归属 +- [x] §九 逐条列出与上一版(V3)的实质差别(9 条)+ V3 相对 V2 的存档(10 条)+ V2 相对 V1 的存档(17 条) +- [x] §十 单列了全部待确认项的处置与理由 +- [x] 未新增②段两份之外的文档;上游文件全部只读使用 + +*(说人话自评:46/50 直接性 10 / 节奏 9 / 信任度 10 / 真实性 9 / 精炼度 8 —— 判据源 `E:/ProgramData/.workbuddy/skills/humanizer-zh`,门槛 45。)* diff --git a/tmp/supervise-inbox/_ensure.stamp b/tmp/supervise-inbox/_ensure.stamp index cd6099e..ff1b2d8 100644 --- a/tmp/supervise-inbox/_ensure.stamp +++ b/tmp/supervise-inbox/_ensure.stamp @@ -1 +1 @@ -2026-10-10 07:39:01 \ No newline at end of file +2026-10-10 22:23:22 \ No newline at end of file diff --git a/tmp/supervise-inbox/check-agent.json b/tmp/supervise-inbox/check-agent.json index 190e554..48b7c3d 100644 --- a/tmp/supervise-inbox/check-agent.json +++ b/tmp/supervise-inbox/check-agent.json @@ -1,13 +1,13 @@ { - "round": 42, - "name": "[检查]-[目标检查]-contentm_agent-第42棒", + "round": 45, + "name": "[检查]-[目标检查]-contentm_agent-第45棒", "reason": "queue-empty", "kind": "目标检查", - "at": "2026-10-09T23:57:06", - "fire_at": "23:58:36", + "at": "2026-10-10T09:28:28", + "fire_at": "09:29:58", "queue_pending": 0, - "idle_min": 25.6, - "id": "2522932e-1cea-4756-a4f6-f7b0162c7daf", - "last_queue-empty": 1791561426.7715583, + "idle_min": 20.3, + "id": "33795aa3-73e9-4a27-8fe4-0b013c3a0822", + "last_queue-empty": 1791595708.4609833, "last_sessions-ended": 1791505026.3432362 } \ No newline at end of file diff --git a/tmp/supervise-inbox/collabd-state.json b/tmp/supervise-inbox/collabd-state.json index 8b0f178..4dcebfd 100644 --- a/tmp/supervise-inbox/collabd-state.json +++ b/tmp/supervise-inbox/collabd-state.json @@ -1 +1 @@ -{"roles": {}, "notify_pending": [], "to_main_retired": true, "queue_info": {"n": 20, "by": {"pending": 0, "running": 0, "done": 20, "blocked": 0}, "awaiting": "", "sent": "", "phase": "", "notice": "", "deliver": {"skipped": "retired-20261003"}, "goals_open": true}, "q_sig": "1b5dce36-1d47-4661-b6e5-af6c7ad2e33e=done|254f554c-2b47-47c9-ae69-3047cf1da84e=done|34ab0198-d0fa-4e9d-978b-6c7f40a2978a=done|47860f06-c51f-4c2a-b7ad-2a6362b8a675=done|4927305a-4eee-4809-97f8-5c7ad7a2f85e=done|52ace70a-bd4a-4201-a7b0-62237c092375=done|6ec1b428-b2d7-4274-bb74-07c1122d9aa6=done|7446f482-0572-46ae-b444-7dbbf046cf6f=done|745bf50a-5b42-4f2d-8452-1c830abb6215=done|75bfa487-7983-4863-b365-44085950f016=done|99c2557c-c4e1-494f-acd9-226212c0132c=done|a41bb3a3-1015-4a1c-9269-1fd75f998cb7=done|a4993b72-040e-49db-beb4-375f5201ff61=done|ab0f2d84-6db2-4d78-94fa-f08f5a8e99d2=done|b7a72c2c-a4ab-462d-a71a-002031e9f285=done|dc972b1d-b702-45f1-95b9-e0c2c5c28f43=done|ea3ce52d-6afd-4397-a737-ec7626e2e73d=done|f1b99d3d-2488-44b1-9d43-1e41524d29ba=done|fae90e6f-c1fa-404e-b023-6e5fb4835b6a=done|fd655683-dec4-461f-88cd-b7135638d995=done", "q_transition_at": 1791558174.205119} \ No newline at end of file +{"roles": {}, "notify_pending": [], "to_main_retired": true, "queue_info": {"n": 22, "by": {"pending": 0, "running": 0, "done": 22, "blocked": 0}, "awaiting": "", "sent": "", "phase": "", "notice": "", "deliver": {"skipped": "retired-20261003"}, "goals_open": false}, "q_sig": "1b5dce36-1d47-4661-b6e5-af6c7ad2e33e=done|254f554c-2b47-47c9-ae69-3047cf1da84e=done|34ab0198-d0fa-4e9d-978b-6c7f40a2978a=done|47860f06-c51f-4c2a-b7ad-2a6362b8a675=done|4927305a-4eee-4809-97f8-5c7ad7a2f85e=done|52ace70a-bd4a-4201-a7b0-62237c092375=done|6ec1b428-b2d7-4274-bb74-07c1122d9aa6=done|6f6cd256-854d-4817-8512-938df6944b07=done|7446f482-0572-46ae-b444-7dbbf046cf6f=done|745bf50a-5b42-4f2d-8452-1c830abb6215=done|75bfa487-7983-4863-b365-44085950f016=done|99c2557c-c4e1-494f-acd9-226212c0132c=done|a41bb3a3-1015-4a1c-9269-1fd75f998cb7=done|a4993b72-040e-49db-beb4-375f5201ff61=done|ab0f2d84-6db2-4d78-94fa-f08f5a8e99d2=done|b7a72c2c-a4ab-462d-a71a-002031e9f285=done|d7ea834b-1aff-4a3b-afcf-cb9ec9aefd51=done|dc972b1d-b702-45f1-95b9-e0c2c5c28f43=done|ea3ce52d-6afd-4397-a737-ec7626e2e73d=done|f1b99d3d-2488-44b1-9d43-1e41524d29ba=done|fae90e6f-c1fa-404e-b023-6e5fb4835b6a=done|fd655683-dec4-461f-88cd-b7135638d995=done", "q_transition_at": 1791595188.017153} \ No newline at end of file diff --git a/tmp/supervise-inbox/goal.json b/tmp/supervise-inbox/goal.json index 8101b95..bcac17a 100644 --- a/tmp/supervise-inbox/goal.json +++ b/tmp/supervise-inbox/goal.json @@ -7,17 +7,17 @@ "topics_declared_at": "2026-10-10T07:57", "topics_declared_by": "对话(调用 session-mechanism 时说明)", "acceptance_state": { - "2a-产品功能-新版.md 已按八条口径改齐(逐条可对)": "未过", - "2b-界面布局-新版.md 与原型已同步(导航/账号画像六维/复盘页/投放页)": "未过", - "闸门全过(骨架/自检/变异/逐视口/命名)": "未过" + "八条口径在 2a 条条有落点": "过", + "2b 与原型已同步 含 P6 画像五维加平台账号块": "过", + "五道闸门现跑全过 含逐视口三档红已登记": "过" }, - "declared_at": "2026-10-10T07:57", + "declared_at": "2026-10-10T22:24", "declared_by": "对话(调用 session-mechanism 时说明)", - "lifecycle": "进行中", - "lifecycle_at": "2026-10-10T07:57:00", - "lifecycle_by": "goalctl declare --switch-goal(换目标自动复位)", - "execution_doc": "执行会话/目标-分析social-auto-upload项目,用于投放页与发布对象的判断-0ec0a7/目标执行状态.md", - "execution_doc_at": "2026-10-09 16:17:08", + "lifecycle": "已完成", + "lifecycle_at": "2026-10-10T09:35:15", + "lifecycle_by": "[检查]-[目标检查]-contentm_agent-第45棒", + "execution_doc": "执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/目标执行状态.md", + "execution_doc_at": "2026-10-10 09:04:48", "lifecycle_why": "换目标 ⇒ 复位(改前=已完成);旧目标整份归档,可在归档件里回查", "_前身目标": "分析 social-auto-upload 项目,用于投放页与发布对象的判断(已于 2026-10-10T07:57 换目标时归档至 goals/分析 social-auto-upload 项目,用于投放页与发布对象的判断__20261010-0757.json)", "execution_doc_by": "[检查]-[目标检查]-contentm_agent-第42棒" diff --git a/tmp/supervise-inbox/supervise.pid b/tmp/supervise-inbox/supervise.pid index fa0afbd..fae9055 100644 --- a/tmp/supervise-inbox/supervise.pid +++ b/tmp/supervise-inbox/supervise.pid @@ -1 +1 @@ -41676 \ No newline at end of file +39980 \ No newline at end of file diff --git a/tmp/supervise-inbox/tasks-events.jsonl b/tmp/supervise-inbox/tasks-events.jsonl index b8f4247..1d8eafe 100644 --- a/tmp/supervise-inbox/tasks-events.jsonl +++ b/tmp/supervise-inbox/tasks-events.jsonl @@ -29,3 +29,5 @@ {"ts": "2026-10-09T15:03:25", "id": "4927305a-4eee-4809-97f8-5c7ad7a2f85e", "from": "", "to": "done", "by": "[执行]-[产品规划]-改导航七项一层并P8并入复盘", "artifact": "执行会话/目标-导航改七项一层并重排功能归属(P8 并入复盘)-fc471a/ui/3b-实测记录.md"} {"ts": "2026-10-09T16:26:01", "id": "b7a72c2c-a4ab-462d-a71a-002031e9f285", "from": "", "to": "done", "by": "", "artifact": "E:/ProgramData/AIProject/contentm_agent/执行会话/目标-征询GPT对当前七页结构与操作路径的建议-b49e02/GPT-对页面结构与操作路径的建议.md"} {"ts": "2026-10-09T23:02:48", "id": "254f554c-2b47-47c9-ae69-3047cf1da84e", "from": "", "to": "done", "by": "", "artifact": "E:/ProgramData/AIProject/contentm_agent/执行会话/目标-分析social-auto-upload项目,用于投放页与发布对象的判断-0ec0a7/social-auto-upload 分析与对照.md"} +{"ts": "2026-10-10T08:23:37", "id": "d7ea834b-1aff-4a3b-afcf-cb9ec9aefd51", "from": "", "to": "done", "by": "", "artifact": "执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/"} +{"ts": "2026-10-10T09:19:44", "id": "6f6cd256-854d-4817-8512-938df6944b07", "from": "", "to": "done", "by": "", "artifact": "执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/目标执行状态.md"} diff --git a/tmp/supervise-inbox/tasks.json b/tmp/supervise-inbox/tasks.json index b6fc827..b604ed3 100644 --- a/tmp/supervise-inbox/tasks.json +++ b/tmp/supervise-inbox/tasks.json @@ -161,5 +161,21 @@ "goal_fp": "0ec0a7", "artifact": "E:/ProgramData/AIProject/contentm_agent/执行会话/目标-分析social-auto-upload项目,用于投放页与发布对象的判断-0ec0a7/social-auto-upload 分析与对照.md", "t_end": 1791558168.759011 + }, + "d7ea834b-1aff-4a3b-afcf-cb9ec9aefd51": { + "state": "done", + "by": "", + "t": 1791591817.944706, + "goal_fp": "fa6e07", + "artifact": "执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/", + "t_end": 1791591817.9449484 + }, + "6f6cd256-854d-4817-8512-938df6944b07": { + "state": "done", + "by": "", + "t": 1791595184.5654473, + "goal_fp": "fa6e07", + "artifact": "执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/目标执行状态.md", + "t_end": 1791595184.5656312 } } \ No newline at end of file