01A CDN serving an older copyCDN که نسخهٔ قدیمیتر میدهد
If the normal response differs from the cache-busted or no-cache one, or your --expect string is missing in one and present in the other, it is STALE: the vendor, the Age of the copy, how long it stays fresh and the purge command for that CDN.اگر پاسخ عادی با پاسخ بدونکش یا no-cache فرق داشته باشد، یا رشتهٔ --expect شما در یکی نباشد و در دیگری باشد، نتیجه STALE است: نام فروشنده، Age نسخه، مدت تازگی و دستور purge همان CDN.
02What your browser may legally keepآنچه مرورگر قانوناً میتواند نگه دارد
Computes private-cache freshness, including the 10 % heuristic when only Last-Modified is sent, and says for how long a browser may reuse its copy without asking the server, with the hard-reload recipe.تازگی کش خصوصی را حساب میکند، از جمله قاعدهٔ ۱۰٪ وقتی فقط Last-Modified فرستاده شده، و میگوید مرورگر تا چه مدت بیپرسیدن از سرور میتواند نسخهٔ خود را بدهد، با روش hard reload.
03A service worker answering firstservice workerی که اول جواب میدهد
Finds serviceWorker.register(...) in the HTML, reads the worker (Cache API, Workbox, cache-first, skipWaiting, cache names) and flags the classic bug: a worker script served with a long max-age.فراخوانی serviceWorker.register(...) را در HTML پیدا میکند، worker را میخواند (Cache API، Workbox، cache-first، skipWaiting، نام کشها) و باگ کلاسیک را نشان میدهد: فایل worker با max-age طولانی.
04Assets that never change nameفایلهایی که نامشان هیچوقت عوض نمیشود
Linked same-origin CSS and JS cached for a day or more under a name with no hash or version: the reason users keep an old app.js after a deploy.فایلهای CSS و JS هممبدأ که یک روز یا بیشتر با نامی بدون هش یا نسخه کش شدهاند: دلیل اینکه کاربران پس از دیپلوی app.js قدیمی را نگه میدارند.
05Not a cache problem, and it says soمشکل کش نیست، و میگوید نیست
If your --expect string is in no response at all, the cause is not caching: the deploy has not finished, or you are looking at the wrong environment. It stops you from purging a CDN that is innocent.اگر رشتهٔ --expect در هیچ پاسخی نباشد، علت کش نیست: دیپلوی تمام نشده یا محیط اشتباه است. جلوی purge کردن CDNی که بیگناه است را میگیرد.
06Made for humans and agentsبرای آدمها و ایجنتها
--json for scripts, exit code 1 when something is STALE or LIKELY, and a snippet for AGENTS.md / CLAUDE.md so an agent runs it before it edits code that was already correct.خروجی --json برای اسکریپت، کد خروج ۱ وقتی چیزی STALE یا LIKELY باشد و یک snippet برای AGENTS.md / CLAUDE.md تا ایجنت پیش از ویرایش کدِ از قبل درست آن را اجرا کند.