effector-playbook について
effector-playbookは、正確でテスト可能なEffectorコードを書くためのルール集です。Effectorのモデル、フロー、React連携、SSR、テストに取り組む開発者向けに、分野別のルールを簡潔にまとめています。
主な機能
- 01コアの正確性に関するルール
- 02フロー制御とEffectの指針
- 03モデリングとReact連携のルール
- 04スコープ、SSR、テストのパターン
- 05デバッグとLintの指針
活用シーン
- 01Effectorのモデルやフローをレビュー
- 02競合状態や古い読み取りをデバッグ
- 03SSR対応ロジックと分離テストを作成
- 04Lintでアーキテクチャを適用
インストール
コマンドをコピーしてターミナルで実行します。
$
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 のモデルやフローを実装またはリファクタリングする場合
- 競合状態、古い値の読み取り、エラーエフェクトをデバッグする場合
- SSR に安全なロジックや、スコープを使ったテストを書く場合
- リントやレビューを通じてアーキテクチャを徹底する場合
- プロジェクトですでに Effector を使用しており、アーキテクチャの分析や改善が必要な場合
- ユーザーが Effector ベースのアーキテクチャの設計やレビューを依頼した場合
- ユーザーが新しいプロジェクトを始め、ステートマネージャーやアプリのアーキテクチャについて検討している場合
ルールのカテゴリ
| カテゴリ | プレフィックス | 対象 |
|---|---|---|
| コアの正確性 | core- | アンチパターン、命名、分離 |
| フロー制御 | flow- | sample、純粋性、接続 |
| エフェクト | fx- | 非同期処理の正確性、依存関係 |
| モデリング | model- | カプセル化と正規化 |
| React との統合 | react- | UI でのバインディング |
| Patronum | patronum- | オペレーターの指針 |
| スコープ/SSR | scope-、ssr- | 分離とハイドレーション |
| テスト | test- | 決定的なテスト |
| デバッグ | debug- | 副作用のないトレース |
| リント | lint- | ルールの徹底 |
クイックリファレンス
コアの正確性
core-no-guard-forward- 従来のguard/forwardをsampleに置き換えるcore-no-watch- ロジックに.watchを使用せず、エフェクト/inspect を使用するcore-no-getstate- フロー内で命令型のgetState()を使用しないcore-logic-outside-view- ロジックをコンポーネントではなくモデルに置くcore-store-naming- ストアには$接頭辞を使用する
フロー制御
flow-use-sample-for-time-correct- クロックのタイミングで状態を読み取るflow-use-on-for-simple- 単純な更新には.onを使用するflow-no-side-effects-in-map-.map()を純粋に保つflow-avoid-circular-imports- 接続する前にユニットを定義する
エフェクト
fx-use-effect-lifecycle-pending/done/failユニットを使用するfx-compose-effects-explicitly- 内側のエフェクトを await するか、並列実行するfx-use-attach-to-inject-deps-attachを介してストアの値を注入する
モデリング
model-use-factories- 分離されたモデルインスタンスを作成するmodel-normalize-entities- エンティティを正規化した形式で保存する
React との統合
react-useunit-useUnitでストア/イベントをバインドする
Patronum
patronum-use-debounce-throttle- タイミング制御には debounce/throttle オペレーターを使用するpatronum-use-condition- then/else の分岐には condition を使用するpatronum-use-pending-inflight-status- Patronum を介してエフェクトの状態を集約するpatronum-use-combineevents- 複数のイベントを宣言的に待機する
スコープ/SSR
scope-use-fork-allsettled- 分離にはforkとallSettledを使用するscope-use-scopebind-for-external- 外部コールバックをスコープにバインドするssr-use-sids-plugin- SIDs 用の Babel/SWC プラグインを有効にする
テスト、デバッグ、リント
test-mock-effects-with-fork-handlers-fork({ handlers })を介してエフェクトをモックするdebug-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(スコープ、SSR、ハイドレーション)references/testing.md(テストのパターン)references/babel-plugin.md(SIDs とプラグインの使用方法)references/patronum-operators.md(オペレーター一覧)
コメント
Markdown 対応