{"id":"e9ccba6a-3db5-443f-92ec-81951e4956ad","shortId":"CHbT8b","kind":"skill","title":"pasteurize","tagline":"This skill should be used when the user has a hard bug, flaky failure, or performance regression — phrases like \"diagnose this\", \"debug this\", \"why is X broken\", \"the test fails intermittently\", \"/pasteurize\", or a pasted stack trace / repro without a stated cause. Runs a six-pha","description":"# /pasteurize\n\nA discipline for hard bugs. Skip phases only when explicitly justified.\n\nWhen exploring the codebase, use `/cheez-search` to orient and check `.cheese/specs/` for any spec or design notes that touch the failing seam.\n\n## Phase 1 — Build a feedback loop\n\n**This is the skill.** Everything else is mechanical. If you have a fast, deterministic, agent-runnable pass/fail signal for the bug, you will find the cause — bisection, hypothesis-testing, and instrumentation all just consume that signal. If you don't have one, no amount of staring at code will save you.\n\nSpend disproportionate effort here. **Be aggressive. Be creative. Refuse to give up.**\n\n### Ways to construct one — try them in roughly this order\n\n1. **Failing test** at whatever seam reaches the bug — unit, integration, e2e.\n2. **Curl / HTTP script** against a running dev server.\n3. **CLI invocation** with a fixture input, diffing stdout against a known-good snapshot.\n4. **Headless browser script** (Playwright / Puppeteer) — drives the UI, asserts on DOM/console/network.\n5. **Replay a captured trace.** Save a real network request / payload / event log to disk; replay it through the code path in isolation.\n6. **Throwaway harness.** Spin up a minimal subset of the system (one service, mocked deps) that exercises the bug code path with a single function call.\n7. **Property / fuzz loop.** If the bug is \"sometimes wrong output\", run 1000 random inputs and look for the failure mode.\n8. **Bisection harness.** If the bug appeared between two known states (commit, dataset, version), automate \"boot at state X, check, repeat\" so you can `git bisect run` it.\n9. **Differential loop.** Run the same input through old-version vs new-version (or two configs) and diff outputs.\n10. **HITL bash script.** Last resort. If a human must click, drive _them_ with a structured loop so output still feeds back to you.\n\nBuild the right feedback loop, and the bug is 90% fixed.\n\n### Iterate on the loop itself\n\nTreat the loop as a product. Once you have _a_ loop, ask:\n\n- Can I make it faster? (Cache setup, skip unrelated init, narrow the test scope.)\n- Can I make the signal sharper? (Assert on the specific symptom, not \"didn't crash\".)\n- Can I make it more deterministic? (Pin time, seed RNG, isolate filesystem, freeze network.)\n\nA 30-second flaky loop is barely better than no loop. A 2-second deterministic loop is a debugging superpower.\n\n### Non-deterministic bugs\n\nThe goal is not a clean repro but a **higher reproduction rate**. Loop the trigger 100×, parallelise, add stress, narrow timing windows, inject sleeps. A 50%-flake bug is debuggable; 1% is not — keep raising the rate until it's debuggable.\n\n### When you genuinely cannot build a loop\n\nStop and say so explicitly. List what you tried. Ask the user for: (a) access to whatever environment reproduces it, (b) a captured artifact (HAR file, log dump, core dump, screen recording with timestamps), or (c) permission to add temporary production instrumentation. Do **not** proceed to hypothesise without a loop. Write a `status: halt` handoff slug (see below) and stop.\n\nDo not proceed to Phase 2 until you have a loop you believe in.\n\n## Phase 2 — Reproduce\n\nRun the loop. Watch the bug appear.\n\nConfirm:\n\n- [ ] The loop produces the failure mode the **user** described — not a different failure that happens to be nearby. Wrong bug = wrong fix.\n- [ ] The failure is reproducible across multiple runs (or, for non-deterministic bugs, reproducible at a high enough rate to debug against).\n- [ ] You have captured the exact symptom (error message, wrong output, slow timing) so later phases can verify the fix actually addresses it.\n\nDo not proceed until you reproduce the bug.\n\n## Phase 3 — Hypothesise\n\nGenerate **3–5 ranked hypotheses** before testing any of them. Single-hypothesis generation anchors on the first plausible idea.\n\nEach hypothesis must be **falsifiable**: state the prediction it makes.\n\n> Format: \"If `<X>` is the cause, then `<changing Y>` will make the bug disappear / `<changing Z>` will make it worse.\"\n\nIf you cannot state the prediction, the hypothesis is a vibe — discard or sharpen it.\n\n**Show the ranked list to the user via `AskUserQuestion` before testing.** They often have domain knowledge that re-ranks instantly (\"we just deployed a change to #3\"), or know hypotheses they've already ruled out. Cheap checkpoint, big time saver. Don't block on it — proceed with your ranking if the user is AFK or running `--auto`.\n\n## Phase 4 — Instrument\n\nEach probe must map to a specific prediction from Phase 3. **Change one variable at a time.**\n\nTool preference:\n\n1. **Debugger / REPL inspection** if the env supports it. One breakpoint beats ten logs.\n2. **Targeted logs** at the boundaries that distinguish hypotheses.\n3. Never \"log everything and search\".\n\n**Tag every debug log** with a unique prefix, e.g. `[DEBUG-a4f2]`. Cleanup at the end becomes a single `/cheez-search` content query. Untagged logs survive; tagged logs die.\n\n**Perf branch.** For performance regressions, logs are usually wrong. Instead: establish a baseline measurement (timing harness, `performance.now()`, profiler, query plan), then bisect. Measure first, fix second.\n\nUse `/cheez-write` for any instrumentation edits — never the host Edit / Write tools.\n\n## Phase 5 — Fix + regression test\n\nWrite the regression test **before the fix** — but only if there is a **correct seam** for it.\n\nA correct seam is one where the test exercises the **real bug pattern** as it occurs at the call site. If the only available seam is too shallow (single-caller test when the bug needs multiple callers, unit test that can't replicate the chain that triggered the bug), a regression test there gives false confidence.\n\n**If no correct seam exists, that itself is the finding.** Note it in the handoff slug as an architectural follow-up. The codebase is preventing the bug from being locked down. Skip the test write; do not paper over it. Phase 6's \"what would have prevented this bug?\" retrospective still applies.\n\nIf a correct seam exists:\n\n1. Turn the minimised repro into a failing test at that seam — write it via `/cheez-write`.\n2. Watch it fail.\n3. Apply the **smallest** production change that makes the test pass — also via `/cheez-write`. No scope creep, no \"while I'm here\" cleanup.\n4. Watch the test pass.\n5. Re-run the Phase 1 feedback loop against the original (un-minimised) scenario to confirm the symptom is gone, not just the test seam.\n\nAll edits go through `/cheez-write` — never the host Edit / Write tools.\n\nBroader implementation (related cleanup, follow-on changes, anything beyond the minimal fix) is **not** pasteurize's job. Note it in the slug and let `/cook --auto` pick it up in Phase 6's handoff.\n\n## Phase 6 — Cleanup + hand off\n\nBefore writing the handoff slug, confirm:\n\n- [ ] Original repro no longer reproduces (re-run the Phase 1 loop).\n- [ ] Regression test passes (or absence of seam is documented in the slug).\n- [ ] All `[DEBUG-...]` instrumentation removed — run a `/cheez-search` content query for the prefix and verify zero hits.\n- [ ] Throwaway harnesses / prototypes deleted (or moved to a clearly-marked debug location and called out in the slug).\n- [ ] The confirmed hypothesis is captured in the slug so the commit message downstream can reference it.\n\n**Then ask: what would have prevented this bug?** If the answer involves architectural change (no good test seam, tangled callers, hidden coupling), note it in the slug under an architectural-follow-up line. The chain still runs; the user can pick up the architectural work via `/mold` after the fix lands. Make the recommendation **after** the fix is in, not before — you have more information now than when you started.\n\nOnce the checklist is green and the slug is on disk, hand off to `/cook <slug> --auto` (default). Cook --auto picks up the post-fix state, runs its taste-test against the applied diff for spec drift / readability / scope creep, produces its package-ready report, and triggers the autonomous `/press → /age → /cure` chain. Pasteurize itself does not commit, open PRs, or drive the chain — cook owns that.\n\n## Preferred tools and fallbacks\n\n| Need | Prefer | Fallback |\n| --- | --- | --- |\n| Code search / blast radius | `/cheez-search` (tilth MCP) | flag the gap; do not fall back to host `grep` |\n| Reading code | `/cheez-read` (tilth MCP) | flag the gap; do not fall back to host `cat`/`Read` |\n| Editing instrumentation | `/cheez-write` (tilth MCP) | flag the gap; do not fall back to host `Edit`/`Write` |\n| Diff visualization | `delta` | plain `git diff` |\n| GitHub context | `gh` | local git history or user-provided links |\n| External sanity check | `/briesearch` | clearly mark as an assumption |\n\nMissing optional tools should not interrupt diagnosis. Keep tool use proportional to the bug.\n\n## Output\n\nReturn a short report covering:\n\n- The named cause (one sentence, with `<certain>` / `<speculating>` / `<don't know>` calibration).\n- The feedback loop (command, observed vs expected).\n- Hypotheses considered and which one held.\n- The regression test path and the fix's file:line footprint.\n- Cleanup status (`[DEBUG-...]` removed, harnesses deleted or relocated).\n- Suggested next skill — `/cook <slug> --auto` for the autonomous chain forward.\n\n## Handoff slug\n\nWrite a minimum-shape handoff slug to `.cheese/pasteurize/<slug>.md` so `/cook` (and any orchestrator) can resume without re-reading the full report. Schema:\n\n```markdown\nstatus: ok | halt: <one-line reason>\nnext: cook | mold | done\nartifact: <path-to-richer-report-if-any>\ncause: <one-sentence named cause>\nloop: <command or repro path>\nseam: <regression-test path:line, or \"none — architectural follow-up\">\nfix: <production diff footprint, e.g. \"src/foo.ts:42\">\nfollow_up: <architectural follow-up note, or \"none\">\n<one-line orientation: what pasteurize converged on>\n```\n\n`status: ok` when the regression test is green, the original repro no longer reproduces, and cleanup is done. `status: halt: <reason>` when Phase 1 failed (cannot build a loop, missing environment access, missing artifact), or Phase 3 exhausted both hypothesis rounds without a confirmed cause. `next:` is `cook` for the standard chain, `mold` if the diagnosis itself recommends an architectural spec instead of a per-bug fix, or `done` if the bug was caused outside the repo and no follow-up is needed.\n\n## Handoff\n\n**Pipeline:** cheese (debug) → **[pasteurize]** → cook --auto → press → age → cure → ship\n\nAfter the report is printed and the handoff slug is on disk, ask via `AskUserQuestion` which downstream to run. Lead each option with the verb (what the user wants to _do_ next):\n\n- **Validate and chain forward** _(recommended when `status: ok`)_ — `/cook <slug> --auto`.\n- **Validate without auto chain** — `/cook <slug>` (cook runs taste-test, then the user picks each subsequent step).\n- **Spec the architectural follow-up first** — `/mold <slug>` (when `seam: none — architectural follow-up`).\n- **Stop** — fix is in tree; defer the chain.\n\nPre-select **Validate and chain forward** when `status: ok`. The chain default is `--auto` because pasteurize already wrote and verified the fix; the work left for cook → press → age → cure is mechanical validation, not new authoring. Never auto-invoke; the user must still select.\n\nWhen invoked with `--auto`, skip this `AskUserQuestion` entirely and invoke `/cook <slug> --auto` directly.\n\n## Auto mode\n\n`--auto` is the autonomous-pipeline switch. Propagated from upstream skills (`/cheese --auto`) or invoked directly with `--auto`.\n\nWhat auto mode does:\n\n1. Phase 3's \"show the user the ranked hypothesis list\" gate is skipped — proceed with the model's ranking.\n2. Phase 4–5 still run in full; the auto signal does not loosen the discipline.\n3. After Phase 6 cleanup, invoke `/cook <slug> --auto` directly.\n4. From there, cook's own auto-mode contract takes over (press → age → cure cycle).\n\nAuto mode stops early when:\n\n- Phase 1 fails (`status: halt` written, no loop achievable).\n- Phase 3 disproves all hypotheses across two rounds (cap at two Phase 3 rounds, then halt).\n- Phase 5's seam check finds no correct seam — write `status: halt: no correct regression-test seam` and route to `/mold` instead of `/cook`.\n- The fix breaks an unrelated test that pasteurize cannot reconcile within scope.\n\nIn every early-stop case, write the halt slug and surface the report. Do not silently downgrade to \"best guess\".\n\n## Rules\n\n- Do not skip Phase 1. The feedback loop is the skill; everything else is mechanical.\n- Do not hypothesise without a reproducing loop.\n- Phase 5 writes only the regression test and the **minimal** production change. Broader implementation — related cleanup, follow-on features, refactors the bug suggests — belongs in `/cook`, not pasteurize.\n- Do not leave `[DEBUG-...]` tags in the tree — clean them before the handoff slug is written.\n- Do not claim \"shipped\". Pasteurize claims \"cause named, regression green, fix in tree, ready for chain\". The chain (cook → press → age → cure) claims shipped.\n- If the bug exposes an architectural gap (no correct regression-test seam), say so in the slug. Do not silently paper over it.","tags":["pasteurize","easy","cheese","paulnsorensen","agent-skills","ai-coding","claude-code","code-review","developer-tools"],"capabilities":["skill","source-paulnsorensen","skill-pasteurize","topic-agent-skills","topic-ai-coding","topic-claude-code","topic-code-review","topic-developer-tools"],"categories":["easy-cheese"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/paulnsorensen/easy-cheese/pasteurize","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add paulnsorensen/easy-cheese","source_repo":"https://github.com/paulnsorensen/easy-cheese","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 7 github stars · SKILL.md body (13,216 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:13:41.388Z","embedding":null,"createdAt":"2026-05-18T13:21:09.363Z","updatedAt":"2026-05-18T19:13:41.388Z","lastSeenAt":"2026-05-18T19:13:41.388Z","tsv":"'/age':1362 '/briesearch':1455 '/cheese':1848 '/cheez-read':1405 '/cheez-search':66,848,1194,1390 '/cheez-write':884,1047,1065,1111,1421 '/cook':1143,1324,1526,1546,1734,1740,1832,1901,1974,2057 '/cure':1363 '/mold':1286,1760,1971 '/pasteurize':33,49 '/press':1361 '1':84,164,480,800,1032,1086,1174,1621,1859,1926,2013 '10':331 '100':465 '1000':273 '2':176,438,563,573,814,1048,1879 '3':185,658,661,747,791,823,1052,1634,1861,1895,1935,1946 '30':427 '4':200,779,1075,1881,1904 '42':1589 '5':212,662,896,1080,1882,1951,2032 '50':475 '6':235,1016,1150,1154,1898 '7':261 '8':282 '9':310 '90':364 'a4f2':840 'absenc':1180 'access':512,1629 'achiev':1933 'across':609,1939 'actual':646 'add':467,536 'address':647 'afk':774 'age':1691,1805,1917,2096 'agent':104 'agent-runn':103 'aggress':147 'alreadi':753,1793 'also':1063 'amount':134 'anchor':674 'answer':1249 'anyth':1126 'appear':288,581 'appli':1026,1053,1343 'architectur':992,1251,1269,1283,1579,1592,1657,1755,1764,2105 'architectural-follow-up':1268 'artifact':521,1568,1631 'ask':382,507,1240,1706 'askuserquest':728,1708,1828 'assert':209,403 'assumpt':1460 'author':1812 'auto':777,1144,1325,1328,1527,1689,1735,1738,1790,1815,1825,1833,1835,1837,1849,1854,1856,1888,1902,1911,1920 'auto-invok':1814 'auto-mod':1910 'autom':296 'autonom':1360,1530,1841 'autonomous-pipelin':1840 'avail':940 'b':518 'back':352,1399,1414,1430 'bare':432 'baselin':869 'bash':333 'beat':811 'becom':845 'believ':570 'belong':2055 'best':2006 'better':433 'beyond':1127 'big':758 'bisect':116,283,307,878 'blast':1388 'block':763 'boot':297 'boundari':819 'branch':858 'break':1977 'breakpoint':810 'broader':1118,2043 'broken':28 'browser':202 'bug':13,54,110,172,253,267,287,362,449,477,580,602,617,656,699,928,951,966,1001,1023,1246,1474,1664,1670,2053,2102 'build':85,355,495,1624 'c':533 'cach':388 'calibr':1490 'call':260,935,1218 'caller':947,954,1258 'cannot':494,707,1623,1983 'cap':1942 'captur':215,520,629,1227 'case':1992 'cat':1417 'caus':43,115,694,1483,1569,1642,1672,2082 'chain':962,1274,1364,1375,1531,1649,1728,1739,1775,1781,1787,2091,2093 'chang':745,792,1057,1125,1252,2042 'cheap':756 'check':70,301,1454,1954 'checklist':1312 'checkpoint':757 'chees':1685 'cheese/pasteurize':1543 'cheese/specs':71 'claim':2078,2081,2098 'clean':455,2068 'cleanup':841,1074,1121,1155,1515,1614,1899,2046 'clear':1213,1456 'clearly-mark':1212 'cli':186 'click':341 'code':138,231,254,1386,1404 'codebas':64,997 'command':1494 'commit':293,1233,1369 'confid':973 'config':327 'confirm':582,1097,1163,1224,1641 'consid':1499 'construct':156 'consum':124 'content':849,1195 'context':1442 'contract':1913 'cook':1327,1376,1565,1645,1688,1741,1803,1907,2094 'core':526 'correct':913,918,976,1029,1957,1963,2108 'coupl':1260 'cover':1480 'crash':411 'creativ':149 'creep':1068,1350 'cure':1692,1806,1918,2097 'curl':177 'cycl':1919 'dataset':294 'debug':23,444,625,831,839,1189,1215,1517,1686,2063 'debug-a4f2':838 'debugg':479,490,801 'default':1326,1788 'defer':1773 'delet':1207,1520 'delta':1437 'dep':249 'deploy':743 'describ':591 'design':76 'determinist':102,417,440,448,616 'dev':183 'diagnos':21 'diagnosi':1467,1653 'didn':409 'die':856 'dif':192 'diff':329,1344,1435,1440,1585 'differ':594 'differenti':311 'direct':1834,1852,1903 'disappear':700 'discard':716 'disciplin':51,1894 'disk':226,1320,1705 'disproportion':143 'disprov':1936 'distinguish':821 'document':1184 'dom/console/network':211 'domain':734 'done':1567,1616,1667 'downgrad':2004 'downstream':1235,1710 'drift':1347 'drive':206,342,1373 'dump':525,527 'e.g':837,1587 'e2e':175 'earli':1923,1990 'early-stop':1989 'edit':888,892,1108,1115,1419,1433 'effort':144 'els':94,2021 'end':844 'enough':622 'entir':1829 'env':806 'environ':515,1628 'error':633 'establish':867 'event':223 'everi':830,1988 'everyth':93,826,2020 'exact':631 'exercis':251,925 'exhaust':1635 'exist':978,1031 'expect':1497 'explicit':59,502 'explor':62 'expos':2103 'extern':1452 'fail':31,81,165,1039,1051,1622,1927 'failur':15,280,587,595,606 'fall':1398,1413,1429 'fallback':1382,1385 'fals':972 'falsifi':684 'fast':101 'faster':387 'featur':2050 'feed':351 'feedback':87,358,1087,1492,2015 'file':523,1512 'filesystem':423 'find':113,983,1955 'first':677,880,1759 'fix':365,604,645,881,897,906,1130,1289,1296,1334,1510,1583,1665,1769,1798,1976,2086 'fixtur':190 'flag':1393,1408,1424 'flake':476 'flaki':14,429 'follow':994,1123,1270,1581,1590,1594,1679,1757,1766,2048 'follow-on':1122,2047 'follow-up':993,1580,1593,1678,1756,1765 'footprint':1514,1586 'format':690 'forward':1532,1729,1782 'freez':424 'full':1557,1886 'function':259 'fuzz':263 'gap':1395,1410,1426,2106 'gate':1870 'generat':660,673 'genuin':493 'gh':1443 'git':306,1439,1445 'github':1441 'give':152,971 'go':1109 'goal':451 'gone':1101 'good':198,1254 'green':1314,1606,2085 'grep':1402 'guess':2007 'halt':551,1563,1618,1929,1949,1961,1995 'hand':1156,1321 'handoff':552,988,1152,1161,1533,1540,1683,1701,2072 'happen':597 'har':237,284,522,872,1205,1519 'hard':12,53 'headless':201 'held':1503 'hidden':1259 'high':621 'higher':459 'histori':1446 'hit':1203 'hitl':332 'host':891,1114,1401,1416,1432 'http':178 'human':339 'hypothes':664,750,822,1498,1938 'hypothesi':118,672,681,712,1225,1637,1868 'hypothesis':544,659,2026 'hypothesis-test':117 'idea':679 'implement':1119,2044 'inform':1304 'init':392 'inject':472 'input':191,275,316 'inspect':803 'instant':740 'instead':866,1659,1972 'instrument':121,539,780,887,1190,1420 'integr':174 'intermitt':32 'interrupt':1466 'invoc':187 'invok':1816,1823,1831,1851,1900 'involv':1250 'isol':234,422 'iter':366 'job':1135 'justifi':60 'keep':483,1468 'know':749,1489 'knowledg':735 'known':197,291 'known-good':196 'land':1290 'last':335 'later':640 'lead':1713 'leav':2062 'left':1801 'let':1142 'like':20 'line':1272,1513,1576 'link':1451 'list':503,723,1869 'local':1444 'locat':1216 'lock':1004 'log':224,524,813,816,825,832,852,855,862 'longer':1167,1611 'look':277 'loop':88,264,312,347,359,369,373,381,430,436,441,462,497,547,568,577,584,1088,1175,1493,1570,1626,1932,2016,2030 'loosen':1892 'm':1072 'make':385,399,414,689,697,702,1059,1291 'map':784 'mark':1214,1457 'markdown':1560 'mcp':1392,1407,1423 'md':1544 'measur':870,879 'mechan':96,1808,2023 'messag':634,1234 'minim':241,1129,2040 'minimis':1035,1094 'minimum':1538 'minimum-shap':1537 'miss':1461,1627,1630 'mock':248 'mode':281,588,1836,1857,1912,1921 'model':1876 'mold':1566,1650 'move':1209 'multipl':610,953 'must':340,682,783,1819 'name':1482,2083 'narrow':393,469 'nearbi':600 'need':952,1383,1682 'network':220,425 'never':824,889,1112,1813 'new':323,1811 'new-vers':322 'next':1524,1564,1643,1725 'non':447,615 'non-determinist':446,614 'none':1578,1598,1763 'note':77,984,1136,1261,1596 'observ':1495 'occur':932 'often':732 'ok':1562,1600,1733,1785 'old':319 'old-vers':318 'one':132,157,246,793,809,921,1484,1502 'open':1370 'option':1462,1715 'orchestr':1549 'order':163 'orient':68 'origin':1091,1164,1608 'output':271,330,349,636,1475 'outsid':1673 'own':1377 'packag':1354 'package-readi':1353 'paper':1012,2121 'parallelis':466 'pass':1062,1079,1178 'pass/fail':106 'past':36 'pasteur':1,1133,1365,1687,1792,1982,2059,2080 'path':232,255,1507,1575 'pattern':929 'payload':222 'per':1663 'per-bug':1662 'perf':857 'perform':17,860 'performance.now':873 'permiss':534 'pha':48 'phase':56,83,562,572,641,657,778,790,895,1015,1085,1149,1153,1173,1620,1633,1860,1880,1897,1925,1934,1945,1950,2012,2031 'phrase':19 'pick':1145,1280,1329,1749 'pin':418 'pipelin':1684,1842 'plain':1438 'plan':876 'plausibl':678 'playwright':204 'post':1333 'post-fix':1332 'pre':1777 'pre-select':1776 'predict':687,710,788 'prefer':799,1379,1384 'prefix':836,1199 'press':1690,1804,1916,2095 'prevent':999,1021,1244 'print':1698 'probe':782 'proceed':542,560,651,766,1873 'produc':585,1351 'product':376,538,1056,1584,2041 'profil':874 'propag':1844 'properti':262 'proport':1471 'prototyp':1206 'provid':1450 'prs':1371 'puppet':205 'queri':850,875,1196 'radius':1389 'rais':484 'random':274 'rank':663,722,739,769,1867,1878 'rate':461,486,623 're':738,1082,1170,1554 're-rank':737 're-read':1553 're-run':1081,1169 'reach':170 'read':1403,1418,1555 'readabl':1348 'readi':1355,2089 'real':219,927 'recommend':1293,1655,1730 'reconcil':1984 'record':529 'refactor':2051 'refer':1237 'refus':150 'regress':18,861,898,902,968,1176,1505,1573,1603,1965,2036,2084,2110 'regression-test':1572,1964,2109 'relat':1120,2045 'reloc':1522 'remov':1191,1518 'repeat':302 'repl':802 'replay':213,227 'replic':960 'repo':1675 'report':1356,1479,1558,1696,2000 'repro':39,456,1036,1165,1609 'reproduc':516,574,608,618,654,1168,1612,2029 'reproduct':460 'request':221 'resort':336 'resum':1551 'retrospect':1024 'return':1476 'right':357 'rng':421 'rough':161 'round':1638,1941,1947 'rout':1969 'rule':754,2008 'run':44,182,272,308,313,575,611,776,1083,1171,1192,1276,1336,1712,1742,1884 'runnabl':105 'saniti':1453 'save':140,217 'saver':760 'say':500,2113 'scenario':1095 'schema':1559 'scope':396,1067,1349,1986 'screen':528 'script':179,203,334 'seam':82,169,914,919,941,977,1030,1043,1106,1182,1256,1571,1762,1953,1958,1967,2112 'search':828,1387 'second':428,439,882 'see':554 'seed':420 'select':1778,1821 'sentenc':1485 'server':184 'servic':247 'setup':389 'shallow':944 'shape':1539 'sharpen':718 'sharper':402 'ship':1693,2079,2099 'short':1478 'show':720,1863 'signal':107,126,401,1889 'silent':2003,2120 'singl':258,671,847,946 'single-cal':945 'single-hypothesi':670 'site':936 'six':47 'six-pha':46 'skill':3,92,1525,1847,2019 'skill-pasteurize' 'skip':55,390,1006,1826,1872,2011 'sleep':473 'slow':637 'slug':553,989,1140,1162,1187,1222,1230,1265,1317,1534,1541,1702,1996,2073,2117 'smallest':1055 'snapshot':199 'sometim':269 'source-paulnsorensen' 'spec':74,1346,1658,1753 'specif':406,787 'spend':142 'spin':238 'src/foo.ts':1588 'stack':37 'standard':1648 'stare':136 'start':1309 'state':42,292,299,685,708,1335 'status':550,1516,1561,1599,1617,1732,1784,1928,1960 'stdout':193 'step':1752 'still':350,1025,1275,1820,1883 'stop':498,557,1768,1922,1991 'stress':468 'structur':346 'subsequ':1751 'subset':242 'suggest':1523,2054 'superpow':445 'support':807 'surfac':1998 'surviv':853 'switch':1843 'symptom':407,632,1099 'system':245 'tag':829,854,2064 'take':1914 'tangl':1257 'target':815 'tast':1339,1744 'taste-test':1338,1743 'temporari':537 'ten':812 'test':30,119,166,395,666,730,899,903,924,948,956,969,1008,1040,1061,1078,1105,1177,1255,1340,1506,1574,1604,1745,1966,1980,2037,2111 'throwaway':236,1204 'tilth':1391,1406,1422 'time':419,470,638,759,797,871 'timestamp':531 'tool':798,894,1117,1380,1463,1469 'topic-agent-skills' 'topic-ai-coding' 'topic-claude-code' 'topic-code-review' 'topic-developer-tools' 'touch':79 'trace':38,216 'treat':371 'tree':1772,2067,2088 'tri':158,506 'trigger':464,964,1358 'turn':1033 'two':290,326,1940,1944 'ui':208 'un':1093 'un-minimis':1092 'uniqu':835 'unit':173,955 'unrel':391,1979 'untag':851 'upstream':1846 'use':6,65,883,1470 'user':9,509,590,726,772,1278,1449,1721,1748,1818,1865 'user-provid':1448 'usual':864 'valid':1726,1736,1779,1809 'variabl':794 've':752 'verb':1718 'verifi':643,1201,1796 'version':295,320,324 'via':727,1046,1064,1285,1707 'vibe':715 'visual':1436 'vs':321,1496 'want':1722 'watch':578,1049,1076 'way':154 'whatev':168,514 'window':471 'within':1985 'without':40,545,1552,1639,1737,2027 'work':1284,1800 'wors':704 'would':1019,1242 'write':548,893,900,1009,1044,1116,1159,1434,1535,1959,1993,2033 'written':1930,2075 'wrong':270,601,603,635,865 'wrote':1794 'x':27,300 'zero':1202","prices":[{"id":"7f38e7bc-03ea-4db2-ac52-f0db3b2f6652","listingId":"e9ccba6a-3db5-443f-92ec-81951e4956ad","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"paulnsorensen","category":"easy-cheese","install_from":"skills.sh"},"createdAt":"2026-05-18T13:21:09.363Z"}],"sources":[{"listingId":"e9ccba6a-3db5-443f-92ec-81951e4956ad","source":"github","sourceId":"paulnsorensen/easy-cheese/pasteurize","sourceUrl":"https://github.com/paulnsorensen/easy-cheese/tree/main/skills/pasteurize","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:09.363Z","lastSeenAt":"2026-05-18T19:13:41.388Z"}],"details":{"listingId":"e9ccba6a-3db5-443f-92ec-81951e4956ad","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"paulnsorensen","slug":"pasteurize","github":{"repo":"paulnsorensen/easy-cheese","stars":7,"topics":["agent-skills","ai-coding","claude-code","code-review","developer-tools"],"license":"mit","html_url":"https://github.com/paulnsorensen/easy-cheese","pushed_at":"2026-05-18T06:33:38Z","description":"Cheese your code 🧀 — high-quality results as easy as cheese. A portable, harness-agnostic Agent Skills toolkit.","skill_md_sha":"32bfbc280c8c0059b626d693944731f037e5e53d","skill_md_path":"skills/pasteurize/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/paulnsorensen/easy-cheese/tree/main/skills/pasteurize"},"layout":"multi","source":"github","category":"easy-cheese","frontmatter":{"name":"pasteurize","license":"MIT","description":"This skill should be used when the user has a hard bug, flaky failure, or performance regression — phrases like \"diagnose this\", \"debug this\", \"why is X broken\", \"the test fails intermittently\", \"/pasteurize\", or a pasted stack trace / repro without a stated cause. Runs a six-phase diagnosis loop (feedback loop → reproduce → hypothesise → instrument → fix + regression test → cleanup); phase 1 (build a deterministic, agent-runnable feedback loop) is the skill — everything else consumes the signal. Writes the regression test, applies the minimal fix, verifies the original repro is gone, then writes `.cheese/pasteurize/<slug>.md` and hands off to `/cook --auto` (default) for taste-test and the `/press → /age → /cure` chain. Supports `--auto` to skip the handoff gate. Do NOT use for review-only diffs (`/age`), feature design (`/mold`), or fixes where the cause is already known (`/cook` directly). After `/cheese` debug intent; before `/cook --auto` → `/press` → `/age` → `/cure`."},"skills_sh_url":"https://skills.sh/paulnsorensen/easy-cheese/pasteurize"},"updatedAt":"2026-05-18T19:13:41.388Z"}}