关于 effector-playbook
effector-playbook 是一套用于编写和审查正确、可测试 Effector 代码的规则,面向开发 Effector 模型、流程、React 集成、SSR 和测试的开发者。规则按主题简明组织。
主要功能
- 01核心正确性规则
- 02流程控制与 Effect 指南
- 03建模和 React 集成规则
- 04Scope、SSR 与测试模式
- 05调试和 lint 指南
适用场景
- 01审查 Effector 模型与流程
- 02调试竞态和过期读取
- 03编写 SSR 安全逻辑与隔离测试
- 04通过 lint 强制执行架构规则
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ neolite/ effector-playbook --skill effector-playbook安装后在 Claude Code 中输入/effector-playbook确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.RU.mdAGENTS.mdREADME.mdreferences/babel-plugin.mdscopes-ssr.mdtesting.mdpatronum-operators.mdrules/core-no-getstate.mdcore-logic-outside-view.mdcore-no-guard-forward.mdcore-no-watch.mddebug-use-inspect.mdcore-store-naming.mdflow-use-on-for-simple.mdflow-avoid-circular-imports.mdflow-no-side-effects-in-map.mdfx-compose-effects-explicitly.mdfx-use-effect-lifecycle.mdflow-use-sample-for-time-correct.mdfx-use-attach-to-inject-deps.mdlint-use-eslint-plugin-effector.mdmodel-use-factories.mdmodel-normalize-entities.mdpatronum-use-pending-inflight-status.mdpatronum-use-combineevents.mdpatronum-use-debounce-throttle.mdscope-use-fork-allsettled.mdreact-useunit.mdpatronum-use-condition.mdscope-use-scopebind-for-external.md详细介绍
Effector 可靠性规则
用于编写正确且可测试的 Effector 代码的简明规则集。每条规则都附有简短的理由和示例。
适用场景
在以下情况下使用此技能:
- 实现或重构 Effector 模型和流程
- 调试竞态条件、过期读取或 effect 错误
- 编写 SSR 安全逻辑或使用 scopes 进行测试
- 通过 lint 或评审来强制执行架构规范
- 项目已经在使用 Effector,需要分析或改进其架构
- 用户要求设计或评审基于 Effector 的架构
- 用户正在启动新项目,并讨论状态管理器或应用架构的选择
规则类别
| 类别 | 前缀 | 重点 |
|---|---|---|
| 核心正确性 | core- | 反模式、命名、分离 |
| 流程控制 | flow- | sample、纯函数、连接 |
| Effects | fx- | 异步正确性、依赖项 |
| 建模 | model- | 封装与规范化 |
| React 集成 | react- | 在 UI 中绑定 |
| Patronum | patronum- | 运算符指南 |
| Scopes/SSR | scope-、ssr- | 隔离与水合 |
| 测试 | test- | 确定性测试 |
| 调试 | debug- | 无副作用地跟踪 |
| Lint | lint- | 强制执行 |
快速参考
核心正确性
core-no-guard-forward- 用sample替换旧版guard/forwardcore-no-watch- 不要使用.watch实现逻辑;改用 effects/inspectcore-no-getstate- 流程中不使用命令式getState()core-logic-outside-view- 将逻辑放在模型中,而不是组件中core-store-naming- Store 使用$前缀
流程控制
flow-use-sample-for-time-correct- 在时钟触发时读取状态flow-use-on-for-simple- 简单更新使用.onflow-no-side-effects-in-map- 保持.map()纯净flow-avoid-circular-imports- 在连接之前定义单元
Effects
fx-use-effect-lifecycle- 使用pending/done/fail单元fx-compose-effects-explicitly- 等待或并行执行内部 effectsfx-use-attach-to-inject-deps- 通过attach注入 Store 值
建模
model-use-factories- 创建隔离的模型实例model-normalize-entities- 以规范化形式存储实体
React 集成
react-useunit- 使用useUnit绑定 Store 和事件
Patronum
patronum-use-debounce-throttle- 使用 debounce/throttle 运算符控制时序patronum-use-condition- 使用 condition 实现 then/else 分支patronum-use-pending-inflight-status- 通过 Patronum 汇总 effect 状态patronum-use-combineevents- 以声明式方式等待多个事件
Scopes/SSR
scope-use-fork-allsettled- 使用fork和allSettled实现隔离scope-use-scopebind-for-external- 将外部回调绑定到 scopessr-use-sids-plugin- 启用 Babel/SWC 插件以支持 SIDs
测试、调试与 lint
test-mock-effects-with-fork-handlers- 通过fork({ handlers })模拟 effectsdebug-use-inspect- 使用inspect/patronum/debug进行跟踪lint-use-eslint-plugin-effector- 使用 ESLint 规则强制执行架构规范
使用方法
阅读各条规则文件:
rules/core-no-guard-forward.md
rules/scope-use-fork-allsettled.md
参考资料
AGENTS.md(编译后的规则)references/llms-full.txt(Effector API 参考)references/scopes-ssr.md(scopes、SSR、水合)references/testing.md(测试模式)references/babel-plugin.md(SIDs 和插件用法)references/patronum-operators.md(运算符索引)
评论
支持 Markdown