app-runtime-verify

app-runtime-verify is a skill for Claude Code from Mozurok/fhorja.dev. It costs 122 tokens per session (5,879 once invoked), scanned A, original, MIT.

A runtime check that runs a built mobile or other application and examines its actual logs for errors.

In plain words
What is it for?
Use it to run an app on a device, emulator, simulator, or headless environment, classify runtime errors, and decide whether the tested behavior passes.
Why use it?
It confirms that the implemented behavior works while the app is running, rather than relying only on source-code review or build success.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths; reads ~/.codex paths; mentions Codex.

Good fit Use it to run an app on a device, emulator, simulator, or headless environment, classify runtime errors, and decide whether the tested behavior passes.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/mozurok/fhorja.dev/app-runtime-verify
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 Mozurok/fhorja.dev --skill app-runtime-verify
Clone the repo
git clone --depth 1 https://github.com/Mozurok/fhorja.dev

Made for: Claude Code.

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 app-runtime-verify

README.md
[![agentmods](https://agentmods.dev/badge/skills/mozurok/fhorja.dev/app-runtime-verify/github.svg)](https://agentmods.dev/skills/mozurok/fhorja.dev/app-runtime-verify)
Your own site
<a href="https://agentmods.dev/skills/mozurok/fhorja.dev/app-runtime-verify"><img src="https://agentmods.dev/badge/skills/mozurok/fhorja.dev/app-runtime-verify/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 app-runtime-verify

Your own site · 80×15
<a href="https://agentmods.dev/skills/mozurok/fhorja.dev/app-runtime-verify"><img src="https://agentmods.dev/badge/skills/mozurok/fhorja.dev/app-runtime-verify.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 122 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 5,879 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.00122 $0.05879
Opus 5.5 $0.00049 $0.02352
Sonnet 5.5 $0.00024 $0.01176
Haiku 4.5 $0.00012 $0.00588

Measured 8d ago against content hash 688bff1a60df, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

app-runtime-verify 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.

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.

.claude/skills/app-runtime-verify/SKILL.md · 135 lines

How it starts

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

Output contract, in brief. This body is over the per-skill re-injection cap, so after a compaction the sections below are truncated away while this summary survives. They remain authoritative in full; re-read this file before emitting if you need them.

  • Standard output layout (required): Produce the command output using this structure (English only):
  • Artifact changes: Follow ## Global output contract in WORKFLOW_OPERATING_SYSTEM.md for APPLIED / PROPOSED / SKIP rules. Every listed file...
  • Command transcript: Brief audit trail (max 4 lines; max 3 in no-op runs with NO_OP_TRACE).
  • Handoff: Use the adaptive ending format of WORKFLOW_OPERATING_SYSTEM.md ## Global output contract. Every Handoff is one fenced text b...
  • Definition of done (command output): The real run output is quoted, not asserted; a run with no shown output is reported as unverified or BLOCKED, never PASS (ADR-00...

Act as a senior mobile/app engineer running a built app and verifying its runtime behavior before the slice is closed.

Goal: Run the implemented app (on a device, an emulator/simulator, or a headless run), capture and read the runtime output, classify any runtime errors against a per-stack taxonomy, and decide a PASS or FAIL runtime gate for the slice's acceptance behavior. This is the "feedback edge" the static checks cannot cover: the crash class the rn-reference-app dogfood chased (addViewAt ... ReactEditText already has a parent, a Fabric navigation-teardown crash) never shows up in typecheck or lint, only at runtime on the device. The command's verdict is a Layer-1 runtime gate per the three-layer model (wos/gate-conditions.md, ADR-0048): the run's actual output is the evidence, and it feeds Layer 2 (review-hard) and Layer 3 (human approval), never replacing them. The command verifies and routes; it does not write or fix code.

Mandatory context bootstrap (before any output):

  • Read these sections in WORKFLOW_OPERATING_SYSTEM.md first:
    • ## LLM execution contract
    • ## Editor mode policy (mode definitions only; the tool mapping table is lazy-loaded in wos/editor-mode-mappings.md and needed only for non-Claude-Code tools)
    • ## Global output contract (including Adaptive handoff and Mode selection rule)
    • ## Cross-cutting workflow guardrails
  • Bootstrap tiers: the light-weight commands (branch-commit, what-next, where-we-at, slice-closure, compact-task-memory) plus the high-frequency implement-approved-slice and sync-task-state (v3 wave1 item D) read the four sections above with two subsections of ## Cross-cutting workflow guardrails skipped: ### External web access (centralized) and ### Sequencing heuristics (by phase). Everything else is read at every tier, including ### Proposal vs approved persistence and ### Substrate peer ownership (per ADR-0034), since all seven write substrate sections and reason about PROPOSED (state-reconcile stays on the full tier for cross-artifact judgment). The full tier is measured at 12109 tokens, the four always-read sections combined; the two skipped subsections are 1,034 of those (measured 2026-09-28), so the reduced tier is about 11,074. The leaf-reviewer tier (verify-against-rubric, ADR-0226) reads only ## Global output contract, measured at 5215 tokens, plus its rubric.
  • Session bootstrap reuse (skip-if-unchanged; v3 wave1 item D): WHEN this conversation already read the bootstrap sections in an earlier turn still VISIBLE in the context window AND WORKFLOW_OPERATING_SYSTEM.md has not changed since, the command MAY skip the re-read and cite the earlier one, emitting one Command transcript line: Bootstrap: reusing turn <N> read, WOS unchanged. Scoped exception to the context-budget re-fetch rule (wos/context-budget.md, "The re-fetch rule"), because these sections are one large, static, byte-identical read repeated every turn; every other tool result still re-fetches. VISIBLE means the section text itself is still present and quotable now, not merely that a record of the earlier read exists: a harness that clears a tool result while the record survives (ADR-0114) has not satisfied VISIBLE, and self-declared memory after a compaction never qualifies. A stateless-per-turn harness is excluded. The transcript line is mandatory; a silent skip is invalid output.
  • Resolving the spec and wos/<topic>.md: canonical repository FIRST. Otherwise use active-adapter docs: ~/.claude/workflow-docs (CLAUDE_WORKFLOW_DOCS_DIR), ~/.cursor/workflow-docs (WORKFLOW_DOCS_DIR; project .cursor/workflow-docs on project installs), ~/.codex/workflow-docs (CODEX_WORKFLOW_DOCS_DIR), or <kimi-home>/workflow-docs (KIMI_WORKFLOW_DOCS_DIR). Nonempty overrides win. Kimi home: KIMI_CODE_HOME, else existing ~/.kimi-code, else existing ~/.kimi, default ~/.kimi-code. Use one root for both paths; try other adapters if absent or unknown. Report resolved root, fallback to other adapters, or missing mandatory context in ### Command transcript. Installed snapshots refresh and prune retired topics only on sync.
  • Read additional sections only when relevant to this command's role.
  • Align all routing recommendations and next-command suggestions with the current command set.
  • Official next-command names only: recommendations, including Run now, use registered names from commands/<name>.md or commands/<name>/SKILL.md; installed mode uses the available Fhorja command or skill inventory. No invented aliases. Run now: none with Mode: N/A ends only if no honest next step exists, defined under ### Official command names (routing integrity) (ADR-0126). Required inputs:
  • active task folder path
  • the implemented slice or feature under verification, and its acceptance behavior (the observable outcome that means it works, ideally the slice's EARS exit criterion)
  • how the app was run and the real captured output: the run mechanism (an MCP run tool, an emulator or simulator, a physical device, or a headless run) plus the actual runtime output from that run (native adb logcat for Android, the device log for iOS, the Metro or JS console, or more than one of them). When the output is not yet captured, this command captures it itself per wos/app-runtime-battery.md ## Evidence capture (the run directory) rather than asserting a result or asking for a paste; wos/rn-expo-runtime-evidence.md carries the exact capture commands. For an Expo iOS target the same topic carries the iOS Simulator and Maestro capture recipes (simctl for the device log and the screenshot, Maestro for the flow); this command reads what those produce and never runs them itself.
  • the target stack and version when relevant to interpreting an error (React Native/Expo SDK, Unity major version, native platform), so the taxonomy maps correctly. For a Unity target also state the build type (Development or Release), because the captured Unity documentation does not settle whether script logging depends on it (wos/unity-runtime-evidence.md), so a run with no managed output is only interpretable when the build type is on record

Read the full file on GitHub · 135 lines

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 Changed · -43 tokens per session 688bff1a60df
  2. 11d ago Changed · -1 lines a7654ccec874
  3. 18d ago Changed · -1 lines 3d5533b070bb
  4. 19d ago Changed · +1 lines · -62 tokens per session 494159faf882
  5. 1mo ago First seen · 136 lines · 227 tokens per session scan A 6615cf7218c6

Subscribe to this mod's changes

app-runtime-verify is a skill published in the GitHub repository Mozurok/fhorja.dev (10 stars, last pushed 9d ago), licensed MIT. It adds 122 tokens to every session and 5,879 once invoked, about $0.0005 per session on Opus 5.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

reqforge-greenkeeper

name: reqforge-greenkeeper description: Used when maintaining the ReqForge repository itself and its release gates fail — pnpm test, pnpm forge-smoke, pnpm sync:discover, adapter drift, skill fixtures, loadouts, or test-demo golden path. Restores a green, synced state with minimal changes. Not for bugs in user apps…

zxpmail/ReqForge · 0 tokens

repair-prevention-assessment

A completion gate for fixes and self-repair work. It creates a machine-checkable assessment that separates evidence a current issue is closed from evidence that the fix will remain effective.

devcodex-labs/devcodex · 75 tokens

diagnose

Turn a bug symptom into a fix with a regression test that locks it down. If the user opens vague ("there's a bug", "/diagnose"), interview them one question at a time until you have enough to attempt a reproduction; if you still cannot reproduce, say so explicitly. Then drive the work through five phases — build a…

eduwxyz/my-awesome-skills · 0 tokens

test-failure-explorer

Import and query an existing Vitest 3.2 JSON report to explore test failures, file-level errors and original diagnostic evidence.

QwenLM/qwen-code · 32 tokens

systematic-debugging

A step-by-step method for finding the underlying cause of technical problems before changing code. It covers reading errors, reproducing failures, checking recent changes, and tracing data across system components.

jnMetaCode/superpowers-zh · 24 tokens

systemic-issue-triage

Trigger: new issue, bug report, triage, backlog, issue flood, community report, root cause, dead-end, blocked user. Attack issues by root class, never one-by-one; fixes must shrink the system, not grow it.

Gentleman-Programming/gentle-ai · 57 tokens