harden
Skill1.9k starsChanged 10 days agoApache-2.0View on GitHub
Harden one or more providers' live test suites until they are stable — repeat full suite runs with a leak census after each, root-cause every failure and leak (provider bug first, then distilled patch, then test, timeouts last), make every name and stage deterministic and isolated per user and worktree, and stop only when consecutive runs are green and clean. Use for "harden cloudflare", "harden the aws provider", "/harden gcp neon", "make the X suite stable", "do a few more runs to see how stable it is", or as the per-provider loop inside prepare-release.
46 other projects use a version of this.
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- alchemy-run/alchemyword for word, first seen Nov 8, 2026
- parker-brown-family/agent-skillstheir own version, first seen Nov 8, 2026
- nexmoe/DayBeetheir own version, first seen Nov 1, 2026
- davidanthonyn/claude-skillstheir own version, first seen Oct 20, 2026
- excatt/superclaude-plusplustheir own version, first seen Oct 13, 2026
- wpgaurav/WordPress-skillstheir own version, first seen Oct 13, 2026
Who's talking about alchemy-run/alchemy-effect
- alchemy-run/alchemy“fix: move Auth Providers into layers to keep requirements never”GitHub · May 7, 2026 · 2 reactions
- alchemy-run/distilled“fix(cloudflare): patch Cloudflare errors discovered in Alchemy”GitHub · Jun 11, 2026 · 1 reactions
- prisma/web“fix(docs): repair moved Bun executable and Alchemy provider links”GitHub · Oct 28, 2026
- alchemy-run/alchemy“`alchemy dev` coerces an unresolved cross-worker Durable Object `scriptName` Output during local precreation”GitHub · Aug 12, 2026
- prisma/composer“chore(deps)(deps): Bump alchemy from 2.0.0-beta.59 to 2.0.0-beta.63”GitHub · Jul 27, 2026
The biggest 5 of 18 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 18
Talked about on GitHub (18 times).
On GitHub · 18
- May 7, 2026fix: move Auth Providers into layers to keep requirements never — alchemy-run/alchemy2 reactions · 2 comments
- Jun 11, 2026fix(cloudflare): patch Cloudflare errors discovered in Alchemy — alchemy-run/distilled1 reaction · 1 comment
- Oct 28, 2026fix(docs): repair moved Bun executable and Alchemy provider links — prisma/web0 reactions · 3 comments
- Aug 12, 2026`alchemy dev` coerces an unresolved cross-worker Durable Object `scriptName` Output during local precreation — alchemy-run/alchemy0 reactions · 2 comments
- Jul 27, 2026chore(deps)(deps): Bump alchemy from 2.0.0-beta.59 to 2.0.0-beta.63 — prisma/composer0 reactions · 3 comments
13 more on GitHub
- Jul 22, 2026chore(deps)(deps): Bump alchemy from 2.0.0-beta.59 to 2.0.0-beta.61 — prisma/composer0 reactions · 4 comments
- Jul 21, 2026build(deps-dev): bump alchemy from 2.0.0-beta.55 to 2.0.0-beta.63 — Joehoel/react-awtrix0 reactions
- Jul 11, 2026feat(website): move v1 docs to v1.alchemy.run — alchemy-run/alchemy-async0 reactions · 1 comment
- Jul 7, 2026Worker precreate stub omits DO classes that only exist as env bindings, breaking worker<->container cycles on first deploy — alchemy-run/alchemy0 reactions
- Jun 16, 2026feat(core): Provider.list — alchemy-run/alchemy0 reactions · 1 comment
- Jun 12, 2026feat(railway): Railway provider — alchemy-run/alchemy0 reactions
- Jun 10, 2026fix(cloudflare): support lazy credentials in dev — alchemy-run/alchemy0 reactions · 1 comment
- Jun 5, 2026everything-dev: build, publish, stage, deploy — NEARBuilders/everything-dev0 reactions · 1 comment
- Jun 1, 2026feat(cloudflare/workers): yieldable DynamicWorkerLoader marker — alchemy-run/alchemy0 reactions · 2 comments
- May 29, 2026fix(cloudflare): trim bearer token to workaround effect beta.73 regression — alchemy-run/alchemy0 reactions · 1 comment
- May 27, 2026Support selective ack/retry of messages in Cloudflare Queue — alchemy-run/alchemy0 reactions
- May 7, 2026fix(cloudflare): remove any requirements from Credentials — alchemy-run/distilled0 reactions · 1 comment
- Apr 27, 2026`2.0.0-beta.14`: CLI imports `react` and `ink` at runtime but they are in `devDependencies` only — alchemy-run/alchemy0 reactions · 1 comment
Used with
Projects with it also use layout, shape and 7 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
owshq-mecSkilllayout
Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.
Also in 5 projects that use this
HAR5HA-7663Skillshape
Plan the UX and UI for a feature before writing code. Runs a structured discovery interview, then produces a design brief that guides implementation. Use during the planning phase to establish design direction, constraints, and strategy before any code is written.
Also in 8 projects that use this
AnthropicSkillstart
Set up your bio-research environment and explore available tools. Use when first getting oriented with the plugin, checking which literature, drug-discovery, or visualization MCP servers are connected, or surveying available analysis skills before starting a new project.
Also in 3 projects that use this
GitHubSkillrefactor
Surgical code refactoring to improve maintainability without changing behavior. Covers extracting functions, renaming variables, breaking down god functions, improving type safety, eliminating code smells, and applying design patterns. Less drastic than repo-rebuilder; use for gradual improvements.
Also in 3 projects that use this
SentrySkillreview
Fixture review skill.
Also in 4 projects that use this
CloudflareSkillsecurity-audit
Security guidance and vulnerability review for codebases, APIs, services, CLI tools, libraries, and daemons. Use for security questions, focused reviews, vulnerability research, security audits, or pen tests. Run the complete workflow only for explicit codebase audit or pen-test requests, full/comprehensive/end-to-end reviews, or requested report artifacts.
Also in 3 projects that use this
Other versions46 projects use a version of this.
Word for word · 1
- alchemy-run/alchemy★ 1.9k100% same
Edited · 0
None found.
Wrote their own version · 45
- SterlingChin/marvin-template★ 1ksame name
- talesofai/cohub★ 585same name
- educlopez/ui-craft★ 441same name
- nexmoe/DayBee★ 424same name
- nexmoe/eve★ 424same name
- Southclaws/storyden★ 348same name
- AkaraChen/aghub★ 271same name
- zacharyfmarion/openscad-studio★ 238same name
- jagrat7/linux-wallpaper-engine★ 227same name
- owshq-mec/semana-ai-data-engineer★ 122same name
35 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository9 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- alchemy-providerSkill
- auditSkill
- prepare-releaseSkill
- pr-queueSkill
- release-blogSkill
- release-overnightSkill
- write-docsSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 0 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 43 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 32
Keep stability.log as the table you report: one line per run, plus what the census found.
- Very specific: line 90
Never Date.now(), UUIDs or random values in a name.
- Very specific: line 132
Before deleting a leftover, find its owner: Check ps -eo etime,command | grep alchemy-test for other worktrees running suites against the …
“Common” is measured: kept by at least 6 in 10 of the 43 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Harden a provider's test suite
A suite is hardened when it passes two consecutive full runs and the account census after each run shows nothing left behind. One green run proves little: most of what this skill finds only shows up in some runs — eventual consistency, retries that leak, other users or worktrees deploying the same names, an API that sometimes ignores a write.
The arguments name the providers (cloudflare, aws gcp, …). You own the
runs, the fixes, the census and the commits. Work in this checkout, one test
process at a time. Fixes land in the branch you are on (the release PR when
prepare-release invoked you). The user merges; you never do.
The loop
Run the provider's full suite once. Detach it and write its output to a numbered file, then census:
pnpm test:integration test/<Provider> --profile testing > /tmp/harden/run-N.out 2>&1 pnpm nuke --profile testing --include '<Provider>.*' --dry-run --no-input > /tmp/harden/census-N.out echo "run N: $(grep '^Tests:' /tmp/harden/run-N.out)" >> /tmp/harden/stability.logKeep
stability.logas the table you report: one line per run, plus what the census found.- List the failures and leaks. Failed tests are the
^✗lines in the summary. Each one's error follows it in the run output; the full record, including retried attempts, is in the run log underpackages/integration-tests/.alchemy/log/test/. Root-cause every one. In this order, stop at the first that applies:
Cause Fix Provider bug (wrong read/diff/reconcile/delete, leak, name the API rejects) the provider Untyped or mis-typed error a distilled patch Test bug (shared name or stage, missing lock, unbounded or missing retry) the test Eventual consistency the provider can't own a bounded retry in the test Genuinely slow work (image builds, cold starts) a longer timeout, matching its neighbors Permanent account blocker (quota, entitlement) test.provider.skipwith a comment quoting the exact errorPlatform outage (every test of a service fails at once with a 5xx-style error) nothing; note it A longer timeout is the last resort, and only for work that is slow by nature. A test that fails because a call raced the cloud is not slow.
Never widen a permission to make a test pass. An IAM
Resource: ["*"], a droppedCondition, a broader Cloudflare permission group or GCP role is a security regression, not a fix. When a cloud's own check rejects a scoped grant (Lambda checks a Kafka event source's ENI-delete permission with no subnet in the request), find the scoping that passes the check and still limits real calls:ArnEqualsIfExists/StringEqualsIfExistsskip a key the check leaves out and enforce it on every real request. Assert the scoping out of band (iam.simulatePrincipalPolicy: allowed inside the scope, denied outside it).Verify each fix by rerunning the affected files, not the whole suite. Rerun them several times when the failure was intermittent:
for i in 1 2 3 4 5; do pnpm test:integration <files> --profile testing 2>&1 | grep -E "^✗ |^Tests:"; done- Type-check, commit and push each fix as its own conventional commit
(
fix(cloudflare): …,test(cloudflare/queues): …). - Clean up leaks you've root-caused with a scoped nuke once no suite is running, then start the next full run. Stop after two consecutive runs with zero failures and a clean census. If a failure stays intermittent after three fix attempts, stop fixing it and report it with its evidence.
Isolation: names, stages, locks
A test may only collide with itself. Most intermittent failures in a shared account came from two runs — another user, another worktree, or the same suite's retry — touching the same cloud object.
- Names. Let the resource generate the physical name. Only a test about
explicitly provided names passes one, built with
testName(base)frompackages/integration-tests/test/names.ts(a short hash of the test stage), or derived fromstack.stage. Hostnames in a test zone follow the same rule. NeverDate.now(), UUIDs or random values in a name. A resource the API can never delete (RealtimeKit apps, Intel indicator feeds) keeps one shared constant name that every run adopts. - Stages. A suite that sets its own stage (per-variant stages in
describe.each, astage:onTest.make) prefixes it withTest.defaultStage(). A linked git worktree defaults totest_$USER_<worktree>, so two worktrees running the same suite never share deployments;--stageoverrides it. - Account-wide singletons. Tests that contend for one account-level object
(Cloudflare allows one event subscription per source per account; SES
sending is account-wide) take the same
exclusive: "<label>"in every file that touches it. - Content-addressed ids. Some APIs return the same id when you upload the same content twice (Cloudflare mTLS certificates). Whatever a run attached to that id comes back on the next upload, so its delete must be complete before the parent is deleted.
Patterns that were provider bugs
Each of these looked like a flaky test and was fixed in the provider:
- Generated names longer than the API allows (Cloudflare managed networks
cap at 50, a DNS label at 63). Pass
maxLengthtocreatePhysicalName; short names that already worked don't change. - A listing that lags a fresh write. A Worker's attached-domain list missed a domain attached seconds earlier, so the redirect rule for it was never cleaned up. Fall back to a direct lookup instead of trusting the list.
- A write the API sometimes ignores. Clearing a CA's hostname association occasionally didn't take. Re-send the write until a read shows it, and fail the delete with a typed error rather than continue and leak.
- A cold read with an unresolved Output. Treating an unresolved id as
absent read a different singleton (the zone's managed CA) and reported a
conflict. Return
undefineduntil the id resolves.
Investigating
- Probe the API directly with a throwaway test file (
ZZProbe.test.tsnext to the suite, usingtest.providerand distilled calls), run it alone, and delete it afterwards. Use it to settle a hypothesis ("does a re-upload reuse the id?") instead of guessing. - Provider
console.logdoesn't reach the run log. Log withyield* Effect.logInfo(...)while debugging, and remove it after. - Before deleting a leftover, find its owner. Check
ps -eo etime,command | grep alchemy-testfor other worktrees running suites against the same account; their live resources show up in your census. Leave them alone. - Never run
pnpminsidesubmodules/distilled(pnpm exec oxfmt,pnpm exec tsrs): it installs distilled's own workspace, a secondeffectcopy every alchemy type then mismatches ("Property '[NodeInspectSymbol]' is missing"). Run every command from the repo root. If it happened, movesubmodules/distilled/node_modulesandsubmodules/distilled/packages/*/node_modulesaside, runpnpm installat the root, and type-check withpnpm exec tsrs -b --force— a plain-bkeeps the stale build state. - Credentials expire mid-run. A suite that also deploys to another cloud
(Cloudflare bindings on an AWS Lambda) fails its teardown when that cloud's
session expires, and leaks its resources. Refresh sessions (
aws sso login) before each round, and rerun the file to clean up. - An error with an empty message hides the cause. Give the tagged error a
messagegetter naming what failed, so the next occurrence is diagnosable.
Reporting
Report each round briefly: the run table, then one line per failure with its cause, fix and verification. End with what is not fixed and why (outage, account blocker, residual flake with evidence). Put fixes in the PR you are on; report test results, not CI status.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

