开发与工程 state-managementevent-reducerscache-evictionoptimistic-updatesdata-syncfrontend-architecturepollingreconciliation

OpenChamber 同步状态不变量守则

在改动会话同步、事件归约器、轮询与缓存逻辑时,一套强制执行的状态所有权与失败语义规范,防止数据误删与状态错乱。

FollowSkills 评估 · FSRS-2.0
谨慎使用
49/ 100 五分制 2.5 / 5
1 2 3 4 5 6
1信任安全14 / 25 · 2.8/5

该技能是纯指导性文档,不含脚本、命令或外部副作用,最终权限原则天然满足,无隐蔽数据流或红线风险;但未包含回滚、确认或来源归属机制,扣分。得14分。

2可靠稳定8 / 20 · 2.0/5

指令内部自洽、结构清晰、规则具体(如失败≠空、乐观更新、缓存逐出),且含详细验证清单;但核心依赖 packages/ui/src/sync/DOCUMENTATION.md 等文件未在证据中提供,关键路径无法静态复核,异常输入下的失败反馈质量不可验证,扣分。得8分。

3适用触发8 / 15 · 2.7/5

frontmatter 触发条件明确列出适用场景(同步、引导、重连、事件 reducer、轮询、乐观更新等),语义触发精确;但未声明不适用边界,无中文支持说明,目标用户为该仓库内部开发者,适用面窄,扣分。得8分。

4规范维护8 / 15 · 2.7/5

文档分层清晰、命名稳定、附验证清单;仓库有 MIT 许可证与活跃维护信号(CI、版本 1.22.2);但技能本身无版本号、变更日志或明确更新路径,且引用的必读文档不可见,存在隐藏假设,扣分。得8分。

5有效结果7 / 15 · 2.3/5

对维护该同步状态子系统的开发者有明确边际价值,将易错不变量编码为可执行规则并附验证分支清单;但静态阅读无法验证输出可直接使用,代表性结果未复现,扣分。得7分。

6证据核验4 / 10 · 2.0/5

仓库含真实测试脚本(packages/ui test 等)与手动检查清单,为部分可审计的原始材料;但该技能自身引用的文档与测试未在证据中覆盖其关键路径,无法独立复现其主张,扣分。得4分。

证据充分度: 评估于 2026年9月9日 审查版本 f8b929edf989
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 该技能引用的 packages/ui/src/sync/DOCUMENTATION.md 等必读文档未在评估证据中提供,使用者应先确认其存在且与技能规则一致。
  • 纯静态评估,未执行任何验证清单;清单中的生命周期分支覆盖仅为声明,未独立复现。
  • 技能无独立版本号或变更日志,规则可能随代码演进漂移,使用者应核对当前代码是否仍遵循这些不变量。
  • 规则高度针对本仓库内部架构,跨项目复用价值有限。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

sync-state-invariants 是 OpenChamber 仓库(OpenCode AI 代理的桌面与 Web 界面)内置的 18 个技能之一,位于 .agents/skills/sync-state-invariants/。它不是可执行脚本,而是一份领域工程守则:当 AI 代理修改会话同步、引导/重连状态、事件归约器、轮询、乐观更新或运行时缓存时被触发。核心内容包括:区分输入来源的权威性、失败不得伪装成空数据、销毁性清理必须有完整快照基线、缓存不得逐出正在使用的条目,以及覆盖全部生命周期分支的验证清单。适合在 OpenChamber 这类多目录、多会话、实时同步的前端项目中约束代码生成质量。

该技能向代理注入一套编辑前与编辑中的强制规则:要求先阅读 packages/ui/src/sync/DOCUMENTATION.md 及所属模块文档,直到每个被改状态都有明确的属主、权威、作用域和生命周期;要求按目录子存储、全局会话存储、持久化历史、乐观影子状态四类输入分类取用;要求加载器区分失败与合法空结果(抛错或返回 T | null,绝不能吞掉 SDK/API 错误返回 []);要求销毁性清理只能基于同一运行时、同一作用域的两份完整权威快照对比;要求事件归约器显式平坦化合法转换路径、拒绝过期异步完成;要求乐观更新封藏在属主存储内并用服务端回显 ID 原位对账;要求按运行时身份键控缓存并禁止在获取路径上运行逐出扫描;最后给出一份覆盖引导、失败、重试、回滚、多目录部分失败、持久化水合竞态等分支的验证清单。

  1. 在 OpenChamber 仓库中让 AI 代理修改会话同步或重连逻辑,避免它把加载失败当成空数据而清空会话列表
  2. 代理改动事件归约器时,强制其保持单一排序来源并拒绝过期事件,防止多标签页下会话状态错乱
  3. 代理实现乐观更新的消息队列,需要客户端 ID 与服务端回显 ID 对账和失败回滚的正确模式
  4. 代理编写运行时作用域缓存时,避免在获取路径上逐出正在挂载的条目而造成无限请求循环
  5. 代理调整轮询或引导逻辑,需要保留轻量轮询省略的富字段并把启动期 502/503 当作瞬态处理
  6. 代理处理持久化快照与内存状态的水合,需要明确权威与单调修订号以拒绝过期写入

这个 Skill 有哪些优点和局限?

优点
  • 规则极其具体可执行:每条不变量都附带正确的实现模式(如抛错 vs 返回 null、代际令牌 vs 修订号对账),而非空泛建议
  • '失败不是空数据'和'永不逐出使用中的条目'两节直击真实生产事故模式(如渲染期无保护导致的无限请求循环),并给出症状描述便于诊断
  • 验证清单覆盖所有生命周期分支,包括多目录部分失败、水合竞态、快照差分清理基线重置等易漏场景
  • 纯文本守则,无脚本依赖,可移植到任何 Agent Skills 兼容客户端
