re-frame2-pair

Inspect, debug, and hot-swap a running re-frame2 application over a live shadow-cljs nREPL connection.

49|Updated May 7, 2026
One-click install
npx skills add https://github.com/day8/re-frame2 --skill re-frame2-pair-day8
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: re-frame2-pair
Source: https://github.com/day8/re-frame2/tree/main/skills/re-frame2-pair
Command: npx skills add https://github.com/day8/re-frame2 --skill re-frame2-pair-day8

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Debugging a running re-frame2 app from static source alone leaves the agent blind to live application state, event cascades, and subscription behavior. This Skill connects Claude Code to the live runtime so it can read app-db, trace events, and experiment against the real running program. ## Core Features & Use Cases - Live runtime inspection: Attach to a shadow-cljs nREPL session, read app-db slices, subscription values, handler metadata, and the per-frame epoch history through 30 MCP tools. - Trace, watch, and time-travel: Follow event cascades via the trace stream and epoch records, poll for new epochs as the user clicks, and restore a recorded epoch with restore-epoch to iterate against the same starting state. - Hot-swap experimentation: Re-register event handlers and subscriptions ephemerally through the REPL, dry-run events without committing effects, then promote validated fixes into permanent source edits with hot-reload coordination. - Use Case: A user reports that clicking "Save" did nothing. The agent resolves the button to its source line via data-rf2-source-coord, confirms the dispatch fired, inspects the epoch's :sub-runs to find the equality gate blocked re-render, and hot-swaps the handler to write the correct app-db path. ## Quick Start Ask the agent to connect to your running re-frame2 app and show what is in app-db under a specific path, for example: what is in app-db under :shopping-cart?

Frequently Asked Questions about re-frame2-pair

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug a running re-frame2 app with Claude Code?▼

Install the re-frame2-pair skill and its MCP server, add the re-frame2-pair.runtime preload to your shadow-cljs dev build, then ask about the live app in natural language. The first tool call runs discover-app, which locates the nREPL port and verifies the runtime.

How do I trace what an event does in re-frame2?▼

Ask the agent to trace the event, or call dispatch followed by trace-window. Each epoch record carries db-before, db-after, trace-events, and the sub-runs, renders, and effects projections, so the full cascade of one event is inspectable.

Does re-frame2-pair require re-frame-10x?▼

No. re-frame2-pair consumes only re-frame2's own Tool-Pair surfaces such as epoch-history, restore-epoch, and the trace listener API. It is a clean port of the v1 re-frame-pair skill with the re-frame-10x dependency removed entirely.

Why does discover-app report runtime-loaded-but-preload-missing?▼

The re-frame2-pair.runtime preload namespace is not on the app's build classpath or not listed in shadow-cljs :devtools :preloads. For :deps apps add the preload directory to deps.edn :extra-paths; standalone shadow apps use :source-paths in shadow-cljs.edn.

Can the agent time-travel or restore app state in re-frame2?▼

Yes, via the restore-epoch MCP tool, which rewinds both app-db and runtime-db to a recorded epoch. It requires day8/re-frame2-epoch on the app's classpath and the MCP server launched with the --allow-writes flag; already-fired side effects like HTTP requests are not reversed.

When should I not use re-frame2-pair?▼

Do not use it for static spec reading, architecture questions, design discussion, or ordinary source edits when no live runtime is involved. Those tasks belong to the re-frame2 authoring skill or direct spec reading; this skill activates only against a running local app.