Releases: jiabaobei/skills-constitution
Releases · jiabaobei/skills-constitution
Release list
v2.20.0 — 安装全平台分流 + 钩子自动注册 + Windows 支持
Release v2.20.0 — 安装全平台分流 + 钩子自动注册 + Windows 支持
主题:把"能装的平台"扩展到"文档宣称的全部平台形态",并把最痛的 50 行手工钩子配置变成一条命令。
⚠️ 升级必读
- 已安装用户:重跑
bash install.sh即可原地更新(自动重建技能树逻辑不变) - 想让门禁从"建议"升级为"强制拦截":
bash install.sh --register-hooks或单独python skills-constitution/scripts/register_hooks.py - Windows 用户:新增
install.ps1(本版本首次提供,未经真机实测,首跑有问题请提 Issue)
🚀 安装全平台分流(install.sh)
| 平台形态 | 命令 | 效果 |
|---|---|---|
| 技能目录型(WorkBuddy / Claude Code) | bash install.sh |
复制 + 自动重建技能树 + 自检 |
| 同上 + 强制拦截 | bash install.sh --register-hooks |
装完自动注册四个宿主钩子 |
| 规则文件型(Cursor / Windsurf / Cline) | bash install.sh --platform cursor --target-dir <项目> |
宪法写入规则文件,如实声明建议级 |
| 纯注入型(ChatGPT / Gemini / 扣子等) | bash install.sh --platform prompt |
自动提取注入模板供粘贴 |
| Windows | powershell -File install.ps1 |
同技能目录型流程 |
- 规则文件型:windsurf/cline 单文件规则用 BEGIN/END 标记块追加,重装幂等替换不重复
- 安装收尾新增记忆层平台对照(各平台记忆文件位置 +
--memory指向方式)
🔌 钩子自动注册(scripts/register_hooks.py)
WorkBuddy 与 Claude Code 双平台同源格式(严格依据 reference/installation.md 官方样例):
- 注册四事件:
UserPromptSubmit/PreToolUse/Stop(python,跨平台)+SessionStart(检测到 bash 才装) PreToolUsematcher 含 Bash(配合 v2.19.0 的 Bash 写文件检测,堵住绕行通道)- 安全设计:写前备份(带时间戳)→ 原 JSON 损坏拒写(不动用户配置)→ 写后重载校验失败自动回滚 → 幂等(重复执行只替换宪法条目,你的其它配置和钩子原样保留)
--dry-run预览 /--uninstall干净移除(保留你的其它钩子)
🪟 Windows
新增 install.ps1:探测平台 → 复制 → 重建技能树 → 自检 → 可选 -RegisterHooks → 记忆层指引。
如实声明:开发环境无 Windows,需真机首验;钩子的 SessionStart 注入需 Git Bash(可选,不装不影响其余三钩子)。
升级方式
# 已安装用户
bash install.sh --register-hooks # 更新 + 顺手把强制拦截装上
# 新用户
git clone https://github.com/jiabaobei/skills-constitution.git
bash skills-constitution/install.sh --register-hooks完整改动逐条见 CHANGELOG;本版本补齐外部测评指出的全部 5 个平台适配缺口(规则文件型覆盖 / 注入型入口 / 钩子自动注册 / Windows / 记忆层提示),其中 4 项本机实测通过,Windows 脚本如实标注待真机首验。
v2.19.0 — 校验层防伪造升级 + 一键安装 + 对抗性测试
Release v2.19.0 — 校验层防伪造升级 + 一键安装 + 对抗性测试
主题:让"防糊弄"真的防得住。外部测评实测发现旧校验器本身可被低成本伪造打穿
(一个"encoded"子串打穿 Layer C、一段假链接套话五步全过),本版本把校验层
升级到词边界 + 证据白名单,并把全部糊弄向量固化为必须失败的自动化测试。
⚠️ 升级必读
- 重新运行
bash install.sh或手工重跑技能树重建(逻辑无变化,但校验更严格) - 若你曾依赖"分类名出现即算命中"的旧行为:v2.19.0 起 只有实际技能名才算证据,
汇报时请引用具体技能名(如git-workflow-and-versioning),不要只写分类名
🔒 安全/正确性修复(P0)
校验层防伪造(核心)
- 词边界匹配全面替代裸子串:Layer B/C 所有匹配改用
lib.text.keyword_in。
"encoded"不再误命中"code"、"hi"不再命中"this"、"rapid"不再误命中"api" - 废除 Layer C "分类名兜底":
code/doc等常见短词出现在任意技术文本里的概率极高,
不再算证据;必需技能校验只认实际技能名 - 证据白名单:技能树中名为
github/code/data的单短词技能不再被误判为
"调用过技能"(修复:推荐链接里出现github就被当成调用证据的漏洞) - 记忆证据动态化:Layer B 记忆标记改从你的 MEMORY.md 实际内容提取指纹,
不再硬编码作者个人标记(旧实现对其他用户恒 FAIL)
分类器(零号条款)
- 专业词优先:"帮我解释这个报错然后修复代码并部署" 不再被"解释"整体豁免
- 简单词词边界:
"hi"⊂"this"等碰撞不再造成误豁免;专业词保持宽松子串
(误报只会多查一次,符合"宁可不放过") - 统一执法口径:gate 与
--classify走同一分类器,修复两套词表不同步
崩溃与死锁
- 修复
check_injectionUnboundLocalError(skill_tree.json 缺失且传--task时崩溃) - 修复新装用户死锁:MEMORY.md / skill_tree.json 缺失时降级放行(记 WARN),
不再恒 FAIL 阻断所有写文件操作 - gate 新增 Bash 写文件检测(重定向/tee/heredoc/cp/mv/touch/mkdir),
堵住 Write/Edit 之外最大的绕行通道;>/dev/null不误报
retry-wrapper
- 废除语义无效的"自我重试"(旧版把错误报告拼进输入再校验,等于把自己的提示词
喂给自己的检查器)→ 改为单次真实校验 + 结构化错误报告,重试由宿主驱动 - 补传
--task:修复 retry 链路中 Layer C 永远被跳过的问题
🧪 测试与 CI
- 第 7 组对抗性防伪造用例(15 条):全部实测过的糊弄向量固化为"必须失败"
- 测试套件真正接入 CI(此前从未在 CI 执行);移除装了从未 import 的 pyyaml 死依赖
- 本地实测 39/39 全绿
🚀 易用性(P1)
install.sh一键安装:自动探测平台 → 复制 → 自动重建本机技能树(最易漏的一步)
→ 自检 → 下一步指引- 英文 README(README_EN.md):打开英语社区的入口
- 修复 build_skill_tree 只探测 Windows venv 路径的问题(Linux/macOS 现在也能扫到)
升级方式
# 已安装用户
bash install.sh # 或手工覆盖后重跑技能树重建
# 新用户
git clone https://github.com/jiabaobei/skills-constitution.git
bash skills-constitution/install.sh完整改动逐条见 CHANGELOG;本版本由外部深度测评驱动,
测评发现的 6 类可复现伪造向量已全部固化为回归测试。