feat(账号分析+工作台): 功能三自动联动生成设定卡+双向联动维护+玫瑰金配色定稿+首页数据预览/周榜优化+CDP验证脚本

- mcn-dou-analysis: 功能三产出设定后自动生成设定卡(Step7); 设定md与卡片SVG双向联动维护规则固化(06文档+03文档+SKILL.md); 浅色系配色定稿玫瑰金(#D6A3A9→#9A5563)+背景文字提亮规则; 新增06生成账号设定卡片文档+模板样例
- mcn-work-shop: 首页数据预览条/周榜预览表加宽/改名AI脚本诊断/tab切换/添加账号弹窗等优化
- 新增 cdp-*.mjs 验证脚本14个(可复用); .gitignore 忽略运行日志/截图/tmp
This commit is contained in:
maogeigei committed 2026-08-31 15:27:54 +08:00
1 parent ab97842030
commit 268ce29aae
35 files changed
+2567 -117

No files matched your search

+19
View File
@@ -160,3 +160,22 @@
- **验证**(CDP #/rewrites):按钮在 AI脚本 head 内、与文字 gap=10px 精确、垂直对齐、顶栏无残留 ✅;点击展开源脚本列 + title 切「收起源脚本」✅;宽度 1200→1085 / 1500→1380 / 1700→1564 / **2000→1600 封顶居中** ✅
- ⚠️ 左右边距探针:`right:65` 不是 bug——mask(fixed inset:0) 宽=clientWidth 1185(不含滚动条),弹窗 calc(100%-100)=1085 在 mask 内精确居中左右各 50;15px 是页面右侧 classic 滚动条区域,滚动条左缘到弹窗恰 50px;无滚动条页面左右严格 50/50
- 验证脚本保留 `cdp-verify-srcbtn1600.mjs`
## 关闭服务 + 以本地为准同步仓库(18:51-18:55)
- **关闭服务**:工作台 node 服务 PID 28424(127.0.0.1:8899)taskkill 停止;0.0.0.0:8899 的 20604 是 MiPCAudio.exe 占位不动;Git Bash `taskkill //PID` 参数会被 MSYS 转换报错,改 PowerShell `Stop-Process`
- **提交**(ab97842,155 文件):工作台导入功能/弹窗优化 + **短视频提示词生成 138 文件整体移入 `project/短视频脚本创作/V1.0/subskill/mcn-video-prompt/`**(git 识别为 R100 纯重命名保留历史,与 mcn-dou-analysis 同构);未提交项有意排除:`.workbuddy/tmp/`(edge-cdp 调试临时)、`server.log`、`cdp-wheel*.mjs`(旧滚轮探针)
- **以本地为准推送**(用户明确「不用拉取 直接同步」):`git pull` 走 22 端口超时 + 沙箱拦截 ~/.ssh 读取被用户拒 → 改用 `GIT_SSH_COMMAND="ssh -p 222 -o StrictHostKeyChecking=accept-new" git push origin main` ✅ fast-forward 成功(9b0c198..ab97842),**这次 push 后 origin/main 跟踪引用未丢失**(refs/remotes/origin/main 正常)
## 账号周榜 5 数值列加宽(17:56-18:00)
- 用户需求:「账号周榜 列表中 下面的列宽度可以在大一些:综合得分 / 新增粉丝 / 新增点赞 / 新增评论 / 新增分享」
- **改 data-pages.js**(renderRanking):`const WIDE = new Set(['comprehensiveScore','newFans','newLikes','newComments','newShares'])` → `sortable()` 工厂给命中 key 的 th 追加 `th-wide` class
- **改 style.css**(`.sortable:hover` 后):`.th-wide { min-width: 110px; }`(表格为 auto 布局,数值列加 min-width 即可增宽,不影响内容列)
- **验证**(CDP #/ranking 只读测量):5 列均带 th-wide、实测宽 **122px ≥110px** ✅、computed min-width 110px;对照列不受影响(rank 56 / 赛道 90 / followers 98 / 功能 77);20 行数据正常渲染
- 验证脚本保留 `cdp-verify-rankwide.mjs`(含列宽测量 + computed style 校验,可复用)
## 旧梦留声机账号设定卡 + 功能六固化(17:50-18:00 前段多轮迭代,本段收尾)
- **SVG 迭代定版**:`桌面/MCNSkill项目/旧梦留声机/旧梦留声机账号设定卡.svg`,viewBox `0 0 680 1716` 深棕红渐变底(`#2B0F0A→#1A0805`)+ 顶部浅米大框(280px 主标题+16px 副题「账号设定卡」)+ 内容路线 6 格浅米卡 + 核心气质 12 chips + 六大内容基因 186×130(GENE 0X 珊瑚红小标签)+ 色彩体系 5 色卡 h=80 + 角色类型库 186×130(中文名+英文代号大写斜体)+ 情绪图条形(76/32/64/112/84/52/72 底边对齐 y=1452)+ 小字总结行 y=1506 + 红线清单 6 条 2×3 + 版权
- **功能六固化(生成账号设定卡片)**:新建 `references/feature/06_生成账号设定卡片.md`(输入/产出/五步方式含①.5读模板样例/模块裁剪适配表/配色适配/要求配色规范表/格式/7条避坑/完成汇报)+ `references/样例/`(模板_旧梦留声机账号设定卡.svg + 参考PNG,源+dsh 两副本)+ SKILL.md 功能总览五大→六大 + 新增「八、功能六」章节 + 部署禁用说明(功能六无连带文件)
- **收尾完善(本次)**:①SKILL.md 2.2 技能库路径表补录「功能六流程」+「账号设定卡模板样例」两行(源+dsh);②`R. REPayer`→`R. REPAYER` 大小写统一(模板源/dsh/桌面成品三处,其余代号全大写)
- **验证**:源技能 vs dsh 副本 SKILL.md/模板SVG/06功能文件三组 diff 全一致;REPayer 全库零残留
- **沉淀要点**(供下次生成其他账号设定卡):先读 `references/样例/` 模板(复用版式骨架与样式常量,内容全替换);角色英文代号=大写首字母缩写+单词全大写;情绪图条形底边对齐峰谷差≥40px;文字垂直居中 y=中心;批量移动坐标用脚本统一加减防双重偏移;红线全量;改完必 present_files 预览确认
+337
View File
@@ -0,0 +1,337 @@
# 2026-08-31 工作日志
## 工作台首页顶部「数据预览」条带(09:34-09:50)
- 用户需求:「工作台首页顶部增加数据预览 参考插件MCN工作台首页顶部的数据预览」→ 参考源确认 = `D:\dshworkspace\plugin_package\dsh-plugin-mcn`(本机源码唯一含 mcnNav_stats 的实现,非线上 agentos)
- **参考实现**(dsh-plugin-mcn client.js + index.js):首页 home 视图顶部 stats 条带(浅蓝底 rgba(65,118,230,.07)、圆角 12、padding 22px 0),5 项 statItem(flex:1 竖排 value 28px 粗体品牌蓝 + label 13px 次级色、item 右侧细边框分隔、末项无边框);数据 `GET /mcn/api/stats`(后端 60s 缓存):accounts=hot_accounts del_flag=0 / analyses=account_video_analysis 计数 / rewrites=rewrite_log done+script_text 非空 / reviews=script_review type='ai'+done / writingScore=最新 20 条 AI 复盘 total 平均(1 位小数)
- **移植改动**:①dsh-data.js `getStats()` 修正对齐参考——reviews 补 `type='ai'` 限定、writingScore 由「计数」改为「最新 20 条 AI 复盘平均分」(无数据返回 null);②app.js renderHome `.home` 顶部(data-cards 前)加 `#homeStats` 条带占位 + 新增 `loadHomeStats()`(挂载 fetch /api/dsh/stats 一次,5 项 label 与 dsh 一致,失败显示「数据不可用」)+ router home 分支与 _reload 调用;③style.css 新增 `.home-stats/.home-stat-item/.home-stat-value/.home-stat-label`(工作台品牌色 --primary #2f6fed 对应 dsh 的 #4176e6,背景 rgba(47,111,237,.07))
- **验证**(CDP #/ 强制刷新):5 项渲染值 热门账号7/视频解析12/AI写脚本17/AI写作复盘1/AI写作评分86.5 与接口一致 ✅;样式 computed 全符合(bg .07 蓝、圆角 12、值 26px 700 品牌蓝、item 右分隔线、末项无)✅
- ⚠️ **坑**:CDP `Page.navigate` 到仅 hash 不同的 URL(#/ranking→#/)**不触发文档重载**,CSS/JS 仍是旧版(表现为新增样式全部 computed 为默认值)→ 必须补 `Page.reload({ignoreCache:true})`;服务端 dsh-data.js 改动需**重启 node 服务**(进程级 require 缓存)
- 验证脚本保留 `cdp-verify-homestats.mjs`(结构+值+computed 样式测量,可复用)
## 首页账号周榜预览表:5 数值列加宽 + 功能列「分析」→「关注」(09:42-09:55)
- 用户澄清:要加宽的是**工作台首页的账号周榜预览表**(非 #/ranking 功能页——上轮 08-28 加的是功能页,本轮补首页预览表)
- **改 style.css**(`.rank-row` grid):`grid-template-columns: 34px 84px minmax(80px,1fr) 52px repeat(4,58px) 72px` → `... 88px repeat(4,84px) 72px`(综合得分 52→88、4 个数值列 58→84)
- **改 app.js**(loadRankingPreview 行模板):非 inDb 账号操作按钮「分析」→「关注」(title「分析该账号并加入账号列表」→「关注该账号并加入账号列表」;行为不变仍 confirmSaveAccount 保存并分析);inDb 账号保持「查看」
- **验证**(CDP #/ 强制刷新实测):5 列宽 score=88 / 4×rk-num=84 ≥80 ✅;按钮「关注」+ title 正确 ✅;10 行数据正常、首页 stats 条带与快捷卡片不受影响 ✅
- ⚠️ 验证脚本坑:flex/grid 行内同类元素取列宽用 `:nth-child(n)`(按子元素序号),**不能用 `:nth-of-type`**(按元素标签类型 span 计数会错位);rk-num 是行内第 5-8 个子元素
- 验证脚本保留 `cdp-verify-rankpreview.mjs`
## 账号周榜全部页面数值列「窄 + 右对齐」(09:50-10:05)
- 用户需求:「账号周榜 全部页面 这些列宽度可以窄一些 右对齐:综合得分/粉丝/新增粉丝/新增点赞/新增评论/新增分享」
- **功能页 #/ranking**:①data-pages.js WIDE 集合补 `followers`(6 列)、数值列 td 加 `num` 类(综合得分 `num score-cell`);②style.css 根因排查——`width:100%` auto 布局下列需求总和(≈994px) < 容器(1440px),富余空间按比例摊薄拉宽每列,**min-width 只是下限压不住拉伸**(实测 110px 是摊薄结果,thMin 已 90px 却无效)→ 解法:周榜表单独 `table-layout: fixed` + 数值列 `width:90px` 硬约束(fixed 下 width 生效、min-width 忽略),排名 40/赛道 90/功能 85 固定,账号列吃剩余;table 加专属类 `table-rank`(避免影响账号列表等其他 .table 页面);td.num 缩 13px + tabular-nums + padding 8px
- **首页预览表**:`.rank-row` grid 列宽 88/84 → **76/76**(grid 本来就是硬约束,仅缩窄;右对齐原本就有)
- **验证**(CDP 实测):功能页 6 列全部 **90px + th/td 右对齐** ✅;首页 5 列 76px 右对齐 ✅;行数据/账号列自适应正常
- ⚠️ 两个坑:①`.table th { text-align:left }` 特异性(0,1,1) 压过 `.th-wide`(0,1,0),需写 `.table th.th-wide`;②auto 布局富余空间摊薄是「列宽压不住」的真根因,fixed + width 才是硬约束
- 验证脚本保留 `cdp-verify-ranknarrow.mjs`(功能页+首页双测)
## 「AI写作复盘」→「AI脚本诊断」改名 + 首页周榜列表上底色(09:56-10:08)
- 用户需求:①「AI写作复盘」包括功能入口和数据预览名称都改为「AI脚本诊断」;②账号周榜列表内容区域上底色(原来透明与页面背景 #f5f6f8 同色很奇怪)
- **改名 7 处全量替换**(app.js 6 + data-pages.js 1):首页快捷卡片 title('flask')、数据预览条带 label(占位 HTML + loadHomeStats 两处)、CRUMB_TITLES、router titles、reviews 页 page-title、代码注释;index.html 无「复盘」字样;「AI写作评分」按用户范围保持不改;页面内部功能描述(复盘报告等)保持
- **底色**:`.rank-preview-list` 补 `background: var(--panel); box-shadow: var(--shadow);`(白色面板 + 阴影,与快捷卡片一致;功能页 .table-wrap 本就有 panel 白底)
- **验证**(CDP 实测):数据预览 label 与快捷卡片均为「AI脚本诊断」✅;全页无「AI写作复盘」残留 ✅;周榜列表背景 rgb(255,255,255) ✅;#/reviews 标题「AI脚本诊断」✅
- 验证脚本保留 `cdp-verify-rename.mjs`
## 周榜功能列按钮统一白底带边框(09:58-10:10)
- 用户需求:「账号周榜 功能列的按钮都改为 白底带边框」
- **改 style.css** `.btn-import`(功能页「分析」+ 首页「关注」共用):灰底 #f0f2f5 → **白底 #fff + 边框 #d0d4da**,hover 变主色边框+主色字;`.btn-view`(查看)本就是白底+主色边框未动
- **验证**(CDP 实测):功能页「分析」白底 rgb(255,255,255)+边框 #d0d4da ✅;首页「关注」同 ✅
- 验证脚本保留 `cdp-verify-btnwhite.mjs`
## 首页周榜预览改 tab 切换 + 新增 3 个空榜(10:02-10:15)
- 用户需求:「首页账号周榜 改为 tab切换,新增 作品热榜、点赞日榜、涨粉日榜,功能先空着」
- **改 app.js renderHome**:`<h3>账号周榜</h3>` → `.rank-tabs` 4 个 `.rank-tab`(账号周榜 week 默认 active + 作品热榜 hot + 点赞日榜 likes + 涨粉日榜 fans),工具条保留(id=rankTools);内容区新增隐藏的 `#rankPlaceholder` 占位块
- **改 app.js router home 分支**:`.rank-tab` 点击切换 active;week → 显示 #rankTools+#rankPreviewList、隐藏占位;其余 → 隐藏工具条和列表、占位显示「『XX』建设中,敬请期待」
- **改 style.css**:`.rank-tabs/.rank-tab/.rank-tab.active/.rank-placeholder`(胶囊 tab:白底边框,active 主色蓝底白字;占位:虚线框+白底居中灰字)
- **验证**(CDP 实测):4 tab 初始状态 ✅;逐个点击 3 新榜 → 工具条/列表隐藏 + 占位文案正确 ✅;点回账号周榜恢复列表+筛选 ✅
- 验证脚本保留 `cdp-verify-ranktabs.mjs`
## 首页周榜 tab 选中样式:深蓝胶囊 → 浅底色 + 下划线(10:16-10:25)
- 用户反馈:「tab 能不能不要用 深蓝色选中,这是哪来参考的样式,太抢眼了,就用下划线效果 浅底色就行」
- 首版 `.rank-tab.active` 沿用顶部主导航 `.tab` 的深蓝胶囊样式(白字+深蓝底 #2f6fed),用户嫌抢眼
- **改 style.css**:`.rank-tabs` 补 `border-bottom:1px solid var(--border)`(tab 栏底部分隔线,浅色方案基础);`.rank-tab` 透明背景 + `border:none` + `border-bottom:2px solid transparent`(下划线占位防切换抖动)+ 次级色文字;`.rank-tab.active` = `background:var(--primary-soft)`(#eaf1fe 浅蓝底)+ `border-bottom:2px solid var(--primary)`(主色下划线)+ 主色 600 字重;hover 同浅底主色
- **验证**(CDP 强制刷新实测):active computed bg=rgb(234,241,254) / color=rgb(47,111,237) / border=2px solid rgb(47,111,237) / weight=600 ✅;非 active 3 个 tab 全透明背景 + 透明下划线占位 + 次级色文字 ✅;4 tab 切换/回切 active 样式均正确 ✅
- ⚠️ 验证脚本坑:querySelector 传入元素对象(不是选择器字符串)会报 `'[object HTMLButtonElement]' is not a valid selector`
- 验证脚本保留 `cdp-verify-tabstyle.mjs`
## 首页周榜 tab 改名(10:10-10:15)
- 用户需求:「把点赞日榜 和 涨粉日榜 去掉日,作品热榜 改为 视频热榜」
- **改 app.js renderHome**:tab 按钮文本 `作品热榜`→`视频热榜`、`点赞日榜`→`点赞榜`、`涨粉日榜`→`涨粉榜`(仅文案,`data-rank-tab` 值 hot/likes/fans 不变)
- router 切换按 `data-rank-tab` 匹配 + 占位文案动态取 `t.textContent`,故只改按钮文本、占位自动跟随
- **验证**(CDP 强制刷新实测):4 tab 名称 账号周榜/视频热榜/点赞榜/涨粉榜 ✅;逐一点击占位文案「视频热榜/点赞榜/涨粉榜」建设中 ✅;回切账号周榜恢复列表 ✅
## 账号列表「导入」→「添加」+ 弹窗精简(10:13-10:22)
- 用户需求:「账号列表中 导入功能名称 改为添加,点击按钮弹窗 名称改为 添加账号数据,输入项去掉 方式二和抖音号输入」
- **改 data-pages.js**:accImport 按钮「导入」→「添加」,title「添加账号数据(抖音账号信息 / 账号地址)」
- **改 app.js openImportAccounts**:弹窗标题「添加账号数据」;删除方式二整块(本地文件夹路径输入 + data-imp-dir)与抖音号输入(data-imp-did);说明文字去「方式一:」前缀(只剩一种方式);提交按钮「提交导入」→「提交添加」;提交逻辑清理——去掉 dir/did 分支,校验改「请填写账号名称或账号地址」,prompt 只含名称/地址,executeTask label '导入指令'→'添加指令'
- **改 style.css**:注释「导入账号弹窗:方式一账号信息 / 方式二本地文件夹」→「添加账号弹窗:账号信息(名称/地址)」
- 保留:账号详情页 infoGrid「抖音号」展示字段(非输入项)、帮助页「导入账号」自然语言用法(用户未要求)
- **验证**(CDP #/accounts 强制刷新实测):按钮「添加」+ title ✅;弹窗标题/2 个输入项(账号名称+账号地址可选)/提交添加/无方式二·文件夹·抖音号 ✅
- ⚠️ 验证坑:`document.querySelector('.modal')` 取到的是**页面加载时自动弹出的「项目文件地址」设置弹窗**(index.html 既有行为,非本次引入)→ 需取最后一个 `.modal-mask` 才是新开的弹窗
## 添加按钮图标:download → user-plus(10:15-10:18)
- 用户需求:「按钮前面 图标也要改」——「添加」按钮前是下载图标(导入语义残留),需换贴合「添加账号」的图标
- **改 app.js**:ICON_PATHS 新增 `'user-plus'`(Lucide 标准:人像 + 右下加号);弹窗标题图标 `svgIcon('download', 18)` → `svgIcon('user-plus', 18)`
- **改 data-pages.js**:accImport 按钮图标 `svgIcon('download', 15, 'currentColor')` → `svgIcon('user-plus', 15, 'currentColor')`
- **验证**(CDP 实测):按钮/弹窗标题图标均为 user-plus、无 download 残留 ✅
- ⚠️ 验证坑:查弹窗图标前必须先 click 打开(否则取到的是页面自动弹出的设置弹窗,无 h3)
## AI写脚本页操作列按钮:「AI改写」→「AI写脚本」+ 样式统一(10:19-10:22)
- 用户需求:「AI写脚本 列表页 操作列改名功能,按钮样式参考 账号列表中功能列按钮样式」
- **背景**:账号列表(#/accounts)操作列按钮本就是「AI写脚本」(`btn btn-sm` 白底灰边框 → confirmAiScript);AI写脚本页(#/rewrites)操作列却是「AI改写」(`btn btn-sm btn-view` 主色边框 → confirmRun 改写),两处语义不一致
- **改 data-pages.js renderRewrites 行模板**:`<button class="btn btn-sm btn-view" data-rewrite=...>AI改写</button>` → `<button class="btn btn-sm" data-rewrite=...>AI写脚本</button>`(文案统一 + 去掉 btn-view 改白底灰边框,与账号列表操作列一致)
- **验证**(CDP #/rewrites 强制刷新实测):按钮文本「AI写脚本」✅、class=btn btn-sm 无 btn-view ✅、白底 rgb(255,255,255)+灰边框 #e3e6ea+灰字 ✅(20 行全部生效)
- 未改:视频详情页(298 行)与账号详情页的「AI改写」按钮(用户仅指定 AI写脚本列表页)、弹窗标题「改写脚本」
## 旧梦留声机账号设定卡(SVG 信息图,10:23-10:30)
- 用户需求:参考《权游》影视需求 Skill 信息图,用「旧梦留声机」账号设定生成同款设定卡
- **数据源**:`C:\Users\maidou\Desktop\MCNSkill项目\旧梦留声机\旧梦留声机账号设定.md`(群像账号:六内容基因/六段式情绪核弹/角色类型库6类/红线6条/色彩体系/内容路线六步闭环)
- **产出**:`旧梦留声机账号设定卡.svg`(同目录,680×990 竖版信息图,show_widget 同步内联渲染)
- 结构映射(对齐权游 12 模块):标题+类型+情绪锚点 → 内容路线6步流程条 → 核心气质8chips → 六大内容基因6卡 → 色彩体系5色卡(泛黄旧时光/冷灰乡土/暖黄回忆/冷白危机/明亮都市)→ 角色类型库6卡(含记忆符号)→ 六段式情绪核弹结构(柱状曲线+时长占比)→ 红线清单6条
- 视觉语言:暖黄旧时光色系(c-amber #FAEEDA/#854F0B/#633806 主 + c-coral #FAECE7/#993C1D/#712B13 点缀),核爆段 coral 600 高亮;账号美学对齐(非权游深色)
- 用户可继续要求:其他账号同款卡 / 调整模块 / 导出 PNG
## 旧梦留声机设定卡·情绪图条形加高(10:34-10:36)
- 用户需求:「情绪图能否整体高度再高一些,各阶段情绪起伏明显」
- **改** `桌面\MCNSkill项目\旧梦留声机\旧梦留声机账号设定卡.svg` 六段式情绪核弹结构:7 条条形底边统一对齐 y=812(原 804),高度放大——谷底「绝境施压」14→16、峰顶「核爆段」38→**56**,峰谷高差 24→40px;全部条顶 y 上移,注释行 y 822→836(与下方红线清单标题 y852 无重叠)
- 验证:条形文字垂直居中仍贴合条形内;峰谷对比明显
## 旧梦留声机设定卡·长图版配色升级(10:35-10:40)
- 用户需求:「长图版 标题颜色,卡片背景和文字颜色 都更好看」
- **重写** `旧梦留声机账号设定卡.svg` 配色体系(布局坐标不变):
- 标题:主标题改**渐变** `#8C2F1E→#C05A32` + weight 700;分隔线琥珀金 #E0953C;副标题 #B4642F;标语 #8C2F1E
- 模块:标题统一 #5E2A1E 600 + 竖条珊瑚红 #C13B2F;卡片双色系交替——暖奶油 #FFF3E2+边框 #EDCBA4(路线/基因/色彩)与浅珊瑚奶油 #FDEBE2+边框 #E8B7A2(气质/角色/红线)
- 文字:卡片标题 #7B2D1B/#8C3B2B,正文暖灰 #6F5B4A(替代原 #5F5E5A 纯灰);情绪图核爆 #D6403A+白字600,琥珀系统一 #F0B25C/#F7D9A8;红线×号 #C13B2F 600
- 整图加暖米底 #FDF8F0(原透明)
## 旧梦留声机设定卡·情绪图条形高度翻倍(10:37-10:42)
- 用户需求:「情绪部分 高度继续增加 一倍」
- **改** `旧梦留声机账号设定卡.svg`:7 条条形高度全部 ×2(38→76/16→32/32→64/56→112/42→84/26→52/36→72),底边统一对齐 y=880(原 812);因条形变高,注释行 836→904、红线清单整体下移(标题 852→932,卡片行 872/910/948→952/990/1028),viewBox 高度 990→1080
- 验证:高度×2 正确、底边全对齐 880、文字仍居中(核爆 768+56=824)
## 旧梦留声机设定卡·基因卡/角色卡排版升级(10:39-10:45)
- 用户需求:六大内容基因与角色类型库卡片文字排版按「GENE 01 标题 内容」「角色中文 英文 内容」样式
- **六大内容基因卡**:标题行拆为「GENE 0X」珊瑚红 #C13B2F 10px 600 小标签(x=61/259/457)+ 标题 12px 600 #7B2D1B(x=118/316/514),内容两行不变
- **角色类型库卡**:标题行拆为「中文名」12px 600 #8C3B2B(x=61/259/457)+ 英文名 9px #B0715A **右对齐**(text-anchor=end,x=223/421/619),内容行不变;英文名=Elder Guardian/Repaying Child/Suffering Mother/Great-Love Prototype/Guiding Benefactor/Stubborn Dreamer
- 验证:SVG 结构完整(1 svg/8 g/53 rect/97 text)、6 GENE + 6 英文名就位、全部标题末字尾 ≤ 卡右缘-8 无溢出
## 旧梦留声机设定卡·按参考长图版整体重写(10:44-10:55)
- 用户反馈:「排版还是不一样呢,仔细看看之前生成 长图版」+ 提供参考图 `桌面\旧梦留声机_账号设定卡_长图版.png`
- **重写** `旧梦留声机账号设定卡.svg`(完全推翻前几版,viewBox 680×1560):
- 背景:深棕红渐变 `#2B0F0A→#1A0805`(原暖米底)
- 顶部大框:浅米色 520×170 圆角 14,框内"旧梦留声机 · 账号 / 设定卡"两行 26px 渐变大标题 + 琥珀金分隔线 + 副标题 + 标语
- 装饰线:居中 `— channels requirement board 2026 —`
- 模块标题:▍+ 浅米色 14px 加粗
- **六大内容基因卡**(186×130,原 72):GENE 0X 标签 letter-spacing 1 + 大标题 14px 700 + 3 行描述(含新增金句"让他撑下去"/"脏一点泪点多一点"等)
- **角色类型库卡**(186×130,原 48):PROTOTYPE 标签 + 中文名 14px 700 + **英文代号大写斜体** `E. ELDER / R. REPayer / M. SUFFERING / A. ARCHETYPE / G. GUIDE / D. DREAMER` + 2 行描述
- 红线清单:深色 `#3D1810` 卡 + 边框 + 红×号
- 底部版权:数据来源 + content requirement board
## 旧梦留声机设定卡·修复红线清单与情绪图高度(10:47-10:52)
- 用户反馈:红线清单内容少了(重写长图版时只保留 2 条)、情绪部分高度又变矮了(重写时条形缩水)
- **修复** `旧梦留声机账号设定卡.svg`:
- 红线清单 2 条 → 补全 **6 条**(消费苦难/伪造真实素材/美化悲剧/角色没名字/强行好结局/植入打断情绪,2 列×3 行,卡 y=1538/1576/1614)
- 情绪图条形恢复到翻倍高度:56→76/26→32/44→64/76→112/54→84/34→52/46→72,底边对齐 y=1452(核爆段 y=1340 与标题基线 1336 差 4px 不重叠)
- viewBox 1560→1700,底部版权下移至 1672/1684
- 验证:7 条底边全对齐 1452、红线 6 条、无重叠
## 旧梦留声机设定卡·去 PROTOTYPE + 情绪小字(10:48-10:53)
- 用户反馈:① 角色类型库不需要加 PROTOTYPE 这个英文 ② 参考图情绪部分下面有一行小字
- **修改** `旧梦留声机账号设定卡.svg`:
- **去掉 6 张角色卡的 PROTOTYPE 标签**(珊瑚红小标签)→ 角色卡排版简化为「中文名 + 英文代号 + 3 行描述金句」(描述从 2 行扩到 3 行,新增金句"沉默里把全家扛在肩上"/"朴素到极致是最贵的善良"/"指路的手势比讲理更动人"等)
- **情绪图下方加一行小字** y=1506:`情绪节奏总览:压抑蓄力 → 核爆释放 → 破壁落地,每 10-30 秒完成一次情绪反转`(11px 斜体浅米色 #D9BFA3,居中)
- 验证:PROTOTYPE 残留 0,6 中文名+6英文代号完整,小字行已嵌入
## 旧梦留声机设定卡·标题换行+内容路线颜色(10:49-10:53)
- 用户反馈:①「旧梦留声机 · 账号 / 设定卡」换行不好看 → 改「旧梦留声机」+「账号设定卡」两行(26px 渐变标题,不带点号)② 内容路线参考图不是深色 → 卡片由 #3D1810 深色改 **#FAEEDA 浅米色 + 边框 #EDCBA4 + 文字 #7B2D1B**(与参考图/基因卡同色系)
- 验证:标题两行、内容路线 6 卡填充/边框统一浅米色
## 旧梦留声机设定卡·标题大小层级(10:51-10:54)
- 用户反馈:「账号设定卡 这几个字明显该小一些」
- **改** `旧梦留声机账号设定卡.svg` 顶部标题:「旧梦留声机」28px 700 渐变 +「账号设定卡」**16px 600 #8C2F1E letter-spacing 2**(副标题级,缩小 12px),形成大小主次
## 旧梦留声机设定卡·垂直居中+间距修复(10:52-10:56)
- 用户反馈:① 内容路线卡片中文字没有垂直居中 ② 红线清单和情绪下面的文字靠在一起了
- **改** `旧梦留声机账号设定卡.svg`:
- 内容路线 6 个文字 y 326→**321**(=卡片中心 296+25,垂直居中)
- 红线清单整体下移:标题 1522→1538、红线卡 1554/1592/1630、版权 1688/1700;情绪小字(y1506)与红线标题间距 16→**32px**;viewBox 1700→1716
- 验证:6 文字全部居中、间距 32px、红线 3 行 1554/1592/1630、viewBox 1716
## 旧梦留声机设定卡·色彩体系卡片加高(10:53-10:58)
- 用户反馈:「色彩体系 卡片 参考图中也高一些」
- **改** `旧梦留声机账号设定卡.svg`:色彩卡高度 50→**80**(y=882 h=80,标签文字 954→984);角色类型库整体下移 10px(标题 1000→1010,卡 1018→1028/1162→1172,内部文字同步 +10)
- ⚠️ 坑:手动 Edit 改第一张卡 y 后又用脚本整块 +10,导致第一张卡双重偏移(1038),已单独修正回 1028
- 验证:色卡 h80、角色卡 y 统一 1028/1172、色卡底 962 vs 角色库标题 1010 间距 48、角色库底 1302 vs 情绪标题 1336 间距 34
## 账号分析技能新增「功能六:生成账号设定卡片」(10:55-11:05)
- 用户需求:把生成账号设定卡片总结成一个功能(方式/要求/格式/注意事项),放入账号分析技能
- **新增** `references/feature/06_生成账号设定卡片.md`(源+dsh 副本同步):输入=功能三产出 `{达人昵称}账号设定.md`;产出=`{达人昵称}账号设定卡.svg`(680×~1700 深色长图);四步方式(读设定→12段模块映射→SVG手绘→验证交付);配色规范表(深棕红渐变背景/浅米色卡片/GENE 0X 标签/角色英文代号/核爆红);注意事项含「批量移动坐标防双重偏移」等 7 条避坑
- **改 SKILL.md**:功能总览 五大→**六大功能** + 功能六行;新增「八、功能六」章节;部署禁用说明补功能六(无连带文件);章节编号 七/八/九 连续
- 验证:源技能与 dsh 副本 06 文件与 SKILL.md diff 一致 ✓
## 账号分析技能功能六·补充模板样例与适配规则(10:58-11:08)
- 用户追问:下次生成别的账号设定卡片也要达到相同效果 → 除流程规范外补充三块
- **① 模板样例入技能**(自包含):`references/样例/模板_旧梦留声机账号设定卡.svg`(最佳成品)+ `参考_旧梦留声机_账号设定卡_长图版.png`(渲染效果);功能六「方式」新增 ①.5 步——动手前必读模板,复用版式骨架/样式常量,内容全替换;模板迭代=改模板→同步生成旧梦留声机卡确认→再用于新账号
- **② 模块裁剪适配规则**(新章节):按设定实际内容裁剪/增补——无流程删内容路线、无角色库删角色库、基因按条数定列数(2/3列 卡宽=600px/列数-间距)、情绪按实际段数(4-7段)、色彩用真实色值、红线条数不限;每个保留模块须 grep 验证能找到原文
- **③ 配色适配规则**(新章节):背景/卡片默认深色长图风保系列一致;色彩体系色块用账号真实色值;强调色跟随账号主色(暖→珊瑚红/琥珀,冷→冷蓝/冰青);冲突时以看得清/有层次/账号辨识度最高准则
- 同步:源技能 06 文件+SKILL.md+样例目录 → dsh 副本全部 diff 一致
## MCN工作台 账号详情 persona tab 卡片/文字切换(11:00-11:35,三轮迭代)
- **用户需求**:账号详情「账号设定」tab 改为可切换「卡片版/文字版」,默认显示卡片,无卡片显示文字
- **后端新增 2 接口**(server.js):
- `/api/dsh/account-card?name=` → 在 allowedRoots() 各根目录下查找 `{账号名}账号设定卡.svg`(规范路径 `{root}/{name}/{name}账号设定卡.svg` → 根下直挂 → 账号目录内扫描含「账号设定卡」的 svg,防目录名/账号名不一致)
- `/api/file?path=` → 内联文件输出(无 attachment 头,Content-Type 按 mimeOf),供 `<img>` 渲染 SVG
- 新增 `findAccountCard(name)` 工具函数(安全清理 `[\\/:*?"<>|]` 非法字符防路径穿越)
- **前端 persona tab 改造**(data-pages.js renderAccountDetail):
- 状态:`viewMode='card'`(卡片版默认)+ `personaCard={path|null}`
- `loadPersona()` 改 `Promise.all([account-persona, account-card])` 并行加载
- panel **三态渲染**:无设定→空态按钮(不变)/ 无卡片→直接文字版 `persona-text` / 有卡片→右上角图标切换组 `.persona-wrap > .persona-vs-icons + .card-view + .persona-text`
- 切换事件:直接 DOM 切换 `.card-view/.persona-text` 的 `vs-hidden` 类(不重渲染,保留滚动位置);按钮选择器 `[data-vs]` 兼容图标按钮
- **样式三轮迭代**(style.css):
1. 整行 segmented control「卡片版|文字版」+ 蓝底激活态(`.view-switch` 块)
2. 改为**右上角图标按钮组**:`.persona-wrap { position:relative }` + `.persona-vs-icons { position:absolute; top:0; right:0; z-index:2; display:inline-flex }`,图标 `film`(卡片)+ `file-text`(文字),激活态蓝底白字
3. 卡片图片 `max-width: 540px` → **width:100% 自适应内容区域**(去 max-width,依赖父 page max-width 封顶)
- **多视口验证**(CDP Emulation 900/1024/1280/1920/2560):
- imgW = wrapW,小视口 811→中视口 1191→大视口封顶 1382
- 所有视口 `docScrollW < viewport`,**无横向滚动**
- 用例 1629 旧梦留声机(有卡):默认卡片版、切文字版、切回卡片版 全过
- 用例 1627 王微斯(无卡):直接文字版无切换控件
- **服务重启**:旧 23976 任务被停(cNHaFK),新启后台任务 QMmTlH(127.0.0.1:8899);服务 Cache-Control: no-store,改完仍需 `Page.reload({ignoreCache:true})` 强制刷新
- 验证脚本保留 `cdp-verify-personacard.mjs`(多视口自检+三态断言+截图,可复用)
## 功能六配色适配升级:底色跟随账号风格(11:17-11:22)
- 用户反馈:「不同风格账号卡片要用对应底色,不是全部都是一个颜色」
- **改 06 文件「配色适配」章节**(原「默认沿用深色长图风」→ 强规则「禁止一律模板深棕红底」):
- 三步判定:①读设定色彩体系真实色值+赛道判风格 ②风格→底色映射表(7 类:暖怀旧→深棕红/浅米、温情亲子→深焦糖/奶油米、科技冷淡→深灰蓝/冷白、清新三农→深墨绿/米白、潮流都市→深紫黑/浅灰白、活力运动→深海军/冷白、甜美少女→深莓紫/浅粉白) ③强调色=账号主强调色
- 底色推导公式(未覆盖风格):主色压暗 15-25% + 降饱和 → 深色渐变底;卡片色取高对比浅色;系列一致性=同账号一致非跨账号一致
- **改 ①.5 读模板样例**:「配色体系为基准」→「版式骨架/字号/卡片尺寸/间距为基准,配色不沿用模板」
- **改 SKILL.md 八功能六配色适配要点**:底色跟随账号风格,禁止一律模板深棕红底 + 风格映射摘要
- 源技能 → dsh 副本同步,06 文件与 SKILL.md diff 全一致
## 功能六新增「触发场景处理」章节(11:20-11:24)
- 用户问「如果用户要求生成账号设定卡片,应该如何处理 分几种情况」→ 输出 7 情况分类 + 三问判定链,用户认可后固化
- **06 文件新增「触发场景处理」章节**(输入/产出之后、方式之前):三问判定链(①有无设定→无则功能三或全链路 ②卡片是否已存在→有则询问覆盖/微调 ③模块是否完整→缺则裁剪适配)+ 7 情况表(有设定无卡/有设定有卡/无设定在库/无设定不在库/设定缺模块/参考样式/调整已有卡)+ 环境路径
- **SKILL.md 八功能六**补「触发判定」行(指向 06 触发场景处理)
- 源技能 → dsh 副本同步,06 文件与 SKILL.md diff 全一致
## 功能六「内容基因 TOP6 全量」术语澄清(11:25-11:28)
- 用户问「账号设定中 TOP6 全量验证 是想说根据TOP6视频分析得出的吗」→ 确认混淆点:模块映射表第 4 行原写「内容基因(TOP6 全量)」,易误读为「TOP6 个基因」
- **改 06 文件**模块映射表第 4 行:「内容基因(TOP6 全量)」→「内容基因(设定中全部条目,全量呈现)」+ 新增术语澄清块(第 77 行):本表「内容基因全量」= 设定文件中内容基因条目**全部上卡、不裁剪**(旧梦留声机恰 6 条,非指 TOP6 视频);内容基因条目由**功能三基于 TOP6 视频**(筛选权威参数见 SKILL.md「视频筛选标准」)解析提炼得出——TOP6 视频是分析依据(输入),内容基因是结论呈现(输出),两个「6」层级不同,勿混淆
- 源技能 → dsh 副本同步,grep 确认两处第 77 行内容一致,且全文仅此一处含 TOP6 字样
## 功能六「六大内容基因·TOP6」表述简化(11:29-11:31)
- 用户反馈:「简化为 六大内容基因·TOP6 就行了 后续生成卡片也这样描述就行」
- **改 06 文件**:模块映射表第 4 行「内容基因(设定中全部条目,全量呈现)」→「内容基因(功能三基于 TOP6 视频提炼的结论)→ 六大内容基因·TOP6」;术语澄清块精简为一行注(保留核心:TOP6 视频=分析依据输入、内容基因=结论输出、卡片全量呈现不裁剪)+ 明确「后续生成卡片统一以『六大内容基因·TOP6』描述该模块」
- 源技能 → dsh 副本 cp 同步,diff 一致
## 功能六「内容基因·TOP6」定名 + 旧梦产出同步修改(11:31-11:33)
- 用户两连纠正:「简化为 六大内容基因·TOP6」→ 随即「应该改为 内容基因·TOP6」(去掉「六大」)
- **06 文件**(源+dsh):模块映射表第 4 行信息图模块「六大内容基因·TOP6」→「**内容基因·TOP6**」;术语注末句同步改「后续生成卡片统一以『内容基因·TOP6』描述该模块」
- **旧梦留声机产出同步**(桌面 MCNSkill项目/旧梦留声机/):
- `旧梦留声机账号设定.md`:小标题「六个内容基因标记(TOP6 全量验证)」→「**内容基因·TOP6**」;九差异化壁垒表「六个内容基因是频道级复用资产」→「内容基因·TOP6 是频道级复用资产」
- `旧梦留声机账号设定卡.svg`:模块标题「▍六大内容基因(TOP6 全量验证)」→「▍**内容基因·TOP6**」;desc 与代码注释同步改
- grep 验证三目录(源/dsh/桌面)无「六大内容基因/六个内容基因/TOP6 全量」残留
## 「核心气质」→「内容标签」改名(11:32-11:34)
- 用户反馈:「核心气质 应该 改为 内容标签」
- **06 文件**(源+dsh):模块映射表第 3 行「核心气质/人设标签 | 核心气质(chips)」→「内容标签/核心标签 | 内容标签(chips)」
- **模板样例 SVG**(源+dsh):desc/注释/模块标题 3 处「核心气质」→「内容标签」;顺带补上一轮遗漏——desc 里「六大内容基因」→「内容基因·TOP6」、注释+模块标题「▍六大内容基因(TOP6 全量验证)」→「▍内容基因·TOP6」
- **06 文件裁剪适配表**(源+dsh):「保留『六大内容基因』」→「保留『内容基因·TOP6』」(上一轮漏改)
- **桌面产出**(旧梦留声机):卡片 SVG 3 处「核心气质」→「内容标签」(sed)
- 验证:源/dsh 两文件 diff 全一致;三目录 grep「核心气质|六大内容基因|六个内容基因」零残留
## 「内容路线」→「叙事结构」全链路改名(11:34-11:37)
- 用户反馈:「内容路线 改为 叙事结构」——本次术语同时是设定字段名(设定 md 第 16 行)与卡片模块名,按命名一致性全链路统一
- **源技能 sed 批量替换 4 文件**(06 文件 4 处:模块映射表第 2 行/触发场景第 5 行/裁剪适配 96/97 行;人设卡生成方法.md 3 处:模板维度定义+校验清单 2 处;模板样例 SVG 3 处:desc/注释/标题;SKILL.md 1 处:功能六「无流程删叙事结构」)→ cp 同步 dsh 副本,diff 4 文件全一致
- **桌面产出**:设定 md 第 16 行字段「内容路线」→「叙事结构」;卡片 SVG desc/注释/标题 3 处同步
- **不动**:`.bak` 备份、`视频分析/*/analysis.json` 历史解析原始数据(保持数据准确性);dsh tmp/backfill_track_ztq.py 历史回填脚本(其他账号数据文本)
- 验证:功能文档三处 grep「内容路线」零残留
## 生成王微斯账号设定卡(11:45-11:52,功能六首个新账号实例)
- 用户需求:「生成 王微斯的 账号设定卡」;触发场景=**有设定无卡→全流程生成**(桌面 MCNSkill项目/王微斯/王微斯账号设定.md,08-13)
- **产出** `王微斯账号设定卡.svg`(680×1716,深色长图,同模板版式骨架)
- **配色适配**(不沿用模板深棕红):甜宠情感/乙女向→风格映射「甜美少女→深莓紫/浅粉白」→ 背景 #2A0F2E→#18071C 渐变、卡片 #FDF0F6 浅粉白+边框 #F0C9DD、强调玫红 #E0437F/#D84A8C、chips 深莓 #3D1030
- **模块裁剪适配**(王微斯 vs 旧梦差异):①内容基因 **4 条**→2×2 卡(卡宽 285=582-12/2,非模板 3 列)②情绪 **四段式**→4 条形(开场76/推拉100/破防128玫红高亮/收口88,底边全对齐 1452)③角色类型库=**女主横卡(582×100)+男主 4 卡 2×2**(无英文代号省略斜体行)④叙事结构 5 步→5 卡 104 宽⑤**删色彩体系模块**(设定无色彩体系段,不硬塞)⑥内容标签 12 chips 两行
- **验证**:svg/g 配对(1/1,15/15)、4 条形底边 1452 全对齐、模块间距≥30px、最长文字行(红线19字)不超卡右缘 ✓
## 配色适配·底色=背景色 修正(11:49-11:53)
- 用户澄清:「我说的是改底色就是背景色,不是改里面的元素的颜色」——之前我把映射表写成「背景色/卡片色/强调色」3 列并改了王微斯卡片元素色,理解偏了
- **修正 06 文档配色适配章节**(源+dsh):①明确「底色=整卡背景色」,卡片/文字/标签/强调色等内部元素颜色**不随账号变**,统一按下方「配色规范」表(浅米卡+深色字+珊瑚红强调);②映射表去「卡片色」「强调色」列,只留「背景底色」;③强规则加「**只换背景色**:内部元素一律按配色规范表」;④配色规范表标题「旧梦留声机定版」→「模板统一色,所有账号通用;仅背景色随账号风格换」
- **改 SKILL.md**(源+dsh)功能六配色要点:明确「底色=整卡背景色,只换背景色,内部元素保持模板统一色」
- **修正王微斯卡元素色**(sed 批量):卡片 #FDF0F6→#FAEEDA、边框 #F0C9DD→#EDCBA4、标题 #7B2D5E→#7B2D1B、正文 #6F4A5E→#6F5B4A、GENE #D84A8C→#C13B2F、chips #3D1030→#3D1810+边框 #A8879B→#A88770、标题渐变 #C0457F→#8C2F1E / #E876A9→#C05A32、副题 #8C3B6B→#8C3B2B、情绪条 #F7D9E8→#F7D9A8 / #F2C0DA→#F0B25C / #E0437F→#D6403A / #C22F6A→#A92825、红线 #E0437F→#D6403A、版权 #8A5E7A→#7A5645;**仅保留**背景渐变 #241020→#12070F(深莓紫,甜美/甜宠风格映射)
- 验证:svg/g 1/1+15/15、模板色使用 96 处、粉色系残留 0;CDP 截图渲染确认背景深莓紫+元素全模板色(系列感一致)
- 脚本保留 cdp-shot-wangweisi.mjs(本地 SVG 截图自检)
## 深莓紫背景调亮(11:52-11:54)
- 用户反馈:「背景色 我看还是黑色呢」——原映射色 #241020→#12070F 压太暗,紫调不可辨,视觉近黑
- **调亮**:王微斯卡 bgGrad `#241020→#12070F` → `#3A1E42→#22102A`(顶部 R58/G30/B66 紫调明显、亮度≈旧梦深棕红 2 倍;底部深紫 #22102A,仍保深色底)
- **06 文档映射表**(源+dsh)甜美/少女/二次元行同步更新色值
- 经验固化:深色渐变底顶部色需保紫/蓝/绿等色相可辨(亮度≈50/255),过暗则视觉归黑;旧梦深棕红 #2B0F0A 亮度 23 但因红棕调暖尚可辨,冷色调更易显黑需提亮
## 工作台账号设定内容区左右 +20px 间隔(11:42-11:44)
- 用户反馈:「账号设定卡 左右可以在间隔20PX」→ 澄清:不是改 SVG,是**工作台账号详情「账号设定」tab 内容区距页面左右再增 20px 间隔**
- **改 style.css** `.persona-wrap`: `position: relative` → `position: relative; padding: 0 20px;`(卡片版 .card-view 与文字版 .persona-text 同在 persona-wrap 内,左右各内缩 20px;绝对定位的 .persona-vs-icons 切换图标不受 padding 影响仍贴右上角)
- **验证**(CDP #/account/1629 强制刷新 + 点 persona tab):computed padding-left/right=20px;卡片 imgW 1122.7 vs detail-body 1172.7,内缩合计 50px(左 detail-body 10 + persona 20,右 persona 20);文字版 inset 同 50 ✓
- 静态 CSS 改动无需重启服务(HTTP 200);验证脚本保留 `cdp-verify-personapad.mjs`
## 王微斯账号设定卡重写为浅色甜宠风(11:54-11:55)
- 用户反馈:「这个账号的调性 应该是没那么深的颜色」——深莓紫 #3A1E42→#22102A 仍偏暗,账号整体偏甜宠少女应走明快调性
- **重写** `桌面\MCNSkill项目\王微斯\王微斯账号设定卡.svg` 为浅色甜宠风(布局坐标 680×1716 不变,全量换色):
- 背景:`#3A1E42→#22102A` 深莓紫 → **`#F8EDF6→#F1E0EE` 浅粉紫渐变**
- 顶部标题框:白 `#FFFFFF` + 粉边 `#E8C9DC`,主标题渐变 `#C0457F→#E876A9`(粉),副标题/标语/模块标题 `#7B2D5E`(深粉)
- 五步推拉 / 内容标签 / 基因卡 / 角色库:内部元素全部从「模板统一色 + 粉调」改回「白卡 + 粉边 + 粉 chips」体系(chips `#F7E8F2`/`#D8A9C8`、GENE 标签 `#E0437F`、正文 `#6F4A5E`)
- 四段式情绪:浅粉/中粉/破防段 `#E0437F` 高亮(白字 700)/浅粉,注释 `#B98AA6`、小字 `#A98A9C`
- 红线清单:浅粉条 `#F7E8F2` + 粉×号 `#E0437F`、文字深粉
- **06 文档新增「浅色系配色规范」**(源+dsh 同步):
- 配色适配章节重写:底色**分两系**(深色系=深沉浓郁调性,浅色系=明快/甜美/治愈调性),内部元素跟随所选色系,不再「只换背景色」→ 改为「**底色决定色系**」
- 关键定义:浅色系 = 白卡 + 粉边 + 深粉文字 + 粉强调
- 风格映射表「甜美/少女/二次元」行:深莓紫(调性深沉时)|**浅色甜宠风 `#F8EDF6→#F1E0EE`(调性明快时,如王微斯)**
- 新增浅色系推导公式:主色 → 提亮 90%+ 亮度 + 大幅降饱和 → 浅色渐变底;正文用主色加深版(`#7B2D5E` 档)
- 配色规范表拆为两套并列:「**深色系(深色长图风,如旧梦留声机)**」+「**浅色系(浅色甜宠风,如王微斯)**」(含背景/标题框/主标题渐变/副标题/模块标题/卡片背景×2类/卡片标题/正文/GENE/英文代号/情绪图破防/琥珀段/小字/红线×号 14 行色值)
- 强规则第 2 条「只换背景色」→「底色决定色系」
- **验证**:源/dsh 06 文档 diff 全一致;CDP 截图(`shot-wangweisi-card.png`)渲染确认浅粉紫底+白卡+深粉字+破防段粉红高亮,整体调性明快甜宠 ✓
- 经验固化:**配色分两系而非单系**——深色系适合剧情/怀旧/深沉调性,浅色系适合甜宠/少女/治愈/明快调性;同一账号必须固定色系,跨账号可不同;未来生成新账号卡片时按风格落系,色值从对应色系表查,禁跨系混用
- 脚本升级:`cdp-shot-wangweisi.mjs` 页面匹配 `decodeURIComponent(t.url).includes('王微斯')`(9223 URL 百分号编码坑)+ 补 `Page.reload({ignoreCache:true})`(同 URL navigate 不重载)
## 王微斯卡片·玫瑰金背景试版(12:01-12:03)
- 用户需求:「这个保留 再试试 偏粉的深一点的玫瑰金色」——保留当前浅色甜宠风版式与内部元素,仅换**背景**为偏粉深玫瑰金渐变
- **改** `桌面\MCNSkill项目\王微斯\王微斯账号设定卡.svg`:
- 渐变:`#F8EDF6→#F1E0EE` 浅粉紫 → **`#D6A3A9→#9A5563`**(顶部偏粉玫瑰金 → 底部深玫瑰金)
- 背景上直接书写的元素提亮(背景变深需保可读):6 处模块标题 `#7B2D5E`→`#FDE8EC`(浅粉白)、装饰线+4 处情绪百分比小字 `#B98AA6`→`#EAC6CE`、斜体行+版权 2 行 `#A98A9C`→`#DDBCC4`
- **不动**:白卡 #FFFFFF×15、粉 chips #F7E8F2×20、卡片内深粉文字/粉强调等全部内部元素(遵守「改底色=改背景色」原则)
- **备份**:原浅粉紫版 → `王微斯账号设定卡_浅粉紫底.bak.svg`(同目录,可回退)
- **验证**(CDP 断言+截图 shot-wangweisi-rosegold.png):bg0=#D6A3A9 / bg1=#9A5563 / 6 标题 #FDE8EC / 装饰线 #EAC6CE / 版权 #DDBCC4 / 白卡 15 / 粉 chips 20 全保留 ✓
- 验证脚本保留 `cdp-verify-rosegold.mjs`(断言渐变 stop + 背景上文字 + 内部元素计数,可复用)
## 王微斯卡片·定稿玫瑰金底(12:03-12:05)
- 用户反馈:「感觉那个(玫瑰金)更适合 这个账号调性」→ 玫瑰金底定稿,当前 `王微斯账号设定卡.svg`(#D6A3A9→#9A5563)为最终版;浅粉紫备份 `_浅粉紫底.bak.svg` 保留可回退
- **06 文档固化**(源+dsh 同步,diff 一致):
- 映射表甜美行:深莓紫(深沉时)|**玫瑰金 #D6A3A9→#9A5563(明快时,如王微斯·定稿)**
- 浅色系推导改「提亮+降饱和至中浅明度(约 65-90% 亮度)」+ 新增「背景上直接书写的文字随背景深浅提亮保可读」(玫瑰金底:模块标题 #FDE8EC/装饰线注释 #EAC6CE/斜体版权 #DDBCC4)
- 浅色系表更新:背景=玫瑰金(更浅可回退浅粉紫)、模块标题=#FDE8EC、情绪小字=#EAC6CE;表后加注释(背景越浅越近深粉字、越深越近浅粉白)
- **SKILL.md 功能六配色段更新**(源+dsh diff 一致):「只换背景色」→「底色决定色系」两系完整表述 + 玫瑰金映射 + 浅色系推导 + 背景文字提亮
- **MEMORY.md**:浅色系定稿色值更新为玫瑰金
- 经验固化:用户试色闭环=「先试浅→再试深一点有色相→选定稿」,配色迭代时**备份每个候选版**(.bak.svg)防回退;色系表以账号定稿为准反哺文档,避免文档停留在试色中间态
## 王微斯卡片·叙事结构箭头位置修复(12:07-12:08)
- 用户反馈:「叙事结构 卡片之间的箭头 都偏到 卡片里面了」
- **根因**:卡片缝隙仅 15px,但箭头 line 只画了 2px(如 x1=153 x2=155),marker 宽 6px(refX=8 → 尾部在 x2-4.8),箭头主体伸进左侧卡片约 3px
- **修复**:4 条箭头线拉长占满缝隙——154→166 / 273→285 / 392→404 / 511→523(各 12px;卡右缘+1 起、卡左缘-2 止),箭头整体居中于两卡之间,尾部不碰卡1、尖部离卡2 左缘 2px
- **验证**(CDP 断言):4 线 x1/x2 全对、线长≥11px(arrowsInGap=true)、背景/标题/白卡15/粉chips20 不受影响 ✓
- 经验固化:**卡片间箭头/连线必须按缝隙宽度画线**(缝隙宽-3~4px 的线长),marker 宽度决定最小线长(线长须 ≥ marker 渲染宽 + 1px,否则箭头伸进相邻元素);同款五步卡布局(104 宽×5 + 15px 缝隙)复用时直接套用此坐标
## 固化:功能三自动联动生成设定卡 + 双向联动维护(12:12-12:15)
- 用户需求:「给用户获取账号设定时 自动生成设定卡片,固化到skill中,修改时两边一起修改」——①功能三产出设定后**自动**生成卡片(无需用户开口)②设定 md 与卡片 SVG **双向联动**同步修改,全部固化到技能
- **SKILL.md**(源+dsh):功能总览表功能六「功能三之后可选」→「**功能三自动联动(默认)**」;部署禁用说明补「删除功能六文件则不再自动生成(存量可手动)」;功能三核心流程加 **Step 7(自动联动)**;功能六章节加「自动触发(默认)」+「双向联动维护」
- **03_提炼账号设定.md**(源+dsh):新增 **Step 7:自动生成账号设定卡片(联动)**——默认自动触发(跳过条件:功能六文件删除/用户明确只要设定)+ 双向联动维护 3 条规则(改设定→卡片同步、改卡片→设定同步、术语改名→两边一起改)+ grep 一致性校验
- **06_生成账号设定卡片.md**(源+dsh):使用场景改「默认由功能三自动联动触发」;触发场景处理加「默认自动触发」说明;情况 1 注「自动流程已覆盖」;环境路径后新增「**双向联动维护**」章节(含历史改名案例:内容路线→叙事结构、核心气质→内容标签、六大内容基因→内容基因·TOP6)
- 验证:3 文件源=dsh diff 全一致;MEMORY.md 联动规则已固化
- 经验固化:功能联动类需求固化落点=SKILL.md(总览/章节)+ 上游功能文档(自动触发的源头)+ 下游功能文档(触发判定与维护规则);「修改时两边一起修改」的准确载体=设定 md ↔ 卡片 SVG 两个产出文件(非源技能/dsh,那是既有同步策略)
## mcn-video-prompt 提示词输出结构 4层→6层重排(用户定稿,14:29)
- **新结构**:①主体列表 → ②画面质感(视觉风格+摄影质感参数,视觉基调前置)→ ③色调光影(光源+主光方向+亮暗区+色调/色温)→ ④主体设定(人物/场景/构图)→ ⑤镜头叙事 → ⑥负面提示词;原「②设定」层拆为画面质感/色调光影/主体设定三层,视觉基调前置(模型对提示词开头权重最高)
- **修改文件 3 个**(逐条改+验证):
- `subskill/mcn-video-prompt/references/制作流程/分镜提示词制作流程.md`(权威出处,9 处):3.2/3.2.2 标题、改造原则、3.2.1 思考清单层号映射、3.2.2 输出格式块整体重排、6层×5类型适配表(列扩为⑦列)、Step5 校验②结构完整性、总流程 3 处引用、对比表技术参数行
- `subskill/mcn-video-prompt/SKILL.md`(8 处):F4 提示词内部结构、F2/F4 详细方法论引用×2、剧本分析前置段、工作流 Step3、提示词模板节×2、自检⑧结构完整性;frontmatter updated_at=2026-08-31+last_change
- `subskill/mcn-video-prompt/references/制作流程/长视频分段制作流程.md`(4 处):一致性锁定表(②设定-视觉风格→②画面质感等)、简单段/复杂段输出模板重排为 6 层
- 验证:全局 grep 旧层号零残留("4层"仅剩 last_change 变更描述+L189 F2"4层退化策略"无关概念);6层落位 SKILL.md×8/分镜提示词制作流程×7/长视频分段×3
- 注:dsh 副本(storyboard-prompt)未同步,按 .dsh 单向只读约定待用户授权
+2 -2
View File
@@ -10,8 +10,8 @@
## 核心技能
- **短视频脚本创作** `project/短视频脚本创作/{V1.0,Lite1.0}/`:11步流程+知识库12分类(66文件);V1.0 含 MCP/Dify 接口,Lite1.0 去全部接口、模型自带 WebSearch。**同步策略(08-26 用户定)**:只改 V1.0 源技能+dsh 副本两处;Lite1.0 默认不动
- **MCN工作台(08-27,仅 V1.0)** `project/短视频脚本创作/V1.0/mcn-work-shop/`(server.js+public/,零依赖 Node,端口8899自动避让);触发「打开工作台」→ 启动服务+内置浏览器打开。hash 路由:首页+📈账号周榜/👥热门账号/账号详情/视频详情/AI写脚本/AI写作复盘(读自有 mcn-plugin.db 副本+dshworkspace 榜单 JSON)+📁产出浏览(桌面 MCNSkill项目/ 账号层直挂)+❓帮助页。**AI 任务触发(08-27 定版;归 mcn-workshop 空间)**:数据页按钮→`confirmRun()` 确认弹窗→`executeTask()` `POST /api/run` 写 `~/.workbuddy/workbuddy.db` automations(once+now,cwds=`D:\AgentSkill\mcn-workshop`)→WorkBuddy 自动执行创建会话→左侧会话栏 mcn-workshop 空间可见;轮询 `GET /api/run/status?id=`(读 automations/automation_runs/automation_runtime_state:running=IN_PROGRESS/running、done=DONE/COMPLETED/SUCCESS、error=ERROR/CANCELLED;5s 间隔 30min 上限)→done/error 恢复按钮(.btn-busy「执行中…」);**用户明确不同步 dsh/Lite**(刻意 divergence);AI脚本选题(08-28):关注账号「创作」→「AI脚本」`confirmAiScript` 选题 textarea→`POST /api/ai/topics`(查库带账号摘要→S5 方法论 prompt→Dify chat-messages recall 即时返回约50s);Dify key 内置 `scripts/MCN_CYLG_API.py` 的 `DEFAULT_CYLG_KEY`(env `DIFY_MCN_CYLG_KEY` 优先;key=app-0vRaxPhvVOqzFQIa5eFzFdjD),`DIFY_URL` 默认 mydify.youmanvideo.com/v1、model 默认 gemini、curl 中文被 CDN 拦推荐 Python、search 易超时用 recall
- **抖音账号分析 mcn-dou-analysis(主版本 08-27)**:源=`project/短视频脚本创作/V1.0/subskill/mcn-dou-analysis/`;dsh 副本=`C:\Users\maidou\.dsh\skills\mcn-dou-analysis\`;旧路径 `project/短视频账号分析/case_1/` 已废弃。五大功能:F1账号信息/F2视频列表(13列Excel)/F3提炼账号设定(人设卡12段)/F4分析视频数据(逐条→汇总两段式)/F5解析视频(单视频MCP)。红线:达人账号表15列(仅用户要求增改)、TOP6筛选(点赞+分享降序,权威参数在SKILL.md)、≥60条停止滚动、29赛道枚举、源技能只读单向同步、技能边界(脚本必须切脚本创作技能)、浏览器9223调试实例+标签页复用
- **MCN工作台(08-27,仅 V1.0)** `project/短视频脚本创作/V1.0/mcn-work-shop/`(server.js+public/,零依赖 Node,端口8899自动避让);触发「打开工作台」→ 启动服务+内置浏览器打开。hash 路由:首页+📈账号周榜/👥热门账号/账号详情/视频详情/AI写脚本/AI写作复盘(读自有 mcn-plugin.db 副本+dshworkspace 榜单 JSON)+📁产出浏览(桌面 MCNSkill项目/ 账号层直挂)+❓帮助页。**首页顶部数据预览条(08-31,参考 dsh-plugin-mcn 首页 stats 移植)**:`/api/dsh/stats` 5 项=热门账号(accounts)/视频解析(analyses)/AI写脚本(rewrites)/AI写作复盘(reviews type='ai')/AI写作评分(writingScore=最新20条AI复盘平均分),条带=7%品牌蓝底+数值26px粗体+右分隔线(样式在 style.css .home-stats);**AI 任务触发(08-27 定版;归 mcn-workshop 空间)**:数据页按钮→`confirmRun()` 确认弹窗→`executeTask()` `POST /api/run` 写 `~/.workbuddy/workbuddy.db` automations(once+now,cwds=`D:\AgentSkill\mcn-workshop`)→WorkBuddy 自动执行创建会话→左侧会话栏 mcn-workshop 空间可见;轮询 `GET /api/run/status?id=`(读 automations/automation_runs/automation_runtime_state:running=IN_PROGRESS/running、done=DONE/COMPLETED/SUCCESS、error=ERROR/CANCELLED;5s 间隔 30min 上限)→done/error 恢复按钮(.btn-busy「执行中…」);**用户明确不同步 dsh/Lite**(刻意 divergence);AI脚本选题(08-28):关注账号「创作」→「AI脚本」`confirmAiScript` 选题 textarea→`POST /api/ai/topics`(查库带账号摘要→S5 方法论 prompt→Dify chat-messages recall 即时返回约50s);Dify key 内置 `scripts/MCN_CYLG_API.py` 的 `DEFAULT_CYLG_KEY`(env `DIFY_MCN_CYLG_KEY` 优先;key=app-0vRaxPhvVOqzFQIa5eFzFdjD),`DIFY_URL` 默认 mydify.youmanvideo.com/v1、model 默认 gemini、curl 中文被 CDN 拦推荐 Python、search 易超时用 recall
- **抖音账号分析 mcn-dou-analysis(主版本 08-27)**:源=`project/短视频脚本创作/V1.0/subskill/mcn-dou-analysis/`;dsh 副本=`C:\Users\maidou\.dsh\skills\mcn-dou-analysis\`;旧路径 `project/短视频账号分析/case_1/` 已废弃。**六大功能(08-31 加 F6)**:F1账号信息/F2视频列表(13列Excel)/F3提炼账号设定(人设卡12段)/F4分析视频数据(逐条→汇总两段式)/F5解析视频(单视频MCP)/**F6生成账号设定卡片**(SVG 长图 680×~1716,模板=旧梦留声机样例)。红线:达人账号表15列(仅用户要求增改)、TOP6筛选(点赞+分享降序,权威参数在SKILL.md)、≥60条停止滚动、29赛道枚举、源技能只读单向同步、技能边界(脚本必须切脚本创作技能)、浏览器9223调试实例+标签页复用。**F6 卡片配色分两系(08-31 定型)**:**深色系(深色长图风,深沉/浓郁调性,如旧梦留声机)**=深棕红渐变底 #2B0F0A→#1A0805 + 浅米卡 #FAEEDA + 深色字 + 珊瑚红强调;**浅色系(浅色甜宠风,明快/甜美/治愈调性,如王微斯·定稿玫瑰金)**=玫瑰金渐变底 #D6A3A9→#9A5563 + 白卡 #FFFFFF + 粉边 #E8C9DC + 深粉字 #7B2D5E + 粉强调 #C0457F→#E876A9;背景上直接书写的文字随背景深浅提亮(玫瑰金底:模块标题 #FDE8EC/注释 #EAC6CE/版权 #DDBCC4);更浅可回退浅粉紫 #F8EDF6→#F1E0EE;底色决定色系,**同一账号必须固定色系**,跨账号可不同;禁跨系混用。模块名统一为「叙事结构」「内容标签」「**内容基因·TOP6**」。F6 触发场景处理(07情况表+三问判定链)在 06 文档。**功能三→功能六自动联动(08-31 固化)**:功能三产出 `{账号名}账号设定.md` 后**自动生成设定卡**(无需用户开口,删除 06 文件即禁用自动);**设定 md ↔ 卡片 SVG 双向联动维护**——改设定→卡片同步(内容级重生成/单点改 SVG)、改卡片→设定同步、术语改名→两边一起改(历史案例:内容路线→叙事结构、核心气质→内容标签),交付前 grep 校验关键术语两文件一致;规则固化于 SKILL.md(功能三 Step7/功能六自动触发)+ 03 文档 Step7 + 06 文档触发场景/双向联动维护
- **短视频分镜脚本** `project/短视频提示词生成/`(08-27 去 V1.0 层):4功能 F1反推图片/F2反推视频/F3生成图片/F4生成分镜;三层引用架构 参考skills→references/→references-add/(运行时优先;开发机不启用 references-add/,dsh/用户环境启用);知识库15维度(01-12用户+13音效+14构图+15风格);F4输出=主题+导演阐述+代码块(>5s时间戳分段/≤5s单段);提示词模板类型分档(A剧情/B单人Vlog/C旁白知识/D产品展示/E纯氛围)+4层×5类型适配表;公式只留时间预算表等内部环节,提示词正文只写时长结论;seedance25 时间测算体系(语速6公式+动作14+运镜7+帧级换算+超调6级);dsh 副本无独有内容需回流(唯一独有项 `name: storyboard-prompt` 环境保留)
## 创作技能关键规则(权威源:SKILL.md 关键规则 + references/创作流程规范.md)