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 commands/lykhoyda/rn-dev-agent/run-actiongit clone --depth 1 https://github.com/Lykhoyda/rn-dev-agentWhat 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.00072 | $0.02957 |
| Opus 5 | $0.00036 | $0.01478 |
| Sonnet 5 | $0.00014 | $0.00591 |
| Haiku 4.5 | $0.00007 | $0.00296 |
Grade A, and why
run-action 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 yesterday.
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 — 237 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Execute the learned action: $ARGUMENTS
What this command does
/rn-dev-agent:list-learned-actions lists what's available;
/rn-dev-agent:run-action actually replays one. Together they implement the
artifact-first protocol from feedback_execute_artifacts_before_manual.md:
list → match → run, before composing any device_* primitives manually.
The action name is matched against the inventory's flow field (filename
without .yaml). Substring + case-insensitive — task-create will match
wizard-create-task if it's the only candidate; ambiguity errors otherwise.
Argument parsing
The first positional arg is the action name (required). Subsequent args are
parsed into the cdp_run_action request:
-e KEY=VALUE— environment variable for${KEY}placeholders in the flow. Keys must match[A-Z_][A-Z0-9_]*(Maestro convention) — anything else is rejected bycdp_run_action/maestro_run(GH #116).--platform <ios|android>— must match the current ready session; omitted values are filled from that session--no-auto-repair— opt out ofcdp_repair_actionretry onSELECTOR_NOT_FOUND(default: auto-repair on)
Example calls:
/rn-dev-agent:run-action wizard-create-task -e TITLE="Buy milk" -e PRIORITY=high -e TAG=feature -e DESC="Test"
/rn-dev-agent:run-action mark-all-done --platform android
/rn-dev-agent:run-action mark-all-done --no-auto-repair # surface the raw failure without patching
Protocol
-
Parse arguments. First word of
$ARGUMENTSis the action name. Detect--platform,--no-auto-repair, and collect every-e KEY=VALUEpair into aparamsobject (key must match[A-Z_][A-Z0-9_]*; reject malformed early —cdp_run_actionwill refuse them anyway, but catching at parse time gives a clearer error). Treat anything else as a passthrough flag. -
Resolve the action via the script (single source of truth — never glob
.rn-agent/actions/directly):ACTION_NAME="<first-arg>" RESULT=$(node "${CLAUDE_PLUGIN_ROOT}/rn-dev-agent-core/dist/learned-actions.js" \ --json --section b \ --workspace-root "$PWD" --memory-cwd "$PWD" \ --filter "$ACTION_NAME") COUNT=$(echo "$RESULT" | jq '.sections.flows.count')- 0 matches: stop. Tell the user what they searched for, list the
closest 5 alternatives by running the script again with a broader filter
(or no filter), and suggest creating the flow via
/rn-dev-agent:test-feature. - >1 match: stop. Print the candidates with their full paths and ask
the user to disambiguate (e.g. by passing the full filename without
.yaml). - 1 match: continue to step 3.
- 0 matches: stop. Tell the user what they searched for, list the
closest 5 alternatives by running the script again with a broader filter
(or no filter), and suggest creating the flow via
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.
- yesterday First seen · 237 lines · 72 tokens per session scan A 4529e580b067
run-action is a command published in the GitHub repository Lykhoyda/rn-dev-agent (11 stars, last pushed yesterday), licensed MIT. It adds 72 tokens to every session and 2,957 once invoked, about $0.0004 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-30.
Other commands, from other repositories
dashboard-flow-auto
Toggle autonomous mode for a session's flow. Usage /dashboard:flow-auto.
dashboard-flow-abort
Abort the running flow on a session. Usage /dashboard:flow-abort.
dashboard-git-branches
List git branches for the current dir (current marked ). Runs locally, no LLM.
brainstorm
Command dispatcher for brainstorm.
discover
Command dispatcher for discover.
propose
Command dispatcher for propose.