Skip to content

Latest commit

 

History

History
240 lines (177 loc) · 17.7 KB

File metadata and controls

240 lines (177 loc) · 17.7 KB

CHANGELOG — Operit 自制 Skills

当前最新版本:v3.5.5 (2026-07-10) — 动机六问+验证正式合入八步法

v3.5.5 (2026-07-10) — 动机六问+验证:从审代码到审设计

mianmian-review 元模式升级

  • 新增「动机六问+验证」:不再只审已有代码——设计新系统、质疑已有架构之前,先走七步诊断链
    • 六问:看不惯什么→对照地图在哪→反感人还是行业→掀桌子流程→身份检查是不是起点→拆的答案有模式吗
    • 第七步:物理碾压+自我验证——「数据量翻一万倍,哪个组件第一个崩?只改一个——方法对。全要改——拆错了,回到第五问。」
  • 三元结构:每条六问 = 信号识别 + AI行动指南 + 直觉锚点(GroupChatManager六种身份 / Visitor三年半 / 行号修三天走半小时…)
  • 三条硬锚点:只学方法论不学偏——数据量翻万倍崩点 / 2→6个bug / 只看不记
  • 验证路径:Haiku 4.5(换地图——从功能审查变成架构审查)+ Sonnet 5(加刹车——从自信交付变成自我推翻)→ 两个级别模型均有提升
  • 版本跳级 3.5.2→3.5.5:动机六问是半版本维度新增(0.3),设计审码 vs 代码审码是不同层

v3.5.2 (2026-07-09) — 八步法正式命名

mianmian-review 元数据升级

  • 标题"四件套"→"八步法":符号解析→前提检查→数据流→控制流+值域→身份检查→传染性→系统沉默→硬限制分析
  • 新增 version: 3.5.2 元数据字段
  • description、约束、验证段落全量同步(八步法/八个阶段)
  • 新增 v0.12.9 迭代栈+墓碑引擎自审实战案例

v3.5.1 (2026-07-09) — 第七步:传染性硬编码+系统沉默

mianmian-review 扩展

  • 第六步:传染性检查——改了default_num引擎上限没改、格式变了阈值没跟
  • 第七步:系统沉默——不是某一个catch空了,是整条错误链多个组件共用不出声
  • 来源:Search Vault v4.4.0硬编码松绑 + 綦桐网关无前缀静默链

v3.5.0 (2026-07-09) — 免免蒸馏:五步审码+四原则架构

sandbox-package-creator — Skill 3.5 + mianmian-review 元Skill

  • 新增 mianmian-review/:免免五件套审码元Skill——符号解析→前提检查→数据流→控制流+值域→身份检查。全语言通用(Kotlin/Python/JS/Rust/Go),kotlin-head v0.5.2→v0.12.8 全版本17/17命中验证
  • 新增 operit-meta-guide/:四个元Skill→五个,加入 mianmian-review
  • 新增 skill-creator/:v3.5.0 含免免蒸馏——审码五步+架构四原则(手搓节点/探针用id不用名字/适配层/组件不塌缩)
  • SKILL.md version → 3.5.0

v3.4.1 (2026-07-07)

sandbox-package-creator — 合并file-head文件操作沙盒

  • 新增 file-head/:Node.js零依赖文件操作沙盒——五军(SCOUT侦察+STRATEGIST军师+BURST爆裂+GUARD哨卫+LIGHTNING闪电),三种看书模式(全量/分页/索引),102M文件翻页微秒级
  • SKILL.md version → 3.4.1,description 加入 file-head 触发提示

v3.0.0 (2026-07-01)

sandbox-package-creator — Node.js Skill专章 + 硬编码清零实战(1000行→1057行)

核心新增: 免免指出 SKILL.md 全部教 QuickJS,但 Search Vault 本身就是 Node.js Skill——SKILL.md 教了沙盒包却没教自己。v3.0 补了两个维度:

  • §9 Node.js Skill vs QuickJS 沙盒包(新增):本质区别表(运行时/生存周期/API面/通信/部署/场景)、两个选型问题(需HTTP?需多版本分发?→ Node.js)、Node.js 独特风险——QuickJS 的严格 API 限制反而是保护,Node.js 什么都能跑意味着硬编码暗雷可以正常跑几个月直到凌晨三点炸。五条踩坑实录(配置存在但代码不读、API供应商会消失不是意外是常态、预算不是固定值、测试覆盖≠真实覆盖、截断不是逻辑是偏好)——全部来自 Search Vault v4.0→v4.4.0 真实经历,抽象掉供应商名字,保留本质。
  • §7.6 硬编码阈值传染(扩展):新增「v4.4.0硬编码清零行动」实战教训——五类暗雷表(配置项存在但代码没读、退避白等最后一次、testCredentials永远搜同一个词、截断写死在逻辑里、引擎上限散落各处)+ 解法 + 核心原则:「凌晨三点对着一个硬编码的5分钟TTL骂自己,不如现在多写一行??」。

