Files
workbuddy_skills/.gitignore
T
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

72 lines
3.1 KiB
Plaintext

# ══════════════════════════════════════════════════════════════════════════
# 🔴🔴 白名单:本仓**只收录对外发布的那几个技能**(用户 2026-10-09 令:「肯定要收回」)
# 写法=先把根下一律挡掉(`/*`),再逐个放行。⛔ 这样"新冒出来的技能目录"
# 不会被任何 `git add -A` 顺手捎进仓库 —— 2026-10-08 那 9 个就是这么混进来的。
# 本轮从索引撤出(**本地文件一律保留**):AI HOT、draw-ui、dsh-diagnose、dsh-knowledge、
# dsh-local-env、dsh-opensource-release、dsh-workflow、oil-motion、skills-security-check
# ⚠️ 保留 oil-ui-pro:它是 product-planning 第③段的**功能依赖**(撤了两边都会悬空)。
# ══════════════════════════════════════════════════════════════════════════
/*
!/.gitignore
!/改包纪律.md
!/browser-harness/
!/humanizer/
!/humanizer-zh/
!/oil-ui-pro/
!/product-planning/
!/session-mechanism/
# 🔴 不入库:运行期产物与备份
# 判据(记忆铁律):技能包=**可复制的资产**;⛔ 运行日志/缓存/备份/本机部署副本一律不入库。
# 运行日志(install.py 每次跑都写)
*.log
install.log
*_collabd.log
# 缓存
__pycache__/
*.pyc
*.pyo
# 备份(⛔ 备份不是资产,是历史)
*.bak-*
*.bak
*.orig
*.rej
*.mutbak
# 编辑器
.DS_Store
Thumbs.db
*.swp
*~
# 🔴 2026-10-09 改(用户令:「A 肯定要收回」+「别的电脑取仓时不要影响已有文件」):
# 下面两份是 **install.py 在本机生成**的 ⇒ ⛔ 撤出仓库、改为本机各自生成。
# 为什么必须撤(实测):别的电脑取仓时「同名覆盖」会把它们换成**我们这台机器**的路径
# ⇒ 那台机器的机制脚本会去找不存在的目录(`roots.env` 里就是本机绝对路径)。
# ✅ 样例仍入库:`session-mechanism/roots.env.example`(占位符,无本机路径)。
session-mechanism/roots.env
session-mechanism/references/manifest.md
# 📌 刻意**入库**的(⛔ 别误删):
# assets/*.png —— 文档配图,是内容不是产物
# 🔴 凭据类一律不入库(2026-10-06 发现「当前版本仍跟踪」)
.neodata_token
# 🔴 2026-10-07 补(本目录改成 git 工作区后新增,按实测盘点)
# 运行期目录(session-mechanism/logs 里是钩子日志,不是资产)
logs/
tmp/
# 宿主写的技能库迁移标记(每次启动可能重写,⛔ 不是内容)
.disable_to_model_invocation_migration.json
.model_invocation_to_override_migration.json
.user_invocable_only_to_off_migration.json
_bm_skillid_migration.json
# 本机虚拟环境与构建产物(browser-harness 等)
.venv/
*.egg-info/
uv.lock
node_modules/
# 本机部署副本与状态(`.workbuddy/` 是**工作区**的东西,⛔ 不该出现在技能库)
.workbuddy/