局限
  • 深度绑定 OpenChamber 仓库结构:依赖 packages/ui/src/sync/DOCUMENTATION.md 作为必读上下文,脱离该仓库时'必读上下文'环节无法满足
  • 它是编码规范而非可执行检查器:没有配套测试或 lint 工具验证规则是否被遵守,效果完全取决于模型遵从度
  • 适用面窄——仅在改动同步/缓存/归约器相关代码时触发,对一般前端任务无作用
  • 源材料未提供该技能实际减少 bug 的度量或用户反馈证据

如何安装这个 Skill?

该技能随 OpenChamber 仓库分发,位于仓库内 .agents/skills/sync-state-invariants/。安装 OpenChamber 本身即可获得:CLI 方式为 curl -fsSL https://raw.githubusercontent.com/openchamber/openchamber/main/scripts/install.sh | bash(需 Node.js 22+),或从 GitHub Releases 下载桌面版。若只想要这个技能用于其他 Agent Skills 兼容客户端,把 .agents/skills/sync-state-invariants/ 文件夹(含 SKILL.md)复制到你的客户端技能目录即可;源材料未记载该技能在其他项目结构(不存在 packages/ui/src/sync/DOCUMENTATION.md 时)下的降级行为,需自行评估。

如何使用这个 Skill?

在 Claude Code 等支持 Agent Skills 的客户端中,当任务涉及会话同步、引导/重连状态、事件归约器、轮询、乐观更新、消息队列、排序/对账、运行时缓存或目录相关会话行为时,技能会按其 frontmatter 描述被自动选用;也可显式提示:'按照 sync-state-invariants 技能修改这个 reducer'。技能随后要求代理先读取 packages/ui/src/sync/DOCUMENTATION.md 再动手,并按其不变量与验证清单执行。涉及高频流式处理时,技能指示还需加载 performance-engineering 技能。

这个 Skill 与同类方案有什么区别?

OpenChamber 仓库中它与其他 17 个内置技能(如 performance-engineering,被本技能在高频流式场景下显式引用)协同工作;本技能专注于同步状态正确性,performance-engineering 专注性能。除此之外源材料未提及外部替代品。

常见问题

这个技能能在 OpenChamber 之外的项目里用吗?
其通用不变量(失败不伪装成空数据、快照差分清理需完整基线、缓存不逐出使用中条目)适用于任何有类似同步状态的前端项目,但它强制要求阅读 packages/ui/src/sync/DOCUMENTATION.md,在其他仓库中这一步会失效,需要自行调整该要求。
它包含可执行脚本或测试吗?
没有。SKILL.md 纯粹是给代理的指令与清单,没有任何脚本、lint 或自动化验证;遵守与否取决于代理自身。
什么时候它会被触发?
按其 frontmatter 描述:当改动会话同步、引导/重连状态、事件归约器、轮询、乐观更新、消息队列、实时活动、排序/对账、运行时作用域缓存或目录相关的会话行为时适用。
它有额外依赖或运行成本吗?
没有运行时依赖,只是文本指令。唯一连带要求是涉及流式高频场景时还要加载同仓库的 performance-engineering 技能。

同仓库的其他 Skills

均来自 openchamber/openchamber

开发与工程

OpenChamber 性能工程技能

在优化单条操作之前先消除结构性浪费:为交互、渲染、轮询、缓存与大规模数据路径提供以测量为准的性能优化方法论。

设计与前端

OpenChamber 拖拽排序技能(drag-to-reorder)

一份沉淀自真实项目的 @dnd-kit 拖拽排序实践指南,专门解决变宽条目、换行布局和移动端触摸交互中最容易踩的坑。

开发与工程

OpenChamber UI/API 分层规范

为 OpenChamber 共享界面代码划定数据访问边界:官方走 SDK、自有能力走 RuntimeAPIs,避免硬编码 URL、令牌与传输假设。

开发与工程

OpenChamber 变更纪律

在修改 OpenChamber 代码库时,强制执行“最小完整变更 + 最窄级别验证”的工程纪律,防止局部修复演变成投机性重写。

开发与工程

Locale UI Patterns —— OpenChamber 界面文案国际化规范

为 OpenChamber 项目编写或修改任何用户可见文案时,确保每个语言的字典都拿到真正的翻译,而不是英文占位符。

开发与工程

OpenChamber 中继传输技能

为 OpenChamber 的端到端加密中继隧道正确编写 WebSocket、SSE 与流式端点,避免只在桌面直连下能通过的隐性中继缺陷。

开发与工程

Clack CLI 模式规范

为 OpenChamber 终端命令定义统一的交互提示、--quiet 与 -- 输出契约,确保任何运行模式下策略校验先行、行为确定一致。

设计与前端

OpenChamber 主题系统技能

在修改 OpenChamber UI 时,强制使用语义化主题令牌、共享按钮/图标契约与键盘导航规范,避免硬编码颜色和重复实现。

开发与工程

OpenChamber 桌面外壳技能

在修改 OpenChamber 的 Electron 主进程、preload、IPC 或打包逻辑时,为 AI 代理提供正确的架构边界与安全规则。

设计与前端

OpenChamber 设置界面模式指南

在修改 OpenChamber 设置页面、对话框和搜索行为时,强制代理使用共享原语与本地化、搜索注册约定,避免各页面各自造轮子。

开发与工程

serve-sim — 终端里的 iOS 模拟器遥控器

无需打开 Xcode,就能在终端中启动、安装、串流并操控 Apple 模拟器里的 Capacitor iOS 应用。

相关 Skills