core/import-boundaries

Validates which store modules components, services, and sagas may import in Redux-based applications.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Teams using Redux with redux-saga often blur layer boundaries: components import saga files, services hide dispatch calls, and client bundles pull in saga middleware. This Skill defines and enforces clear import rules so each layer only touches the modules it is allowed to use. ## Core Features & Use Cases - Layer-specific import rules: Defines what components, services, and sagas may import, including actions, selectors, types, and the initialized Store instance. - Forbidden import detection: Flags components importing saga files, typed-redux-saga effects, reducer internals, or collection utilities directly. - Public package surface guidance: Maps approved subpackage and utility leaf subpaths such as @augmentcode/themis/svelte-store and /utils/store/create-action. - Use Case: While reviewing a Svelte component, you notice it imports a saga generator and steps it manually. Use this Skill to replace the saga import with a store.dispatch call of the triggering action. ## Quick Start Review this component file and tell me which imports violate the store import boundary rules and how to fix them.

Frequently Asked Questions about core/import-boundaries

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

FAQPage Schema
How do I enforce import boundaries between Redux components and sagas?▼

Components may import actions, selectors, types, and the initialized Store instance, but never saga files or redux-saga effects. Services dispatch through the Store instance, while only sagas may import other sagas and typed-redux-saga effects.

What can a React or Svelte component import from a Redux store slice?▼

A component can import action creators from slice files, selectors from selector modules, and TypeScript types. It must not import saga source, reducer internals, store setup modules, or collection utilities directly.

Can I import typed-redux-saga effects in a component file?▼

No. typed-redux-saga effects like call, put, and takeEvery only have meaning inside saga generators. Importing them in components bloats the bundle and can drag saga middleware into client code; dispatch an action through the Store instead.

Why is importing saga files into components a problem?▼

Importing saga source into a component pulls side-effect code into the client bundle and invites direct generator invocation, which bypasses the Store.runSaga lifecycle. The fix is to dispatch the triggering action and let the saga middleware handle it.

How should services dispatch Redux actions without hidden side effects?▼

Services should dispatch through the app's initialized Store instance captured outside callbacks, or receive a Store or dispatch function as an explicit parameter. Hidden module-level dispatch helpers create an unreviewable second boundary even when imports type-check.