Use when migrating React code or libraries to Preact, configuring preact/compat, bundler aliases, react/jsx-runtime, react-dom, Jest, Node SSR aliases, or diagnosing duplicate React/Preact copies and compat behavior differences.
Use when building or debugging Preact forms, controlled or uncontrolled inputs, onInput versus onChange, checkbox, radio, select, textarea behavior, hydration of form state, cursor preservation, or compat event normalization.
Use when Preact hooks fail with invalid hook calls, H undefined or null errors, mixed CJS/ESM imports, no-build import maps, duplicate Preact copies, useId SSR mismatches, or effect scheduling problems.
Use when Preact SSR, prerendering, hydrate(), Suspense, lazy, streaming SSR, renderToStringAsync(), or browser-parsed HTML produces hydration warnings, duplicate nodes, mismatched DOM, lost focus, stale fallback markup, or client-only conditional render bugs.
Use when starting a Preact app, choosing Vite versus no-build HTM or import maps, setting JSX pragmas, CDN ESM imports, create-preact, or integrating Preact into an existing build pipeline.
Use when implementing or debugging @preact/signals-core, signal, computed, effect, batch, untracked, action, createModel, signal.value tracking, object or array updates, and reactivity that appears stale or over-eager.
Use when diagnosing Preact Signals bugs, stale renders, missing updates, memory leaks, duplicate Preact copies, React transform misses, devtools/debug output, SSR differences, or issues that need a minimal reproduction.
Use when configuring, extending, or debugging @preact/eslint-plugin-signals rules for Preact Signals misuse, including conditional value reads, signal truthiness, signal writes in computed, values after await, and signal creation in component bodies.
Use when designing or debugging Preact Signals models and utilities, including createModel, useModel, action methods, Show, For, useLiveSignal, useSignalRef, nested model state, and model lifecycle disposal.
Use when Preact or @preact/signals is used directly in the browser with import maps, CDNs, HTM, esm.sh, unpkg, no bundler, or symptoms that signals update internally but components do not rerender.
Use when working with @preact/signals in Preact components, including useSignal, useComputed, useSignalEffect, direct JSX signal rendering, DOM attribute optimization, Show, For, useLiveSignal, and rerender behavior.
Use when working with @preact/signals-react in React applications, including the Babel transform, useSignals, React 18 or 19 behavior, JSX children versus attributes, SSR, render props, and signal tracking failures.
Use when testing Preact Signals behavior in applications or the preactjs/signals repository, including Vitest, Testing Library, browser tests, module-level signal isolation, async updates, and signal-driven UI assertions.
Use when implementing Preact SSR, preact-render-to-string, renderToStringAsync, streams, preact-iso prerendering, route hydration, or Suspense/lazy with server-rendered markup.
Use when configuring Preact TypeScript, JSX transforms, jsxImportSource, preact/compat TS paths, JSX namespace augmentation, component children types, DOM event or ref types, or React type conflicts.
Claude Code instructions for JoviDeCroock/preact-mcp, covering claude documentation - preact mcp server, project overview, architecture, core components and repository sources.