Agent skill

Signals Preact Dart

by rodydavis in rodydavis/signals.dart

Core reactive programming best practices and primitive definitions for preactsignals in Dart.

Apache-2.0Auto-check passedMobile

Install Signals Preact Dart

skills CLI
$ npx skills add rodydavis/signals.dart --skill signals-preact-dart -a claude-code

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

GitHub CLI
$ gh skill install rodydavis/signals.dart signals-preact-dart --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/rodydavis/signals.dart.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/signals-preact-dart .claude/skills/signals-preact-dart && 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
signals-preact-dart
GitHub stars
819
Token cost
~1.1k tokens
SKILL.md length
358 words
Files
8
Skills in repo
15
Repo updated
First seen
Licence
Apache-2.0

At a glance

Core reactive programming best practices and primitive definitions for preactsignals in Dart.

  • Works in 5 steps: signal(initialValue) → untracked(fn) → computed(fn) → …
  • Tasks that involve Cross-platform mobile apps
  • SKILL.md covers Related Documentation & Items, Core Primitives Quick Start…, 1. Core Primitives Details and 2. Dependency Tracking &…
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Signals Preact Dart is an agent skill from rodydavis/signals.dart. Core reactive programming best practices and primitive definitions for preactsignals in Dart.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files (for example `CONTEXT.md`, `core/CONTEXT.md` and `core/batch.md`).

It sits in Mobile, covering Cross-platform mobile apps. It works with Preact and Dart. The repository describes itself as: Reactive programming made simple for Dart and Flutter. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Cross-platform mobile apps

Example prompts

  • “/signals-preact-dart”

Workflow steps

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

  1. signal(initialValue)
  2. untracked(fn)
  3. computed(fn)
  4. effect(fn)
  5. batch(fn)

What it can do on your machine

Read from SKILL.md and the folder at commit 81d64e8. 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 dart).

    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

Signals Preact Dart loads about 1.1k tokens when it runs. Until then it costs about 29 tokens; SKILL.md has 358 words of instructions outside code blocks.

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

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 rodydavis/signals.dart at commit 81d64e8, republished under its Apache-2.0 licence (© rodydavis). 358 words, ~1,061 tokens.

Download SKILL.mdSave it as .claude/skills/signals-preact-dart/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
signals-preact-dart
description
Core reactive programming best practices and primitive definitions for preact_signals in Dart.

Preact Signals in Dart

This skill covers the core reactive programming primitives and implementation patterns of the preact_signals package.

Related FileDescription
signal.mdStandard writeable reactive state primitive containing value accessors, mutation mechanics, and basic custom options.
computed.mdLazy, memoized read-only derived state signal tracking reactive dependencies dynamically.
effect.mdSynchronous observer managing active subscription loops, dynamic dependency updates, and lifecycle teardown.
readonly.mdRead-only signal views ensuring unidirectional data access flows.
batch.mdTransactional state mutation blocks optimizing reactive computations and preventing rendering/recompute churn.

Core Primitives Quick Start Guide

The signals library exposes five core functions which are the building blocks to model any reactive business logic.

1. signal(initialValue)

Creates a new mutable signal container. You read a signal's value or subscribe to updates by accessing .value.

dart
final counter = signal(0);
print(counter.value); // 0
counter.value = 1; // Mutates value and schedules dependent updates
.peek()

Reads a signal's current value without subscribing to its mutations.

dart
final counter = signal(0);
final logCount = signal(0);

effect(() {
  print(counter.value);
  // Read using peek to avoid subscribing/triggering loop
  logCount.value = logCount.peek() + 1;
});
2. untracked(fn)

Executes a callback that reads signals without subscribing to any of them.

dart
final counter = signal(0);
final count = signal(0);

effect(() {
  print(counter.value);
  count.value = untracked(() => count.value + 1);
});
3. computed(fn)

Combines the values of multiple signals into a lazy, memoized derived signal.

dart
final first = signal('John');
final last = signal('Doe');
final fullName = computed(() => '${first.value} ${last.value}');
print(fullName.value); // John Doe
4. effect(fn)

