Agent skill

Dialogs Slice

by LedgerHQ in LedgerHQ/ledger-live

Global dialogs Redux slice pattern for MVVM dialog state management

MITAuto-check passedFrontend & Design

Install Dialogs Slice

skills CLI
$ npx skills add LedgerHQ/ledger-live --skill dialogs-slice -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LedgerHQ/ledger-live dialogs-slice --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LedgerHQ/ledger-live.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/dialogs-slice .claude/skills/dialogs-slice && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dialogs-slice
GitHub stars
621
Token cost
~915 tokens
SKILL.md length
288 words
Files
1
Skills in repo
50
Repo updated
First seen
Licence
MIT

At a glance

Global dialogs Redux slice pattern for MVVM dialog state management

  • Works in 5 steps: Register the dialog ID → Create the feature dialog file → Use in the view model → …
  • Tasks that involve State management
  • SKILL.md covers When to use, Architecture, Adding a new global dialog and Rules, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Dialogs Slice is an agent skill from LedgerHQ/ledger-live. Global dialogs Redux slice pattern for MVVM dialog state management

Its SKILL.md is about 920 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering State management. It works with Redux. The repository describes itself as: Mono-repository for Ledger Wallet apps and related packages. The licence is MIT.

When your agent uses it

  • Tasks that involve State management

Example prompts

  • “/dialogs-slice”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Register the dialog ID
  2. Create the feature dialog file
  3. Use in the view model
  4. Mount in GlobalDialogs
  5. Trigger from anywhere

What it can do on your machine

Read from SKILL.md and the folder at commit a3861a2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dialogs Slice loads about 915 tokens when it runs. Until then it costs about 20 tokens; SKILL.md has 288 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~20
When it runs · the whole SKILL.md, loaded when a task matches
~915

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from LedgerHQ/ledger-live at commit a3861a2, republished under its MIT licence (© LedgerHQ). 288 words, ~915 tokens.

