browser-app-delivery

browser-app-delivery is a skill for Claude Code from asgeirtj/system_prompts_leaks. It costs 332 tokens per session (2,088 once invoked), scanned A, original, CC0-1.0.

A delivery workflow for handing over a runnable local browser app, meaning an application operated through a web browser on the user's computer. It covers implementation and first handoff for new browser projects under specific conditions.

In plain words
What is it for?
Building and handing over a brand-new local browser application, while avoiding new-project scaffolding for planning, existing-work, or handoff-only requests.
Why use it?
It clarifies when to scaffold a new project and aims to leave the user with an app they can run immediately.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter.

Good fit Building and handing over a brand-new local browser application, while avoiding new-project scaffolding for planning, existing-work, or handoff-only requests.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/asgeirtj/system_prompts_leaks/browser-app-delivery
About the project

System Prompts Leaks is a collection of captured system instructions used to guide AI chatbots and coding agents before they receive user messages. It serves researchers and developers studying how different AI assistants are directed.

asgeirtj/system_prompts_leaks · 69,707 stars · on GitHub

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 asgeirtj/system_prompts_leaks --skill browser-app-delivery
Clone the repo
git clone --depth 1 https://github.com/asgeirtj/system_prompts_leaks

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 browser-app-delivery

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

Your own site · 80×15
<a href="https://agentmods.dev/skills/asgeirtj/system_prompts_leaks/browser-app-delivery"><img src="https://agentmods.dev/badge/skills/asgeirtj/system_prompts_leaks/browser-app-delivery.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 332 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,088 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. 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.00332 $0.02088
Opus 5.5 $0.00133 $0.00835
Sonnet 5.5 $0.00066 $0.00418
Haiku 4.5 $0.00033 $0.00209

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

Security

Grade A, and why

browser-app-delivery scanned grade A with 1 finding 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 11d 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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

includes answers that merely give curl examples or say done. For an
Meta/muse-code/skills/browser-app-delivery/SKILL.md · 131 lines

How it starts

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

Browser App Delivery

For a brand-new browser project, apply this hard boundary before project work. Do NOT call read_skill for bundled:greenfield-project-scaffolding on a requirements-guidance, planning, option-selection, multi-decision, or answer-only turn; from prior-turn answers, authorization, or reminders without new implementation-now words; for existing work, server start/restart, verification, or handoff-only work; for a named path or a confirmed-suitable here/current-folder target; or for a requested standalone, paste-ready, single-file, or snippet artifact.

Only when this same user turn explicitly says to start, implement, build, scaffold, or go ahead with a new project now may unresolved placement trigger the handoff. Do not load the greenfield skill merely to decide whether it is eligible. If inspection is forbidden, do not list or read the workspace; use only the request and pwd. Otherwise inspect only top-level placement facts first. Call the greenfield skill before any project-content inspection or write only when no named or suitable current-folder target resolves placement and inspection is forbidden or those facts prove the current root home-like, general-purpose, or falsely empty. Wait for its body, resolve the root, then continue this workflow.

Use this workflow only for a local browser app whose build or start path is part of the task, or for a requested paste-ready, single-file, offline, or immediately playable browser artifact. Current user instructions always win.

Before using this workflow, resolve user-blocking product or interface choices through request_user_input when available. This workflow does not choose a browser architecture or authorize implementation.