Orchestrates immediate synchronous side effects by running a callback and subscribing to any signals read within it.

dart
final name = signal('Jane');
final dispose = effect(() => print('Hello $name'));
dispose(); // Clean up subscription
5. batch(fn)

Groups multiple signal writes into a single transaction, executing all dependent computed evaluations and effects exactly once at the end.

dart
final a = signal(0);
final b = signal(0);

batch(() {
  a.value = 1;
  b.value = 2;
});

1. Core Primitives Details

Show full SKILL.md (146 more words)Show less
A. Signal<T>

A state primitive representing a mutable value that can be observed.

dart
final count = signal(0);
count.value = 1; // Notifies all active subscribers/effects
B. Computed<T>

A derived state primitive representing a read-only value calculated based on other signals. It is:

  • Lazy: Evaluated only when accessed.
  • Memoized: Caches its value and only recompute when its source dependencies change.
dart
final count = signal(2);
final double = computed(() => count.value * 2);
C. Effect

An observer that executes a callback immediately and tracks read signals. It re-runs whenever any of the tracked signals change.

dart
final dispose = effect(() {
  print('Current count: ${count.value}');
});
dispose(); // Clean up subscription

2. Dependency Tracking & Re-entrancy Rules

  • Synchronous Context: Dependencies are tracked dynamically based on which signals are read during the execution of the callback.
  • Cycle Detection: Reading a computed signal inside its own execution flow or setting dependencies inside computed callbacks causes cycles. Avoid side-effects inside computed getters.
  • Lazy Initial Value: Lazy computed signals are not evaluated when created. Always call isInitialized or check the initialization status before forcing a .peek() inside observers to avoid re-entrancy cycle crashes.

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

Files

SKILL.md and 7 other files in skills/signals-preact-dart of rodydavis/signals.dart.

  • SKILL.md
  • CONTEXT.md
  • core/CONTEXT.md
  • core/batch.md
  • core/computed.md
  • core/effect.md
  • core/readonly.md
  • core/signal.md

Open the folder on GitHubat commit 81d64e8

Compare with similar skills

Signals Preact Dart 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.

Signals Preact Dart compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Signals Preact Dart this skillrodydavis/signals.dart819—~1.1kAutomated safety check: PassApache-2.0
Engine Whats Newflutter/flutter180k—~978Automated safety check: PassBSD-3-Clause
Flutter Cherry Pickflutter/flutter180k—~1.8kAutomated safety check: PassBSD-3-Clause
Upgrade Browserflutter/flutter180k—~1.1kAutomated safety check: PassBSD-3-Clause
Bump Dartflutter/flutter180k—~1.2kAutomated safety check: PassBSD-3-Clause
Run Devicelab With Ledflutter/flutter180k—~852Automated safety check: PassBSD-3-Clause

