stimulus-patterns

stimulus-patterns is a skill for Claude Code from davidteren/hotwire-codex-skills. It costs 90 tokens per session (670 once invoked), scanned A, original, MIT.

A set of patterns for Stimulus, a small JavaScript framework that adds behavior to HTML, in Rails applications using Turbo for page updates.

In plain words
What is it for?
Use it when creating Stimulus controllers, handling Turbo Stream or Frame content, passing server settings, or debugging connection and target errors.
Why use it?
It helps prevent controllers from failing when content arrives later, connecting twice, or leaving behind listeners and timers after navigation.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the hotwire-codex-skills plugin — 8 skills shipped together

Good fit Use it when creating Stimulus controllers, handling Turbo Stream or Frame content, passing server settings, or debugging connection and target errors.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/davidteren/hotwire-codex-skills/stimulus-patterns
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add davidteren/hotwire-codex-skills --skill stimulus-patterns
Clone the repo
git clone --depth 1 https://github.com/davidteren/hotwire-codex-skills

Made for: Claude Code.

Or install hotwire-codex-skills, the plugin that ships this one along with the rest of its 8 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for stimulus-patterns

README.md
[![agentmods](https://agentmods.dev/badge/skills/davidteren/hotwire-codex-skills/stimulus-patterns/github.svg)](https://agentmods.dev/skills/davidteren/hotwire-codex-skills/stimulus-patterns)
Your own site
<a href="https://agentmods.dev/skills/davidteren/hotwire-codex-skills/stimulus-patterns"><img src="https://agentmods.dev/badge/skills/davidteren/hotwire-codex-skills/stimulus-patterns/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for stimulus-patterns

Your own site · 80×15
<a href="https://agentmods.dev/skills/davidteren/hotwire-codex-skills/stimulus-patterns"><img src="https://agentmods.dev/badge/skills/davidteren/hotwire-codex-skills/stimulus-patterns.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 90 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 670 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00090 $0.00670
Opus 5 $0.00045 $0.00335
Sonnet 5 $0.00018 $0.00134
Haiku 4.5 $0.00009 $0.00067

Measured 8d ago against content hash 3aec8712dcf0, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

stimulus-patterns scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/lint_stimulus.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/stimulus-patterns/SKILL.md · 56 lines

How it starts

The opening of the file, as written. The whole thing — 56 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Stimulus patterns

Keep controllers small, Turbo-safe, and driven by the server. Full patterns: references/stimulus-guide.md (grounded in the Piazza controllers).

When to use

  • Adding a Stimulus controller.
  • Wiring elements that arrive later (Turbo Stream append, frame load) — use the xTargetConnected self-wiring callback instead of re-querying.
  • Passing data/CSS from the server (Values/Classes API).
  • Debugging: a controller that never connects, a this.fooTarget undefined error, or a listener/timer that double-fires after navigation.

The patterns (and their footguns)

  1. Small, single-purpose controllers — many tiny ones over one big one.
  2. Self-wiring via xTargetConnected(target) — fires per element as each connects, including streamed-in ones (templates/self_wiring_controller.js.tmpl).
  3. Values/Classes API — push config + CSS class names from ERB (this.fooValue, this.fooClasses); keep styling in the view.
  4. State machine + delegate — controller toggles DOM state; a plain helper does SDK/transport plumbing and calls back.
  5. Clone a server <template> — stamp repeated markup instead of building HTML in JS.
  6. Clean up in disconnect() — undo addEventListener(window/document), setInterval, observers, or native UI you rendered, or it leaks and double-fires after Turbo navigation. data-action listeners are auto-managed; manual ones aren't.

Start a controller

sed 's/__NAME__/your-name/g' templates/controller.js.tmpl > your_name_controller.js
# or templates/self_wiring_controller.js.tmpl for the streamed-in case

Register it (manifest index.js via bin/rails stimulus:manifest:update, or stimulus-loading) — an unregistered controller never connects.

Lint

scripts/lint_stimulus.sh path/to/rails-app      # or a controllers/ dir

Flags: this.xTarget/xValue/xClass used but not declared in static targets/values/classes (runtime errors); connect() that registers a listener/timer/observer with no disconnect() (leak/double-fire); a controller file missing from the index.js manifest (never connects). Heuristic regex scan (needs ruby); names its ceiling. Verified: clean on all 7 Piazza controllers, flags a synthetic broken one on every check.

Read the full file on GitHub · 56 lines

Files

What ships with it

4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 8d ago First seen · 56 lines · 90 tokens per session scan A 3aec8712dcf0

Subscribe to this mod's changes

stimulus-patterns is a skill published in the GitHub repository davidteren/hotwire-codex-skills (3 stars, last pushed 2mo ago), licensed MIT. It adds 90 tokens to every session and 670 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

create-mobile-app

Use when the user wants to start a new Power Apps mobile app (Expo / React Native / TypeScript, targeting iOS and Android) from scratch.

microsoft/power-platform-skills · 35 tokens

app-builder

(Preview) Builds and edits a model-driven Power Apps app from a natural-language intent — tables, columns, relationships, adaptive forms with sub-grids, views, Choice-column charts, generative page intents for overview/dashboard surfaces (page .tsx generated in generate-pages after plan approval), and an app module +…

microsoft/power-platform-skills · 210 tokens

create-site

Creates a new Power Pages code site (SPA) using React, Angular, Vue, or Astro. Guides through the full process from initial concept to deployed site: requirements discovery, scaffolding, component planning, design, implementation, validation, and deployment. Use when the user wants to create, build, or scaffold a new…

microsoft/power-platform-skills · 73 tokens

genpage

Creates, updates, and deploys Power Apps generative pages for model-driven apps using React v17, TypeScript, and Fluent UI V9. Orchestrates specialist agents for planning, entity creation, and code generation. Use it when user asks to build, retrieve, or update a page in an existing Microsoft Power Apps model-driven…

microsoft/power-platform-skills · 140 tokens

migrate-bootstrap

Migrates a traditional Power Pages site from Bootstrap 3 to Bootstrap 5. Downloads the site, runs the pac pages bootstrap-migrate engine, reviews the change report, applies AI-assisted fixes for the residual hierarchy/CSS changes the engine only flags, uploads the migrated site (which auto-enables the Bootstrap 5…

microsoft/power-platform-skills · 116 tokens

canvas-app

Creates or edits a Power Apps Canvas App through the Canvas Authoring MCP coauthoring session. Handles new app generation, direct targeted edits, complex multi-screen changes, responsive layout, per-screen self-QA, and compile-error convergence. Trigger on requests to create, build, generate, modify, update, change…

microsoft/power-platform-skills · 79 tokens