行数: 1000→1057行

v2.8.0 (2026-06-27)

sandbox-package-creator — 运行时调试 + 反模式 + 包间协作(747行→~1000行)

核心新增: 基于 v2.7.0,免免指出 skill 只覆盖了「造包」没覆盖「排查」和「协作」——AI拿到手只会看书不会做事。补了三个「让AI能行动」的维度:

  • §6 Debug(运行时调试):错误现场采集四证据 → 错误栈速查表(10种报错→直接定位)→ debug_run_sandbox_script 三模式 → 系统化排查五步流程 → 调试误判三反例
  • §7 Anti-patterns(反模式目录):上帝包/微包地狱/配置即代码/静默降级链/假幂等/硬编码阈值传染——6种架构级反模式 + 速查表。区别于5.0案例A-L(写错了),反模式是方向歪了
  • §8 Interop(包间协作):包间调用本质(序列化往返)、依赖声明规范、循环依赖检测与三种破解方案、跨包错误传播规则表、版本兼容契约表(7种变更→兼容/炸)、性能考量

行数: 747→~1000行

v2.7.0 (2026-06-26)

sandbox-package-creator — 形式语言 + 沙盒包≠沙盒(735行→747行)

核心新增: 在1.3.1节末尾插入「沙盒包≠沙盒」硬区分框。沙盒(Docker/WASM/iframe/Node vm — OS级隔离容器)≠沙盒包(Operit QuickJS .js/.toolpkg — 平台轻量脚本单元)。WASM QuickJS是最通用的substrate但不是唯一的。步骤对、语法对、substrate不对→中转站不认。

v2.6.0 (2026-06-26)

sandbox-package-creator — 设计耦合族:15条Bug按8族归类(650行→722行)

设计耦合概念(免免原创): 不是代码写错了——是两个独立设计决策各自正确,但它们的交叉地带没人画线。A没错,B没错,A×B的缝里藏了魔鬼。

