OpenChamber 性能工程技能
在优化单条操作之前先消除结构性浪费:为交互、渲染、轮询、缓存与大规模数据路径提供以测量为准的性能优化方法论。
该技能为纯方法论文档,不请求任何权限、不执行副作用操作,且明确要求对破坏性清理、缓存失效和测量有效性建立防护(如『不完整即未知,不删除』原则),最小权限和数据流透明度高。扣分点:无独立回滚机制说明,归属依赖仓库整体上下文,未达满分。
内容自洽,引用的 bun run profile:* 命令在 package. 中确实存在(profile:idle/session/animation/switch/browser 均已注册),且声称脚本会在被节流时『失败即报错』。扣分点:表格中 profile:switch 行重复出现属明显编辑瑕疵;静态审查无法验证脚本实际行为与关键路径可复现性,未提交覆盖该技能路径的测试,按静态上限计。
description 触发条件具体(渲染、事件、轮询、缓存、列表路径及卡顿报告场景),语义触发精度较高;与 sync-state-invariants 的能力边界划分明确。扣分点:非适用范围仅有部分声明,无中文支持说明,目标用户为前端性能工程师,边界证据有限。
分层清晰:总纲→工作流→专项模式→工具入口(scripts/perf/DOCUMENTATION.md)→验证清单,渐进披露良好;MIT 许可明确。扣分点:技能自身无版本号或变更记录,无 FAQ/示例输出,维护责任仅能从仓库整体推断,未达满分。
作为指导型技能,其『先测量后优化、结构化去工作、缓存需证明』方法论相对手动排查有明确边际价值,且提供了可执行的配套脚本。扣分点:静态审查无法验证产出结果的正确性与直接可用性,效果声明(如失败即报错属性)未经执行证实,按静态上限以下计。
关键引用(profile 脚本、DOCUMENTATION.md 入口)可在仓库中交叉核对,仓库有测试基建与发布流程。扣分点:无覆盖该技能关键路径的已提交测试或第三方执行证据,方法论效果主张本身不可独立复现,证据类型单薄。
- 本评估为静态源码审查,未执行任何脚本,性能脚本的实际行为与失败反馈未经证实。
- 工具表格中 profile:switch 行重复,提示文档存在未清理的编辑痕迹,使用前应核对 scripts/perf/DOCUMENTATION.md。
- 技能内容依赖 Bun/Node 22+ 工具链与 Chrome DevTools 协议,国内网络环境下安装依赖可能受阻。
- 该技能为指导性文档而非可执行工具,其价值取决于执行者是否遵循测量验证流程。
这个 Skill 能做什么,适合哪些场景?
performance-engineering 是 OpenChamber 仓库(OpenCode AI 代理的桌面与 Web 界面)内 18 个技能中的一个,位于 .agents/skills/performance-engineering/。它是一套纯指导性的 SKILL.md 方法论,核心主张是先优化工作量的数量与频率,再优化单个操作。技能要求在动手前写出明确的性能契约(交互、规模、预算、路径、语义),强制先建立测量有效性、复现真实场景、写成本方程,再按固定顺序移除工作(跳过、收窄、共享、索引、增量、缓存、调度、微优化)。它对 React/store 热路径、虚拟化契约、缓存规则和验证清单给出了具体规则,并附带 bun run profile:* 系列仓库测量脚本。适合需要在高数据量前端路径上做严谨性能工程的开发者。
该技能本身不含可执行代码,它指导模型按固定工作流操作:0) 验证测量环境未被节流、零值确实代表测量成功、工作负载可比;1) 在真实交互路径上复现并用 profiler/操作计数器建立基线;2) 写出成本方程(consumers × events × …),列出每个乘数维度的基数与更新频率;3) 对输入源、派生状态与生命周期做分类并显式定义失效策略;4) 按既定顺序移除工作(跳过→收窄订阅→共享计算→索引→增量更新→缓存→调度→微优化)。另附 React/store 热路径规则(叶订阅、引用稳定、比较器边界)、虚拟化契约检查表、缓存六项前置条件,以及验证清单(中位数+p95、操作计数断言、参考稳定性测试等)。
- 前端开发者报告列表/流式更新导致卡顿、掉帧或 CPU 飙高,需要定位是渲染、选择器还是分配造成的瓶颈时
- 代码审查者面对把 memoization 或缓存当作万灵药的 PR,需要判断是否存在已测得的重复工作量时
- 团队打算将长列表虚拟化,需要先明确滚动容器拓扑、尺寸估计与激活阈值边界测试时
- 用户报告在生产规模下出现冻结而开发环境无法复现,需要对比报告者的实体规模与本地规模时
- 高并发流式/轮询路径需要确认隐藏或禁用的界面不产生持续开销、无关实体引用保持稳定时
- 在截止期压力下只能交付缓存的临时缓解方案,需要判断其失效与内存行为是否正确、剩余工作如何记录时
这个 Skill 有哪些优点和局限?
- 强制"先测量后优化":要求对未改动的构建跑相同场景建立基线,杜绝凭记忆或推理声称收益
- 提供了可执行的工作流与退出清单,覆盖从测量有效性到验证测试的完整闭环
- 附带了五个仓库级无人值守性能捕获命令(idle/session/animation/switch/browser),且失败时会显式报错而非给出虚假干净结果
- 对虚拟化、缓存、React memo 比较器等易错点给出罕见的具体边界条件检查(如阈值±1、同 ID 语义等价替换)
- 明确"无法测得收益的改动应回退并记录为被否决的假设",防止未验证复杂性以性能名义进入代码库
- 纯指导性 SKILL.md,不含独立可执行代码;profile:* 脚本绑定 OpenChamber 仓库自身,移植到其他项目需自行搭建等价测量设施
- 工作流相当重:对小型项目或一次性脚本而言,完整的契约、成本方程与双向正确性测试可能成本过高
- 部分细节(如 RunTask 时间线类别、Chrome 节流行为)以 Chromium/特定工具链为前提,非 Chromium 环境需自行适配
- 技能要求配合 sync-state-invariants 技能处理状态正确性,单独使用时该部分保障缺失
- 文档中 profile:switch 命令在表格里重复出现一次,且未标注技能自身的版本或测试状态
如何安装这个 Skill?
该技能属于 openchamber/openchamber 仓库技能集合(共 18 个)的一部分,路径为 .agents/skills/performance-engineering/。安装方式为获取该仓库(git clone https://github.com/openchamber/openchamber)后,将 skills/performance-engineering 文件夹放入你的 Agent Skills 兼容客户端的技能目录(如 Claude Code 的技能文件夹)。仓库 README 未针对单个技能给出独立安装命令,具体技能目录位置请以所用客户端文档为准。
如何使用这个 Skill?
技能通过其 description 中的触发条件自动或手动加载:当涉及交互、渲染、事件、轮询、同步、列表处理、store 选择器、缓存、索引或高数据量路径的实现/审查,或用户报告卡顿、冻结、高 CPU、内存增长、启动慢、性能回归时使用。示例提示:"用户反馈侧边栏切换会话有 2 秒延迟,请按性能契约流程复现并测量后给出优化方案"。若仓库内测量,可运行 bun run profile:idle / profile:session / profile:animation / profile:switch / profile:browser 五个无人值守捕获命令;入口文档为 scripts/perf/DOCUMENTATION.md。当优化涉及状态权威、协调、缓存生命周期等时,技能要求同时加载 sync-state-invariants 技能。