admin
|
7a476f9400
|
术语更名第一步:执行会话/任务会话 ⇒ 项目会话(口径块 + 触发词表)+ 落地 9 份"说人话"新稿
一、用户令(逐字)
1. `1、A 方案`
2. `把会话技能中 执行会话(协作会话)改为 项目会话 # 用法改为输入 使用项目会话完成目标:XXXXX`
二、A 方案:只落"说人话"新稿 —— ⚠️ 实测**只能落 9 份**,7 份必须合并
· 16 份新稿(`contentm_agent` 那条目标产出)逐份比对现文件:**9 份差异只在措辞**(0~2 行)⇒ ✅ 已落地,
逐份 md5 与稿子一致;**原件已备份**到 `待清理/技能包-说人话落地前备份-20261008/`。
· 🔴 **7 份现文件含稿子里没有的内容**(最多的少 106 行!)—— 且 `stage-delivery/SKILL.md`、
`execution-runbook.md`、`SKILL.md` 是**今天 15:28/15:29 刚被别的会话改过** ⇒ 直接覆盖会**丢掉今天的新内容**。
⇒ 按「改技能包前先看别人在途改动、⛔ 别硬覆盖」的规定**没动这 7 份**,留待合并(见回复待拍板项)。
三、术语更名(先落低风险那一半,让新用法今天可用)
· `SKILL.md` 第一屏加**术语更名口径块**:**项目会话(现行)= 任务会话(旧称)= 执行会话/协作会话(更旧称)**,
新文字一律用「项目会话」;⛔ 三个词的旧正文**按本块读**(同 10-02 那次的做法)。
· 三类会话表里那一行改为「**项目会话**(旧称任务会话/执行会话)」。
· 第 0 步触发句加 **`使用项目会话完成目标:XXXXX`**(用户口径的现行写法)。
· `skill-load-guard.py` 的词表**加**项目会话族(`使用项目会话`/`项目会话完成`/`项目会话`/`创建项目会话`/`派项目会话`),
⛔ **旧词一个不删**(用户与新会话都可能用旧词,收窄词表=把已授权的触发句漏掉,本项目栽过)。
复核:`使用项目会话完成目标:XXXXX` 命中 `['使用项目会话','项目会话完成']` ✓;`用执行会话完成 X` 仍命中 ✓。
· 🔴 **机器前缀 `[执行]` 暂不变** —— 它是角色解析与看板的键(`parse_session_name`/`board.py::_role_of_title`/
在跑的排期名),属影响面变更,**等用户拍板**。
· ⚠️ **全量更名尚未做完**:实测 **416 处 / 22 个文件**(`collabd.py` 71 / `selftest.py` 63 / `SKILL.md` 50 /
`board.html` 46 / `pitfalls.md` 36 / `board.py` 33 …)⇒ 按机制自己的三类规矩(注释文档 / `@case` 标题 / 看板文案)逐步收尾。
四、验收
selftest.py rc=0 PASS 106 / FAIL 0;manifest 76 份、语法失败 0。
|
2026-10-08 22:11:35 +08:00 |
|
admin
|
1ca0a637a6
|
术语更名第一步:执行会话/任务会话 ⇒ 项目会话(口径块 + 触发词表)+ 落地 9 份"说人话"新稿
一、用户令(逐字)
1. `1、A 方案`
2. `把会话技能中 执行会话(协作会话)改为 项目会话 # 用法改为输入 使用项目会话完成目标:XXXXX`
二、A 方案:只落"说人话"新稿 —— ⚠️ 实测**只能落 9 份**,7 份必须合并
· 16 份新稿(`contentm_agent` 那条目标产出)逐份比对现文件:**9 份差异只在措辞**(0~2 行)⇒ ✅ 已落地,
逐份 md5 与稿子一致;**原件已备份**到 `待清理/技能包-说人话落地前备份-20261008/`。
· 🔴 **7 份现文件含稿子里没有的内容**(最多的少 106 行!)—— 且 `stage-delivery/SKILL.md`、
`execution-runbook.md`、`SKILL.md` 是**今天 15:28/15:29 刚被别的会话改过** ⇒ 直接覆盖会**丢掉今天的新内容**。
⇒ 按「改技能包前先看别人在途改动、⛔ 别硬覆盖」的规定**没动这 7 份**,留待合并(见回复待拍板项)。
三、术语更名(先落低风险那一半,让新用法今天可用)
· `SKILL.md` 第一屏加**术语更名口径块**:**项目会话(现行)= 任务会话(旧称)= 执行会话/协作会话(更旧称)**,
新文字一律用「项目会话」;⛔ 三个词的旧正文**按本块读**(同 10-02 那次的做法)。
· 三类会话表里那一行改为「**项目会话**(旧称任务会话/执行会话)」。
· 第 0 步触发句加 **`使用项目会话完成目标:XXXXX`**(用户口径的现行写法)。
· `skill-load-guard.py` 的词表**加**项目会话族(`使用项目会话`/`项目会话完成`/`项目会话`/`创建项目会话`/`派项目会话`),
⛔ **旧词一个不删**(用户与新会话都可能用旧词,收窄词表=把已授权的触发句漏掉,本项目栽过)。
复核:`使用项目会话完成目标:XXXXX` 命中 `['使用项目会话','项目会话完成']` ✓;`用执行会话完成 X` 仍命中 ✓。
· 🔴 **机器前缀 `[执行]` 暂不变** —— 它是角色解析与看板的键(`parse_session_name`/`board.py::_role_of_title`/
在跑的排期名),属影响面变更,**等用户拍板**。
· ⚠️ **全量更名尚未做完**:实测 **416 处 / 22 个文件**(`collabd.py` 71 / `selftest.py` 63 / `SKILL.md` 50 /
`board.html` 46 / `pitfalls.md` 36 / `board.py` 33 …)⇒ 按机制自己的三类规矩(注释文档 / `@case` 标题 / 看板文案)逐步收尾。
四、验收
selftest.py rc=0 PASS 106 / FAIL 0;manifest 76 份、语法失败 0。
|
2026-10-08 22:10:12 +08:00 |
|
admin
|
a7bf194ee7
|
manifest:移出两个 .bak 备份后重算(76 份;包体卫生那条判据恢复绿)
|
2026-10-08 08:50:36 +08:00 |
|
admin
|
5ba958f7fb
|
关停程序改为「传哪些就关哪些」:--ws 支持多区 + 认短名;一键开关加"只停指定"
一、用户令(逐字)
「把关停程序改为 传参数的形式,传那些就关那些,每次都出问题这里」
二、根因(两处,都不在"能不能停"上)
1. 🔴 **双击入口只有"全部停止"**:`会话机制-一键开关.bat`(工作区根 + 桌面各一份)原先只有
1 全部启动/2 全部停止/3 看状态 ⇒ **没有任何"只停某些"的口子** ⇒ 每次关停都会**连全局看板、
连别的区一起停** ⇒ 这正是用户说的「每次都出问题这里」。
2. 🔴 **`--ws` 实测只认全路径**:原判据拿参数与 `E:/…/vibe-product` 整串比 ⇒ 传短名 `vibe-product`
**一个都匹配不上**,直接报「不在管辖名单里」并停手(用户要"传哪些"时当然写短名)。
3. ⚠️ 顺带核实:管辖名单里的 `contentm_agent` **不是陈旧项** —— 该工作区已于 2026-10-08
由 `content_marketing_agent` 改名为 `contentm_agent`(旧目录留 `.RETIRED-20261008`)⇒ ⛔ 没动它。
三、改法
1. `collabctl.py`:
· `--ws` 支持**多个**(`--ws a,b`,或多次 `--ws a --ws b`);
· 区名匹配改为**全路径或短名都认**(`_k1` 全路径/`_k2` 末段),并对不在名单里的项**逐条提示跳过**;
· `cmd_off` 头两行改成**先报作用面**(「只关这些 …」/「全部(含全局看板)」),
收尾文案由「一键全关」改为「关停」,避免与"只关一部分"混淆。
2. `会话机制-一键开关.bat`(**两份同步**:工作区根 + 桌面):
· 菜单加 `4 = 只停指定工作区(可多个用逗号分隔,⛔ 不动看板与其它区)`;
· 新增**免交互参数模式**:`会话机制-一键开关.bat off vibe-product,contentm_agent`(⛔ 不动看板)。
四、验证(只读)
· `status --ws "vibe-product,contentm_agent"` ⇒ 作用面**只收敛到这两个**(看板段为空=未触碰)✓;
· `status --ws "E:/ProgramData/AIProject/contentm_agent"` ⇒ 旧的全路径写法**仍可用** ✓;
· `selftest.py` rc=0 **PASS 106 / FAIL 0**;manifest 76 份、语法失败 0。
· ⛔ 不需要分发/重启(`collabctl.py` 由 `.bat` 与计划任务直读技能目录)。
|
2026-10-08 08:48:29 +08:00 |
|
admin
|
8a69dced90
|
关停程序改为「传哪些就关哪些」:--ws 支持多区 + 认短名;一键开关加"只停指定"
一、用户令(逐字)
「把关停程序改为 传参数的形式,传那些就关那些,每次都出问题这里」
二、根因(两处,都不在"能不能停"上)
1. 🔴 **双击入口只有"全部停止"**:`会话机制-一键开关.bat`(工作区根 + 桌面各一份)原先只有
1 全部启动/2 全部停止/3 看状态 ⇒ **没有任何"只停某些"的口子** ⇒ 每次关停都会**连全局看板、
连别的区一起停** ⇒ 这正是用户说的「每次都出问题这里」。
2. 🔴 **`--ws` 实测只认全路径**:原判据拿参数与 `E:/…/vibe-product` 整串比 ⇒ 传短名 `vibe-product`
**一个都匹配不上**,直接报「不在管辖名单里」并停手(用户要"传哪些"时当然写短名)。
3. ⚠️ 顺带核实:管辖名单里的 `contentm_agent` **不是陈旧项** —— 该工作区已于 2026-10-08
由 `content_marketing_agent` 改名为 `contentm_agent`(旧目录留 `.RETIRED-20261008`)⇒ ⛔ 没动它。
三、改法
1. `collabctl.py`:
· `--ws` 支持**多个**(`--ws a,b`,或多次 `--ws a --ws b`);
· 区名匹配改为**全路径或短名都认**(`_k1` 全路径/`_k2` 末段),并对不在名单里的项**逐条提示跳过**;
· `cmd_off` 头两行改成**先报作用面**(「只关这些 …」/「全部(含全局看板)」),
收尾文案由「一键全关」改为「关停」,避免与"只关一部分"混淆。
2. `会话机制-一键开关.bat`(**两份同步**:工作区根 + 桌面):
· 菜单加 `4 = 只停指定工作区(可多个用逗号分隔,⛔ 不动看板与其它区)`;
· 新增**免交互参数模式**:`会话机制-一键开关.bat off vibe-product,contentm_agent`(⛔ 不动看板)。
四、验证(只读)
· `status --ws "vibe-product,contentm_agent"` ⇒ 作用面**只收敛到这两个**(看板段为空=未触碰)✓;
· `status --ws "E:/ProgramData/AIProject/contentm_agent"` ⇒ 旧的全路径写法**仍可用** ✓;
· `selftest.py` rc=0 **PASS 106 / FAIL 0**;manifest 76 份、语法失败 0。
· ⛔ 不需要分发/重启(`collabctl.py` 由 `.bat` 与计划任务直读技能目录)。
|
2026-10-08 08:47:55 +08:00 |
|
admin
|
fca5a084ce
|
检查程序静默阈值:6 → 3 分钟(用户当日第三次调整)
用户令逐字:「把 检查程序等待时间 改为3分钟,现在应该是6分钟」。
调整轨迹:**20 → 10 → 6 → 3**(分别是当日 09:xx / 18:25 / 本次 02:4x 三次用户指令)。
改法(四处同源,⛔ 少改一处就会出现「判据说 3、写给检查会话的文案说 6」):
1. 常量 `CHECK_IDLE_MIN`:6 → 3;
2. `CHECK_PROMPT_GOAL` 里写给检查会话看的文案:`已静默 ≥6 分钟` → `≥3 分钟`;
3. 注释/文档:`# 【目标检查】` 那行、`_last_progress_ts` docstring、
`references/supervise-persistence.md` §六、`selftest.py` 的口径说明。
⚠️ 另有两处「留痕注释」(写"两度拍板"、"由 20 改 10")本轮**没能改到** ——
实测那两行的当前文本与上一轮 grep 到的已不一致,怀疑**另一个会话正在改同一批文件**
(该区当前目标就叫「技能包规则文件已全量过说人话」)⇒ ⛔ 不硬改(避免与它打架),如实留待下轮核对。
判据:`selftest.py::t_check_idle_min` 守的是「常量/闸门/试算/文案四处同源」(⛔ 不锁具体数值)
⇒ 本次改动后仍绿,等于自动证明四处都已是 3。
验收:selftest.py rc=0 PASS 106 / FAIL 0;manifest 76 份、语法失败 0。
|
2026-10-08 02:42:13 +08:00 |
|
admin
|
2ed7766007
|
说人话落地:加每轮注入 + 英文硬核版整包纳入 + 第①段补写作口径
一、用户令(逐字)
「humanizer(英文那份) 也要纳入」「重点就是做到说人话就行了」「但是 content_marketing_agent 的会话生成的文档并没有说人话,还是我手动要求的」
二、根因(两处,都不是"没整合")
· **语气那一档只有指针、没有注入** ⇒ 实测没被读到(`SKILL.md` 必读表标题原写「三篇」而表里有 4 行,
第 4 项=作业规矩整包,被顶在"必读"之外;已订正为「四类」)。
· **写文档的执行会话那条链上一句写作口径都没有** —— 产品规划技能里「反 AI 味」只出现在**第③段界面**
(且指的是界面不是文字),**第①段出文档那节零口径** ⇒ 产物自然是 AI 味。
三、改法
1. **每轮注入**(照排版那条现成机制,⛔ 不改 `main()`):
· `04-去AI味与说话方式.md` 顶部加 `<!-- VOICE-CORE -->` 紧凑块(≈450 字符:核心原则/四种高频 AI 味/交付前三问);
· `reply-style-guard.py` 里**原地重定义** `_core`(`_core_reply = _core` 后用新 `_core` 包住它并追加语气块)
⇒ 注入正文自动多一段,排版那条**不受影响**。
2. **产出侧补口径**:`product-planning` 第①段(stage-discovery)在 1b 表后新增「写作口径」块 ——
落笔前读 `humanizer-zh` 或本包 04,**定稿前过「交付前快速清单」**,并列出六种禁用 AI 味;**适用本段全部五份产出**。
3. **英文硬核版整包纳入**:原独立技能 `humanizer` **逐字**搬入本包 `references/humanizer-en/`(6 文件、
md5 逐个一致):55 个模式 + 5 种语气档 + 0–100 AI 痕迹打分 + `--file` 就地改;
在 `04 §9` 关系表与 `SKILL.md` 对应物段登记(冲突以本包会话场景版为先)。
四、验收
· 新增 `selftest.py::t_voice_core`(4 项);全量 **PASS 106 / FAIL 0**;manifest 70 → **76** 份、语法失败 0。
· 端到端喂真钩子:注入正文已含说人话块、排版块仍在。
· ⛔ 改的是钩子与技能目录(宿主直读)⇒ **不需要分发/重启**。
|
2026-10-07 22:00:13 +08:00 |
|
admin
|
7ec94b63d3
|
必读表标题订正:「先看这三篇」→「先看这四类」(第 4 项被顶在"三篇"之外、常被跳过)
起因(用户问「说人话技能 加载会话基础规则中了吗」)⇒ 查证发现:
`SKILL.md` 第一屏那张必读表**标题写着「先看这三篇」,而表里实际有 4 行** ——
第 4 项就是 `references/作业规矩/`(一整包,`04-去AI味与说话方式.md` 说话方式/语气就在里面)
⇒ 标题把读者框在"前三篇"里,**第 4 项等于被跳过** ⇒ 语气那一档自然进不了上下文。
改法:
· 标题 → 「先看这**四类**」;
· 表后补一句点明:**第 4 项是一整包(四份)**,其中 `04-去AI味与说话方式.md` 管**语气**、
`03-回复排版-核心块.md` 管**结构**(那一份的核心块由排版钩子**每轮自动注入**);
· 留痕写上这次是哪个问题查出来的。
⚠️ 本轮**只订正"读得到"这一层**:说话方式目前仍属**按需读**(04 里没有任何注入标记,钩子也不读它)
—— 要不要照 `03` 的现成机制把它也做成**每轮注入**,是另一件事(涉上下文成本),已列为待拍板项。
验收:selftest.py rc=0 PASS 105 / FAIL 0;manifest 70 份、语法失败 0。
|
2026-10-07 21:34:16 +08:00 |
|
admin
|
537f15f119
|
必读表标题订正:「先看这三篇」→「先看这四类」(第 4 项被顶在"三篇"之外、常被跳过)
起因(用户问「说人话技能 加载会话基础规则中了吗」)⇒ 查证发现:
`SKILL.md` 第一屏那张必读表**标题写着「先看这三篇」,而表里实际有 4 行** ——
第 4 项就是 `references/作业规矩/`(一整包,`04-去AI味与说话方式.md` 说话方式/语气就在里面)
⇒ 标题把读者框在"前三篇"里,**第 4 项等于被跳过** ⇒ 语气那一档自然进不了上下文。
改法:
· 标题 → 「先看这**四类**」;
· 表后补一句点明:**第 4 项是一整包(四份)**,其中 `04-去AI味与说话方式.md` 管**语气**、
`03-回复排版-核心块.md` 管**结构**(那一份的核心块由排版钩子**每轮自动注入**);
· 留痕写上这次是哪个问题查出来的。
⚠️ 本轮**只订正"读得到"这一层**:说话方式目前仍属**按需读**(04 里没有任何注入标记,钩子也不读它)
—— 要不要照 `03` 的现成机制把它也做成**每轮注入**,是另一件事(涉上下文成本),已列为待拍板项。
验收:selftest.py rc=0 PASS 105 / FAIL 0;manifest 70 份、语法失败 0。
|
2026-10-07 21:33:44 +08:00 |
|
admin
|
e378db6af9
|
检查任务要「确认并写回验收」(用户令:不是拦截)+ 新判据
一、用户令(逐字)
「不是拦截 是检查任务要确认这种情况」—— 否掉了「加闸拦住『验收未过却标已完成』」那条路,
改成把**确认责任**落到检查任务本身。
二、病根(前置排查结论,见当日日志 §24)
· 权威文档(`目标执行状态.md`)写「5 条全过」,而 `goal.json.acceptance_state` 仍是「全未过」
⇒ 检查会话按 prompt 指定的**文档**判「做完了」并标了「已完成」⇒ 看板按**机读副本**渲染 ⇒ 显示自相矛盾。
· 检查会话本身**没做错**(prompt 三路取并集里就有验收那一路);断点是
**它有判验收的职责、却没有写回验收的动作**("有读者、没写手")。
· 次生:副本里写的是「未过」,**不在机制定义的取值域**(`过|…`/`🔴 不过|…`/`待重验(…)`)里
⇒ 机器分不出「还没判」与「判了没过」。
三、改法(只动 prompt,⛔ 不加闸、⛔ 不新增占位符)
`CHECK_PROMPT_GOAL` 第三节第 3 条改为「**做完了 ⇒ 先确认并写回验收,再改状态**」:
· 逐条读文档结论 → 与机读副本对一遍 → 不一致**以文档为准、改齐**;
· 写明写回手段=同目录 `goalctl.py declare --kpi "判据A=过|依据;判据B=过|依据"`(⚠️ **按分号切**);
· 要求**写完回读一次**(⛔ 不许「以为写成功了」—— 本项目栽过「命令不存在却 rc=0 静默放行」);
· 要求**规范取值**,⛔ 禁 `未过`/`pass` 这类域外值;
· 确认确实没过 ⇒ 继续派活,⛔ **不许标已完成**。
四、判据
新增 `selftest.py::t_checker_confirms_acceptance`(6 项,源码级):确认职责 + 写回手段 +
分号分隔 + 回读 + 取值域 + 没过不标完成。
验收:selftest.py rc=0 PASS 105 / FAIL 0(改前 104);manifest 70 份、语法失败 0。
|
2026-10-07 21:07:05 +08:00 |
|
admin
|
976abbd71a
|
订正两处陈旧表述:agent-operating-rules 已并入删除;补记 humanizer-zh 为可选增强
起因(用户问「说人话技能 有整合到技能中吗」)⇒ 查证时发现会话技能里两处**现行表述**仍指着已删除的东西。
一、`SKILL.md`:「⛔ 已无必需外部依赖」那段的末句写着
「📌 **那个技能**若同时装着,属可选增强(多了跨项目排版/去 AI 味的完整版),⛔ 不装也能跑」——
而那个技能(`agent-operating-rules`)**已于 2026-10-06 整包并入本包并删除** ⇒ 照旧句去找必然扑空。
已订正为:明确指出它已并入删除,并列出本包自带的对应物
(排版 → `references/03-回复排版-核心块.md`;语气/去 AI 味 → `references/作业规矩/04-去AI味与说话方式.md`)。
二、`references/作业规矩/04-去AI味与说话方式.md` §9「与其他规则的关系」:原来只列了
「入口 §2 排版契约」「本参考」「协作与提报判据」三项,**没提独立技能 `humanizer-zh`**。
已补一行:通用版在 `humanizer-zh`(示例更全,19 KB),本包那份是**会话场景加固版**(多 4 节:
中文会话专属加固 / 交付前清单 / 质量评分 / 完整示例)⇒ 两处同时装着时**以本包为先**;⛔ 不装也能跑。
验收:selftest.py rc=0 PASS 104 / FAIL 0;manifest 70 份、语法失败 0。
|
2026-10-07 21:04:07 +08:00 |
|
admin
|
4ec25125d1
|
技能库本目录改建为 git 工作区(用户令「就在这个下面建立 git 推送就行」)
一、做法
把 E:/ProgramData/.workbuddy/skills 本身初始化为仓库(⛔ 不再用外部暂存目录),
远端=[email protected]:admin/workbuddy_skills.git;取回远端历史后只补差异。
二、仓库级配置(含一处**有意偏离**旧仓约定)
· core.autocrlf = **true**(旧仓是 false)。理由:本目录是 **Windows 原生工作区**(文件是 LF/CRLF 混合),
而仓库里存的是 LF ⇒ 用 false 时 `git status` 报 **196 处"修改"**,实测**全是行尾**;
改成 true 后降到 **16 处**,剩下的才是真差异。⛔ 否则一次提交会把几百个文件的行尾改掉。
身份:maogeigei <[email protected]>。
三、本次提交
· `.gitignore` 扩充(按实测盘点补):logs/ · tmp/ · .venv/ · *.egg-info/ · uv.lock · node_modules/ ·
.workbuddy/ · 四个宿主迁移标记 JSON(宿主每次启动可能重写,⛔ 不是内容)。
· `oil-ui-pro/SKILL.md`:把描述里的「不用于 A/B/C」改成「正向用途 + 一句邻接边界」
(与 2026-10-07 `rules.md §9`「只写正向范围」同一条口径)。
⛔ 本轮**未纳管**(保持未跟踪,见下一条待拍板):AI HOT · draw-ui · dsh-diagnose · dsh-knowledge ·
dsh-local-env · dsh-opensource-release · dsh-workflow · oil-motion · skills-security-check(共 9 个目录)。
|
2026-10-07 20:46:04 +08:00 |
|
admin
|
61962f1726
|
补入本地今日改动:session-mechanism + product-planning(按用户令改推本仓库)
背景:旧远端 work.alotbuy.com 今天一直连不上(222/22 端口都不通)⇒ 今天本地累积多条提交推不上去;
用户令改推本仓库 [email protected]:admin/workbuddy_skills.git(只推这 5 个技能:
browser-harness / humanizer / humanizer-zh / product-planning / session-mechanism)。
本次改动(对照本机已安装的技能源逐文件 md5 比对得出,⛔ 是「补差异」不是「整体覆盖」):
· session-mechanism:含今天两条钩子改动(派活收工闸、点名加载收工闸)、
rules.md §9「只写正向范围」、检查程序静默阈值 10→6、检查排期补 workspace_scope(修未分组)、
以及今天修的三处陈旧指针(旧技能名 dsh-decision / agent-operating-rules 与旧路径编号)。
· product-planning:第③段「随段样式风格库」并入 design-system-tiaoyue、竞品分析方法论重写等。
· humanizer / humanizer-zh:已一致,零改动。
· browser-harness:比对出的 7 个「本地独有」全是**它自己 .gitignore 里就排除的**构建产物
(src/*.egg-info/ 与 uv.lock)⇒ 按该技能自己的规矩不推(用户口径「不要环境」)。
仓库级配置(与旧仓一致):core.autocrlf=false;身份 maogeigei <[email protected]>。
⚠️ 克隆时仓库默认 autocrlf=true(会把行尾转成 CRLF)⇒ 已改回 false 并重新暂存,
核对索引 blob 均为 LF、真实差异 23 个(⛔ 不是把几百个文件一起改掉)。
|
2026-10-07 20:33:49 +08:00 |
|
admin
|
0abd33b3a0
|
补入 oil-ui-pro(上一提交按授权清空时移出,本轮按用户要求加回)
|
2026-10-07 16:06:27 +08:00 |
|
admin
|
777f7fe5d0
|
重开仓库内容:改推五个技能(browser-harness / humanizer / humanizer-zh / product-planning / session-mechanism)
按授权清空原有内容后重新提交(原 oil-ui-pro 一并移出,可从历史恢复)。
browser-harness 剔除 .venv 等运行环境;根 .gitignore 补记 .venv/ 与 node_modules/。
|
2026-10-07 16:06:02 +08:00 |
|
admin
|
9a152a1952
|
加载闸门两处收口:派活族不受冷却 + 冷却跳过留痕(用户问「有什么影响 该如何处理」)
一、影响评估(实测,会话 b232218f)
- 冷却窗口 COOLDOWN=300;旧实现:命中 → 查冷却 → 落在窗口内就 return,**且只在注入成功后才写日志**。
- 后果两条:
① 01:32:00 命中后,**01:33:46 那条最明确的触发句**(「每次我说使用执行会话完成目标…」)
距上次仅 105 s ⇒ **被吞掉,那一轮 AI 收不到任何提醒**;
② 被吞掉**连一行痕迹都没有** ⇒ "没命中"与"被吞"在日志上分不出来,排查只能靠状态文件时间戳反推。
- ⚠️ 危害已被 2026-10-07 新增的「派活收工闸」**部分补偿**(待办标记写在冷却之前 ⇒ 不受冷却影响,
仍会在收工前拦一次);剩下的是"口头提醒缺失"与"日志盲点"。
二、处置(两处,都在 skill-load-guard.py)
1. 抽出共用的 `_is_dispatch()`;冷却旁路改为
`if _cooling(workdir, sid) and not _is_dispatch(prompt):`
⇒ **派活族显式触发句不受冷却**(其余词照旧受)。
2. 被跳过时写一行 `COOL_SKIP sid=… hits=…(冷却中,本轮不注入)` ⇒ 抑制态不再隐身。
三、判据与验证
- 新增 selftest 用例 t_skillguard_cooldown(3 项,**源码级** —— 跑真钩子会动到真工作区的冷却状态,
⛔ 不适合进回归套)。
- 另做了一次**行为级**验证(外部脚本,用真作用域内的工作区、测前备份冷却状态、测后还原):
5/5 通过 —— 非派活首次注入 ✓/非派活冷却中不注入 ✓/**派活族冷却中仍注入 ✓**/
日志有 COOL_SKIP ✓/日志有 DISPATCH_PENDING ✓。
- ⚠️ 该验证脚本第一版**读日志读错**:`log_before` 是字节数却按字符切片 ⇒ 误判成"日志没写"。
改成按字节 seek 后全绿(同族坑:本项目已记过"字节 vs 字符")。
验收:selftest.py rc=0 PASS 103 / FAIL 0(改前 102);manifest 70 份、语法失败 0。
|
2026-10-07 08:15:31 +08:00 |
|
admin
|
1a0cd14c91
|
排版核心块:明确「当前状态:」是小标题、每件事只写一次(⛔ 不许每条圆点都带前缀)
一、起因(用户点破逐字)
「为什么每句话 前面都要加「当前状态:」,我的记得 应该是
当前状态:
段落XXXXX
段落XXXXX」
⇒ 我把「当前状态」读成了**每条圆点的前缀**,连着好多轮都这么写。
二、根因:注入源那句话本身写得含糊
原句:「每件事先写「当前状态」(**每条一个圆点**,用**一句陈述句**说重点…)」——
「每条一个圆点」是附着在「当前状态」下面的,但读起来也能读成"每条都写当前状态"。
⚠️ 对照:本区 `CODEBUDDY.md` 那条**本来写得很清楚**(「每件事写两段:**当前状态** + **待处理事项**」
+「**当前状态**:每条一个**圆点**」)—— 两份文本不一致,而**每轮注入的是含糊的那份** ⇒ 含糊的那份赢。
三、改法
1. `references/03-回复排版-核心块.md` 的骨架那条重写为三行:
· 骨架:`# 大类别` → `## 具体事项` → **每件事写两段:`当前状态:` + `待处理事项:`**;
· 🔴 **这两个小标题各占一行、每件事只写一次**;⛔ **不许在每条圆点前面都加「当前状态:」**;
· `当前状态:` 下面**每条一个圆点**(`- `)…;`待处理事项:` 下面用序号 `1、2、3、`。
核心块 1091 → 1287 字符(⛔ 它每轮都注入,已压紧到三行)。
2. 走注入器刷新**本区环境文件**:`apply-reply-rules.py --ws <本区> --apply`
⇒ 回读一致 ✅(写前自动备份 `CODEBUDDY.md.bak-replycore-20261007-080319`)。
验收:selftest.py rc=0 PASS 102 / FAIL 0;manifest 70 份、语法失败 0;
`apply-reply-rules --check` 报「一致 ✅」。
|
2026-10-07 08:05:12 +08:00 |
|
admin
|
a3935b5fc5
|
修「检查会话落到未分组」+ 检查程序静默阈值 20 → 10 分钟
一、检查会话跑到未分组(用户报障逐字)
「vibe-product 的检查会话没有创建到工作区下,跑到未分组的会话中去了」。
根因(实测坐实):collabd.py::create_check_schedule() 的 INSERT **少了 workspace_scope 列**
⇒ 落库 NULL ⇒ 排期触发出来的会话被宿主当**游乐场**建
(sessions 行:is_playground=1 + source_mode='craft' + use_sandbox_cli=0)⇒ 不进工作区分组。
对照读数(同一晚两条排期):会话侧 automation_update 建的是 'workspace' ✓,
机制自建的是 None ❌;近 3 天 59 条排期里只有机制那条是 None。
修法:INSERT 补 workspace_scope 并以 'workspace' 落库。
配套:新增 selftest 用例 t_check_schedule_scope(3 项),含变异对照
(把列删掉 ⇒ 报红;还原 ⇒ 逐字节一致)。
二、检查程序等待时间 20 → 10 分钟(用户令逐字)
「把检查程序的等待时间由 20分钟 改为 10分钟」。
改法:新增常量 CHECK_IDLE_MIN = 10,**闸门与 --dry-run 试算都读它**(原来两处各写死 20);
并同步**写给检查会话看的 prompt 文案**(≥20 → ≥10)与 4 处注释/文档
(references/supervise-persistence.md §六;顺带订正该节「基准取台账 tasks.json 的 mtime」——
与代码不符,实际是「本工作区排期的 updated_at 最大值」)。
配套:新增 selftest 用例 t_check_idle_min(4 项,**不锁数值**、只锁"常量/闸门/试算/文案同源"),
含变异对照(把文案改回 20 ⇒ 报红)。
三、旧数据归位与分发
- 今晚那条歪掉的检查会话已改回工作区档(is_playground 1→0、source_mode craft→work、
use_sandbox_cli 0→1;排期 workspace_scope → 'workspace');改前原值已备份到
归档/检查会话归位-20261007/;PRAGMA integrity_check = ok。
- 副本分发:ai1net-dsh-server 与 vibe-product 各 7 个文件;两区常驻已重启
(判据=心跳 started_h 07:54:35 / 07:54:37,晚于分发时刻 07:54:07)。
验收:selftest.py rc=0 PASS 102 / FAIL 0(改前 99);manifest 70 份、语法失败 0。
|
2026-10-07 07:55:29 +08:00 |
|
admin
|
9a665039a9
|
派活触发句收工闸:说了就必须把执行会话拉起来(实测栽过,补机器抓手)
一、起因(用户令逐字)
「重点问题是 会话接收到 调用执行会话完成目标 没有去调用对应技能去执行」。
实测会话 b232218f(vibe-product):用户 01:32:00 / 01:33:46 两次说触发句,
到 01:36:27 才建出排期 —— 中间那一轮 AI 只在回复里解释口径,没拉起执行会话。
根因:机制里**只有 "注入提醒"**,⛔ 没有任何机器抓手检查"到底做没做"。
二、改法(发现 → 拦住,两步)
1. scripts/hooks/skill-load-guard.py:命中**派活族**触发句时写一条待办
<工作区>/.workbuddy/.dispatch-pending(会话 id / 时间戳 / 命中词)。
⚠️ 写在**冷却判定之前** —— 实测 01:33:46 那条最明确的触发句正被 300 s 冷却吞掉,
写在冷却之后就等于"最该拦的那一条反而没有标记"。
⚠️ 比对前**去掉空白**:用户写的是「应该使用 执行会话的技能去完成工作」(中间有空格)。
⛔ 不把裸词「执行会话」算进派活族(太宽,讨论机制时也出现)⇒ 误报面保持最小。
2. scripts/hooks/stop-dialog-guard.py:新增收工前闸 —— 同会话 + 超 90 s 宽限 +
宿主库该区此后**没有**新建排期 ⇒ 返回 {"continue": false} 拦一次,逼它先建排期。
⚠️ 必须放在**自作用域判定之前**(那条作用域只认本工作区,而栽的会话在 vibe-product)。
⛔ 三条安全底线:① 全程 fail-open(读不到库/解析失败/任何异常 ⇒ 一律放行);
② 只拦一次(复用本文件 10 分钟限流);③ 待办 30 分钟过期,⛔ 不长期纠缠。
三、判据(新增自测用例,5 项)
selftest.py::t_dispatch_gate —— 派活句留待办(含带空格写法)/非派活句不留/
超宽限且未建排期则拦/宽限内放行。三条断言都确定性,⛔ 不依赖现网存量。
验收:selftest.py rc=0 PASS 100 / FAIL 0(改前 99);
两组外部变异对照(发现侧 3 项、收工闸 4 项)全过;
另实测"10 分钟限流"有效(同一会话重复构造不再重复拦)。
|
2026-10-07 01:47:38 +08:00 |
|
admin
|
f2691e9368
|
移入随包子技能 karpathy-output-ladder(全局 skills 里的原件已移出)
一、为什么
- 用户令:把这个技能复制进会话技能「当作子技能」,用法后续再定;
随后又明确「并从 全局 skills 文件夹中移除」⇒ 全局那份已移出(移进归档,可原样移回)。
二、落在哪、怎么放
- 位置:references/karpathy-output-ladder/(与本包既有的随包子技能同形态:各自带 SKILL.md + 自己的 references/assets)
- 内容:4 个文件(SKILL.md · references/ladder-workflow.md · references/ste100.md · assets/html-template/index.html)
**逐字复制,一字未改**(md5 与原件逐个核对一致)
三、登记(只做到"找得到",⛔ 不接线)
- references/01-文档索引.md 增一行「要把一个话题讲清楚(文字→图→互动页)」→ karpathy-output-ladder/SKILL.md,
并在表下写明:**用法尚未接线**,不参与本包的钩子 / 判据 / 自动加载(用户原话「后续再看如何使用」)
- references/manifest.md 随生成器重算:66 → 70 份文件,语法失败 0
验收:selftest.py rc=0 PASS 99 / FAIL 0;全局 skills 顶层已无 karpathy-output-ladder;
会话技能内 4 个文件与原件 md5 逐个一致。
|
2026-10-07 01:26:47 +08:00 |
|
admin
|
9721876f08
|
新增两个技能(product-planning / oil-ui-pro)+ 作业规矩交叉引用跟到新落点
一、新增技能
- product-planning(253 文件):四阶段产品方案流水线(调研方案 / 需求结构 / 界面交付 / 说明文档),
含 references/stage-* 与内置的 diagram-design 子技能、scripts/
- oil-ui-pro(26 文件):UI/UX 设计 · 评审 · 多风格对比,含 assets/style-explorer.html、scripts/shoot.mjs、tests/
二、session-mechanism 收尾(承接 e5dfb6e)
- references/作业规矩/03-多棒接力编排.md、04-去AI味与说话方式.md:交叉引用表里的「参考 01」改为新落点
(该不该问/结论骨架 → references/02-功能优先协作协议.md;回复排版 → references/03-回复排版-核心块.md)
- references/manifest.md 随生成器重算(含上述两行的 md5 与字节数)
三、入库前检查
- 三个技能内均无令牌 / 私钥 / 密钥赋值;.neodata_token 类落点已由 .gitignore 挡住
- 无运行期产物混入(logs/ · tmp/ · __pycache__ · *.log)
- 暂存 282 个文件 = 279 新增(253 + 26)+ 3 修改
|
2026-10-07 00:48:07 +08:00 |
|
admin
|
e5dfb6e4ef
|
发布:常驻文档按现行形态重写 + 作业规矩/01 先并后删
一、常驻机制文档 references/supervise-persistence.md(整份重写 410→469 行)
- 照抄段由废弃的 start-supervise.ps1 形态,改为现行形态:
计划任务 collabd-keepalive-<区>(每 5 分钟)→ pythonw.exe → supervise-launch.py → collabd.py --supervise
- 旧 ps1 形态整体降级为「§四 旧形态留痕」(逐条标 🟠,内容一字未删,供读老日志/老进程用)
- 判据订正:LastTaskResult 在长驻运行中是 267009(旧口径「必须 0」属"跑一次就退"时代,已作废);
BOM 那条随 ps1 形态一并降为历史;另两条仍有效(CODEBUDDY_CONFIG_DIR 空库 / WorkingDirectory 必须是工作区根)
- 删除 assets/start-supervise.ps1.tpl —— SKILL.md、manifest.md、collabd.py、selftest.py 四处早已按「该模板已删除」口径,本次把磁盘与文档对齐
二、references/作业规矩/01 先并后删(用户选定 A 方案:不丢内容 + 只剩一处)
- 判据类并入 references/02-功能优先协作协议.md:
§3.2 补「规则冲突裁决顺序」「冲突 ≠ 门禁」;§3.3 补回完整语言转换表(原处"已收敛到通用技能"在并包后成了悬空指针);
§5.3 铁律由五条补到六条 + 接上配套硬红线「只做正向迭代」;新增 §5.5「提报前必答三问 + 回话前自检」
- 排版类并入 references/03-回复排版-核心块.md 的「完整版」段(十四条反模式 / 骨架路由表 / 文案点名主体 / 文档直入主题)
该段放在 REPLY-CORE 标记之外 ⇒ 每轮注入块逐字未变(实测仍 1172 字符)
- 删除 references/作业规矩/01-协作与提报用户判据.md,并跟改 6 处引用(SKILL.md 第一屏表、作业规矩/00 索引表与两处指针、
作业规矩/03-多棒接力编排、00 的 frontmatter 变更记录)——含一处二级指针「见 §6 第 0 条」,已改指 03 完整版段
三、判据与卫生
- pitfalls.md:P0-74 去冗余(7107 → 5982 B,重复叙述合并),「沉淀纪律」由 FAIL 1 转绿
- install.py:manifest_files() 补排 logs/ —— 与它自己「运行日志不入表」的口径一致,否则跑一次钩子表就过期
- .gitignore:补 logs/;撤跟踪 logs/_dr_probe.json(钩子输出转储,全包零引用)
- references/manifest.md 用生成器重算:66 份文件,语法失败 0
验收读数:selftest.py rc=0 PASS 99 / FAIL 0(另 1 条报告型不计入);
session-rules-check.py fail 0 / warn 1("此刻无活会话",正常态)/ ok 13;改动文件行尾全 LF。
|
2026-10-07 00:32:47 +08:00 |
|
admin
|
9fd120f40b
|
整合作业规矩:agent-operating-rules 整包并入本技能 references/作业规矩/
|
2026-10-06 23:44:16 +08:00 |
|
admin
|
119f0084e2
|
删尾巴:dsh-decision 整份删除;活指针全部改指本包
|
2026-10-06 23:21:29 +08:00 |
|
admin
|
93cf1c2b9f
|
会话机制 02:同步「dsh-decision 那份已删(只留指针)」的说法
|
2026-10-06 22:49:58 +08:00 |
|
admin
|
ea4e6d6d58
|
权威统一:提问/排版格式与自决策判据都归位到会话机制包内
起因(用户):「提问拍板格式不应该在会话机制中吗,怎么跑到别的技能中去了」
病根=**权威声明分裂**:
· SKILL.md:963 说 03 号是「内联副本」⇒ 隐指权威在 agent-operating-rules;
· 而 03 号自己头部写着「**这份是权威源**」,且把它说的第②个消费者
`scripts/apply-reply-rules.py` 写成了**不在本包**的路径。
⇒ 同一件事两处说法打架 ⇒ 改的人(我)会把改动做错地方。
处置(统一为「会话机制包内即权威」,与 02/04 两份的既有处置一致):
① 注入器归位:新增 `session-mechanism/scripts/apply-reply-rules.py`,默认读**包内** 03 号;
② 03 号头部改写:权威=本文件,两个消费者都在本包内;
③ `reply-style-guard.py` 第③级兜底从**别的技能**改回包内路径;
④ `agent-operating-rules/references/回复排版-核心块.md` 标注「副本·权威在会话机制」;
⑤ `dsh-decision/references/00-决策方法论.md` 标注「来源·权威在会话机制」;
⑥ SKILL.md:963 措辞由「内联副本」校正为「收进本包并定为权威」。
验收:注入器 `--check` 报权威源=包内 03 号且与 CODEBUDDY.md 一致;
每轮注入 1183 字符(含「竖排」「变相征询」);
**无 CODEBUDDY.md 的干净工作区也能取到**(1185 字符)⇒ 自包含成立。
|
2026-10-06 22:45:43 +08:00 |
|
admin
|
423b16004f
|
排版核心块:待拍板项强制「四行竖排」;补回被误删的 start-supervise.ps1.tpl
1) 起因(2026-10-06 用户):「提问还是不按照提问排版格式来」——
复盘:我上一次把「问题/说明/候选A/候选B/倾向」全塞进一个自然段,
违反既有的「并列内容竖排」。核心块原本只写"逐条编号",
⇒ 本次把**四行竖排**写成明文并给出形样(问题/说明/候选各占独立一行/倾向)。
核心块 835 → 1172 字符。
2) 顺带修:上一轮同步时 `assets/start-supervise.ps1.tpl` 被漏拷而删掉了远端那份,
该文件被 manifest / pitfalls / supervise-persistence / collabd.py / init_workspace.py 五处引用
⇒ 已从 64dd820 取回,本次一并发回。
|
2026-10-06 22:42:15 +08:00 |
|
admin
|
bcb9d1253d
|
decision-rules-hook: 注入补「两个停止点」+「技术方案排序轴」
起因(2026-10-06 用户问):能自决的问题为什么还要问。
复盘发现注入的判据里**缺动作**:
- 缺「十步」的两个停止点 → ① 判类型(方案请求 vs 直接执行)② 判方向(扩大/收窄/中性);
- 缺「自主裁决顺序」的排序轴 → 更小改动 → 更少新增形态 → **不扩大可见面**。
⇒ 前者导致「会扩大可见面」时不停手;后者导致排完仍把已定项混进待拍板清单(=变相征询)。
本次只补这两条动作骨架(1459 → 1906 字符),⛔ 不塞十步全文(避免稀释)。
|
2026-10-06 22:40:05 +08:00 |
|
admin
|
433d43af54
|
decision-rules-hook: 注入补「两个停止点」+「技术方案排序轴」
起因(2026-10-06 用户问):能自决的问题为什么还要问。
复盘发现注入的判据里**缺动作**:
- 缺「十步」的两个停止点 → ① 判类型(方案请求 vs 直接执行)② 判方向(扩大/收窄/中性);
- 缺「自主裁决顺序」的排序轴 → 更小改动 → 更少新增形态 → **不扩大可见面**。
⇒ 前者导致「会扩大可见面」时不停手;后者导致排完仍把已定项混进待拍板清单(=变相征询)。
本次只补这两条动作骨架(1459 → 1906 字符),⛔ 不塞十步全文(避免稀释)。
|
2026-10-06 22:39:51 +08:00 |
|
admin
|
64dd82073b
|
session-mechanism: 修复钩子静默失效 + 3 处判据缺陷;禁「变相征询」
1) stop-dialog-guard: session_budget() 早退路径返回 2 值、末尾返回 3 值,调用方按 3 值解包
⇒ transcript > 64 MiB 时每轮 ValueError。因 fail-open(异常仍 exit 0),
宿主零报错、install.py --verify 只判 rc=0 ⇒ 假绿;实测 86 条 EXCEPTION,
死掉的是整条(水位/收口、接续机制起点、预算告警、门禁自检、路径自检)。
2) session-rules-check 三处判据:
· hook_reg 按旧文件名找 ⇒ 合并成 prompt-guards.py 后每轮假红 ⇒ 改为一组可接受名
· snap_sync 拿 mtime 当内容判据 ⇒ 连续 4 天假红 ⇒ 改为复用抽取器本体比对内容
(变异对照:截断快照能报 fail,非恒绿)
· mem_ptr 只查全局技能根 ⇒ 工作区自带技能被判悬空 ⇒ 改查「全局 ∪ 工作区」
3) pitfalls 新增 P0-95(改判据必须重跑变异对照;fail-open + 只看 rc=0 = 假绿温床)
4) 回复排版核心块新增「变相征询同样禁止」(先只报不动/等你发话/我倾向X你看呢
这类不带选项的待定清单,一律按待拍板项写:问题+说明+各候选优缺点+倾向)
|
2026-10-06 22:27:03 +08:00 |
|
admin
|
19101acd65
|
init: workbuddy_skills 重建,仅收录 session-mechanism
- 按用户指示清空原有 25 技能内容,只提交 session-mechanism(57 文件)
- 附 .gitignore(产物 + 本机凭据)
- 令牌明文已脱敏(历史 .neodata_token 与 pitfalls 引用均不入库)
- 本提交为孤儿提交(父提交为空),历史自此重新开始
|
2026-10-05 14:13:24 +08:00 |
|