Download SKILL.mdSave it as .claude/skills/dialogs-slice/SKILL.md (or your agent's skills folder).
name
dialogs-slice
description
Global dialogs Redux slice pattern for MVVM dialog state management

Global Dialogs Slice Pattern

Centralized Redux state for global dialog open/close, avoiding one slice per dialog.

When to use

Use this pattern for dialogs that are:

  • Mounted at the app root (e.g. in Default.tsx)
  • Triggered from distant parts of the component tree (e.g. a settings button opening a dialog rendered at root level)

Do NOT use this for dialogs that are local to a single component or screen -- prefer a simple useState instead.

Architecture

  • One shared slice: renderer/reducers/dialogs.ts manages all global dialog states via a Record<DialogId, boolean>
  • Single source of truth: DIALOG_IDS runtime array defines all IDs; DialogId type is derived from it via (typeof DIALOG_IDS)[number]
  • Feature wrappers: Each feature creates a thin *Dialog.ts file that re-exports typed helpers bound to its ID
  • Single mount point: mvvm/features/GlobalDialogs/index.tsx renders all global dialog components at the app root

Adding a new global dialog

Step 1: Register the dialog ID

Add the new ID to the DIALOG_IDS array in renderer/reducers/dialogs.ts. The DialogId type updates automatically:

typescript
export const DIALOG_IDS = ["RELEASE_NOTES", "MY_NEW_DIALOG"] as const;
// DialogId is now "RELEASE_NOTES" | "MY_NEW_DIALOG"
Step 2: Create the feature dialog file

Create myFeature/myNewDialog.ts in the feature folder:

typescript
import {
  openDialog,
  closeDialog,
  selectIsDialogOpen,
  type DialogId,
} from "~/renderer/reducers/dialogs";
import type { State } from "~/renderer/reducers";

const DIALOG_ID: DialogId = "MY_NEW_DIALOG";

export const openMyNewDialog = () => openDialog(DIALOG_ID);
export const closeMyNewDialog = () => closeDialog(DIALOG_ID);
export const selectIsMyNewDialogOpen = (state: State) => selectIsDialogOpen(state, DIALOG_ID);
Step 3: Use in the view model
typescript
import { selectIsMyNewDialogOpen, closeMyNewDialog } from "../myNewDialog";

const useMyNewDialogViewModel = () => {
  const isOpen = useSelector(selectIsMyNewDialogOpen);
  const dispatch = useDispatch();
  const onClose = useCallback(() => dispatch(closeMyNewDialog()), [dispatch]);
  return { isOpen, onClose };
};
Step 4: Mount in GlobalDialogs

Add the dialog component to mvvm/features/GlobalDialogs/index.tsx:

typescript
import MyNewDialog from "LLD/features/MyFeature";

const GlobalDialogs = () => (
  <>
    <ModularDialogRoot />
    <SendFlowRoot />
    <ReleaseNotes />
    <MyNewDialog />
  </>
);
Step 5: Trigger from anywhere
typescript
import { openMyNewDialog } from "LLD/features/MyFeature/myNewDialog";

dispatch(openMyNewDialog());

Rules

  • NEVER create a dedicated Redux slice just for dialog open/close state
  • NEVER use this pattern for dialogs local to a single component -- use useState instead
  • ALWAYS add new dialog IDs to the DIALOG_IDS array (the type is derived automatically)
  • ALWAYS use SCREAMING_SNAKE_CASE for dialog IDs
  • ALWAYS mount new global dialogs in GlobalDialogs/index.tsx, not directly in Default.tsx
  • Feature dialog files should only contain the ID constant and re-exported typed helpers
  • No modification to reducers/index.ts or Default.tsx is needed when adding new dialogs

Reference

  • Slice: apps/ledger-live-desktop/src/renderer/reducers/dialogs.ts
  • Mount point: apps/ledger-live-desktop/src/mvvm/features/GlobalDialogs/index.tsx
  • Example: apps/ledger-live-desktop/src/mvvm/features/ReleaseNotes/releaseNotesDialog.ts

© LedgerHQ, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/dialogs-slice of LedgerHQ/ledger-live.

Open the folder on GitHubat commit a3861a2

Compare with similar skills

Dialogs Slice next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Dialogs Slice compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dialogs Slice this skillLedgerHQ/ledger-live621—~915Automated safety check: PassMIT
React State Managementinvolvex/youtube-music-cli45612 repos~3kAutomated safety check: PassMIT
Frontendredis/RedisInsight8.9k—~3.2kAutomated safety check: PassCustom licence
Nekocap Redux Featurenopol10/nekocap105—~939Automated safety check: PassGPL-3.0
React ExpertJeffallan/claude-skills12k—~1.4kAutomated safety check: PassMIT
Sentry React SDKgetsentry/sentry-for-ai268—~4.8kAutomated safety check: PassApache-2.0

Similar skills

  • React State Management

    involvex/youtube-music-cli

    Master modern React state management with Redux Toolkit, Zustand, Jotai, and React Query.

    456 GitHub starsUsed in 12 repos~3k tokens
    Frontend & DesignAuto-check passed
  • Frontend

    redis/RedisInsight

    Official

    React/Redux frontend development patterns for RedisInsight UI: component folder structure, styled-components, hooks, named exports, barrel files, layout components, and theme usage.

    8.9k GitHub stars~3.2k tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed
  • Nekocap Redux Feature

    nopol10/nekocap

    A skill your agent uses when adding or modifying a Redux feature folder in the nekocap frontend — creating slices, writing sagas, defining selectors, changing persisted state shape, or touching…

    105 GitHub stars~939 tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed
  • React Expert

    Jeffallan/claude-skills

    Builds React 19 components in TypeScript with Server Components, useActionState forms, custom hooks and state libraries, checked with tsc and React Testing Library.

    12k GitHub stars~1.4k tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed
  • Sentry React SDK

    getsentry/sentry-for-ai

    Official

    Full Sentry SDK setup for React. An agent skill from getsentry/sentry-for-ai.

    268 GitHub stars~4.8k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Protocol Designer

    Opentrons/opentrons

    Protocol Designer (PD) application architecture, Redux slices, step/timeline system, domain concepts, and dev workflow.

    521 GitHub stars~1.7k tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from LedgerHQ/ledger-live

All 50 skills in this repo
  • Impacting PRs

    LedgerHQ/ledger-live

    Find which open PRs are impacted by a migration/sunset/refactor and notify their authors — blocking review when the old path is already gone from develop, heads-up comment when it is only deprecated…

    621 GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Cloud Sync Module

    LedgerHQ/ledger-live

    Write, review or debug a cloudSyncModule.ts — a CloudSyncDataManager that syncs one slice of user data through Ledger Sync (Cloud Sync).

    621 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Codeownership

    LedgerHQ/ledger-live

    Maintain CODEOWNERS file and team directories. An agent skill from LedgerHQ/ledger-live.

    621 GitHub stars~687 tokensUpdated today
    Auto-check passed
  • Coin Families Contract

    LedgerHQ/ledger-live

    Coin-specific families logic must live in families/. An agent skill from LedgerHQ/ledger-live.

    621 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Data Layer Advanced

    LedgerHQ/ledger-live

    Structure a Ledger Wallet data layer where one API response serves several entities.

    621 GitHub stars~509 tokensUpdated today
    Auto-check passed
  • Debug Rn Native Crash

    LedgerHQ/ledger-live

    Investigate native React Native crashes (Fabric/Hermes/iOS) in ledger-live-mobile when JS error logs are missing or unhelpful.

    621 GitHub stars~1.2k tokensUpdated today
    Auto-check passed

Works with

Questions about Dialogs Slice

What does Dialogs Slice do?

Global dialogs Redux slice pattern for MVVM dialog state management. Dialogs Slice is an agent skill from LedgerHQ/ledger-live.

When should I use Dialogs Slice?

Dialogs Slice fits situations like: tasks that involve State management.

How do I install Dialogs Slice in Claude Code?

Run `npx skills add LedgerHQ/ledger-live --skill dialogs-slice -a claude-code`. Or copy the skill folder (.agents/skills/dialogs-slice in LedgerHQ/ledger-live) into .claude/skills/dialogs-slice in your project. Claude Code loads it when a task matches its description.

How do I install Dialogs Slice in Codex?

Run `npx skills add LedgerHQ/ledger-live --skill dialogs-slice -a codex`. Or copy the skill folder (.agents/skills/dialogs-slice in LedgerHQ/ledger-live) into .agents/skills/dialogs-slice in your project. Codex loads it when a task matches its description.

Can I use Dialogs Slice in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LedgerHQ/ledger-live --skill dialogs-slice -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dialogs-slice, .gemini/skills/dialogs-slice, .github/skills/dialogs-slice and .opencode/skills/dialogs-slice in your project.

What does Dialogs Slice need to run?

SKILL.md names no scripts, command-line tools or credentials: Dialogs Slice is instructions for the agent only.

Does Dialogs Slice access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Dialogs Slice safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Dialogs Slice use?

Dialogs Slice is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dialogs Slice use?

About 915 tokens (SKILL.md is roughly 3.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Dialogs Slice?

Skills that share tags, products or a category with Dialogs Slice: React State Management (involvex/youtube-music-cli, 456 stars), Frontend (redis/RedisInsight, 8.9k stars), Nekocap Redux Feature (nopol10/nekocap, 105 stars) and React Expert (Jeffallan/claude-skills, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dialogs Slice?

LedgerHQ (a GitHub organization) maintains it in LedgerHQ/ledger-live, which has 621 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 7, 2026.

Source: LedgerHQ/ledger-live on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.