themis

Routes Redux and redux-saga guidance to Svelte, React, or Streaming Store family skills.

6|6|Updated Jun 29, 2026
One-click install
npx skills add https://github.com/intent-hq/cloudlands-fe --skill themis-intent-hq
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: themis
Source: https://github.com/intent-hq/cloudlands-fe/tree/main/.agents/skills/themis
Command: npx skills add https://github.com/intent-hq/cloudlands-fe --skill themis-intent-hq

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @augmentcode/themis, redux, redux-saga, typed-redux-saga, fast-equals.

What problem does it solve? Choosing the correct state-management guidance for an app is error-prone when a repository mixes Svelte, React, and Node code paths, and mixing Store families in one app causes architectural violations. This Skill acts as a root router that classifies each code path by concrete UI evidence and directs the agent to exactly one Store family plus shared core Redux guidance. ## Core Features & Use Cases - Evidence-based routing: Classifies code paths as Svelte, React, Streaming (Node/no-UI), or shared Core using concrete signals like .svelte files, React imports, or Kefir observables, defaulting to Streaming when UI evidence is absent. - Store family exclusivity enforcement: Ensures one app uses exactly one concrete Store family (Store, ReactStore, or StreamingStore) and never mixes Svelte readables, React signals, and Kefir observables in the same code path. - Universal side-effect policy: Enforces that business logic and side effects live in sagas, not components, across all families, with only DOM-local effects permitted in components. - Use Case: In a monorepo with a SvelteKit frontend and a Node worker, the router sends frontend changes to the Svelte skills and worker changes to the Streaming skills, while shared reducer policy questions go to Core. ## Quick Start Ask the agent to set up Redux state management for your SvelteKit app and it will route to the setup and Svelte Store family guidance automatically.

Frequently Asked Questions about themis

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I choose between Svelte Store, ReactStore, and StreamingStore?▼

Choose based on concrete evidence in the target code path: Svelte or SvelteKit files select Store, React imports and JSX select ReactStore, and Node, server, CLI, or no-UI paths select StreamingStore by default. One app must use exactly one family and never mix them.

How do I set up Redux with redux-saga in a SvelteKit app?▼

Create a Store instance from @augmentcode/themis/svelte-store with your reducer map, call store.init() in the root +layout.svelte with onDestroy(dispose), and start app sagas explicitly via store.runSaga(sagaFn) from onMount. Selectors are called at component init and used as $readables in templates.

Does this package use Redux Toolkit?▼

No, it uses a custom Redux setup and explicitly forbids Redux Toolkit APIs such as createSlice, configureStore, and createAsyncThunk. Actions and reducers are built with the package's own createAction and createReducer utilities.

Can I mix Svelte and React Store patterns in the same repository?▼

Only across separate apps or isolated code paths. A single app, package entry, or code path must not combine Svelte readables, React .useValue() signals, and Kefir observables; mixed repositories route per app based on the files being changed.

Why does calling a selector inside an event handler crash?▼

Direct selector calls like selectFoo() use Svelte getContext() and only work during component initialization, otherwise throwing lifecycle_outside_component. In handlers, callbacks, or async code, use selectFoo.select(store.state, args) for one-shot reads instead.

Where should side effects like API calls and localStorage go?▼

All side effects belong in sagas, not components, across every Store family. Components may only contain DOM-local effects such as focus, scroll, and measurement; everything else is dispatched as an action and handled by a saga.