核实8a8412完成:信源16路留8弃8、赛道过滤层落prd/2a(F15不插号)与两张图、旧版自动进归档-过期版+索引同步;独立复核闸门2061|0|27与冻结项未动

This commit is contained in:
WorkBuddy committed 2026-10-11 22:06:56 +08:00
1 parent c3e124e4ae
commit ce49e23ac1
12 files changed
+1430 -19

No files matched your search

@@ -7,7 +7,8 @@
> 判据源:`stage-requirements/references/create-prd.md`(功能清单)+ `references/state-machine.md`(六项治理,落在功能条目内)。
> 本份只回答「做哪些功能、不做哪些、每条什么优先级、功能归谁」。页面骨架在 `2b-界面布局-新版.md`。
> ⛔ 全文零视觉词 —— 配色 / 字体 / 间距 / 组件样式 / 动效,一个都没出现。
> 🔴 **本版没加功能、没改优先级**:功能清单仍是 14 条(F1–F14),编号一个没动。改的是**判据、对象定义与三条功能的措辞**。
> 🔴 **V4 那一轮没加功能、没改优先级**:功能清单是 14 条(F1–F14),编号一个没动。改的是**判据、对象定义与三条功能的措辞**。
> 🔴 **2026-10-11 追加一轮(赛道过滤层)**:新增 **F15 赛道过滤与未匹配档**(接在 F14 之后,⛔ 不插号),F9 扩出「赛道表」字段组。功能清单 14 → **15 条**;页面 7 / 导航一层七项 / 业务板块 39 / 流转 20 条 / 业务对象 11 个,**一个都没动**。
---
@@ -33,6 +34,13 @@
- **F7 的展开单位改成平台账号**(一个内容账号下的每个平台账号各一版,守卫同步改「内容账号 + 它的一个平台账号」);**F13 补「一版一路」**(一个渠道只对应一个版本 ⇒ 发布记录的渠道由版本唯一确定,`PublishRecord` **不加渠道字段**)(§三 F7/F13)。
- **定时发布挂起**:用户 2026-10-10 07:56 逐字「后续具体做投放功能的时候在说」⇒ 本版**不为它加任何功能条目与字段**,只登记在 §九(§九 第 7 项)。
**本轮追加(2026-10-11 · 赛道过滤层)**
- **新增 F15 赛道过滤与未匹配档**(§三 S1 段末):把全网热点按**当前内容账号的赛道**过一遍,只留下这个号能做的。编号接在 F14 之后,⛔ 不插号、⛔ 不动 F1–F14 的编号与优先级。
- **F9 扩出「赛道表」字段组**(包含词/排除词/领域白名单/过滤档),挂在内容账号下,**不新增对象、不新增板块**(§三 F9)。
- **页面 7 / 导航一层七项 / 业务板块 39 / 流转 20 条 / 业务对象 11 个 —— 一个都没变。**
- ⛔ 三条还没拍板、交回用户(§九 第 8 项):热榜落在 P2 哪一块、赛道表的编辑入口是否在 P6 单列一块、快手与视频号无源怎么补。
**V3 追加(2026-10-09 用户令)**:
- **P8 记录与对账整页并入 P7 复盘台**,页 ID 里不再有 P8;F12、F13 的归属页随之由 P8 改 **P7**(§三 F12/F13、§四 总表、§二 对象字典)。
@@ -84,7 +92,7 @@
| 对象 | 是什么 | 产生位置 | 被谁消费 |
|---|---|---|---|
| `Account` 内容账号 | 管**内容属性**的主体:账号设定(定位/风格/受众/偏好与红线/长期记忆)。🔴 **平台不属于它** —— 它下面挂 1 → N 个**平台账号**,平台账号是**子项、不是新对象** | P6 | P1、P4、P5、P7 |
| `Account` 内容账号 | 管**内容属性**的主体:账号设定(定位/风格/受众/偏好与红线/长期记忆 **+ 赛道表**)。🔴 **平台不属于它** —— 它下面挂 1 → N 个**平台账号**,平台账号是**子项、不是新对象** | P6 | P1、P2、P4、P5、P7 |
| `Benchmark` 对标号 | 被盯住的一个对标账号 | P2(F1 录入监控名单) | P2 |
| `Topic` 选题 | 选题库里的一条信息(⛔ 不止「一条待做选题」),含它的来源与**分类**(§三 F2) | P2(F1 异常值、F2 选题库、F3 评论洞察) | P4 |
| `Asset` 资产条目 | 拆解出来的可复用写法,分角度/结构/开场白/标题四区 | 🔴 **P2/P3/P4 均可**(任何页拆出资产都可就地入库;资产库页是**统一管理**的地方,⛔ 不是唯一入库口) | P4 |
@@ -112,7 +120,7 @@
---
## 三、功能清单(14 条,按场景)
## 三、功能清单(15 条,按场景)
字段从上到下固定八样:功能名 / 来自哪条场景 / 优先级 / 核心业务对象 / 归属页 / 状态流转 / 验收要点 / 跨哪些页面,最后跟一条「治理」。
@@ -168,6 +176,30 @@
- **跨哪些页面**:P2
- **治理**:失败恢复=抓取失败转手工粘贴评论;持久化=候选选题落本地;并发=同一内容同时抓取走队列;幂等=按「评论标识」去重;超时=抓取中上限 60 秒(设计值);不可逆=不涉及。
#### F15 赛道过滤与未匹配档
- **功能名**:把全网热点按当前内容账号的赛道过一遍,只留下这个号能做的。
- **来自哪条场景**:S1
- **优先级**:P0 —— 判据:不做则雷达默认视图仍是大盘新闻,S1「不用逐个刷榜」只做了一半。
- **核心业务对象**:`Topic` 选题(读 `Account` 的赛道表,不产生新对象)
- **归属页**:P2 选题雷达
- **输入口(🔴 写死只此一路)**:只作用于**平台热榜 / 社区热榜**这一路外部热点;
对标账号、评论洞察、自有账号数据、人工输入这四路⛔ 不过滤(它们天然按账号来)。
- **匹配规则(两步,都可复算,⛔ 不含模型调用)**:
1. 硬拦:标题或关键词命中「赛道表·排除词 ∪ 画像·偏好与红线」任一条 ⇒ 判低匹配,标「红线命中」。
2. 打分:M = clamp(0,100, round( 55 × min(W,2.0) ÷ 2.0 + 30 × 领域对齐 + 15 × 受众命中 )),
W = 命中词权重和(主词 1.0 / 长尾词 0.6 / 受众词 0.4),领域对齐与受众命中各取 0 或 1。
- **阈值三档(挂在账号上)**:宽松 55/30 · 标准(默认)70/40 · 严格 85/60(进池线 / 折叠线)。
- **状态流转**:`待过滤 → 已匹配 / 已折叠 / 已拦截 / 已捞取`。
事件=过滤、展开折叠项、人工捞取;守卫=赛道表缺 ⇒ 全量放行并标「未过滤」(fail-open);捞取可撤销。
- **验收要点**:给一个内容账号,雷达默认视图只剩与它赛道相关的条目;改一个包含词,
同一条热点的 M 跟着变;红线词命中的条目不出现在默认视图;切到「未匹配」档能看见被挡下的条目、
看见它为什么被挡,并能捞回来一条、留下「人工捞取」记录。
- **跨哪些页面**:P2(匹配发生处)、P6(读账号的赛道表)
- **治理**:失败恢复=赛道表读不到 ⇒ 全量放行并标「未过滤」(fail-open,⛔ 不许静默把雷达清空);
持久化=匹配结果随 `Topic` 落本地;并发=一条热点多账号并行算,各写各的;
幂等=同「热点标识 + 账号ID」不重复算;超时=单条上限 1 秒(纯规则);不可逆=不涉及(捞取可撤)。
### S2 选题进资产库
#### F4 爆款拆解与资产库
@@ -283,12 +315,17 @@
- **功能名**:每个**内容账号**有自己的口径和记忆,互不覆盖;它下面的**平台账号**(发布渠道)也在这里维护。
- **来自哪条场景**:S6、S7
- **优先级**:P0 —— 判据:不做则 S6 整条办不成(表现无处可回)。
- **核心业务对象**:`Account` 内容账号(连带它的长期记忆,以及它下面的**平台账号子项**)
- **核心业务对象**:`Account` 内容账号(连带它的长期记忆,它下面的**平台账号子项**,以及 🔴 2026-10-11 扩出的**赛道表**字段组)
- **归属页**:P6 账号画像
- **界线(🔴 2026-10-10 用户口径新定)**:
- **内容账号管的是内容属性** —— 账号设定(定位/风格/受众/偏好与红线/长期记忆)。**平台不属于它**。
- **平台账号是发布的渠道** —— 每条带**平台 + 登录态 + 授权状态**。登录态归它(能不能发出去是它的事),内容账号不带登录态。
- 一个内容账号 1 → N 个平台账号;**同一个人设在多个平台运营**靠这条表达。
- 🔴 **扩出「赛道表」字段组(V5 新增)**:`包含词[]`(每条带权重:主词 1.0 / 长尾词 0.6)、
`排除词[]`、`领域白名单[]`、`过滤档`(宽松 / 标准 / 严格)。它挂在这个内容账号下,
与画像五维同一份数据的延伸,**不新增对象、不新增板块**。
初值可由系统按「定位」那一句生成,标「AI 初判,待确认」,用户确认后落成固定词表。
⚠️ 「偏好与红线」与 `排除词` 合流后一起做硬拦(见 F15 规则 1)。
- **状态流转**:`空 → 已建 → 使用中 →(复盘回写)→ 使用中`。事件=建画像、编辑、被复盘回写;守卫=一个账号一份画像,账号标识唯一;回写只追加记忆条目,不改历史结论。
🔴 **平台账号子项另有一条状态**:`未接入 → 已登录 / 登录失效 → 已授权 / 授权到期`。守卫=**授权失效的平台账号不许进发布闸门**(P5 发不出去这件事在这里拦)。
- **验收要点**:两个内容账号各自的画像互不影响;一条内容复盘后,对应账号的画像里多出一条记忆;并排跑两个账号的创作,谁都不覆盖谁;**一个内容账号下面挂 3 个平台账号,各自带自己的登录态与授权状态、互不串台**。
@@ -340,7 +377,7 @@
---
## 四、功能归属总表(F1–F14)
## 四、功能归属总表(F1–F15)
这张表是本版新加的。上一版的归属散在每条末尾的「跨哪些页面」里,没有一处能一眼看全,也就没法复核。
@@ -354,12 +391,13 @@
| F6 创作流水线 | S3 | `Content` | P4 | 无 |
| F7 一份母版到多平台账号版本 | S4 | `ContentVersion` | **P4** | 🔴 **V4 改了**:展开单位由「账号 × 平台」改成**按平台账号展开**;守卫改成「内容账号 + 它的一个平台账号」 |
| F8 内容与素材的版本管理 | S3 S4 | `ContentVersion` | **P4** | 无 |
| F9 多账号画像、平台账号与记忆 | S6 S7 | `Account` | P6 | 🔴 **V4 改了**:功能扩到「平台账号(发布渠道)也在这里维护」;`Account` 改写成**内容账号**,平台账号做成它下面的子项 |
| F9 多账号画像、平台账号与记忆 | S6 S7 | `Account` | P6 | 🔴 **V4 改了**:功能扩到「平台账号(发布渠道)也在这里维护」;`Account` 改写成**内容账号**,平台账号做成它下面的子项。🔴 **2026-10-11 又扩**:**扩出赛道表字段组**(包含词/排除词/领域白名单/过滤档) |
| 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) | 无 |
| F15 赛道过滤与未匹配档 | S1 | `Topic` | P2 | 🔴 **新增** |
七页各自「核心对象」与「不应该负责」两栏在 `2b-界面布局-新版.md` §五,本份不重复。
@@ -369,6 +407,15 @@
这一版不是同一批句子换了个说法。下面逐条写改在哪,能对照原文核。
**本轮(2026-10-11 · 赛道过滤层)**
1、**功能清单 14 → 15 条**:新增 **F15 赛道过滤与未匹配档**,位置在 §三 S1 段末(内容上归 S1,与 F1/F2/F3 同一类事),编号接在 F14 之后 —— ⛔ 不插号,F1–F14 的编号与优先级一个没动。
2、**F9 扩出「赛道表」字段组**(包含词/排除词/领域白名单/过滤档),挂在内容账号下。⛔ 不为它单开一条 F16:维护动作与画像是同一类事、同一页(P6),单开会撞上「同类事放同一页」。
3、**`Account` 多了赛道表这一组字段**(§二 对象字典),**对象仍是 11 个** —— 它是字段组的延伸,⛔ 不是新对象。
4、**§四 总表**加 F15 一行,F9 的「差异」栏补上这一扩。
5、**页面 7 / 导航一层七项 / 业务板块 39 / 流转 20 条 / 业务对象 11 个 —— 一个都没变。** 这一层只加了一条功能与一组字段,⛔ 没有动页结构与骨架。
6、**与上一轮方向相反、但不冲突**:上一轮(`39646d`)把平台与热点源从国内**扩到全球**;这一轮把全网热点**收成「这个号能做的」**。两步在同一条链上,后者建在前者之上。
**V4 本轮(相对 V3 · 八条口径)**
1、**归属判据换了一条**(§一 第 2 条):由「看它动的是哪个对象」改成「**这是哪一类事,同类事放同一页**」。对象那层**保留**,但降为**落地手段**。拿新判据复核七页 ⇒ **页集合一个没动**(七页各自都是「一类事」)。
@@ -445,11 +492,11 @@
| 治理项 | 落点(哪些功能显式写了) | 最要紧的一条 |
|---|---|---|
| 失败恢复路径 | 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 的 `待审` 超时**只提醒、不自动放行** —— 不可逆动作不许靠超时自动过 |
| 失败恢复路径 | F1 F2 F3 F4 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 | F5 走 **fail-closed**(检查失败按不过处理);F15 反过来走 **fail-open**(赛道表读不到就全量放行并标「未过滤」,⛔ 不许静默把雷达清空) |
| 持久化范围 | 全部 15 条 | F9 的**记忆作用域收敛到画像目录、不写全局**(对策 R4);F13 的审计轨迹**只追加不改写** |
| 并发冲突 | F1 F2 F3 F6 F7 F8 F9 F12 F15 | 统一做法:写临时文件 + 原子替换 + 回读核对,⛔ 不用文件锁(本机实测会卡死) |
| 幂等 | F1 F2 F3 F4 F6 F7 F8 F9 F10 F12 F14 F15 | F4 与 F8 的**重复入库/重复保存不产生副本、也不覆盖旧版** |
| 超时迁移目标 | F1 F3 F4 F5 F6 F7 F10 F13 F14 F15 | F13 的 `待审` 超时**只提醒、不自动放行** —— 不可逆动作不许靠超时自动过 |
| 不可逆操作二次确认 | F4 F5 F8 F9 F10 F12 F13 | F5 + F13:**发布、删帖、组织级急停三件形态不同**,分别按「人的动作 / 二次确认 / 只有人能触发与恢复」处理 |
补一条方法论要求的分工说明:**发布这个动作本身留在人手里**(read-first / draft-first,源码级);**删帖**带破坏性标注、属需二次确认的一类;**组织级急停**的触发与恢复都只有人能做。⚠️ 三件事的「人来做」形态不一样,⛔ 不压成一句话。
@@ -517,12 +564,25 @@ GPT 的 P0 清单里有 `P7 → P1`(复盘结论 → 矩阵待办/异常/
**7、定时发布:挂起(🔴 V4 新增的登记项)**
用户 2026-10-10 07:56 逐字:「**后续具体做投放功能的时候在说**」。
⇒ **本版不为它加任何功能条目、字段或状态**(⛔ 不编一条 F15,⛔ 不在 `PublishTask` 里塞排期字段)。
⇒ **本版不为它加任何功能条目、字段或状态**(⛔ 不为它新增编号 —— F15 已用于赛道过滤,⛔ 不借它的号,⛔ 不在 `PublishTask` 里塞排期字段)。
⇒ 它是**挂起**,不是「不做」:等真做投放功能时再议。挂起期间**谁都不许拿它当已定内容用**。
- **复核人** = 主会话转用户
- **复核时机** = 立项做投放功能时(⛔ 不是②段收口时)
- **结论落点** = 本文件 §三 F5/F7 附近 + `2b` §五 P5
**8、赛道过滤层绕不过结构的三条(🔴 2026-10-11 新增,三条都没自己拍板)**
F15 本身不依赖这三条的答案(无论热点落在哪一块,进库前都要过这一层),但它们的答案决定**可见面画在哪**,所以要交回:
- **8a、热榜这一路落在 P2 的哪一块** —— 并进 F1(把「对标账号监控」扩成「热点与对标监控」),还是 P2 新开一块?⚠️ 新开一块 ⇒ 业务板块 39 → 40,撞「板块 39 不变」这条硬约束。
- **8b、赛道表的编辑入口要不要在 P6 单列一块** —— 现版 P6 是 5 块;挂在「画像五维」块里(不占新块),还是单列一块(P6 → 6 块 ⇒ 板块 40)?
- **8c、快手与视频号没有可用的热点源,怎么补** —— 这两个平台在 12 平台矩阵里,但本轮查证拿不到免费源;是留空、降级成人工录入,还是换源?
为什么不自决:三条都会**扩大可见面或改动冻结的板块数**,属红线门禁那一类,⛔ 不许顺手定。
- **复核人** = 主会话转用户
- **复核时机** = ③段动 P2/P6 界面前
- **结论落点** = 本文件 §三 F15 与 §四 总表 + `2b` §五 P2/P6
**回收三字段**(本份第 1–6 项共用):
- 复核人 = 主会话转用户
- 复核时机 = ②段收口时一次性过;第 3 条、第 5 条要赶在第④步动界面之前定
@@ -542,7 +602,9 @@ P1 矩阵总览|P2 选题雷达|P3 资产库|P4 创作台|P5 发布中
## 附:本份自检
- [x] 每条功能都追回①段《使用场景》(`1e` S1–S8),14 条全覆盖;`1e` §四 的反向核对(场景 → 功能)依然成立
- [x] 每条功能都追回①段《使用场景》(`1e` S1–S8),15 条全覆盖(F15 追的是 S1);`1e` §四 的反向核对(场景 → 功能)依然成立
- [x] **F15 编号接在 F14 之后**,⛔ 没插号;F1–F14 的编号、来自哪条场景、优先级判据一个没动
- [x] **页面 7 / 导航一层七项 / 业务板块 39 / 流转 20 条 / 业务对象 11 个 —— 逐项核过,一个都没变**(赛道表是 `Account` 的字段组,⛔ 不是新对象)
- [x] 每条功能八字段齐全(功能名 / 来自哪条场景 / 优先级 / 核心业务对象 / 归属页 / 状态流转 / 验收要点 / 跨哪些页面)
- [x] 功能归属有可复核的判据(🔴 V4 换成「一类事情放同一页」,对象降为落地手段),不是「哪页有按钮」
- [x] **拿新判据复核过七页**:七页各自都是「一类事」,页集合没动(§一 第 2 条的复核表)
@@ -170,7 +170,7 @@
**业务板块清单(从上到下,4 块)**
1. 对标监控概览 —— 四个数:在监控的账号数/低粉爆款条数/异常值条数/近三天更新条数
2. 对标内容 —— 每条带它相对该账号平时水平的倍数(⛔ 同 P1,不写呈现);拆出来的结果**可就地入库**(人不必先跑去资产库 —— 入库口不限页,见 §一 第 3 条)
2. 对标内容 —— 每条带它相对该账号平时水平的倍数(⛔ 同 P1,不写呈现);拆出来的结果**可就地入库**(人不必先跑去资产库 —— 入库口不限页,见 §一 第 3 条);列表上常驻**账号切换器**与**匹配度筛选器**(全部 / 高匹配 / 可能相关 / 未匹配),按当前内容账号的赛道把不相干的大盘挡在外面(规则见 `2a` F15)
3. 评论区洞察(可点入子区)—— 取评论、出 AI 候选选题(`2a` F3)
4. 选题库 —— 装**对选题有帮助的任何信息**,用**进度 × 类型**两个正交维度区分(见下)
@@ -188,6 +188,7 @@
| 信息 | 档 | 判据回答 |
|---|---|---|
| 对标内容 | 主屏常驻 | 删掉它,主操作的对象没了,做不成 |
| 匹配度筛选器 | 主屏常驻 | 删掉它,用户没法把大盘挡在外面,这一页的主操作(找到能做的选题)做不成 |
| 选题库 | 主屏常驻 | 删掉它,主操作没有可推进的条目,做不成 |
| 对标监控概览四数 | 主屏常驻 | 删掉它,看不出哪个账号值得看 —— 列表会长到没法挑,等于主操作做不成 |
| 评论区洞察 | 可点入 | 删掉它,仍能从对标列表拿到选题 |