Threejs World Generation
calesthio/OpenMontage
Build deterministic, editable, free-viewpoint Three.js worlds from text or structured briefs.
Try to break a change the way the real world will - network faults, restarts, two things at once, users doing things out of order - on a disposable local stack, and report what broke with a…
$ npx skills add opslane/verify --skill break -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install opslane/verify break --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/opslane/verify.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/break .claude/skills/break && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "break" agent skill from https://github.com/opslane/verify/tree/main/skills/break into .claude/skills/break/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "break", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/opslane/verify/tree/main/skills/breakType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add opslane/verify --skill break -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install opslane/verify break --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opslane/verify.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/break .agents/skills/break && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "break" agent skill from https://github.com/opslane/verify/tree/main/skills/break into .agents/skills/break/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "break", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add opslane/verify --skill break -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install opslane/verify break --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opslane/verify.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/break .cursor/skills/break && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "break" agent skill from https://github.com/opslane/verify/tree/main/skills/break into .cursor/skills/break/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "break", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/opslane/verify.git --path skills/break--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add opslane/verify --skill break -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install opslane/verify break --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opslane/verify.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/break .gemini/skills/break && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "break" agent skill from https://github.com/opslane/verify/tree/main/skills/break into .gemini/skills/break/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "break", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install opslane/verify breakInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add opslane/verify --skill break -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/opslane/verify.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/break .github/skills/break && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "break" agent skill from https://github.com/opslane/verify/tree/main/skills/break into .github/skills/break/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "break", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add opslane/verify --skill break -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install opslane/verify break --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opslane/verify.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/break .opencode/skills/break && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "break" agent skill from https://github.com/opslane/verify/tree/main/skills/break into .opencode/skills/break/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "break", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
breakTry to break a change the way the real world will - network faults, restarts, two things at once, users doing things out of order - on a disposable local stack, and report what broke with a…
Break is an agent skill from opslane/verify. Try to break a change the way the real world will - network faults, restarts, two things at once, users doing things out of order - on a disposable local stack, and report what broke with a reproduction.
Its SKILL.md is about 6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Verification Skill for Claude Code. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 25dc3a9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
dockernpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use docker and npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Break loads about 6k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 4,020 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from opslane/verify at commit 25dc3a9, republished under its MIT licence (© opslane). 4,020 words, ~6,047 tokens.
.claude/skills/break/SKILL.md (or your agent's skills folder)./verify asks "does the change do what the plan said?". This skill asks the opposite:
"how does this change fail once it meets real networks, real users and the other
services around it?". Run it after /verify passes, on the same local stack.
It is not a unit test hunt. Empty strings, unicode and wrong types belong in unit tests, unless a real producer sends them: a model filling in tool arguments is one, so an empty or odd-but-valid value it writes is in scope here. The bugs this skill looks for only exist when the whole system is running:
Reuse /verify's setup: .verify/setup.json, the environment scripts and the run
marker. Boot with env.sh up, seed with env.sh seed, and arm env.sh down on every
exit path, exactly as /verify half two does. If there is no setup contract, stop and
ask for /verify-setup.
Create a run directory: .verify/breaks/<YYYYMMDD-HHMMSS>/. Everything you write goes
there.
Find the plan the same way /verify does. Then read the diff and the code around it.
Unlike /verify, this skill must read code: the plan says what should happen, and only
the code shows where it can fail (what calls the changed code, what it trusts, where it
gives up). Code is for aiming. Judging still comes from the running system.
/verify-setup writes .verify/profile.json: the app's services, background actors,
status transitions, outside services, behaviour-changing config and the chain in front
of production. Check it first:
VERIFY_PIPELINE="${VERIFY_PIPELINE:-$CLAUDE_PLUGIN_ROOT/pipeline}"
(cd "$VERIFY_PIPELINE" && npx --no-install tsx src/cli.ts profile-check --repo "$(pwd -P)")If the file is missing or
the check fails (the code has moved on), rebuild it before anything else by following
section 7 of the /verify-setup skill; it takes a few minutes and asks at most one
question. If the rebuild fails, carry on without a profile and say so in the report.
Use only the slice that matters for this change: the actors and transitions that touch the changed files or the tables they write, the outside services the change calls, and the edge chain. Open each cited line you rely on and drop any entry the code no longer supports. Entries are leads, not proof: a missing entry never means nothing else does this.
The repo's seed usually creates tenants, not the mid-flight state you want to attack. Getting there is most of the work, so do it cheaply:
If the setup contract is missing something the stack needs (an env var, an image that will not pull), work around it and list it under Setup gaps in the report.
A seam is anywhere the change hands work or state to something else. Write
seams.md with one short entry per seam:
A fresh stack holds only what the happy path wrote. Real systems hold what everyone produced. Find the data the change consumes from the diff, not only from the plan: for every function, check or query the change edits, list what already flowed through it on the base commit. A change aimed at a new kind of item often edits code the older kinds still pass through, and the plan will not mention them. A path through code the change edited is never out of scope, whatever the plan is about. For each piece of data the change consumes (rows, messages, files, headers, payloads, config, URLs, anything it parses):
For your own infrastructure (the proxy in front, the deployed config), test the path the profile names first. For inputs that vary by customer (their build tools, SDK versions, proxies), try the few most common variants and name the ones you skipped.
Skip this for data the change does not consume. Run the attacks on top of this data, and do restart and deploy attacks after it is loaded. Put the producers you covered, and the ones you could not, in the charter.
For each piece of data the change produces or changes the meaning of (a row, a stored payload, a message, a status), find everything else that reads it: other endpoints, tools, notifiers, the UI, reports, and older versions still running during a deploy. When the data ends up in a prompt, the model is a consumer too: check what the prompt tells it, not only what is stored. Trace them in the code now, for this change; do not rely on a list from the profile. After each attack, read the data through every consumer and check they agree on what it means (whether it exists, what it holds, what state it is in), even if they show it differently.
If the map is empty (no second actor, no gap in time, no outside call touches the changed state), say so and stop. There is nothing for this skill to attack. A change to copy, styling or docs usually ends here.
Choose from what the change does. The categories are generic; turn each into concrete cases for this app from the profile and the diff.
| If the change | Try |
|---|---|
| does two writes in a row | a crash between them |
| has a background job, retry or scheduler | a poison item, a crash mid-job, two workers |
| lets a person act on something a job is using | the person acts mid-job |
| calls an outside service | the service down, slow or hanging |
| reads config or a feature flag | the shipped defaults: flags unset, optional keys empty, exactly what the compose file and example env pass through |
| ships an operator script or deploy step | run it end to end on the stack, as the operator would |
| stores data others read | check all consumers agree |
| runs at startup | a restart on data left by older versions |
| adds a rule that decides (a threshold, filter, detector, classifier) | both directions: it fires when it should not, and it stays silent when it should fire |
| runs a model or an agent, or acts on what one returns | the model and agent attacks below |
When the plan states a goal ("no customer is charged twice") as well as a mechanism ("a lock around the charge call"), test the goal. Inputs the mechanism did not foresee are where it fails.
Run each attack from the starting states that apply, not only the clean default:
Name the concrete state in the charter ("fix job at attempt 2 of 3"), and how you reached it.
When the profile, the plan or your own reading says a write has no guard, open the code and confirm it before planning an attack around it. Reading gets these wrong.
Pick hypotheses from the attack list below. Each one reads:
If <fault> happens during <moment>, then after the system settles, <settled-state rule> still holds.
Rank them by how bad the worst outcome would be for a real user. Run the two or three
highest-risk interleavings from section 1 first, then the rest as time and budget allow. Write charter.md with the hypotheses, the settled-state rules (section 3), the
stack you will use, and a rough time estimate. List every attack from the list below
that you considered and skipped, each with a one-line reason ("no second actor writes
this row"). Scale the effort to the change: a single-flow change gets two or three
attacks, a change to background jobs gets the full list. Show it to
the user and stop until they say go.
docker pause), make it slow. A clean HTTP 500 is the easy case; hangs and
refused connections are where the bugs are.A model or agent returns well-formed things the surrounding code can mishandle. Nothing crashes, so the attacks above miss them. Use these when the change runs a model or an agent, or acts on what one returns. Point the client at a local stub to choose the answer; use a cheap real call only where the charter lists it with its cost.
Forcing the exact moment (below) is the main tool. Random fault times are a cheap extra sweep for moments you did not think of, but they rarely land in a gap that is only a few milliseconds wide, and they never create a starting state such as a last retry. If you run a sweep:
Report the fault times of the failing attempts. Re-running at those times will usually, not always, repeat the failure, because thread scheduling is not controlled; say so. Use a forced window (below) when the random attempts point at a narrow gap you then want to hit every time.
Real races are narrow. Two concurrent requests or a docker pause rarely land in the
gap by luck. Force the interleaving you wrote down in section 1, as long as the state you
force is one production can reach:
psql session (BEGIN; SELECT ... FOR UPDATE;) so an
actor blocks at the exact point you want, then release it.docker pause a container at the moment you care about and docker unpause it
after the other actor has run.& and wait, or with a barrier.Check that the first write actually committed before you release the competing actor. A lock can block the write you meant to race and give you a different interleaving than you think. If a SQL edit or pause creates an ordering the application cannot reach, discard the result.
Moving a lease, retry or schedule time into the past stands in for time passing and is always fair. Setting a status column to a value the code would never write is not.
Record in the finding how you widened the window and what makes the same interleaving happen in production (a slow query, a long pause, a timeout). A forced state production cannot reach is not a finding.
Name each guarantee (diagnosis_kept, charged_once, no_stuck_jobs) and give it the
query or request that checks it. Check every guarantee on every attempt, not only the one
the attack was aimed at, and report each as a count: "held on 17 of 20 attempts". Count
only attempts that actually exercised the guarantee, and list guarantees no attempt
exercised separately. A guarantee that held on every attempt is evidence; a failure rate
tells the reader how often a user would hit it.
all_consumers_agree is always one of them when the change stores data others read:
every consumer from section 1 agrees on what the data means.
Check two things: what each actor saw at each step (the response to the user, the error the worker logged), and the state left behind after a stated recovery deadline. A final row can look fine while a user got a 500 on the way. Write the rules in data terms before attacking, from the plan and from common sense about the product, never from what the code happens to do. For each workflow, write down its permitted end states first.
needs_human is a failure only where the plan says the system
recovers on its own.Add rules specific to the change. Each rule names the query or request that checks it.
Go through the charter in order. For each hypothesis:
attacks/<n>/.Keep an action log for each attack (attacks/<n>/log.txt): every action you took and
what came back, in order, with timestamps. Reproductions come from this log.
Weave the run marker into everything you create so the evidence is unambiguous. Do not tweak an attack until it breaks something. If a hypothesis holds, it holds; move on.
Before a break becomes a finding:
new (the change introduced it),
not fixed by the change (the old behaviour survives in a case the plan promised to
cover), pre-existing (unrelated to the plan), or base not checked with the reason.Write report.md in the run directory, in plain language:
repro/, the steps in words, how any race window was widened and why production can reach it,
the settled-state rule it broke with the raw before and after, new or
pre-existing, and severity.If you cannot write files (for example, you are running as a subagent), return the report as your final answer instead.
Tear the stack down and print the report path. Never file issues or fix anything. Offer to draft an issue for each finding and let the user choose.
© opslane, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/break of opslane/verify.
Open the folder on GitHubat commit 25dc3a9
Break next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Break this skillopslane/verify | 115 | — | ~6k | Automated safety check: Pass | MIT | |
| Threejs World Generationcalesthio/OpenMontage | 65k | — | ~2k | Automated safety check: Pass | AGPL-3.0 | |
| V5 Breaking Changesremotion-dev/remotion | 62k | — | ~879 | Automated safety check: Pass | Custom licence | |
| HTML Ppt Zhangzara Editorial Tri Tonenexu-io/open-design | 100k | — | ~1.3k | Automated safety check: Pass | MIT | |
| InkOS Interactive World PlayNarcooo/inkos | 10k | — | ~793 | Automated safety check: Pass | AGPL-3.0 | |
| BreakJDArmy/BREAK | 385 | — | ~2.2k | Automated safety check: Notes | Apache-2.0 |
calesthio/OpenMontage
Build deterministic, editable, free-viewpoint Three.js worlds from text or structured briefs.
remotion-dev/remotion
Implement or review a Remotion 5 breaking change while the v4 and v5 release lines still share code.
nexu-io/open-design
A type-and-color system for a culture magazine relaunch — the grid, the tri-tone palette, and the layout kit.
Narcooo/inkos
Rules for advancing an interactive story or open world in an InkOS Play session: honor the world contract, finish actions, keep state and time consistent.
JDArmy/BREAK
BREAK 业务风险枚举与规避知识库 — 查询业务安全风险、规避手段、攻击工具、威胁行为者、行业术语和典型案例,或基于知识库回答业务安全问题
suboss87/FDEOps
Assess the impact of a proposed change on dependencies and shared infrastructure.
opslane/verify
One-time setup for /verify and /break. An agent skill from opslane/verify.
opslane/verify
Verify any change surface against approved acceptance criteria, run the real system, and preserve the report and test artifacts.
Try to break a change the way the real world will - network faults, restarts, two things at once, users doing things out of order - on a disposable local stack, and report what broke with a…. Break is an agent skill from opslane/verify. Try to break a change the way the real world will - network faults, restarts, two things at once, users doing things out of order - on a disposable local stack, and report what broke with a reproduction.
Run `npx skills add opslane/verify --skill break -a claude-code`. Or copy the skill folder (skills/break in opslane/verify) into .claude/skills/break in your project. Claude Code loads it when a task matches its description.
Run `npx skills add opslane/verify --skill break -a codex`. Or copy the skill folder (skills/break in opslane/verify) into .agents/skills/break in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add opslane/verify --skill break -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/break, .gemini/skills/break, .github/skills/break and .opencode/skills/break in your project.
Going by SKILL.md and its folder, Break needs the command-line tools its instructions call (docker and npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use docker and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Break is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Break: Threejs World Generation (calesthio/OpenMontage, 65k stars), V5 Breaking Changes (remotion-dev/remotion, 62k stars), HTML Ppt Zhangzara Editorial Tri Tone (nexu-io/open-design, 100k stars) and InkOS Interactive World Play (Narcooo/inkos, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
opslane (a GitHub organization) maintains it in opslane/verify, which has 115 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 28, 2026.
Source: opslane/verify on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.