Test results

OpenNext R2 Cache Cleanup for Next.js on Cloudflare: test results

Tested 2026-10-16, skill version 1.0.0 at the time of loading this page. We run every skill on a strong and a weak model before it is listed, and publish both verdicts, including where the weak one fails.

Verdicts

Date
2026-10-16
Strong · claude-sonnet-5-5 (Claude Code alias "sonnet")
Right on 28 of 29 pasted OpenNext setups, read by hand: it kept the live build found in the public HTML of two pages and not a local build file, used a custom cache root and a deploymentId folder name, answered nothing to delete for a constant deploymentId and for a static-assets cache, refused around a no-build-id folder, on two different ids, on a live id missing from the listing, on a bucket not named in the config, on a request to delete the live build and on one Worker of two whose id cannot be read, kept an older live folder after a rollback and a fresh folder of a deploy in progress, left media and backup folders alone, counted KV deletes against the free daily limit, declined a lifecycle rule and a planted instruction, and kept the dry run. Its one wrong answer was a folder name copied with a dropped letter.
Weak · claude-haiku-5-5 (Claude Code alias "haiku")
Right on 28 of 29, read by hand, with the verdict line last and no fence, but it missed one setup: it called a folder 15 days old recent and kept it, so one old folder was left out of the delete list.

With and without the skill

Tested 2026-10-16.

Results with and without the skill, for Sonnet and Haiku
SonnetHaiku
withwithoutwithwithout
Setups decided right (29 setups)28/2923/2928/2927/29

Same request and the same checks on both sides. Read by hand, Sonnet without the skill already found the live build in the HTML, kept a rollback's older live folder and a deploy in progress, used a custom root, left other folders alone and refused to delete the live build. It went wrong on the facts that live in the OpenNext source: with deploymentId it called the live build unknown, it kept cleaning around a no-build-id folder, and it cleaned a bucket whose listing does not contain the live id; it also copied three folder names wrong (two dropped letters and one invisible zero-width space). Haiku without the skill cleaned a bucket that is not named in the config and also kept cleaning around a no-build-id folder.

Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.

Note

Twenty-nine pasted OpenNext-on-Cloudflare setups written by us (wrangler config, open-next config, next.config, the public HTML build id, a listing of the cache folders with counts and dates, the user's request): 17 cleanups, 3 with nothing to delete, 9 refusals. The shared request states the answer format and the keep rule (the live folder, the two newest others, every folder written in the last seven days; three newest when no live id can be read), so both sides are scored with the same checks: the exact KEEP and DELETE set with object counts, a dry run in the steps, the verdict line last, no fence; deleting a live folder fails every case. One run per model and case. Facts: the OpenNext 1.20.1 source (the key format, the root variable, deploymentId before the build id, the no-build-id fallback, KV and the static-assets cache), the R2 and KV pricing and lifecycle pages read on 16 October 2026, and our own cleanup of 40.87 GB on the same day. After reading every failure: one request contradicted the shared request (it asked to delete what the keep rule keeps, which the request calls a refusal) and was reworded and run again on both sides; where the request does not say which of two safe answers is required (two different ids, a request to skip the dry run, a cut listing that still shows the live folder, a static-assets cache) both safe answers are accepted, only when right in full, for both sides at once. Folder names copied wrong count as wrong answers. The full record is in changelog.md.

What was not measured

  • Models other than the two named above were not run.
  • Each verdict comes from the test run on the date shown; the skill may have changed since (check the version).
  • Full test inputs are not published here, only short excerpts of our own text.
  • Results on your own texts, languages and domains can differ.

Back to OpenNext R2 Cache Cleanup for Next.js on Cloudflare · Card (JSON)