6 Commits
Author SHA1 Message Date
admin 5004909267 提问规则审计 + 撤出本机生成的两份契约 + 「一律用肯定表述」落进注入面
用户 10-09 三条令:
①「那两份 不说具体 我怎么知道,看看会话提问的规则是否有缺陷」
②「A 方案」(撤出 session-mechanism/roots.env 与 references/manifest.md)
③「要用确定XXXX 这样的描述,避免 不要XXXXX 会导致上下文干扰的描述,除了经验沉淀和红线避坑外」
   +「不只是修改 创建生成时也需要遵守」

一、提问规则审计(三条缺陷,全部修掉)
1、判据用错了维度:旧措辞「⛔ 提问正文不许出现的:包名·环境变量·文件路径·commit/sha·表名/字段名·
   类名/函数名」是按**词性**一刀切,而同一段末尾又写「正文只留能决定下一步的内容」⇒ 两句自相矛盾。
   我按前半句执行、把要撤的文件名删成了「那两份」⇒ 待拍板项不可答。
   ✅ 改成按功能判:**少了这个标识,用户还能不能决定** —— 不能 ⇒ 写进正文;能 ⇒ 删、下沉技术附录。
2、同一判据散在 6 处、措辞各不同(违反本项目自己的「禁重复判定标准」):已收敛到同一句判据,
   并互相标注「改这里必须同批改」。
3、🔴 最隐蔽:**每轮注入的那份 ≠ 包内那份**。钩子 `_core()` 是三级回退,① **本工作区
   CODEBUDDY.md 的 `REPLY-CORE` 段**才是每轮注入的(包内那份只是换机器的兜底)。
   我先只改包内 ⇒ 注入的仍是旧条文,而"文件都改了、自测全绿",看不出来。
   ⇒ 两份都改 + 新增防漂移自测 `t_reply_core_same_source`(两份实质内容必须逐字一致)。

二、撤出两份「本机生成」的契约(用户选 A)
- `git rm --cached session-mechanism/roots.env` 与 `session-mechanism/references/manifest.md`
  —— **本地文件一律保留**(实测 624 B / 18 568 B 仍在)。
- 为什么必须撤:别的电脑取仓时「同名覆盖」会把它们换成**我们这台机器**的路径 ⇒ 那台机器的
  机制脚本去找不存在的目录。
- 新增入库样例 `session-mechanism/roots.env.example`(占位符,无本机路径)。
- `.gitignore`:加这两份的忽略行(⛔ 防 `git add -A` 捎回),并改掉原「刻意入库」那段注释。

三、「一律用肯定表述」写进注入面(原来只在 rules.md,注入面看不到)
- 口径:**写或改技能与规则文件时一律写"要什么、怎么做";新建、生成时同样适用**;
  例外=**以「经验沉淀」或「红线/避坑」为目的**的技能与规则(写法=正向目标 + 括号里的踩坑依据)。
- 落点:injected `REPLY-CORE` 段(工作区 + 包内,逐字一致)· `rules.md §9` ·
  `改包纪律.md` 新增第 5 条硬纪律(「二、四条」→「五条」)· `01-文档索引.md` 指针同步 ·
  把我在注入块里加的那段负向表述改成**正向主导**。

四、🔴 顺带抓到并修掉一个我自己造成的净变差
- 注入块有 **1400 字上限、且从开头截** ⇒ 我加条文把它顶过上限(1274 → 1414+)⇒
  尾部三条(变相征询禁止 / 不用征询句收尾 / 本工作区另有定稿)**静默消失**、不再注入。
- 修:上限 1400 → **2000**;并在 `t_reply_core_same_source` 里加断言 **块长 ≤ 上限** ——
  以后谁再顶破上限,自测直接报红,逼他"要么精简、要么显式抬上限"。
- 验证:`被截断=False`,尾部三条都回来了。

五、验证
- 全套自测 **PASS 109 / FAIL 0**;py 语法全绿;`install.py --manifest` 重算(78 份,语法失败 0)。
- 注入块实测:来源=工作区 CODEBUDDY.md,不截断,含「一律用肯定表述」「决定对象要点名到具体」
  「新建、生成时同样适用」。
2026-10-09 10:45:00 +08:00
admin 0204001a1b 按用户令收回仓范围:撤出 10-08 混入的 9 个技能目录,改用白名单忽略
用户原话:「同步仓库不是 应该遵循忽略的规则吗,谁让把所有技能都提交仓库的」+「A 肯定要收回」。

- 从索引撤出 9 个目录(**本地文件一律保留**:工作区文件数 5711 未变,一个都没删):
  AI HOT、draw-ui、dsh-diagnose、dsh-knowledge、dsh-local-env、dsh-opensource-release、
  dsh-workflow、oil-motion、skills-security-check —— 即 2026-10-08 `e03465c` 一次并入的那批
  (那条提交自称"按用户令",来源不是本线)。
- .gitignore 改**白名单**:根下 /* 一律挡掉,再逐个放行 6 个技能 + .gitignore + 改包纪律.md。
  为什么必须这么改(10-08 混入的真因):黑名单只列"已知不要的",**新冒出来的技能目录**
  会被任何一次 `git add -A` 顺手捎进仓库;白名单从机制上堵住这条路。
- 保留 oil-ui-pro:它是 product-planning 第③段的**功能依赖**,撤掉两边都会留悬空引用。
- 现状:仓库只跟踪 6 个技能目录(browser-harness / humanizer / humanizer-zh / oil-ui-pro /
  product-planning / session-mechanism)。
- ⚠️ 已知代价(本轮不处理):撤出的目录仍留在**历史**里 ⇒ 新克隆的体积不会因此变小;
  且 session-mechanism 里几处「⇒ 技能 X」的散文指针会指向不在仓的技能(不影响运行)。
2026-10-09 09:45:00 +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 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 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 19101acd65 init: workbuddy_skills 重建,仅收录 session-mechanism
- 按用户指示清空原有 25 技能内容,只提交 session-mechanism(57 文件)
- 附 .gitignore(产物 + 本机凭据)
- 令牌明文已脱敏(历史 .neodata_token 与 pitfalls 引用均不入库)
- 本提交为孤儿提交(父提交为空),历史自此重新开始
2026-10-05 14:13:24 +08:00