Borrowing it
Nothing to install: this file belongs to scrollDynasty/BrowserMesh. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/scrollDynasty/BrowserMesh/master/.claude/skills/write-adr/SKILL.mdgit clone --depth 1 https://github.com/scrollDynasty/BrowserMeshWrote 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.
[](https://agentmods.dev/skills/scrolldynasty/browsermesh/write-adr)<a href="https://agentmods.dev/skills/scrolldynasty/browsermesh/write-adr"><img src="https://agentmods.dev/badge/skills/scrolldynasty/browsermesh/write-adr/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.
<a href="https://agentmods.dev/skills/scrolldynasty/browsermesh/write-adr"><img src="https://agentmods.dev/badge/skills/scrolldynasty/browsermesh/write-adr.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00060 | $0.00643 |
| Opus 5.5 | $0.00024 | $0.00257 |
| Sonnet 5.5 | $0.00012 | $0.00129 |
| Haiku 4.5 | $0.00006 | $0.00064 |
Grade A, and why
write-adr 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 2mo 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 — 61 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Writing an ADR
ADR 0012 requires a controlled design before code for anything that changes a contract or an invariant. The ADR is that design, not a retrospective write-up.
Format
Follow ADR 0019 and 0020. They are the current form; the eighteen earlier files use two older layouts and are not the template. Do not retrofit them.
# ADR NNNN — Title in sentence case
Status: accepted
Date: YYYY-MM-DD
## Context
## Decision
## Consequences
- Filename:
docs/decisions/NNNN-kebab-case-title.md,NNNNzero-padded, next unused number. - Em dash after the number, not a colon.
Status: acceptedlowercase — alsoproposed,superseded by ADR NNNN.- Sentence case in the title. No trailing period.
What each section carries
Context. The measured problem, not the wish. State numbers where numbers exist: byte sizes,
test counts, timings, the version something was observed against. ADR 0020 opens with
"tools/list was 134,839 bytes, 7.3× the official Playwright MCP server" — that is the standard.
Name the constraint that rules options out; for BrowserMesh that is often a SPEC clause.
Decision. What is now true, in the present tense. Include what was rejected and why, especially
the option a reader would otherwise propose. If a check lives in one layer rather than another, say
which and why — ADR 0020 explains that an input-schema rejection names the offending field while a
BrowserMeshError would surface as an uninformative INVALID_ARGUMENT.
Consequences. What this costs, what it forecloses, what now has to stay true. A consequence section that only lists benefits is unfinished.
Rules
- One decision per ADR. A second decision is a second file.
- An accepted ADR is not edited to reflect a later change of mind. Write a new ADR and set the old
one to
superseded by ADR NNNN. - The ADR outranks
README.mdand the docs site but is outranked bydocs/SPEC.mdanddocs/architecture.md— see the source-of-truth order inCLAUDE.md. If the ADR contradicts the SPEC, one of them is wrong; resolve it before merging. - Update
docs/architecture.mdand any affected public tool description in the same change. Docs and implementation must not diverge silently. docs/decisions/is not in.prettierignore, so runnpm run formatbefore committing.
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.
- 2mo ago First seen · 61 lines · 60 tokens per session scan A 3be2c7308d9c
write-adr is a skill published in the GitHub repository scrollDynasty/BrowserMesh (3 stars, last pushed 2d ago), licensed Apache-2.0. It adds 60 tokens to every session and 643 once invoked, about $0.0002 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.
Other skills, from other repositories
browser-use
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers hosted cloud browsers for AI agents: the browser-use Python library (Browser(usecloud=True)), Playwright, Puppeteer or any CDP client.
x402
Set up Browser Use Cloud payments with x402 — pay per request from a crypto wallet (USDC on Base mainnet), no signup or API key. Two setups it works out up front — "just use it" (set up a wallet so you or Claude Code can run cloud browser tasks paid from the wallet — Claude writes and runs throwaway scripts, nothing…
browse
Use the browse CLI for Browserbase browser automation, Browserbase cloud APIs, Browserbase Functions, templates, web fetch/search, diagnostics, and Browse.sh skill discovery/installation. Use when the user asks to navigate pages, inspect browser state, run local or remote browser sessions, manage Browserbase…
remote-browser
Controls an isolated Browser Use Cloud browser from a sandboxed machine with the current Browser Use CLI.
cloud
Documentation reference for using Browser Use Cloud — the hosted API and SDK for browser automation. Use this skill whenever the user needs help with the Cloud REST API (v2, v3, or v4), browser-use-sdk (Python or TypeScript), X-Browser-Use-API-Key authentication, cloud sessions, browser profiles, profile sync, CDP…
open-source
Documentation reference for writing Python code using the browser-use open-source library. Use this skill whenever the user needs help with Agent, Browser, or Tools configuration, is writing code that imports from browseruse, asks about @sandbox deployment, supported LLM models, Actor API, custom tools, lifecycle…