当前最新版本:v3.5.5 (2026-07-10) — 动机六问+验证正式合入八步法
- 新增「动机六问+验证」:不再只审已有代码——设计新系统、质疑已有架构之前,先走七步诊断链
- 六问:看不惯什么→对照地图在哪→反感人还是行业→掀桌子流程→身份检查是不是起点→拆的答案有模式吗
- 第七步:物理碾压+自我验证——「数据量翻一万倍,哪个组件第一个崩?只改一个——方法对。全要改——拆错了,回到第五问。」
- 三元结构:每条六问 = 信号识别 + AI行动指南 + 直觉锚点(GroupChatManager六种身份 / Visitor三年半 / 行号修三天走半小时…)
- 三条硬锚点:只学方法论不学偏——数据量翻万倍崩点 / 2→6个bug / 只看不记
- 验证路径:Haiku 4.5(换地图——从功能审查变成架构审查)+ Sonnet 5(加刹车——从自信交付变成自我推翻)→ 两个级别模型均有提升
- 版本跳级 3.5.2→3.5.5:动机六问是半版本维度新增(0.3),设计审码 vs 代码审码是不同层
- 标题"四件套"→"八步法":符号解析→前提检查→数据流→控制流+值域→身份检查→传染性→系统沉默→硬限制分析
- 新增
version: 3.5.2元数据字段 - description、约束、验证段落全量同步(八步法/八个阶段)
- 新增 v0.12.9 迭代栈+墓碑引擎自审实战案例
- 第六步:传染性检查——改了default_num引擎上限没改、格式变了阈值没跟
- 第七步:系统沉默——不是某一个catch空了,是整条错误链多个组件共用不出声
- 来源:Search Vault v4.4.0硬编码松绑 + 綦桐网关无前缀静默链
- 新增 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
- 新增
file-head/:Node.js零依赖文件操作沙盒——五军(SCOUT侦察+STRATEGIST军师+BURST爆裂+GUARD哨卫+LIGHTNING闪电),三种看书模式(全量/分页/索引),102M文件翻页微秒级 - SKILL.md version → 3.4.1,description 加入 file-head 触发提示
核心新增: 免免指出 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.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行
核心新增: 在1.3.1节末尾插入「沙盒包≠沙盒」硬区分框。沙盒(Docker/WASM/iframe/Node vm — OS级隔离容器)≠沙盒包(Operit QuickJS .js/.toolpkg — 平台轻量脚本单元)。WASM QuickJS是最通用的substrate但不是唯一的。步骤对、语法对、substrate不对→中转站不认。
设计耦合概念(免免原创): 不是代码写错了——是两个独立设计决策各自正确,但它们的交叉地带没人画线。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行
形态区分大补全(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跳过)
触发收紧 + 入口分流:
- 修改 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条 + 严重度 + 双路径
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行 上面这个版本
- 新增「Shape」阶段(原Explore前插入,总流程由四步变为五步):在碰代码之前先想清楚这究竟是什么——
- 1.1 需求本质(动作类型、调用频率、数据流向、用户是谁)
- 1.2 形态选择(Skill/MCP/沙盒包/内联脚本逐一排除,不把沙盒包当默认答案)
- 1.3 用户画像(自己用/小团队/公开发布,不同用户需要完全不同)
- 1.4 演进路线(短期延伸、性能天花板、组合可能性、被替代风险)
- 修改 编号体系:Shape→1, Explore→2, Diagnose→3, Confirm→4, Develop→5(子编号同步调整)
- 修改 描述与开篇引言:强调"最贵的错误不是代码bug,是做完发现方向错了"
- 新增「自由判断的边界」:明确5条不能"差不多就行"的场景(退出码、文件路径、类型声明、包名/ID、用户硬约束)
- 新增「常见手误」清单:6种编译通过但实际有bug的模式(重复const、赋值写成比较、异步忘await、路径大小写、删import漏调用、空catch吞错)
- 新增「交付前自测」清单:6条最小验证(正常输入/错误输入/超时/HTTP错误/tsc编译/脚本跑通)
- 修改 Bug预判来源标注:引用Search Vault的QAQ.md和LOGIC.md,避免维护两套
-
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调用链、记忆系统使用方式、自举原则(缺什么造什么)。