16 KiB
16 KiB
contentm_agent · 项目长期记忆
⚠️ 本工作区现名
contentm_agent(2026-10-08 定;旧名content_marketing_agent,再早agent-product)。 整理纪律:同一件事只在一处写全,别处只引;细则进当日日志,跨会话有用才上提这里。 🔴 本文件按 ~9 KB 目标维护;实测注入在 19 KB 时开始截断 ⇒ 再加内容先删等量旧内容。压前全量备份:MEMORY-压前-20261011-1855.md(另存 2026-10-09 两份更老的)。 🔴🔴 注入进来的副本可能落后于本文件(2026-10-10 实测过一次,两版方向相反)⇒ 动手改机制/建计划任务/动浏览器之前,先读本文件磁盘版对时点,把注入版当缓存看。
一、仓与位置
- 工作区仓
E:/ProgramData/AIProject/contentm_agent:远端[email protected]:admin/contentm_agent.git(Gitea,deploy key 有写权限),分支main;提交者=局部WorkBuddy <[email protected]>。参考资料 231M 抽帧素材全量入库。 - 🔴 全局技能仓
E:/ProgramData/.workbuddy/skills是独立仓:远端…/admin/workbuddy_skills.git,分支master,⛔ 无 upstream ⇒ 必须git push origin master;提交者=全局maogeigei。⚠️ 多会话并发写 ⇒ 用前先git log -1校准。 - ⚠️ 本机裸
bash落到 WSL ⇒ 一律用E:/ProgramData/.workbuddy/binaries/PortableGit/versions/1.2.0/usr/bin/bash.exe。 - 🔴 本机 curl 取 GitHub:
raw.githubusercontent.com连不通(rc=56)⇒ 走api.github.com/repos/<r>/contents/<path>(base64)+git/trees/<b>?recursive=1。 - 🔴🔴 本机取海外域名必须挂代理
http://127.0.0.1:10800(系统 PAC 同端口):直连一律http=000。2026-10-11 实测九条全 200 = Google Trends RSS/Reddit/r/*/hot/.rss(.json端点 403)/YouTube 频道 RSS/HN API/Product Hunt Feed/Wikipedia Top/Google News RSS/BBC RSS/trends24。⛔ 判死:TikTok Creative Center 要授权(40101 no permission)、X 官方趋势计费、IG/FB/LinkedIn 站内榜无免费源、pullpush429 付费墙。 - 🔴 浏览器=「只连不起」:本机 9223 独立 Chrome,保活=本会话后台任务跑
bh_chrome_keepalive.py(用户 2026-10-10 令「只允许这一种方式」;⛔ 不建计划任务、⛔ 不复制副本)。动手前netstat -ano | grep ":9223"探;在跑就直连。🔴 一个页面只开一个标签。规则见skills/browser-harness/SKILL.md。
二、产品规划四段流水线(slug mcn-shortvideo-agent)
- 四段次序不可跳:①产品需求(1a 需求/1b 竞品/1c 画像/1d 策略/1e 场景)→ ②产品功能 → ③界面交互 → ④原型说明文档。①段落
docs/pm/mcn-shortvideo-agent/research/(1a 汇总型);1b 在content-workbench项目下(跨项目引用,⛔ 不重写)。 - 执行期产物落点:一律落
执行会话/目标-<标题前缀>-<sha1(title)[:6]>/;正式归档docs/pm/…/{research,prd}/由主会话收口后统一搬。 - 🔴 换目标三件套:带
--kpi(不带 ⇒ 旧判据原样留下 ⇒ 新目标一声明就判「全过」)+ 换tmp/supervise-inbox/NEXT.md+--switch-goal(并同步collabd.py --set-life)。派活排期名[执行]-[<goal.topics>]-<具体>。 - 🔴🔴 平台范围=全球(2026-10-11 用户令 · 适用所有方案):用户逐字「所有方案都要按照全球方案规划,不能只看国内,必须包含海外主流社媒和短视频平台(最主流的就行)」⇒ 任何平台矩阵/热点源/渠道清单/投放方案,⛔ 都不许只列国内。主会话自决的 12 平台(可推翻):海外 6 = TikTok/YouTube(含 Shorts)/Instagram(含 Reels)/Facebook/X/LinkedIn;国内 6 = 抖音/快手/小红书/视频号/B站/微博。⚠️ 现状缺口:
2a/2b几乎没有平台清单,选题细节文档(8a649c)只提国内(海外 0)⇒ 都按全球口径补。 - 🔴 功能归属判据(2026-10-09 用户令):同一类事情放同一个页面。配套两条:资产入库不限页(资产库页=统一管理的地方,⛔ 不是唯一入库口);选题库容纳「对选题有帮助的任何信息」(随手记仍落选题库,⛔ 不新增「待整理」状态)。
- 🔴 「复盘」=发布之后看结果:看数据 + 看收入(用户 2026-10-09 逐字「发布的目的就是为了看数据和看收入啊」)⇒「记录与对账」属复盘、是同一类事,留在复盘页,⛔ 不拆页、⛔ 不加导航项(GPT 主张拆出去的三条 G7/G10/G22 ⇒ 不采纳)。
- 🔴 「账号」是两个概念(2026-10-10 用户定义):内容账号=管内容属性(定位/风格/受众/红线),平台不属于它;平台账号=发布的渠道三方平台账号,登录态/授权归它 ⇒「渠道」=平台账号。建模:平台账号做成内容账号下的子项清单(1→N,每项带平台+登录态+授权状态)。✅ 已落地(V4):
2bP6 画像五维+平台账号块;2aAccount 改「内容账号」、F7 按平台账号展开、F13「一版一路」。 - 🔴🔴 找方案的唯一入口=
docs/pm/mcn-shortvideo-agent/索引-当前权威版.md(2026-10-11 主会话手建)。起因:用户问「很多新老方案都在文件夹中,后续根据方案细化产品界面如何找得到对应的方案」——实测没有单一入口:2a-产品功能-新版.md有 4 份(20a8ac61 683 B/fa6e0761 683 B 同尺寸副本/fc471a43 328 B/071c5b40 917 B)、2b也有 4 份;而docs/pm/mcn-shortvideo-agent/prd/里 10-10 22:24 归档的那两份是旧版(2b只 52 256 B=V4,最新 V5 是 52 643 B)⇒ ⛔ 别把docs/当权威区。🔴 断链根因:机制定的是「执行期落执行会话/目标-*/、主会话收口后统一搬进docs/pm/…/」,但归档只做过一次(10-10 22:24),之后20a8ac/8a649c/0a758b/39646d四个目标的产物全没搬 ⇒ 归档区落后、执行区堆积;research/与交付物/都是空的。⚠️ 维护时机:每个目标收口时更新索引一次(⛔ 目前靠人记得,尚未写进机制)。 - 🔴 本区当前目标=无(
39646d已于 2026-10-11 19:39 收口=已完成)。最近两个目标的收官(供追溯):8a649c征询 GPT+补细节+重画图(17:22 完成,国内口径)|39646d按全球口径重做平台矩阵与海外热点源(19:39 完成:三判据全过 —— 平台矩阵 9 229 B/海外热点源 13 986 B 实跑验通 9 条 + 没拿到 6 条如实登记/全球版框图 35 223 B 与流程图 22 198 B)。⚠️ 下一目标开工前的待拍板:要不要把 12 平台矩阵同步进2a/2b与原型(39646d本轮只出方案与建议、⛔ 没动产品)。🔴 教训(沿用):判据只写「有文档/有图」⇒ 执行棒交占位图 ⇒ 判据要落到「照着能做出来」的粒度。⚠️ 遗留六条改结构项(平台热榜归属/热点事件是否独立成对象/进度 3 或 6 态/收藏热点/数据源管理落点/选题负责人与截止时间)登记在NEED-USER.md第 6 节。 - 🔴 检查会话补齐状态文档=常规动作:执行棒只交付产物、不写
目标执行状态.md⇒ 检查会话要「现跑门禁 + 补写文档 + 回写--kpi」三件一起做(fa6e07/20a8ac/0a758b/39646d同型)。🔴 派棒排期时间必须晚于创建时刻。🔴 派棒前必须自己automation_update list核一遍待执行排期(2026-10-11 第 49 棒实测:注入通报写「没有别的待执行排期」,实际有两条 ACTIVE once ⇒ ⛔ 别信通报,信了就会重复派棒)。 - 📌 已收口的旧目标(细则在当日日志):
fc471a导航七项一层|b49e02征询 GPT(🔴 D1 待裁定=GPT 主张拆「记录与对账」出复盘,与用户方向相反)|071c5b四步|fa6e07八条口径落②段+原型|547748逆向 Easel(被换掉,其棒已收工)|20a8ac侧栏 64px+刷新改 icon(10-10 完成)|0a758b热点与选题逻辑+框图流程图(10-11 04:25 完成)|8a649c征询 GPT+补细节+重画图(10-11 17:22 完成,⚠️ 属国内口径,已被39646d接续改造)。⚠️--kpi按分号切 ⇒ 依据里 ⛔ 不许写;。
三、②段两份的现行口径(2026-10-09 新版)
- 改动主线=按「业务对象 + 数据流转」解耦。八页不推倒,改的是归属判据。
- 归属判据=这个功能主要创建/改变哪个核心业务对象(⛔ 不是「哪页有按钮」)。🔴 11 个对象=Account/Benchmark/Topic/Asset/Content/ContentVersion/PublishTask/PublishRecord/Performance/Review/Campaign·Order。F7/F8 收归 P4、F14 从 P2 改 P4;F11「待验证/非主链」、F12
P2/Deferred。 - 2b 结构:新增「页面公共框架(Page Shell)」层(不计板块数/不参与归属);③段自长的「功能入口」层已撤销;页面 7 个(P1 矩阵总览/P2 选题雷达/P3 资产库/P4 创作台/P5 发布中心/P6 账号画像/P7 复盘台),导航一层七项;流转=六要素契约共 20 条;骨架冻结升级为对象冻结。业务板块 39 块(⚠️ ①棒 §四 A1 写 38 是加总差错)。
- ②段两条老硬约束:功能按使用场景组织(不按页面)|全段零视觉词。
- 🔴 P5 投放页现状:5 板块=目标选择/各版本与逐版编辑/检查结果/确认发布/发布记录;主操作=确认发布。F5 硬闸管敏感信息、软闸管人设一致性(⚠️ 竞品里没有敏感词检测也没有事实检测)。
四、技能包闸门与改包纪律(product-planning)
- ⚠️ 闸门必须带
--ws:python scripts/check_naming.py --ws "E:/ProgramData/AIProject/contentm_agent"⇒ 期望 通过 2060|失败 0|提示 27;⛔ 别给--root .。改包前后都要跑。 - 🔴 单一可信源门禁:
AUTHORITY表登记「会变的事实 → 唯一定义处」,除定义处外复述即 FAIL。改这些事实只改权威处,然后跑闸门;⛔ 修法顺序=先恢复权威处声明,再清复述。 - ⚠️ 改门禁后必须做变异对照(注假病确认报红,再还原)。
- 🔴🔴 改包纪律(技能仓根
改包纪律.md):⛔ 不许整文件覆盖|落地前比对时点|改完必跑闸门|收到覆盖性提交先做结构体检。 - 🔴 事故留痕:提交
1d7d31a整文件覆盖造出 12 条 FAIL ⇒ 2026-10-08 整包回退到44d42b0(技能仓8fc9a92);那批「说人话」改写另存归档/技能包-说人话改写-被覆盖存档-20261008/(只取措辞)。 - 🔴 说人话的处置(2026-10-08 用户选 C):两个技能不整合进 product-planning,按技能名引用 —— 模式清单取
humanizer|评分与门槛取humanizer-zh五维表(≥45/50)|冲突以humanizer-zh为准|⛔ 取不到来源时明写「无判据来源,本项未判」。落盘文字一律过说人话并在文末写评分。
五、③段设计供给(单一可信源)
- 供给关系只在
references/stage-delivery/SKILL.md的## 供给块定义(6 行表);其余章节提到供给一律引§供给·<行名>,⛔ 不许复述。改供给只改那一块,改完跑闸门。 - 默认主线=
oil-ui-pro(方法+独立评审);定调与令牌取③段自带assets/design-systems/(当前design-system-tiaoyue);open-design=可选件(本地裁剪 Apache-2.0,⛔ 不许改其内容)。无 open-design 时craft/那 13 份工艺数值判据无供给来源 ⇒ 明说,⛔ 不编。 - ③段细目(导航判据
§5.5.2、§4.9导航栏、§5.6两条元规则、Gate-3 两条新增)⇒ 读技能包layouts-tooling.md与execution-runbook.md,本文件不复制。
六、③段原型 ui/mcn-workbench.html
- 🔴 细则不在此复制:口径与断点表在
ui/DESIGN.md,全量实测值在ui/3d-审查报告.md。最易踩两条:- 外壳高度链三件套:
html,body+.app{height:100vh;grid-template-rows:minmax(0,1fr)}+.main{min-height:0;overflow:hidden}+.view{flex:1 1 auto;min-height:0;overflow:auto}—— 少一处 ⇒ 整页滚不动。判滚动四个容器都要核(只核window.scrollY= 假绿)。 - 改原型两条硬坑:JS 模板字符串里的 HTML 注释不许出现反引号(⇒ 静默白屏,
node --check报不出;已踩 4 次);HTML 注释必须写-->(写*/会吞掉后面整段)。
- 外壳高度链三件套:
- 顶栏只放两项(左标题 + 右「随手记」)。左栏=一层八项、短名两字、形态=64px 药丸浮栏。⚠️ 形态一改,自检选择器与变异注入点必须跟着改,否则判据静默失效变恒绿(假绿已踩 4 次)。
- ⚠️ 教训:计数不是几何(改前那版纯图标栏是照
library.json计数猜的)⇒ 包里没有的事实就回源站量。 - 遗留未清:
3dB-15(500×844 一屏 −1 行);「满宽表格与一屏 ≥6 行不可兼得」。
七、本区会话机制
- 🔴 域锁实体不在本工作区:
handoff-guard.sh的 ROOT 落到共享锁库D:/github/dsh_shenxian/dsh-server-docs/05-交接单/.locks/(DSH_DOCS_ROOT覆盖实测无效);目录名被转义成_____…-<hash>。🔴 释放要按OWNER里登记的ME原文(常不带[执行]-[产品规划]-前缀 ⇒ 用全名释放会报「名下无可释放的锁」而锁还挂着)⇒ 先cat <锁目录>/OWNER抄准名字。 - 域锁规则:域目录=工作区下的第一层目录;⛔ 别套公共父目录(那样所有子域算出同一个键 ⇒ 并行失效)。抢不到 ⇒ 停手报告。🔴 孤儿锁:锁是磁盘持久物,会话怎么结束都不释放它 ⇒ 都成孤儿;域冲突判定只比会话名、不判死活。✅ 检查会话可自解除(用户 2026-10-09 逐字授权=R9 唯一例外):
session-mechanism/scripts/lock/orphan-lock.py,判据查宿主库sessions.status(working不动),先--dry-run。 - ⚠️ 开关
off≠ 没在跑:collabctl.py ensure幂等收敛(off⇒全停),保活任务周期触发它 ⇒ off 下迟早被停。要真起/真停 ⇒collabctl.py on|off --ws …。 - 🔴 机制登记已全改现名
contentm_agent:collabd.config.json+collabctl.py的WORKSPACES/KEEPALIVE_TASKS(源 + 3 个区副本共 4 份)+ ai1net 的peer_workspaces(改完看板要重启)。旧空壳content_marketing_agent.RETIRED-20261008保留(零删除)。 - 🔴 文档合同:执行棒产物落
<目标目录>/;sid 取法=查宿主库E:/ProgramData/.workbuddy/workbuddy.db的sessions表(按cwd+created_at desc)。--report <sid> --state done --artifact "<路径>":产物读不到⇒硬拒收;落点不在目标目录只给软提醒。 - 🔴🔴 目标目录名:新目标一律按机制口径(回源码
goal_dir_name()):取short or title→ 去掉\/:*?"<>|→ 去空格 →[:20]→ 后缀sha1(title)[:6]。⚠️ 存量全称口径的旧目录保持原样、⛔ 不改名(改名会断台账artifact引用)。⇒ 开新目标时先按上式算准;goal.json.execution_doc是同一套口径,必须与它一致(切目标后若没跑--ensure-goal-dir,它会仍指着上一个目录 ⇒ 检查会话会拿旧目标文档判新目标,须手工对齐)。 - ⚠️ 检查棒模板与现场的两处不符(2026-10-11 实测):工作区根没有
state.py(模板第 1 项跑不出来,用goalctl.py默认输出顶替);taskgraph.json不存在(模板第 3 项)⇒ 三路判定实际只跑两路,靠状态文档补齐。