Similar skills

  • Engine Whats New

    flutter/flutter

    Generates the "what's new" release summary and diff file for changes in the Flutter engine (//engine/src/flutter) between two releases (e.g., 3.47 vs 3.44).

    180k GitHub stars~978 tokensUpdated today
    MobileAuto-check passed
  • Flutter Cherry Pick

    flutter/flutter

    How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel.

    180k GitHub stars~1.8k tokensUpdated today
    MobileAuto-check passed
  • Upgrade Browser

    flutter/flutter

    Upgrade browser versions (Chrome or Firefox) in the Flutter Web Engine and/or Framework tests.

    180k GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed
  • Bump Dart

    flutter/flutter

    Do not trigger automatically; only run when a user runs /bump-dart.

    180k GitHub stars~1.2k tokensUpdated today
    MobileAuto-check passed
  • Run Devicelab With Led

    flutter/flutter

    Run DeviceLab tests for Flutter PRs using LUCI's led CLI tool.

    180k GitHub stars~852 tokensUpdated today
    MobileAuto-check passed
  • Shepherd PRs

    flutter/flutter

    Automate shepherding, checking status, updating branches, and landing open PRs or approved third-party contributor PRs in the flutter/flutter repository using the gh CLI.

    180k GitHub stars~1.7k tokensUpdated today
    MobileAuto-check passed

More from rodydavis/signals.dart

All 15 skills in this repo
  • Jaspr Component Fundamentals

    rodydavis/signals.dart

    Teaches the agent Jaspr's Flutter-like component model and typed HTML elements, with strict rules on build methods and helper syntax.

    819 GitHub stars~1.8k tokensUpdated 27 days ago
    Auto-check passed
  • Jaspr CSS-in-Dart Styling

    rodydavis/signals.dart

    Guides styling of Jaspr web components with the type-safe Styles API in Dart, covering @css annotations, inline styles and global stylesheets.

    819 GitHub stars~1.7k tokensUpdated 27 days ago
    Auto-check passed
  • Jaspr JS Interop

    rodydavis/signals.dart

    Rules for calling JavaScript from Jaspr web apps in Dart: which interop libraries to import in server, static and client modes, and how to wrap functions, objects and libraries.

    819 GitHub stars~823 tokensUpdated 27 days ago
    Auto-check passed
  • Jaspr Pre-Rendering and Hydration

    rodydavis/signals.dart

    Sets the rules for static or server mode Jaspr apps in Dart, covering dual entrypoints, the client annotation and data hydration.

    819 GitHub stars~1.2k tokensUpdated 27 days ago
    Auto-check passed
  • Update Dart Examples Dependencies

    rodydavis/signals.dart

    Upgrades every package under ./examples to the repository's latest signals version, runs pub upgrade on third-party dependencies, and fixes the resulting analysis problems.

    819 GitHub stars~514 tokensUpdated 27 days ago
    Auto-check passed
  • Jaspr HTML Converter

    rodydavis/signals.dart

    Use when you need to convert / rewrite existing HTML (from a file or url) into Jaspr code.

    819 GitHub stars~378 tokensUpdated 27 days ago
    Auto-check passed

Works with

Categories

Questions about Signals Preact Dart

What does Signals Preact Dart do?

Core reactive programming best practices and primitive definitions for preactsignals in Dart. dart. Core reactive programming best practices and primitive definitions for preactsignals in Dart.

When should I use Signals Preact Dart?

Signals Preact Dart fits situations like: tasks that involve Cross-platform mobile apps.

How do I install Signals Preact Dart in Claude Code?

Run `npx skills add rodydavis/signals.dart --skill signals-preact-dart -a claude-code`. Or copy the skill folder (skills/signals-preact-dart in rodydavis/signals.dart) into .claude/skills/signals-preact-dart in your project. Claude Code loads it when a task matches its description.

How do I install Signals Preact Dart in Codex?

Run `npx skills add rodydavis/signals.dart --skill signals-preact-dart -a codex`. Or copy the skill folder (skills/signals-preact-dart in rodydavis/signals.dart) into .agents/skills/signals-preact-dart in your project. Codex loads it when a task matches its description.

Can I use Signals Preact Dart 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 rodydavis/signals.dart --skill signals-preact-dart -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/signals-preact-dart, .gemini/skills/signals-preact-dart, .github/skills/signals-preact-dart and .opencode/skills/signals-preact-dart in your project.

What does Signals Preact Dart need to run?

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

Does Signals Preact Dart 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 Signals Preact Dart 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 Signals Preact Dart use?

Signals Preact Dart is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Signals Preact Dart use?

About 1.1k tokens (SKILL.md is roughly 4.2k 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 Signals Preact Dart?

Skills that share tags, products or a category with Signals Preact Dart: Engine Whats New (flutter/flutter, 180k stars), Flutter Cherry Pick (flutter/flutter, 180k stars), Upgrade Browser (flutter/flutter, 180k stars) and Bump Dart (flutter/flutter, 180k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Signals Preact Dart?

rodydavis (a GitHub user) maintains it in rodydavis/signals.dart, which has 819 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on September 14, 2026.

Source: rodydavis/signals.dart on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.