Product correctness precedes delivery closure. Before Step 1, ensure the chosen architecture and data source can satisfy the requested behavior at its stated scale and coverage; runner availability, start success, a URL, or reachability proves delivery mechanics only and must not narrow or stand in for those requirements.

  1. Derive the supported build and start commands, host, port, and path from the project, the chosen stack, or an observed run. For a greenfield multi-file app, first choose one appropriate project stack, then confirm its runner is supported by the available toolchain before creating its normal manifest and start declaration when applicable. If that runner is unavailable, choose an already-available equivalent stack instead. Successfully run that exact start command. Hand off only that verified runner; do not add or retain a second manifest or runner for convention. A generic static-file server never qualifies as the project runner and may be used only for smoke. An explicitly standalone artifact skips this requirement. Never guess a URL, and do not add a server or dependency solely to manufacture one for a standalone artifact.
  2. Preserve live user processes and persistent data. Prefer the existing dev server and hot reload. Restart only when required, target only the process this task owns, and migrate persistent state instead of deleting or reseeding it unless the user explicitly requests a reset.
  3. Verify changed behavior once with the smallest suitable check. A successful HTTP response is enough to establish reachability. Do not run browser automation or screenshots solely to justify URL wording, and do not repeat visual checks for unchanged visuals. For a requested paste-ready, single-file, offline, or immediately playable artifact, modular sources may remain, but make the exact standalone artifact the primary handoff. Reject unresolved local imports and run one load/start smoke of that exact artifact with an already-available project or runtime check. If no appropriate check is available, report the exact artifact's start behavior unverified. HTTP success proves only reachability. Do not execute shims, download, install, work around, or repair dependencies for this smoke. For a standalone JavaScript artifact when no browser is available but Node is already present, exercise the exact embedded script through initialization and at least one update or render frame with a temporary dependency-free DOM and canvas harness. Syntax-only checks, extracted logic tests, HTTP success, and paste upload success do not count as this load smoke. Fix every runtime error and repeat the smoke once. This temporary test harness is not a package or runtime shim. Run the smoke against the final artifact bytes: after any artifact edit, rerun it. The fallback must invoke at least one queued requestAnimationFrame callback instead of suppressing it. After choosing this fallback, do not install or launch a browser or browser package.
  4. Close browser delivery before handoff. For standalone delivery, do not create or start a server solely for handoff; report the exact smoke result and skip the remainder of this step. When the user did not explicitly ask to verify, prove, or confirm browser behavior or ask to be told when it works, do all of the following before the first completion answer: choose exactly one runner declared by the project; run one shell call whose only browser-runner probe is command -v chromium, substituting that runner's executable; allow only an exit-status echo to accompany it; after choosing from project declarations, perform no additional runner/path/module/tool discovery in this browser-closure step before, inside, or after that call; and if that chosen project runner is absent, explicitly and honestly report browser behavior unverified and stop browser verification without executing shims (npx, uvx), downloading, installing, working around, or repairing dependencies. With explicit intent, follow the relevant verification policy and report any remaining blocker honestly.
  5. Keep every completion answer brief: a user handoff, not an engineering log. This changes only the report, never implementation or verification. Lead with the outcome and strongest verification. Unless the user explicitly asks for a detailed implementation report, omit exhaustive feature lists, file-by-file inventories, endpoint catalogs, internal architecture, and raw metrics.
  6. In the first completion answer, open with an unambiguous completion signal such as Done, Complete, or Ready. For standalone delivery, give the exact artifact path or paste URL and the load/start smoke result; do not invent a server, start command, or local URL. Otherwise, give copy-paste start commands, a concrete URL, and a direct instruction to open that URL in a browser. A concrete URL must be one the user can open from their own machine. When the session host is headless, remote, or containerized, or the user says they cannot reach it, a loopback URL plus a local success response proves only that the server runs — deliver a user-reachable access path instead: bind and serve on a host-reachable interface using the host's real name or IP, establish a supported tunnel, or produce a self-contained openable artifact with open instructions; state which path you verified. If the server is not currently reachable, say why and label the URL as the address to use after starting it.
  7. State current runtime status honestly. Never imply that a temporary local process is durable hosting or will survive cleanup or session end. Current-server claims: in that same turn, after the latest start, kill, or failed check, run a shell call containing only one reachability check; this includes answers that merely give curl examples or say done. For an agent-started server that is currently reachable, give its exact start command once only as current runtime provenance; never include a restart or recovery command, or any failure or session-cleanup condition in that message. After the user asks to keep it running, omit start and restart commands entirely; report only the fresh standalone reachability result, URL, and Recovery remains mine. If the server is not reachable, or the user explicitly asks how to start it, give the exact start command with an honest not-running label.

Read the full file on GitHub · 131 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. 11d ago First seen · 131 lines · 332 tokens per session scan A 681351a963cd

Subscribe to this mod's changes

browser-app-delivery is a skill published in the GitHub repository asgeirtj/system_prompts_leaks (69,707 stars, last pushed 2d ago), licensed CC0-1.0. It adds 332 tokens to every session and 2,088 once invoked, about $0.0013 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-05.