初始化提交:contentm_agent 工作区全量快照
内容分四块: 1、产品规划产出 —— MCN 短视频整合营销工作台的①段五份(1a 需求/1b 竞品/1c 画像/1d 策略/1e 场景)、②段两份(2a 功能/2b 布局)、③段界面(DESIGN.md 契约与令牌表 + mcn-workbench.html 原型 + 实测/会诊/审查三份 + 23 张闸门截图)。 2、开源竞品调研 —— 5 个内容工作台项目的取证原始件与 1b 系列分析文档。 3、参考资料 —— 竞品视频抽帧 1145 张 + 2 个源视频 + 功能点截图。 4、机制侧 —— 协作脚本与状态台账、工作区记忆日志、抽帧/OCR 脚本。 .gitignore 只排运行时日志、脚本备份副本与一次性探针输出,其余按原样入库。
This commit is contained in:
commit
df56c2c137
1773 files changed
+205840
No files matched your search
@@ -0,0 +1,280 @@
|
||||
# 2a 产品功能
|
||||
|
||||
> 项目 slug:`mcn-shortvideo-agent` | ②段第 1 子步,产出 `prd/2a-产品功能.md`
|
||||
> 判据源:`stage-requirements/references/create-prd.md`(功能清单)+ `references/state-machine.md`(六项治理,落点在功能条目内)
|
||||
> 本份只做一件事:把①段《使用场景》(`research/1e-使用场景.md`)细化成功能清单 —— 做哪些、不做哪些、每条什么优先级。
|
||||
> 页面骨架在 `prd/2b-界面布局.md`,⛔ 本份不描述页面长什么样,只写「跨哪些页面」。
|
||||
|
||||
---
|
||||
|
||||
## 〇、上游状态(先看这一节再往下读)
|
||||
|
||||
| 上游 | 状态 | 说明 |
|
||||
|---|---|---|
|
||||
| ①段 1a 需求文档 | ✅ 已就位 | `research/1a-需求文档.md`(23 KB,2026-10-07 22:29)。性质是**汇总型**,不是 grill 澄清产出。 |
|
||||
| ①段 1b 竞品分析 | ✅ 已就位,**跨项目** | 分析本体在 `执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/docs/pm/content-workbench/`。引用关系见 `research/1b-竞品分析.md`。 |
|
||||
| 1a 里指向 1b 系列的条目 | ✅ **复核已完成** | 2026-10-07 22:2x 逐条核过:9 条受影响里 **2 条改**(F5 措辞、F7 依据列)、**7 条不改**。清单见 `…-72111e/复核清单-1a受影响条目.md`。 |
|
||||
| 1a 的 9 条待复核 | 🔴 **仍未复核** | 全部未经用户确认。本份凡依赖它们的条目**逐条标出**(见 §三)。 |
|
||||
| A1–A4 假设 | 🔴 **仍未经确认** | 同上。 |
|
||||
|
||||
引用 1b 的证据等级随文标注:**源码级**(四家)/**界面级**(只有 Easel)/**文档级**(只有文到 AI,不与另四家同权)。
|
||||
|
||||
---
|
||||
|
||||
## 一、功能清单怎么组织
|
||||
|
||||
**按使用场景组织,不按页面。** 一条场景下可能挂跨多个页面的功能。这是①段《使用场景》与②段之间的接口,也是本段唯一的「功能该不该有」判据 —— 追不回场景的功能,要么补场景、要么砍掉。
|
||||
|
||||
优先级只给 P0/P1/P2 加一句可复述的判据,⛔ 不填数字(本项目没有任何数据源)。
|
||||
|
||||
---
|
||||
|
||||
## 二、功能清单(14 条)
|
||||
|
||||
### S1 找选题
|
||||
|
||||
#### F1 对标账号监控与爆款异常值识别
|
||||
|
||||
- **功能名**:盯住几个对标账号,把「数据远高于它平时水平」的内容挑出来。
|
||||
- **来自哪条场景**:S1
|
||||
- **优先级**:P0 —— 判据:不做则 S1 整条办不成。
|
||||
- **状态流转**:`idle → fetching → hit / miss`。事件=刷新、恢复自动更新;守卫=平台授权有效(🔴 **依赖 A2**,见 §三);失败 ⇒ 迁 `failed`。
|
||||
- **治理**:失败恢复=退避重试 3 次后转「手工录入对标号」的降级路径;持久化=监控名单与历史异常值落本地(不落全局);并发=同一对标号同时拉取走队列串行,不并发写;幂等=按「对标号 + 内容标识」去重,重复拉取不产生新条目;超时=`fetching` 上限 90 秒(设计值,实现可调),超时转 `failed`;不可逆=不涉及。
|
||||
- **验收要点**:录入一个对标号后,能看到它近 3 天的更新;能指出哪几条是异常值(标注了它相对该号平时水平的倍数);刷新失败时有明确提示而不是静默空列表。
|
||||
- **跨哪些页面**:P2 选题雷达
|
||||
|
||||
#### F2 选题库与灵感速记
|
||||
|
||||
- **功能名**:随手记下一刻想到的东西,把它收进待做清单。
|
||||
- **来自哪条场景**:S1、S2
|
||||
- **优先级**:P0 —— 判据:不做则选题无处落地,S1 与 S2 都断在最后一步。
|
||||
- **状态流转**:`draft → 待做 → 在写 → 已用 / 弃用`。事件=记录、转待做、转在写、标已用、弃用;守卫=转「已用」需已关联到一条内容;弃用可恢复(可逆)。
|
||||
- **治理**:失败恢复=本地写入失败时保留输入框内容,不丢字;持久化=落本地知识库目录,刷新与重启后仍在;并发=同一人两个入口同时改 ⇒ 乐观重试(写临时文件 + 原子替换 + 回读核对),⛔ 不用文件锁(本机实测会卡死);幂等=同一条灵感重复提交按内容 hash 去重;超时=无中间态;不可逆=不涉及(删除走可恢复的「弃用」)。
|
||||
- **验收要点**:连着记 5 条灵感,重启后 5 条都在;一条灵感能被标记为「已用」并追到它变成了哪条内容。
|
||||
- **跨哪些页面**:P1 矩阵总览(随手记入口)、P2 选题雷达
|
||||
|
||||
#### F3 评论区洞察找选题
|
||||
|
||||
- **功能名**:从一条内容的评论区里,把反复出现的问题挑成选题。
|
||||
- **来自哪条场景**:S1
|
||||
- **优先级**:P1 —— 判据:不做仍能从 F1 得选题,只是少一路输入。
|
||||
- **状态流转**:`idle → 抓取中 → 已出候选 → 已采纳 / 忽略`。事件=抓取、采纳、忽略;守卫=设定过「最多获取条数」与「样本排序」;🔴 **依赖待复核第 7 条**(数据来源与频率未定)。
|
||||
- **治理**:失败恢复=抓取失败转手工粘贴评论;持久化=候选选题落本地;并发=同一内容同时抓取走队列;幂等=按「评论标识」去重;超时=抓取中上限 60 秒(设计值);不可逆=不涉及。
|
||||
- **验收要点**:给一条视频,能按「点赞最多」取出前 N 条评论并给出至少一条可采纳的候选选题。
|
||||
- **跨哪些页面**:P2 选题雷达
|
||||
|
||||
### S2 选题进资产库
|
||||
|
||||
#### F4 爆款拆解与资产库
|
||||
|
||||
- **功能名**:把一条爆款的写法拆开,存成下次能直接拿的东西。
|
||||
- **来自哪条场景**:S2
|
||||
- **优先级**:P0 —— 判据:不做则 S2 整条办不成;`1a` §六 F4 注明「这一条决定了『越用越准』」。
|
||||
- **状态流转**:`未拆 → 拆解中 → 待入库 → 已入库 / 退回`。事件=发起拆解、入库、退回;守卫=入库前过门禁(见治理);退回后原件保留。
|
||||
🔴 资产库本身有四个分区(角度、结构、开场白、标题),各区条目独立流转,互不阻塞。
|
||||
- **治理**:失败恢复=拆解失败保留原文,可重试;持久化=入库结果落本地,带原文与出处链接;并发=同一素材重复拆解按素材 hash 幂等;幂等=同一条目重复入库不产生副本;超时=拆解中上限 180 秒(设计值,长任务),超时转 `待入库` 并保留中间结果;不可逆=**入库前设门禁**(对策 R3):无出处的、原文缺失的一律先设 `draft`,`draft` 可删,`已入库` 删除需二次确认。
|
||||
- **验收要点**:拆完一条爆款,四个分区里各能看到至少一条新条目;条目的原文与出处可回溯;拿 20 条真实爆款入库,隔一周回来能找回想要的那条。
|
||||
- **跨哪些页面**:P3 资产库
|
||||
|
||||
### S3 走完创作流水线
|
||||
|
||||
#### F6 创作流水线
|
||||
|
||||
- **功能名**:把一条选题从「聊思路」一路做到成稿,文案、标题、封面齐。
|
||||
- **来自哪条场景**:S3
|
||||
- **优先级**:P0 —— 判据:不做则 S3 整条办不成。
|
||||
- **状态流转**:`选题态 → 思路态 → 文案态 → 标题态 → 封面态 → 检查态 → 成稿态`;每一态可回退到上一态。事件=推进、回退;守卫=推进到「检查态」前文案与封面必须都有(封面缺 ⇒ 提示但不硬阻);成稿态可再编辑(回 `文案态`)。
|
||||
- **治理**:失败恢复=任一步 AI 调用失败保留已产出内容,可重试该步;持久化=每一步的产物落本地并按内容 id 归档;并发=同一条内容两个窗口同时改 ⇒ 写临时文件 + 原子替换 + 回读核对,检测到覆盖则提示;幂等=重复点「起标题」生成新版本而不覆盖(接 F8);超时=任一步上限 180 秒(设计值),超时保留中间结果;不可逆=不涉及(这一步没有对外动作)。
|
||||
- **验收要点**:一条选题能一路走到成稿,中途不必离开这一处;每一步的产物都存得住;用户全程不需要自己选技能。
|
||||
- **跨哪些页面**:P4 创作台
|
||||
|
||||
#### F8 内容与素材的版本管理
|
||||
|
||||
- **功能名**:改稿产生新版本,旧版本还在。
|
||||
- **来自哪条场景**:S3、S4
|
||||
- **优先级**:P1 —— 判据:不做则场景办得成但要多绕(靠手工另存,容易盖掉)。
|
||||
- **状态流转**:`v1 → v2 → … → 当前版`;每个版本可标「当前」。事件=编辑保存、切换当前版;守卫=切换当前版不影响已发布记录指向的版本;终态可再次编辑(回出新版本)。
|
||||
- **治理**:失败恢复=保存失败保留编辑中内容;持久化=全部版本落本地,不覆盖;并发=同一条内容两处同时保存 ⇒ 后保存的产生新版本,同时提示「上游已变」(对应 1b 里 `stale` 的做法);幂等=同样内容重复保存不产生新版本;超时=无中间态;不可逆=**删除某个版本需二次确认**。
|
||||
- **验收要点**:改一版再改一版,两版都在;已发布的那条记录仍指向它当时用的版本;能看出某一版是基于哪一版改的。
|
||||
- **跨哪些页面**:P4 创作台、P5 发布中心
|
||||
|
||||
#### F14 录制卡片与画板
|
||||
|
||||
- **功能名**:把成稿变成一张对着讲的知识卡片。
|
||||
- **来自哪条场景**:S3
|
||||
- **优先级**:P2 —— 判据:不做不影响 S3 办成,只是更好用。
|
||||
- **状态流转**:`无 → 已生成 → 已同步`。事件=生成、同步到画板;守卫=成稿态才可生成。
|
||||
- **治理**:失败恢复=生成失败可重试;持久化=卡片与画板落本地;并发=同一内容重复生成按内容版本幂等;幂等=同版本不重复生成;超时=上限 60 秒(设计值);不可逆=不涉及。
|
||||
- **验收要点**:一条成稿能生成卡片;卡片能落到画板里被打开。
|
||||
- **跨哪些页面**:P4 创作台
|
||||
|
||||
### S4 一份母版变多份
|
||||
|
||||
#### F7 一份母版到多账号多平台版本
|
||||
|
||||
- **功能名**:母版改一次,按各账号各平台的口径各出一版。
|
||||
- **来自哪条场景**:S4
|
||||
- **优先级**:P0 —— 判据:不做则 S4 整条办不成。
|
||||
- **状态流转**:`母版 → 已展开(多版本)→ 逐版确认 → 就绪`。事件=展开、逐版编辑、确认;守卫=每个版本必须绑一个账号 + 一个平台(沿用 F9 的画像口径);未确认的版本不许进发布闸门。
|
||||
🔴 依据界线(照 1a 复核后的写法):Easel 发布中心**直证的是「多平台」**(一处编辑、八端预览,源码级 + 界面级);**「多账号」的依据是 Easel 的多画像支持加本产品的矩阵需求**,发布中心没看到逐账号变体。
|
||||
- **治理**:失败恢复=展开中断保留已生成的版本;持久化=每个版本独立落本地;并发=两处同时展开按「母版版本 + 目标账号」幂等;幂等=同母版同账号同平台不重复展开;超时=展开上限 120 秒(设计值);不可逆=不涉及(确认可撤回,未发布的版本可删,删除需二次确认)。
|
||||
- **验收要点**:母版改一次,各账号各平台的版本跟着更新;超限的地方当场标出来;改漏了某个账号能被发现。
|
||||
- **跨哪些页面**:P4 创作台(从成稿发起)、P5 发布中心
|
||||
|
||||
### S5 发之前先过闸
|
||||
|
||||
#### F5 发布前分级闸门
|
||||
|
||||
- **功能名**:发之前,硬的拦住、软的只提醒。
|
||||
- **来自哪条场景**:S5
|
||||
- **优先级**:P0 —— 判据:不做则 S5 整条办不成。
|
||||
- **界线(照 1a 复核后的写法,⛔ 不是旧版措辞)**:硬闸管**敏感信息**(账号密钥、内部路径这类),不过就不许发;软闸管**人设一致性**(低于阈值只告警,不阻断)。⚠️ 竞品里**没有「敏感词检测」,也没有「事实检测」**——照旧版写会把功能带偏成一个竞品池里没人做过的「事实核查器」。
|
||||
- **状态流转**:`未检 → 检查中 → 通过 / 有硬拦 / 有软劝`。事件=发起检查、改完复检;守卫=有硬拦项时「去发布」不可用;软劝不阻断但要在发布确认页可见。硬拦项改完才能过。
|
||||
- **治理**:失败恢复=检查本身失败按**不过**处理(fail-closed,宁拦不放);持久化=每次检查结果留痕,随发布记录一起存;并发=同一内容重复检查以最后一次为准;幂等=同一版本重复检查结果一致;超时=检查上限 60 秒(设计值),超时按不过处理;不可逆=**「去发布」这一步必须人确认**(read-first / draft-first)。
|
||||
- **验收要点**:一份带敏感信息的稿子会被拦住且说得出是哪一处;一份人设偏移的稿子只提醒、不拦;改完能复检并通过。
|
||||
- **跨哪些页面**:P5 发布中心
|
||||
|
||||
#### F13 发布留痕与人工确认记录
|
||||
|
||||
- **功能名**:谁在什么时候确认发的、发的是哪一版,查得到。
|
||||
- **来自哪条场景**:S5
|
||||
- **优先级**:P1 —— 判据:不做则场景办得成但要多绕(靠聊天记录回溯,且回溯成本高)。
|
||||
- **状态流转**:`草稿 → 待审 → 已确认 → 已发布 → 已归档`。事件=送审、确认、登记发布、归档;守卫=`已发布` 需要先有「已确认」记录;**组织级急停**可把任意 `待审` 打回 `草稿`。
|
||||
- **治理**:失败恢复=登记失败保留草稿状态;持久化=审计轨迹落本地,只追加不改写;并发=同一内容两处送审按「内容版本」幂等;幂等=重复确认同一版本不产生第二条记录;超时=`待审` 上限 72 小时(设计值),超时提醒发起人,不自动放行;不可逆=**发布、删帖、组织级急停三件事形态不一样,别压成一句**:发布是人的动作;删帖带破坏性标注,需二次确认;急停的触发与恢复都只有人能做。
|
||||
- **验收要点**:每条发布都能查到确认人与时间;能看出这条发的是哪一版;急停能拦住所有待审项,恢复后之前的草稿还在。
|
||||
- **跨哪些页面**:P5 发布中心、P8 记录与对账
|
||||
|
||||
### S6 效果回写
|
||||
|
||||
#### F9 多账号画像与记忆
|
||||
|
||||
- **功能名**:每个账号有自己的口径和记忆,互不覆盖。
|
||||
- **来自哪条场景**:S6、S7
|
||||
- **优先级**:P0 —— 判据:不做则 S6 整条办不成(表现无处可回)。
|
||||
- **状态流转**:`空 → 已建 → 使用中 →(复盘回写)→ 使用中`。事件=建画像、编辑、被复盘回写;守卫=一个账号一份画像,账号标识唯一;回写只追加记忆条目,不改历史结论。
|
||||
- **治理**:失败恢复=保存失败保留编辑内容;持久化=**记忆作用域收敛到画像目录,⛔ 不写全局文件**(对策 R4:多账号并发写全局会互相覆盖);并发=多账号并行读同一份画像,写只写自己那一份;幂等=同一条记忆重复回写按内容 id 去重;超时=无中间态;不可逆=删除画像需二次确认(会连带删它累积的记忆)。
|
||||
- **验收要点**:两个账号各自的画像互不影响;一条内容复盘后,对应账号的画像里多出一条记忆;并排跑两个账号的创作,谁都不覆盖谁。
|
||||
- **跨哪些页面**:P6 账号画像
|
||||
|
||||
#### F10 效果复盘与归因回写
|
||||
|
||||
- **功能名**:一条内容跑完,把它的表现读回来,写成这个账号的经验。
|
||||
- **来自哪条场景**:S6
|
||||
- **优先级**:P0 —— 判据:不做则 S6 办不成,整个闭环断在最后一步。
|
||||
- **状态流转**:`待复盘 → 读数据中 → 已归因 → 已回写`。事件=发起复盘、确认归因、回写;守卫=先有发布记录(F13);回写前必须人确认归因结论。
|
||||
🔴 本组**只有 Easel** 做成了这个闭环(源码级),⛔ 不写成「多家都做了」。
|
||||
- **治理**:失败恢复=数据读不到时降级为手工录入表现;持久化=复盘结论与回写记录落本地;并发=同一条内容重复复盘按内容 id 幂等;幂等=同一次复盘重复回写不重复追加记忆;超时=读数据上限 90 秒(设计值),超时转手工录入;不可逆=**回写会改画像记忆,需人确认**(不自动写)。
|
||||
- **验收要点**:一条已发布内容能复盘出结论;结论能回写到对应账号的画像;回写后下一轮做这个账号时能看到这条经验。
|
||||
- **跨哪些页面**:P7 复盘台
|
||||
|
||||
### S7 看整个矩阵
|
||||
|
||||
#### F11 矩阵级看板
|
||||
|
||||
- **功能名**:一屏回答每个账号今天该发什么、发了什么、效果如何。
|
||||
- **来自哪条场景**:S7(🔴 **整条标【假设】**,待复核第 5 条)
|
||||
- **优先级**:P1 —— 判据:不做则场景办得成但要多绕(逐账号点进去看);⚠️ 若第 5 条复核为「不需要矩阵级视图」,本条可整体砍掉。
|
||||
- **状态流转**:无状态(只读视图,见 `2b-界面布局.md` 的信息分档)。事件=进入、切换账号、下钻。
|
||||
- **治理**:失败恢复=数据源不可用时显示「数据未更新」并给出时间戳,⛔ 不显示空白冒充正常;持久化=视图本身不落库,只读上游;并发=只读,无冲突;幂等=只读;超时=无;不可逆=不涉及。
|
||||
- **验收要点**:一屏能看到矩阵下每个账号的今日状态与效果;数据不新鲜时看得出来。
|
||||
- **跨哪些页面**:P1 矩阵总览
|
||||
|
||||
### S8 商单与内容对账
|
||||
|
||||
#### F12 商单与收支记录、内容对账
|
||||
|
||||
- **功能名**:一条内容带了商单,内容、发布记录和收支对得上。
|
||||
- **来自哪条场景**:S8(🔴 **整条标【假设】**,待复核第 6 条;另依赖 **A3**)
|
||||
- **优先级**:P2 —— 判据:不做不影响场景办成,只是更好用;⚠️ 若第 6 条复核为「不进第一版」,本条移出第一版(属待确认项,见 §五)。
|
||||
- **状态流转**:`未登记 → 已登记 → 待结算 → 已结算`。事件=登记、核对、标结算;守卫=`已结算` 需内容与发布记录都已关联;可反结算(可逆)。
|
||||
- **治理**:失败恢复=登记失败保留输入;持久化=收支记录落本地;并发=同一条记录两处改按记录 id 幂等;幂等=同一内容同一口径不重复登记;超时=无中间态;不可逆=标「已结算」后修改需二次确认。
|
||||
- **验收要点**:一条带商单的内容能查到它的发布记录与收支;对账时不需要翻聊天记录。
|
||||
- **跨哪些页面**:P8 记录与对账
|
||||
|
||||
---
|
||||
|
||||
## 三、依赖假设的条目(逐条标出)
|
||||
|
||||
⭐ 1a 的 9 条待复核与 A1–A4 **全部未经用户确认,⛔ 不当事实用**。本份凡依赖它们的条目列在下面,写清「依赖哪条、不成立会怎样」。依据假设的判断,条目里已带上假设状态标注。
|
||||
|
||||
| 功能 | 依赖 | 假设内容 | 不成立会怎样 |
|
||||
|---|---|---|---|
|
||||
| F1 | **A2** + 待复核第 2 条 | 平台数据靠官方接口或授权方式拿 | 自动拉取这条路断,退化成手工录入对标号;S1 的「不用刷榜」打折 |
|
||||
| F10 | **A2** + 待复核第 2 条 | 同上 | 效果数据读不回来,归因只能靠手工录表现,S6 降级 |
|
||||
| F11 | **A1** + 待复核第 5 条 | 账号数 10–50;矩阵级视图确实需要 | 账号数超出 ⇒ 看板的组织方式要重设计;视图不需要 ⇒ F11 可整体砍掉,P1 页重画 |
|
||||
| F9 | **A1** | 账号数 10–50 | 同 F11;且画像数量与存储组织要跟着变 |
|
||||
| F12 | **A3** + 待复核第 3、6 条 | 收支口径是「内容级」;商单对账进不进第一版 | 口径若是月级 ⇒ 本条整条重做;不进第一版 ⇒ 移出第一版 |
|
||||
| F5 | **A4** + 待复核第 4 条 | 团队 5–20 人、审批不超过三层 | 审批层数超三层 ⇒ 闸门与审批模型要重做 |
|
||||
| F13 | **A4** + 待复核第 4 条 | 同上 | 同上 |
|
||||
| F3 | 待复核第 7 条 | 评论洞察的数据来源与频率未定 | 数据来源定不下来 ⇒ F3 退成手工粘贴评论 |
|
||||
| (无功能) | 待复核第 8 条 | 「整合营销」含不含投放 | 若含投放 ⇒ 需要新增一条场景(1e §六),本份没有对应功能,⛔ 不编 |
|
||||
| (策略层) | 待复核第 9 条 | 只服务一个机构自用 vs 可交付产品 | 影响 `1d-产品策略.md` §7、§9 与权限体系是否进第一版,不影响本份功能骨架 |
|
||||
|
||||
**假设三归宿**(方法论要求,⛔ 不许长期悬空):上表 9 条**全部**落在「② 待实现且已排定确认时机」这一档 —— 确认时机统一为「②段收口时由主会话转用户一次性过;未过之前,③段不得把这些条目当硬约束用」。另两条落「① 已确认」的:**无**(1a 的 6 项已确认项都是无假设依赖的骨架条款)。落「③ 已按假设落地」的:**无**。
|
||||
|
||||
---
|
||||
|
||||
## 四、六项治理覆盖核对
|
||||
|
||||
判据源 `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 并注明「若待复核第 6 条为『不进第一版』则移出第一版」。这是一条**暂缓**。
|
||||
- 复核人 = 主会话转用户
|
||||
- 复核时机 = ②段收口时一次性过
|
||||
- 结论落点 = 本文件 §二 F12 条目与 §三 依赖表
|
||||
|
||||
---
|
||||
|
||||
## 六、页面清单(跨页引用用的 ID)
|
||||
|
||||
本份只写「跨哪些页面」,页面骨架在 `2b-界面布局.md`。为免引用悬空,先把页 ID 列出来(骨架细节见那份):
|
||||
|
||||
P1 矩阵总览|P2 选题雷达|P3 资产库|P4 创作台|P5 发布中心|P6 账号画像|P7 复盘台|P8 记录与对账
|
||||
|
||||
---
|
||||
|
||||
## 附:本份自检
|
||||
|
||||
- [x] 每条功能都追回①段《使用场景》的某一条(14 条全覆盖,§四 反向核过)
|
||||
- [x] 每条功能六字段齐全(功能名 / 来自哪条场景 / 优先级 / 状态流转 / 验收要点 / 跨哪些页面)
|
||||
- [x] 优先级只用 P0/P1/P2 加一句判据,零数字
|
||||
- [x] 「不做」清单逐条对照①段已拍板项,**给出对照条目数(8 对 13),差异行 0**
|
||||
- [x] 六项治理全覆盖,且落在功能条目内(§四 给了落点清单)
|
||||
- [x] 依赖假设的条目逐条标出(§三 9 条),每条带假设状态标注与「不成立会怎样」
|
||||
- [x] 唯一一条暂缓项(F12)带齐复核人 / 复核时机 / 结论落点
|
||||
- [x] 全文零视觉词(配色 / 字体 / 间距 / 组件样式 / 动效)
|
||||
- [x] 未重开需求(grill 在①段)、未写页面结构(那是 2b)、未新增本段白名单外的文档
|
||||
- [x] 上游状态写在文首,凡引用 1b 处标了证据等级
|
||||
|
||||
*(说人话自评:46/50 直接性 9 / 节奏 9 / 信任度 10 / 真实性 9 / 精炼度 9 —— 判据源 `humanizer-zh`,门槛 45。)*
|
||||
@@ -0,0 +1,318 @@
|
||||
# 2b 界面布局
|
||||
|
||||
> 项目 slug:`mcn-shortvideo-agent` | ②段第 2 子步,产出 `prd/2b-界面布局.md`
|
||||
> 判据源:`stage-requirements/SKILL.md` §2b + `assets/diagram-design/`(本份只给灰块骨架,不出图)
|
||||
> 本份专管界面骨架:有哪几页、每页几个板块、板块怎么排、跨页怎么跳。⛔ 不写功能条目的有无与优先级(那是 `2a-产品功能.md`)。
|
||||
> ⛔ **全文零视觉词**:配色 / 字体 / 间距 / 组件样式(含卡片、按钮、标签这类具体形态) / 动效,一个都不许出现。本份只说「有哪些块、什么顺序」。
|
||||
> 🔴 **交给③段时骨架是冻结的**:③段不许新增、移动、删除板块。缺板块要回②段改。
|
||||
|
||||
---
|
||||
|
||||
## 〇、上游状态
|
||||
|
||||
| 上游 | 状态 |
|
||||
|---|---|
|
||||
| ②段 `2a-产品功能.md` | ✅ 已就位(14 条功能,六字段齐全) |
|
||||
| ①段 `1e-使用场景.md` | ✅ 已就位(八条用户故事) |
|
||||
| ①段 1a 的 9 条待复核 + A1–A4 | 🔴 **未经用户确认**。本份受它们影响的只有两处,已就地标出(见 §二 P1 与 §四) |
|
||||
| 1b 竞品分析 | ✅ 已就位,跨项目。本份引用两处:Easel 发布中心的多平台直证、Easel 创作流水线的环节顺序 |
|
||||
|
||||
**分档判据的读法(先说清,全篇一致)**:「删掉它,主操作还做得成吗」按**结果正确**读 —— 缺了它会把事情做错,等于没做成,那就归「主屏常驻」。这是本份对方法论的读法,写在这里以免后面逐条重复解释。
|
||||
|
||||
---
|
||||
|
||||
## 一、页型(一句判型 + 依据)
|
||||
|
||||
**本产品是工具型页面,不是营销页。**
|
||||
|
||||
依据:`1a-需求文档.md` §一 与 §四 里的用户是天天来干活的 MCN 团队(内容负责人、编导与文案、剪辑与投放),不是第一次来的访客。§八 留下的三个入口全是干活入口(找选题 / 走创作流水线 / 看矩阵复盘),没有一处是「让人下决心」的落地页。
|
||||
|
||||
⇒ ③段不要套落地页骨架。判据:本产品的每一页都有人在里面完成一件事,没有一页是为了让人「看一眼就下决心」而存在的。
|
||||
|
||||
---
|
||||
|
||||
## 二、八页骨架
|
||||
|
||||
### P1 矩阵总览(一级组:看矩阵复盘)
|
||||
|
||||
**这一页干什么**:一屏回答每个账号今天该发什么、发了什么、效果如何。
|
||||
|
||||
**板块清单(从上到下)**
|
||||
|
||||
1. 今日待处理 —— 跨账号的待办:待审、待确认、待复盘各几件
|
||||
2. 账号矩阵列表 —— 一行一个账号,行内三件事:今日该发什么 / 已发什么 / 效果如何
|
||||
3. 异常值提示 —— 最近哪些内容的数据异动
|
||||
4. 本月表现最好的一条
|
||||
5. 全局检索与随手记入口
|
||||
|
||||
**主操作**:决定今天先处理哪一件事,并进到那一件事。
|
||||
|
||||
**信息分档**
|
||||
|
||||
| 信息 | 档 | 判据回答 |
|
||||
|---|---|---|
|
||||
| 账号矩阵列表 | 主屏常驻 | 删掉它,主操作的对象就没了 —— 不知道有哪些账号,无从决定先处理哪件 |
|
||||
| 今日待处理 | 主屏常驻 | 删掉它,主操作没有候选可挑,做不成 |
|
||||
| 异常值提示 | 可点入 | 删掉它,主操作仍做得成(异常值是 P2 的输入,不是这一页的决策依据) |
|
||||
| 本月表现最好 | 可点入 | 删掉它,主操作完全不受影响 —— 它只是激励 |
|
||||
| 随手记入口 | 可点入 | 判据答「做得成」。⚠️ 但它是 F2 的入口,以**全局可达**的方式出现:任意页面一次点击内能碰到,不占 P1 的主屏常驻位 |
|
||||
|
||||
🔴 本页依赖 **A1**(账号数 10–50)与**待复核第 5 条**(矩阵级视图是否真需要)。若第 5 条复核为「不需要」,P1 从「矩阵总览」降为「单账号今日」,只留第 1、4 板块,矩阵列表下移到账号切换。
|
||||
|
||||
---
|
||||
|
||||
### P2 选题雷达(一级组:找选题)
|
||||
|
||||
**这一页干什么**:找选题,并且把选中的那条推进下一步。
|
||||
|
||||
**板块清单(从上到下)**
|
||||
|
||||
1. 对标监控概览 —— 四个数:在监控的账号数 / 低粉爆款条数 / 异常值条数 / 近三天更新条数
|
||||
2. 对标内容列表 —— 每条带它相对该账号平时水平的倍数
|
||||
3. 评论区洞察区(可点入子区)—— 取评论、出候选选题
|
||||
4. 选题库 —— 分「待做 / 在写 / 已用」三组
|
||||
5. 灵感速记入口
|
||||
|
||||
**主操作**:把一条选题推进下一步(去创作台,或去资产库拆解)。
|
||||
|
||||
**信息分档**
|
||||
|
||||
| 信息 | 档 | 判据回答 |
|
||||
|---|---|---|
|
||||
| 对标内容列表 | 主屏常驻 | 删掉它,主操作的对象没了,做不成 |
|
||||
| 选题库 | 主屏常驻 | 删掉它,主操作没有可推进的条目,做不成 |
|
||||
| 对标监控概览四数 | 主屏常驻 | 删掉它,看不出哪个账号值得看 —— 列表会长到没法挑,等于主操作做不成 |
|
||||
| 评论区洞察区 | 可点入 | 删掉它,仍能从对标列表拿到选题 |
|
||||
| 灵感速记入口 | 可点入 | 同 P1 的随手记,全局可达 |
|
||||
|
||||
---
|
||||
|
||||
### P3 资产库(一级组:找选题)
|
||||
|
||||
**这一页干什么**:把拆解结果存下来,下次能直接拿到。
|
||||
|
||||
**板块清单(从上到下)**
|
||||
|
||||
1. 分区切换 —— 角度 / 结构 / 开场白 / 标题,一次看一个
|
||||
2. 条目列表 —— 当前分区下的条目
|
||||
3. 单条详情 —— 原文、出处、(草稿标记)
|
||||
4. 引用入口 —— 把这条拿去创作台用
|
||||
|
||||
**主操作**:把一条拆解结果入库;已入库的则把它引用到创作台。
|
||||
|
||||
**信息分档**
|
||||
|
||||
| 信息 | 档 | 判据回答 |
|
||||
|---|---|---|
|
||||
| 分区切换 | 主屏常驻 | 删掉它,四个分区分不开,入库不知道该进哪一区,主操作做不成 |
|
||||
| 条目列表 | 主屏常驻 | 主操作对象 |
|
||||
| 单条详情(原文 / 出处) | 可点入 | 删掉它,入库与引用都还做得成(入库门禁在守卫层,不靠这里显示) |
|
||||
| 引用入口 | 可点入 | 删掉它,`2a` F4 的主路径改成从创作台来找,多绕一步;但 P3 自己的主操作(入库)不受影响 |
|
||||
|
||||
---
|
||||
|
||||
### P4 创作台(一级组:走创作流水线)
|
||||
|
||||
**这一页干什么**:一条内容从选题走到成稿。
|
||||
|
||||
**板块清单(从上到下)**
|
||||
|
||||
1. 当前内容标识 —— 这是哪条选题
|
||||
2. 环节进度 —— 七个环节的当前位置,可回退
|
||||
3. 当前环节工作区 —— 这一步实际干活的地方
|
||||
4. 资产引用区 —— 从资产库拿角度、结构、开场白、标题
|
||||
5. 版本列表(可点入)
|
||||
|
||||
**主操作**:把当前环节推进到下一环节。
|
||||
|
||||
**信息分档**
|
||||
|
||||
| 信息 | 档 | 判据回答 |
|
||||
|---|---|---|
|
||||
| 环节进度 | 主屏常驻 | 删掉它,不知道下一环节是什么,主操作做不成 |
|
||||
| 当前环节工作区 | 主屏常驻 | 主操作的对象 |
|
||||
| 当前内容标识 | 主屏常驻 | 删掉它,改到别的选题上也不知道,等于做错 |
|
||||
| 资产引用区 | 可点入 | 删掉它,仍能凭空写(这正是 S2 要治的老毛病),主操作本身做得成 |
|
||||
| 版本列表 | 可点入 | 删掉它,推进流程不受影响;只有回溯旧版时才需要 |
|
||||
|
||||
---
|
||||
|
||||
### P5 发布中心(一级组:走创作流水线)
|
||||
|
||||
**这一页干什么**:把成稿展开成各账号各平台的版本,过闸,由人确认发出。
|
||||
|
||||
**板块清单(从上到下)**
|
||||
|
||||
1. 目标选择 —— 这次发给哪些账号、哪些平台
|
||||
2. 各版本预览与逐版编辑 —— 一个目标一版
|
||||
3. 检查结果 —— 哪几处会被硬拦、哪几处只是提醒
|
||||
4. 确认发布 —— 含二次确认
|
||||
5. 发布记录入口(可点入)
|
||||
|
||||
**主操作**:确认发布。
|
||||
|
||||
**信息分档**
|
||||
|
||||
| 信息 | 档 | 判据回答 |
|
||||
|---|---|---|
|
||||
| 检查结果 | 主屏常驻 | 删掉它,会被硬拦项挡回去却不知道为什么,主操作做不成 |
|
||||
| 各版本预览与逐版编辑 | 主屏常驻 | 主操作对象 |
|
||||
| 确认发布 | 主屏常驻 | 删掉它就没有主操作本身了 |
|
||||
| 目标选择 | 可点入 | 判据答「做得成」—— 从 P4 带着版本进来时,目标已定;只有从 P1 直接进来才需要现选 |
|
||||
| 发布记录入口 | 可点入 | 删掉它,回查改从 P8 进 |
|
||||
|
||||
---
|
||||
|
||||
### P6 账号画像(跨组)
|
||||
|
||||
**这一页干什么**:每个账号一份画像与记忆,看和改都在这一页。
|
||||
|
||||
**板块清单(从上到下)**
|
||||
|
||||
1. 账号列表 —— 选一个账号
|
||||
2. 画像六维 —— 定位、风格、受众、平台、偏好与红线、长期记忆
|
||||
3. 记忆条目 —— 只追加,不覆盖
|
||||
4. 关联内容 —— 这个账号做过的内容
|
||||
|
||||
**主操作**:保存这一份画像。
|
||||
|
||||
**信息分档**
|
||||
|
||||
| 信息 | 档 | 判据回答 |
|
||||
|---|---|---|
|
||||
| 画像六维 | 主屏常驻 | 主操作对象 |
|
||||
| 账号列表 | 主屏常驻 | 删掉它,不知道在改哪个账号的画像,会改错 |
|
||||
| 记忆条目 | 可点入 | 删掉它,编辑画像与保存都做得成(记忆是回写产物,不是编辑动作的输入) |
|
||||
| 关联内容 | 可点入 | 删掉它,主操作不受影响 |
|
||||
|
||||
---
|
||||
|
||||
### P7 复盘台(一级组:看矩阵复盘)
|
||||
|
||||
**这一页干什么**:把一条已发布内容的表现读回来,写成这个账号的经验。
|
||||
|
||||
**板块清单(从上到下)**
|
||||
|
||||
1. 待复盘列表
|
||||
2. 这一条的表现数据
|
||||
3. 归因结论区 —— 由人确认
|
||||
4. 回写目标提示 —— 这次回写到哪个账号
|
||||
5. 历史复盘(可点入)
|
||||
|
||||
**主操作**:确认归因并回写。
|
||||
|
||||
**信息分档**
|
||||
|
||||
| 信息 | 档 | 判据回答 |
|
||||
|---|---|---|
|
||||
| 表现数据 | 主屏常驻 | 删掉它,归因没有依据,主操作做不成 |
|
||||
| 归因结论区 | 主屏常驻 | 主操作对象 |
|
||||
| 待复盘列表 | 主屏常驻 | 删掉它,不知道有什么可复盘,主操作做不成 |
|
||||
| 回写目标提示 | 主屏常驻 | 删掉它,回写会落到错的账号,这条经验就废了 —— 等于主操作没做成 |
|
||||
| 历史复盘 | 可点入 | 删掉它,当前这次复盘仍做得成 |
|
||||
|
||||
---
|
||||
|
||||
### P8 记录与对账(一级组:看矩阵复盘)
|
||||
|
||||
**这一页干什么**:查发布留痕,核商单与收支对不对得上。
|
||||
|
||||
**板块清单(从上到下)**
|
||||
|
||||
1. 发布记录列表 —— 谁在什么时候确认发的、发的是哪一版
|
||||
2. 单条溯源 —— 从记录回到内容与版本
|
||||
3. 对账核对区 —— 内容、发布记录、收支三样对得上
|
||||
4. 商单与收支(可点入,所属功能 F12 为 P2,第一版可能没有)
|
||||
|
||||
**主操作**:核销一条记录。
|
||||
|
||||
**信息分档**
|
||||
|
||||
| 信息 | 档 | 判据回答 |
|
||||
|---|---|---|
|
||||
| 发布记录列表 | 主屏常驻 | 知道有哪些记录,不知道就无从核销。判据:删掉它,主操作没有对象 |
|
||||
| 对账核对区 | 主屏常驻 | 主操作对象 |
|
||||
| 单条溯源 | 可点入 | 判据答「做得成」—— 核销看列表就够;要深究才点进溯源 |
|
||||
| 商单与收支 | 可点入 | 删掉它,主操作仍做得成;且 F12 是 P2,第一版可能整块没有(见 `2a` §五 的暂缓项) |
|
||||
|
||||
---
|
||||
|
||||
## 三、页面流转
|
||||
|
||||
**门开在哪**:唯一入口是 P1。四个一级组是导航结构,不是四个入口。
|
||||
|
||||
**一级导航三组 + 一个跨组入口**(照 `1a` §八 的三个入口):
|
||||
|
||||
| 组 | 含哪几页 |
|
||||
|---|---|
|
||||
| 找选题 | P2 选题雷达、P3 资产库 |
|
||||
| 走创作流水线 | P4 创作台、P5 发布中心 |
|
||||
| 看矩阵复盘 | P1 矩阵总览、P7 复盘台、P8 记录与对账 |
|
||||
| (跨组)账号画像 | P6 —— 从 P1、P4、P5 都能进 |
|
||||
|
||||
**页与页怎么连**
|
||||
|
||||
| 从 | 到 | 什么条件下 |
|
||||
|---|---|---|
|
||||
| P1 | P2 | 点「异常值提示」里的某条,或从今日待处理里挑到选题类待办 |
|
||||
| P1 | P4 | 今日待处理里有「在写」的内容 |
|
||||
| P1 | P5 | 今日待处理里有待审 / 待确认的内容 |
|
||||
| P1 | P6 | 点账号矩阵列表里的某个账号 |
|
||||
| P1 | P7 | 今日待处理里有待复盘的 |
|
||||
| P1 | P8 | 今日待处理里有待核销的 |
|
||||
| P2 | P3 | 对某条对标内容发起拆解 |
|
||||
| P2 | P4 | 把一条选题转入创作 |
|
||||
| P3 | P4 | 引用一条资产去创作 |
|
||||
| P4 | P5 | 成稿态,去发布 |
|
||||
| P4 | P6 | 需要查这个账号的口径 |
|
||||
| P5 | P6 | 发布前要核账号口径 |
|
||||
| P5 | P7 | 已发布,去复盘 |
|
||||
| P5 | P8 | 发布后去查留痕 |
|
||||
| P6 | P4 | 画像保存后回到创作 |
|
||||
| P6 | P5 | 画像保存后回到发布 |
|
||||
| P7 | P6 | 归因回写(写进该账号的画像) |
|
||||
| P8 | P5 | 从一条记录回到它对应的版本 |
|
||||
|
||||
**两条跨页规则**(`2a` 里已写、在骨架里落地的):
|
||||
|
||||
1. **F7 的多版本跨 P4 与 P5**:在 P4 出成稿,在 P5 展开并逐版确认。所以 P5 才需要「目标选择」这个板块。
|
||||
2. **F13 的留痕跨 P5 与 P8**:确认动作发生在 P5,记录可查在 P8。
|
||||
|
||||
**全局可达**:随手记出现在任意页面一次点击内(F2 是 P0,不能埋在两层下)。
|
||||
|
||||
---
|
||||
|
||||
## 四、骨架受限的两处(依赖未复核项)
|
||||
|
||||
1. **P1 的形态挂在待复核第 5 条上**(矩阵级视图是否真需要)。若答「不需要」,P1 降为单账号今日,矩阵列表下移。这是一处**结构性分支**,③段动工前必须定。
|
||||
2. **P8 的第 4 板块挂在待复核第 6 条与 A3 上**(商单对账进不进第一版;收支口径)。若「不进第一版」,P8 只留第 1、2、3 板块。
|
||||
|
||||
**回收三字段**:复核人 = 主会话转用户;复核时机 = ②段收口时一次性过,③段动工前必须定;结论落点 = 本文件 §四 与 §二 P1、P8 对应板块。
|
||||
|
||||
---
|
||||
|
||||
## 五、五样给全核对(方法论要求,缺一样③段就没方向)
|
||||
|
||||
| 要求 | 本份落在哪 | 齐 |
|
||||
|---|---|---|
|
||||
| 页面清单(有哪几页,每页一句话说清干什么) | §二 八页,每页第一行 | ✅ |
|
||||
| 页面流转(谁跳到谁、什么条件下) | §三 表 + 两条跨页规则 + 二级导航 | ✅ |
|
||||
| 每页板块清单与排列(几个块、从上到下什么顺序) | §二 每页「板块清单(从上到下)」,逐页编号 | ✅ |
|
||||
| 每页主操作(唯一那个推进动作) | §二 每页「主操作」 | ✅ |
|
||||
| 每条信息的分档(主屏常驻 / 可点入,含判据回答) | §二 每页「信息分档」表 | ✅ |
|
||||
| 页型一句 | §一 | ✅ |
|
||||
|
||||
---
|
||||
|
||||
## 附:本份自检
|
||||
|
||||
- [x] 八页,每页有板块清单与排列顺序、主操作、信息分档(含判据回答)
|
||||
- [x] 页面流转写了「谁跳到谁、什么条件下」,并说明了门开在哪
|
||||
- [x] 零视觉词:配色 / 字体 / 间距 / 组件样式 / 动效,一个未出现(已回避「卡片」「按钮」「标签」这类具体形态词)
|
||||
- [x] 未写功能条目的有无与优先级(那是 `2a`),未描述页面「长什么样」
|
||||
- [x] 骨架受限的两处已标出来源(待复核第 5、6 条与 A3),并带回收三字段
|
||||
- [x] 上游状态写在文首;引用 1b 处标了证据等级
|
||||
- [x] 明确的骨架冻结声明:③段不许新增、移动、删除板块
|
||||
- [x] 未新增②段两份之外的文档
|
||||
|
||||
*(说人话自评:46/50 直接性 9 / 节奏 9 / 信任度 10 / 真实性 9 / 精炼度 9 —— 判据源 `humanizer-zh`,门槛 45。)*
|
||||
Reference in new issue
Block a user