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.
npx agentmods add skills/slbug/claude-ruby-grape-rails/hotwire-patternsnpx skills add slbug/claude-ruby-grape-rails --skill hotwire-patternsgit clone --depth 1 https://github.com/slbug/claude-ruby-grape-railsWhat 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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00049 | $0.01430 |
| Opus 5 | $0.00024 | $0.00715 |
| Sonnet 5 | $0.00010 | $0.00286 |
| Haiku 4.5 | $0.00005 | $0.00143 |
Grade A, and why
hotwire-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 3d ago.
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.
How it starts
The opening of the file, as written. The whole thing — 176 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Hotwire Patterns
Iron Laws
- Keep server-rendered interactions simple before reaching for custom JS.
- Broadcast after commit when Turbo Stream updates depend on committed state.
- Keep Stimulus controllers focused on browser concerns, not business rules.
- Avoid duplicating the same state in DOM, session, cache, and
Currentwithout a clear source of truth. - Use Turbo Frames for scoped navigation; Turbo Streams for server-driven updates.
- Progressive enhancement: pages work without JavaScript, enhanced with it.
Overview
Hotwire provides tools for building modern web applications with minimal JavaScript:
- Turbo Drive — Handles page navigation without full reloads
- Turbo Frames — Scoped page updates, independent navigation
- Turbo Streams — Server-driven page changes via WebSocket or HTTP
- Stimulus — JavaScript controllers for progressive enhancement
Quick Decision Guide
| Use Case | Tool | Example |
|---|---|---|
| Page navigation | Turbo Drive | Click links, instant page loads |
| Modal/dialog | Turbo Frame | Login modal, settings panel |
| Independent scrollable area | Turbo Frame | Comments section, sidebar |
| Real-time updates | Turbo Streams | Notifications, live comments |
| Form validation | Stimulus | Character counter, date picker |
| Complex UI interaction | Stimulus | Drag and drop, autocomplete |
Turbo Frames
<!-- Frame that updates independently -->
<%= turbo_frame_tag "comments" do %>
<%= render @comments %>
<% end %>
<!-- Link targets specific frame -->
<%= link_to "Load more", comments_path(page: 2), data: { turbo_frame: "comments" } %>
See Turbo Architecture for Drive, Frames, and Streams.
Turbo Streams
<!-- Broadcast from model -->
<%= turbo_stream_from @post %>
<!-- In view, streams update automatically -->
<%= turbo_frame_tag dom_id(@post) do %>
<%= render @post %>
<% end %>
# Controller action
class CommentsController < ApplicationController
def create
@comment = @post.comments.create!(comment_params)
respond_to do |format|
format.turbo_stream
format.html { redirect_to @post }
end
end
end
What ships with it
14 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.
- references/anti-patterns.md 1.4 KB
- references/async-streams.md 10.0 KB
- references/channels-presence.md 8.7 KB
- references/components.md 9.9 KB
- references/forms-uploads.md 12 KB
- references/js-interop.md 10 KB
- references/migration-guide.md 881 B
- references/performance-tips.md 775 B
- references/progressive-enhancement.md 913 B
- references/pubsub-navigation.md 9.6 KB
- references/realtime-features.md 2.1 KB
- references/stimulus-controllers.md 6.2 KB
- references/testing.md 1.1 KB
- references/turbo-architecture.md 4.3 KB
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.
- 3d ago First seen · 176 lines · 49 tokens per session scan A 2b984b3a09ca
hotwire-patterns is a skill published in the GitHub repository slbug/claude-ruby-grape-rails (7 stars, last pushed 4d ago), licensed MIT. It adds 49 tokens to every session and 1,430 once invoked, about $0.0002 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.
Other skills, from other repositories
working-with-coreai
Use this skill whenever the user mentions coreai-torch, TorchConverter, coreai-build, AIModel, AIProgram, .aimodel, or wants to export/compile/run a PyTorch model on Apple silicon (iPhone, iPad, Mac). Also triggers for "deploy on device", "optimize for on-device performance", onboarding new models to Core AI, or…
ai-model-wechat
Use this skill for WeChat Mini Program AI via wx.cloud.extend.AI (小程序, 企业微信小程序, wx.cloud apps). Features generateText and streamText with callbacks (onText, onEvent, onFinish). Models via wx.cloud.extend.AI.createModel with groups hunyuan-exp (小程序成长计划), cloudbase (main managed), or custom-. Model IDs…
pinme-llm
Use this skill when a PinMe project (Worker TypeScript) needs to call OpenRouter-backed LLM APIs, including models, chat/completions, streaming, or OpenRouter web search. Guides AI to generate correct Worker TS code.
android-pentest
安卓应用渗透测试 — APK分析、Hook、自动化测试、运行态驱动、签名恢复、抓包分析.
firebase-ai
Use when setting up firebaseai, generating text/chat with Gemini, streaming AI output, building multimodal prompts, or handling AI errors.
flutter-app
Bootstrap a new Flutter mobile app with clean architecture, Riverpod, FVM-pinned SDK, current packages, and no deprecated APIs. Use when the user wants to start, scaffold, or set up a new Flutter app, a cross-platform mobile app, an Android or iOS app in Dart, or asks to "create a new flutter app". Handles BYOK LLM…