新增15条设计耦合Bug(#45–#59),按8族归类:

成员 基因
🪞 自指 #50 #51 #56 机制把自己当处理对象——查自己、删自己、缓存自己
💂 阻断自毁 #52 #53 保护者掐了自己的命脉——误杀核心 + 把唯一救兵也阻断了
🐚 新旧分裂 #48 #54 版本号是新的,跑的是旧的——壳核分离 + 旧核渗入新壳
🎯 去重盲区 #46 #49 正则没错,错的是没人定义「什么叫重复」
📏 阈值没跟 #45 #55 指标是好指标,只是忘了随着内容/重要性同步更新
🩺 诊断失准 #47 #59 一个报错报错病因,一个该报说「正常」
初始化叛变 #57 一切都没错——只是叫早了一个,依赖图没画箭头
🔤 媒介错位 #58 Python 写 Markdown,两样都对,不该在同一页

完整Bug清单(含笑点):

  • #45 熔断阈值 × 返回格式 → 优化越多越搜不到
  • #46 去重正则 × 数据大小 → 想去重,正则比原文还多
  • #47 错误码 × 故障源头 → 报的病因是别人的,修错地方
  • #48 版本壳 × 实际内核 → 壳是新的,核是旧的,更新完体验更差
  • #49 正则准确 × 去重边界 → 正则没毛病,「重复」没定义
  • #50 检查动作 × 被检查对象 → 检查是对的,查的对象却是自己
  • #51 去重逻辑 × 去重对象 → 去重成功到连自己都不剩,返回空集
  • #52 阻断 × 核心路径 → 保安把老板锁门外
  • #53 阻断 × 阻断链 → 保安把唯一有钥匙的保安也锁了
  • #54 合并 × 新旧边界 → Object.assign把旧规则合入新机制,新壳跑旧逻辑
  • #55 并发优先 × 重要度 → 杀了核心保了凑数的,最重要的事在等最不重要的在跑
  • #56 缓存 × 缓存对象 → 什么都吞:缓存自己、缓存源码、缓存无关垃圾
  • #57 初始化时序 × 依赖图 → 子篡父位 + 顺序颠倒——叫早了一个
  • #58 媒介 × 语言 → Python写Markdown,两样都对不该在同一页
  • #59 判断条件 × 判断极性 → true/false写反,bug被标记为「正常」

结构改动:

  • 新增「设计耦合族索引」于Bug预判标题下——找去重不看自指,找阻断不翻缓存
  • Bug表格按族重排,编号不变,历史引用不崩
  • 跳过清单同步扩展(+7条)

新增:案例 L ——「返回格式越优化 → 搜索结果越看不到」

  • Search Vault v4.0 真实教训:原生格式字节数 ×3,auto_save 阈值纹丝不动
  • 免免原话收录

行数: ~650→722行

v2.5.0 (2026-06-26)

sandbox-package-creator(440行→630行,+43%,内核大补全)

形态区分大补全(1.3.1):

  • 新增沙盒包两种形态对比表:普通 JS 包 vs ToolPkg,12维度(本质/METADATA/文件结构/注册方式/UI/hook/版本管理等)
  • 新增方言警告:同是 JS,Operit内置包与自建包运行在不同能力层级——语法一样,词汇不同
  • 新增版本声明硬规则:普通JS包METADATA无version字段→AI必须在描述中手动标注

受众维度(1.5.1):

  • 新增 AI vs 人类用户对比表:各自需要什么、不需要什么、典型翻车、设计铁律
  • 核心判断:调用方是AI(通过use_package/package_proxy)还是人类——混用是最差选择

第一次创建必读(5.0)——防AI屡犯:

  • 3条冷门致命错误:①忘了先跑install_or_update.js→类型过旧 ②METADATA无version字段 ③开发目录错了
  • 11个典型案例A–K:形态错选/重复建包/版本分散/方言假设/受众错位/tsc≠测试/参数名不同步/env漏声明/过度抽象/硬编码路径/不可序列化返回
  • 13条跳过清单:AI最容易「想当然」跳过的检查——不跑安装脚本、不区分形态、不检查已有包、不告知版本号等

Bug预判扩至44条(3.1):

  • 新增 🟣JS通用陷阱14条(#31–44):Array.sort()字典序、正则lastIndex有状态、typeof null、NaN≠NaN、parseInt基数、for...in原型链、delete慢模式、JSON.stringify静默丢弃、switch严格比较、Object.create(null)、== vs ===、ASI分号、数组浅拷贝、map(parseInt)
  • 方言标注:每条标注🟢共有/🔵QuickJS更严重/🟠暂未出现——避免在没bug的环境多写防御代码
  • 来源:Matt Pocock JS陷阱蒸馏 + 多引擎搜索结果(必应/百度/夸克交叉验证)

全版本对照

 v1.0  118行  骨架:Explore→Diagnose→Confirm→Develop + 13条bug预判
 v1.1  150行  +自由判断边界 +常见手误 +自测清单
 v1.2  214行  +Shape阶段 +淘汰链
 v2.0  423行  协作协议/愿望节/反向追问/兼容层级/Develop五节/QuickJS陷阱
 v2.1  ~440行  触发护栏 + 自检镜⑤ + Bug预判13→30条 + 严重度 + 双路径
 v2.5  ~630行  形态区别表 + 受众维度 + 44条Bug + 5.0必读(3致命+11案例+13跳过)

v2.1.0 (2026-06-25)

sandbox-package-creator(~423行,结构优化+知识扩容)

触发收紧 + 入口分流:

  • 修改 description:加护栏——「仅在用户明确表达想做沙盒包/工具/脚本或主动要求了解沙盒包概念时触发。日常聊天、天气、闲聊不触发。」不相关场景不占上下文。
  • 新增 自检镜⑤:「我看不懂术语,先给我看个例子」→ AI 跳过淘汰链和术语轰炸,直接打开真实沙盒包指认每部分。从免免学沙盒包撞墙的经历来——理科不及格也能学,先摸到东西再理解概念。

Bug 预判大扩容 —— 3.1 节重写(13条→30条):

  • 来源扩展:原有 Search Vault QAQ.md + LOGIC.md,新增 BUGSJS 学术分类学(453个真实JS bug)、QuickJS 真实 CVE 记录、TypeScript 生态 bug 研究(633个bug的fault taxonomy)。
  • 新增严重程度标注:🔴致命(4) / 🟠高危(8) / 🟡中危(10) / 🟢低危(5) / 🔵QuickJS特有(3)
  • 新增双路径决策:每条 bug 给出「路径A:转良性特性」和「路径B:修复思路参考」——不是规定是地图。19/30条可转良性特性。
  • 理论补入12条:竞态条件、Promise rejection 未处理、正则回溯(ReDoS)、内存泄漏、浮点精度、闭包过期变量、this 丢失、API 误用、配置漂移、整数溢出(CVE)、Promise.race 未取消、文档与行为不一致。

设计原则(来自免免原话):

「让别人知道 bug 但别让别人不知道这 bug 到底是怎么样的。」 「可良性的 bug 可以基于适合的情况来修,不良性的给几个合适的修复思路。」 「不是所有 bug 都要修——有些可以转为良性特性,只要文档里说清楚为什么。」

全版本对照

 v1.0  118行  骨架:Explore→Diagnose→Confirm→Develop + 13条bug预判
 v1.1  150行  +自由判断边界 +常见手误 +自测清单
 v1.2  214行  +Shape阶段 +淘汰链
 v2.0  423行  协作协议/愿望节/反向追问/兼容层级/Develop五节/QuickJS陷阱
 v2.1  ~440行  触发护栏 + 自检镜⑤ + Bug预判13→30条 + 严重度 + 双路径

v2.0.0 (2026-06-25)

sandbox-package-creator(214行→423行,+98%)

Shape 阶段重写——从「帮人做决策」到「帮人看清自己」:

  • 新增「协作协议」(Shape之前):自检镜四问——状态、执行vs挑战、本质、刚刚好的尺度。不给人类分类,用人自己的回答调校AI的追问深度、质量侧重、节奏。同一人不同任务可走不同分支。
  • 新增 1.1「愿望」:在需求本质之前——先问「你真正想要什么体验」。人类不说技术,AI翻译成工程语言。愿望对了形态自然对。
  • 新增「反向追问」到淘汰链:走到沙盒包后加一问——「不换形态,深耕能达到吗?」Search Vault从v1.0到v3.6的实战佐证。
  • 新增 1.4「兼容层级」:四种层级(🟢原生QuickJS/🟡PackageAPI/🟠跨包调用/🔴公开API),每层对应不同的接口契约要求。
  • 修改 1.6「演进路线」:从单线变双分叉——「当前框架深耕」vs「跨形态重构」,各附代价。

Develop 阶段大扩展——从2节变5节:

  • 新增 5.1「接口设计规范」:统一返回包装{success, data, error, elapsed_ms}、错误码体系(0到-9)、故障追踪链retry_trace(🟠🔴强制,🟡建议)。
  • 新增 5.2「按类型性能准则」:搜索类/文件处理类/网络请求类/数据处理类——各自的最佳实践和提速策略,来自Search Vault多版本实战沉淀。
  • 新增 5.3「QuickJS性能陷阱」:6条——JSON解析阻塞、console.log吃CPU、字符串拼接、不缓存、深层嵌套、忘await。黄金法则:「能不做就不做」比「做得快」更重要。
  • 修改 5.4→原5.1「常见手误」保留。
  • 扩展 5.5→原5.2「交付前自测」从6条→8条:+性能基准 +接口一致性。

全版本对照:

v1.0  118行  骨架:Explore→Diagnose→Confirm→Develop + 13条bug预判
v1.1  150行  +自由判断边界 +常见手误 +自测清单
v1.2  214行  +Shape阶段(需求本质/形态选择/用户画像/演进路线)+淘汰链
v2.0  423行  上面这个版本

v1.2.0 (2026-06-25)

sandbox-package-creator

  • 新增「Shape」阶段(原Explore前插入,总流程由四步变为五步):在碰代码之前先想清楚这究竟是什么——
    • 1.1 需求本质(动作类型、调用频率、数据流向、用户是谁)
    • 1.2 形态选择(Skill/MCP/沙盒包/内联脚本逐一排除,不把沙盒包当默认答案)
    • 1.3 用户画像(自己用/小团队/公开发布,不同用户需要完全不同)
    • 1.4 演进路线(短期延伸、性能天花板、组合可能性、被替代风险)
  • 修改 编号体系:Shape→1, Explore→2, Diagnose→3, Confirm→4, Develop→5(子编号同步调整)
  • 修改 描述与开篇引言:强调"最贵的错误不是代码bug,是做完发现方向错了"

v1.1.0 (2026-06-25)

sandbox-package-creator

  • 新增「自由判断的边界」:明确5条不能"差不多就行"的场景(退出码、文件路径、类型声明、包名/ID、用户硬约束)
  • 新增「常见手误」清单:6种编译通过但实际有bug的模式(重复const、赋值写成比较、异步忘await、路径大小写、删import漏调用、空catch吞错)
  • 新增「交付前自测」清单:6条最小验证(正常输入/错误输入/超时/HTTP错误/tsc编译/脚本跑通)
  • 修改 Bug预判来源标注:引用Search Vault的QAQ.md和LOGIC.md,避免维护两套

v1.0.0 (2026-06-25)

新增

  • sandbox-package-creator:元Skill——创建Operit沙盒包。 四阶段流程:Explore(扫描现有包/examples/types)→ Diagnose(对照13条通用bug预判 + 6条优化借鉴,AI自主判断适用性)→ Confirm(分步确认A/B/C,不一次性抛问题)→ Develop(引用SandboxPackage_DEV,tsc编译,交付前自测)。 内含 Search Vault v2.0.1→v4.0-ultra 跨15+版本的13条实测bug修复经验(代码残留、缓存不生效、空值无fallback、版本比较用字符串、资源泄漏等),通用适配所有沙盒包开发。

  • operit-meta-guide:Operit元认知指南——AI醒来的第一份地图。 覆盖:三类执行器(Skill/MCP/沙盒包)判断规则、四个元Skill调用链、记忆系统使用方式、自举原则(缺什么造什么)。