{"id":"5576ad7b-1a3e-46fd-bae4-df1f0b39942f","shortId":"pVs82g","kind":"skill","title":"ultracook","tagline":"This skill should be used when the user has an approved spec or unambiguous task with a high-blast-radius footprint and wants the whole pipeline (cook → press → age → cure → age → cure → age, all `--auto`) to run forward in fresh-context isolation per phase — phrases like \"/ultra","description":"# /ultracook\n\nUse this skill when the user wants the whole `cook → press → age → cure → age → cure → age` chain to run forward without per-step approval, **and** wants each phase to reason in fresh context — blind to the previous phase's chain-of-thought.\n\nDo not use it for short focused changes (`/cook --auto` is cheaper and continuous), for fuzzy planning (`/mold`), or for review-only work (`/age`).\n\n`/ultracook` is the sub-agent-transport sibling of `/cook --auto`. Same seven spawns, same `--auto` semantics propagated end-to-end, same medium+ stake floor, same two-cure-pass cap. The only difference is that each phase runs inside its own freshly-spawned sub-agent, so the parent context never accumulates phase-internal reasoning and review is adversarial rather than continuous.\n\n## Inputs\n\nAccept one of:\n\n- A spec path, usually `.cheese/specs/<slug>.md`.\n- A bare slug whose spec lives under `.cheese/specs/<slug>.md`.\n- A pasted spec, with a slug supplied alongside.\n\n`/ultracook` does not accept fuzzy or open-ended asks — those go to `/mold` first. The orchestrator assumes the contract is already locked.\n\n## Flow\n\n1. **Resolve slug** — derive `<slug>` from the input. If a spec path is given, the slug is the basename without `.md`; if a bare slug is given, confirm the spec exists at `.cheese/specs/<slug>.md`.\n2. **Guard against re-entry** — if any of `.cheese/{cook,press,age,cure}/<slug>.md` already exist, stop with a one-line list of the existing handoffs and tell the user to either run `/cheese --continue <slug>` to resume from the latest phase or `rm` the relevant files to start fresh. Never silently wipe.\n3. **Phase loop** — for each phase in `cook, press, age, cure, age, cure, age`, spawn a fresh sub-agent (see `## Sub-agent contract` below), wait for it to return, read `.cheese/<phase>/<slug>.md`, and decide:\n   - `status:` starts with `halt` → surface the halt reason and stop.\n   - `next:` is `done` and the phase is age → stop early with a clean summary (the diff is clean at the medium+ floor; cure has nothing to apply).\n   - Otherwise → continue to the next phase.\n4. **Final summary** — after the third age spawn (or any earlier stop), print a four-line summary: passes completed, total findings applied / deferred, the final age-report path, and the next-step nudge (\"review the diff, then `/gh` when ready\").\n\n`/ultracook` never invokes `/gh`. PR creation stays user-triggered.\n\n## Phases and slug paths\n\nThe chain is fixed: seven spawns. The orchestrator walks the table top-to-bottom and stops after the last entry.\n\nEvery spawn uses the canonical `/<phase> <slug> --auto` form. Cook accepts a bare slug per its Inputs section; the other phases already resolve their paths from the slug.\n\n| # | Phase invocation                          | Handoff slug                  |\n|---|-------------------------------------------|-------------------------------|\n| 1 | `/cook <slug> --auto`                     | `.cheese/cook/<slug>.md`      |\n| 2 | `/press <slug> --auto`                    | `.cheese/press/<slug>.md`     |\n| 3 | `/age <slug> --auto`                      | `.cheese/age/<slug>.md`       |\n| 4 | `/cure <slug> --auto --stake medium+`     | `.cheese/cure/<slug>.md`      |\n| 5 | `/age <slug> --auto`                      | `.cheese/age/<slug>.md` (overwritten) |\n| 6 | `/cure <slug> --auto --stake medium+`     | `.cheese/cure/<slug>.md` (overwritten) |\n| 7 | `/age <slug> --auto`                      | `.cheese/age/<slug>.md` (final report) |\n\n### Cap enforcement\n\nThe two-cure-pass cap is enforced by **chain length, not by age**. Each age sub-agent boots in fresh context and cannot count prior cure passes, so the contract cannot rely on age tracking the count. Instead:\n\n- The chain table has exactly seven entries, with two cure spawns (#4 and #6) and three age spawns (#3, #5, #7). After spawn #7 completes, the orchestrator stops because the table is exhausted.\n- Each age spawn writes `next:` from what it observes on its own run: `next: cure` when at least one medium-or-above finding exists, `next: done` when none do. The field is **informational** under ultracook — it drives early-stop (when an age reports clean), but it does not gate cap enforcement.\n- `/ultracook` does not pass a pass-ordinal hint to age. Age has no need to know whether it is age₁, age₂, or age₃; the orchestrator owns the position.\n\n## No-chain isolation directive\n\nEach phase's existing `--auto` contract chains forward in-session — `/cook --auto` invokes `/press --auto`, which invokes `/age --auto`, etc. `/ultracook` overrides that behaviour: every spawn must run only its own phase, write the slug, and stop. The orchestrator owns the chain.\n\nThe override travels in the spawn prompt as the explicit no-chain directive: `Do not chain forward to the next phase even though your auto-mode contract documents that. Write your handoff slug and stop. The /ultracook orchestrator is driving the chain.`\n\nEach phase's SKILL.md `## Auto mode` section honours this directive — see `skills/<phase>/SKILL.md` `### When invoked from /ultracook` for the per-phase contract amendment. Without the directive, sub-agent #1 would run the entire pipeline inside its own context and the per-phase fresh-context property would not be delivered.\n\n## Sub-agent contract — inheritance, not diminution\n\nEach phase spawns a **full peer** sub-agent — same model as the parent, full tool access, full MCP access, full skill access. These are not focused mini-assistants:\n\n- `/cook` writes code across the changed files.\n- `/press` runs the project's test suite and adds tests.\n- `/age` reviews nine dimensions over the diff.\n- `/cure` applies fixes via `cheez-write` and re-runs test gates.\n\nDiminutive defaults (haiku model, restricted tools, `Explore`-style read-only workers) will choke phases that need to edit dozens of files or run real test suites.\n\nConcrete `Agent()` signature shape (harness-agnostic; adapt the keyword names to the host):\n\n```\nAgent(\n  subagent_type: \"general-purpose\",   # never specialised\n  # model: omit — inherits parent's model. Do not pass haiku/sonnet here.\n  prompt: \"Run /<phase> <slug> --auto for THIS PHASE ONLY. Write\n           .cheese/<phase>/<slug>.md with the handoff schema and stop.\n           Do not chain forward to the next phase even though your\n           auto-mode contract documents that. The /ultracook orchestrator\n           is driving the chain.\"\n)\n```\n\nThe sub-agent's stdout is operator-visible but **not** the chaining contract. The orchestrator must read `.cheese/<phase>/<slug>.md` to decide what happens next; never infer success or `next:` from the sub-agent's last line. Asking the sub-agent to echo its status to stdout would tempt a future maintainer to wire stdout-driven chaining back in.\n\nRules:\n\n- **Do not downgrade the model.** Omit the model parameter so the sub-agent inherits the parent's model. Never pass a smaller tier (haiku, lighter task workers) for ultracook phases.\n- **Do not narrow `subagent_type`.** Use `general-purpose` (or the harness equivalent that grants full tool access). Do not pass `Explore`, `lsp-probe`, or any other read-only / scoped worker type.\n- **Do not restrict tools or MCP access.** Each phase needs Bash, Edit, Write, Read, the cheez-* skills, and any MCP servers the parent has. Restricting them is the failure mode the contract exists to prevent.\n- **Do pass the slug.** The phase skill resolves its own paths from the slug; `/ultracook` does not pre-compute paths for the sub-agent.\n\nThe contract is \"inheritance, not diminution\" because most sub-agent patterns in this ecosystem (Explore, lsp-probe, whey-drainer, ricotta-reducer) are deliberately scoped down for cheap focused queries. `/ultracook` does the opposite: it spawns workers that are full peers of the parent, doing major work in their own context window.\n\n## Handoff slug schema\n\nEvery phase writes its handoff slug to `.cheese/<phase>/<slug>.md` with the following minimum shape (prepended as frontmatter or inline at the top of richer reports such as age and press):\n\n```markdown\nstatus: ok | halt: <one-line reason>\nnext: <phase-name | done>\nartifact: <path-to-richer-report-if-any>\n<one-line orientation: what this phase did>\n```\n\n`status: ok` means the phase finished cleanly and `next` names the next phase the chain *would* run if the orchestrator chose to continue. `status: halt: <reason>` means the chain stops; `/ultracook` surfaces the reason verbatim. `next: done` is informational: an age phase writes it when the diff is clean at the medium+ floor (early-stop signal). The two-cure-pass cap is enforced by chain length, not by `next: done` — see `### Cap enforcement` above.\n\nFor phases that already write rich reports (`/age`, `/press`, `/cure` once extended, `/cook` once extended), the slug schema is prepended at the top of the same file — there is no second file. The schema is the contract; the body is whatever the phase normally writes.\n\n## When auto mode stops early\n\n`/ultracook` stops and surfaces the report when:\n\n- A phase's slug file is missing after the sub-agent returns (the sub-agent did not write its handoff — print \"phase did not write handoff — check sub-agent logs\").\n- A phase writes `status: halt: <reason>` (a quality gate failed, press came back `blocked`, cure could not apply any finding).\n- An age phase writes `next: done` because the diff is clean at the medium+ floor (early-stop). Note: this only fires from age spawns; cure always writes `next: age` and cap-enforcement does not flow through `next: done` (the chain length handles that — see `### Cap enforcement` above).\n\nIn every early-stop case, surface the slug file path so the user can read the full report. The natural terminal case (chain table exhausted after spawn #7) does not need an explicit early-stop signal — the orchestrator simply runs out of entries to spawn.\n\n## Existing handoffs\n\nIf any of `.cheese/{cook,press,age,cure}/<slug>.md` already exist when `/ultracook <slug>` is invoked, stop. Do not silently wipe — the user may be mid-pipeline. Scan all four phase paths and print only the ones that exist:\n\n```\nSlug `<slug>` has existing handoffs:\n  .cheese/cook/<slug>.md     (when present)\n  .cheese/press/<slug>.md    (when present)\n  .cheese/age/<slug>.md      (when present)\n  .cheese/cure/<slug>.md     (when present)\nUse `/cheese --continue <slug>` to resume from the latest phase, or\n`rm` the listed files to start fresh.\n```\n\nRemoving the handoffs by hand is the only sanctioned reset path. The orchestrator does not accept a wipe flag — adding one would create a destructive default for what is intentionally a one-line `rm`.\n\n## Output\n\nA short final summary, after the chain stops (success or early stop):\n\n```\nUltracook summary — <slug>\nPasses completed: <list of phase names that ran>\nFindings:         <fixed count> applied, <count> deferred (cure-report path)\nFinal age:        .cheese/age/<slug>.md\nNext step:        review the diff, then /gh when ready\n```\n\nIf the chain stopped on a halt, replace \"Next step\" with the halt reason and the path of the phase that surfaced it.\n\n## Preferred tools and fallbacks\n\n`/ultracook` is a thin orchestrator — it spawns sub-agents and reads the small handoff slug files they write. The preferred tools live inside each phase, not here. The orchestrator only needs:\n\n| Need                              | Prefer                | Fallback                          |\n|-----------------------------------|-----------------------|-----------------------------------|\n| Spawning the per-phase worker     | `Agent()` / harness sub-agent primitive | none — without sub-agent spawn, the fresh-context property cannot be honoured |\n| Reading the handoff slug          | `cheez-read` / host file read | host file read                    |\n| Detecting existing handoffs       | host file glob / list | `cheez-search` `tilth_files` glob |\n\nIf the host harness does not expose a sub-agent primitive at all, `/ultracook` is the wrong skill — recommend `/cook --auto` instead, which uses the same flag semantics in the parent's own context.\n\n## Rules\n\n- Sub-agents are full peers, not diminutive workers. Do not downgrade the model, do not narrow `subagent_type`, do not restrict tools or MCP access.\n- The chain is fixed: cook → press → age → cure → age → cure → age, all `--auto`, cure stake floor `medium+`. Do not invent extra phases or skip phases.\n- Read each phase's handoff slug after the sub-agent returns. Do not infer success from the sub-agent's last line — read the file.\n- Surface halts verbatim. Do not paraphrase, do not soften, do not \"retry\" a halted phase silently.\n- Never invoke `/gh`. PR creation stays user-triggered.\n- Never wipe existing handoffs. Stop and tell the user to use `/cheese --continue` or `rm` by hand.\n- Apply the shared voice kernel (lives at `skills/age/references/voice.md` in this repo): lead the final summary with what happened, flag residual risk as `certain | speculating | don't know`, do not manufacture follow-ups.","tags":["ultracook","easy","cheese","paulnsorensen","agent-skills","ai-coding","claude-code","code-review","developer-tools"],"capabilities":["skill","source-paulnsorensen","skill-ultracook","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/ultracook","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,023 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.579Z","embedding":null,"createdAt":"2026-05-18T13:21:09.595Z","updatedAt":"2026-05-18T19:13:41.579Z","lastSeenAt":"2026-05-18T19:13:41.579Z","tsv":"'/age':120,523,535,549,735,911,1401 '/cheese':306,1661,2013 '/cook':104,130,513,728,894,1406,1883 '/cure':528,541,918,1403 '/gh':444,450,1746,1995 '/mold':113,227 '/press':518,731,901,1402 '/skill.md':816 '/ultra':50 '/ultracook':51,121,214,447,683,738,798,820,1025,1209,1254,1348,1444,1613,1776,1877 '1':238,512,834 '2':271,517 '3':325,522,615 '4':404,527,608 '5':534,616 '6':540,610 '7':548,617,620,1580 'accept':188,217,490,1692 'access':880,883,886,1143,1166,1924 'accumul':175 'across':897 'ad':1696 'adapt':965 'add':909 'adversari':183 'age':31,33,35,63,65,67,283,334,336,338,378,410,431,570,572,592,613,631,673,693,694,703,704,706,1306,1358,1504,1526,1532,1607,1737,1931,1933,1935 'age-report':430 'agent':126,169,344,348,575,833,859,872,959,972,1034,1066,1074,1108,1220,1231,1462,1467,1482,1785,1817,1821,1827,1873,1901,1960,1970 'agnost':964 'alongsid':213 'alreadi':235,286,501,1397,1610 'alway':1529 'amend':827 'appli':397,426,919,1500,1730,2019 'approv':12,76 'artifact':1318 'ask':223,1070 'assist':893 'assum':231 'auto':37,105,131,136,487,514,519,524,529,536,542,550,721,729,732,736,786,808,993,1019,1440,1884,1937 'auto-mod':785,1018 'back':1092,1495 'bare':198,260,492 'basenam':255 'bash':1170 'behaviour':741 'blast':21 'blind':86 'block':1496 'bodi':1432 'boot':576 'bottom':475 'came':1494 'cannot':581,589,1834 'canon':486 'cap':152,555,562,681,1380,1391,1535,1549 'cap-enforc':1534 'case':1557,1574 'certain':2041 'chain':68,93,462,566,598,714,723,759,772,776,803,1009,1030,1044,1091,1333,1346,1384,1544,1575,1719,1751,1926 'chain-of-thought':92 'chang':103,899 'cheap':1251 'cheaper':107 'check':1479 'chees':280,357,999,1050,1286,1604 'cheese/age':525,537,551,1652,1738 'cheese/cook':515,1644 'cheese/cure':532,545,1656 'cheese/press':520,1648 'cheese/specs':195,204,269 'cheez':923,1175,1842,1858 'cheez-read':1841 'cheez-search':1857 'cheez-writ':922 'choke':944 'chose':1339 'clean':383,388,675,1325,1366,1513 'code':896 'complet':423,621,1728 'comput':1214 'concret':958 'confirm':264 'context':44,85,173,579,843,851,1274,1832,1897 'continu':109,186,307,399,1341,1662,2014 'contract':233,349,588,722,788,826,860,1021,1045,1191,1222,1430 'cook':29,61,281,332,489,1605,1929 'could':1498 'count':582,595 'creat':1699 'creation':452,1997 'cure':32,34,64,66,150,284,335,337,393,560,584,606,644,1378,1497,1528,1608,1733,1932,1934,1938 'cure-report':1732 'decid':360,1053 'default':932,1702 'defer':427,1731 'deliber':1247 'deliv':856 'deriv':241 'destruct':1701 'detect':1850 'diff':386,442,917,1364,1511,1744 'differ':155 'dimens':914 'diminut':863,931,1226,1906 'direct':716,773,813,830 'document':789,1022 'done':373,656,1317,1354,1389,1508,1542 'downgrad':1097,1910 'dozen':950 'drainer':1242 'drive':667,801,1028 'driven':1090 'earli':380,669,1372,1443,1519,1555,1587,1723 'earlier':414 'early-stop':668,1371,1518,1554,1586 'echo':1076 'ecosystem':1235 'edit':949,1171 'either':304 'end':140,142,222 'end-to-end':139 'enforc':556,564,682,1382,1392,1536,1550 'entir':838 'entri':276,481,603,1596 'equival':1138 'etc':737 'even':782,1015 'everi':482,742,1279,1553 'exact':601 'exhaust':629,1577 'exist':267,287,297,654,720,1192,1599,1611,1639,1642,1851,2004 'explicit':769,1585 'explor':937,1147,1236 'expos':1869 'extend':1405,1408 'extra':1945 'fail':1492 'failur':1188 'fallback':1775,1810 'field':661 'file':318,900,952,1420,1425,1455,1561,1673,1792,1845,1848,1854,1861,1976 'final':405,429,553,1715,1736,2032 'find':425,653,1502,1729 'finish':1324 'fire':1524 'first':228 'fix':464,920,1928 'flag':1695,1890,2037 'floor':146,392,1370,1517,1940 'flow':237,1539 'focus':102,890,1252 'follow':1290,2050 'follow-up':2049 'footprint':23 'form':488 'forward':40,71,724,777,1010 'four':419,1630 'four-lin':418 'fresh':43,84,165,321,341,578,850,1676,1831 'fresh-context':42,849,1830 'freshly-spawn':164 'frontmatt':1295 'full':868,878,881,884,1141,1263,1569,1903 'futur':1084 'fuzzi':111,218 'gate':680,930,1491 'general':976,1133 'general-purpos':975,1132 'given':250,263 'glob':1855,1862 'go':225 'grant':1140 'guard':272 'haiku':933,1119 'haiku/sonnet':989 'halt':364,367,1312,1343,1488,1755,1761,1978,1990 'hand':1681,2018 'handl':1546 'handoff':298,510,793,1003,1276,1283,1472,1478,1600,1643,1679,1790,1839,1852,1954,2005 'happen':1055,2036 'har':963,1137,1818,1866 'harness-agnost':962 'high':20 'high-blast-radius':19 'hint':691 'honour':811,1836 'host':971,1844,1847,1853,1865 'in-sess':725 'infer':1058,1964 'inform':663,1356 'inherit':861,982,1109,1224 'inlin':1297 'input':187,244,496 'insid':161,840,1799 'instead':596,1885 'intent':1706 'intern':178 'invent':1944 'invoc':509 'invok':449,730,734,818,1615,1994 'isol':45,715 'kernel':2023 'keyword':967 'know':699,2045 'last':480,1068,1972 'latest':312,1667 'lead':2030 'least':647 'length':567,1385,1545 'lighter':1120 'like':49 'line':293,420,1069,1710,1973 'list':294,1672,1856 'live':202,1798,2024 'lock':236 'log':1483 'loop':327 'lsp':1149,1238 'lsp-probe':1148,1237 'maintain':1085 'major':1269 'manufactur':2048 'markdown':1309 'may':1623 'mcp':882,1165,1179,1923 'md':196,205,257,270,285,358,516,521,526,533,538,546,552,1000,1051,1287,1609,1645,1649,1653,1657,1739 'mean':1321,1344 'medium':144,391,531,544,650,1369,1516,1941 'medium-or-abov':649 'mid':1626 'mid-pipelin':1625 'mini':892 'mini-assist':891 'minimum':1291 'miss':1457 'mode':787,809,1020,1189,1441 'model':874,934,980,985,1099,1102,1113,1912 'must':744,1048 'name':968,1316,1328 'narrow':1128,1915 'natur':1572 'need':697,947,1169,1583,1807,1808 'never':174,322,448,978,1057,1114,1993,2002 'next':371,402,437,634,643,655,780,1013,1056,1061,1313,1327,1330,1353,1388,1507,1531,1541,1740,1757 'next-step':436 'nine':913 'no-chain':712,770 'none':658,1823 'normal':1437 'note':1521 'noth':395 'nudg':439 'observ':638 'ok':1311,1320 'omit':981,1100 'one':189,292,648,1637,1697,1709 'one-lin':291,1708 'open':221 'open-end':220 'oper':1039 'operator-vis':1038 'opposit':1257 'orchestr':230,468,623,708,756,799,1026,1047,1338,1591,1689,1780,1805 'ordin':690 'otherwis':398 'output':1712 'overrid':739,761 'overwritten':539,547 'own':709,757 'paramet':1103 'paraphras':1982 'parent':172,877,983,1111,1182,1267,1894 'pass':151,422,561,585,686,689,988,1115,1146,1196,1379,1727 'pass-ordin':688 'past':207 'path':193,248,433,460,504,1205,1215,1562,1632,1687,1735,1765 'pattern':1232 'peer':869,1264,1904 'per':46,74,494,824,847,1814 'per-phas':823,846,1813 'per-step':73 'phase':47,80,90,159,177,313,326,330,376,403,457,500,508,718,749,781,805,825,848,865,945,996,1014,1125,1168,1200,1280,1315,1323,1331,1359,1395,1436,1452,1474,1485,1505,1631,1668,1768,1801,1815,1946,1949,1952,1991 'phase-intern':176 'phase-nam':1314 'phrase':48 'pipelin':28,839,1627 'plan':112 'posit':711 'pr':451,1996 'pre':1213 'pre-comput':1212 'prefer':1772,1796,1809 'prepend':1293,1413 'present':1647,1651,1655,1659 'press':30,62,282,333,1308,1493,1606,1930 'prevent':1194 'previous':89 'primit':1822,1874 'print':416,1473,1634 'prior':583 'probe':1150,1239 'project':904 'prompt':766,991 'propag':138 'properti':852,1833 'purpos':977,1134 'qualiti':1490 'queri':1253 'radius':22 'rather':184 're':275,927 're-entri':274 're-run':926 'read':356,940,1049,1155,1173,1567,1787,1837,1843,1846,1849,1950,1974 'read-on':939,1154 'readi':446,1748 'real':955 'reason':82,179,368,1351,1762 'recommend':1882 'reduc':1245 'relev':317 'reli':590 'remov':1677 'replac':1756 'repo':2029 'report':432,554,674,1303,1400,1449,1570,1734 'reset':1686 'residu':2038 'resolv':239,502,1202 'restrict':935,1162,1184,1920 'resum':309,1664 'retri':1988 'return':355,1463,1961 'review':117,181,440,912,1742 'review-on':116 'rich':1399 'richer':1302 'ricotta':1244 'ricotta-reduc':1243 'risk':2039 'rm':315,1670,1711,2016 'rule':1094,1898 'run':39,70,160,305,642,745,836,902,928,954,992,1335,1593 'sanction':1685 'scan':1628 'schema':1004,1278,1411,1427 'scope':1157,1248 'search':1859 'second':1424 'section':497,810 'see':345,814,1390,1548 'semant':137,1891 'server':1180 'session':727 'seven':133,465,602 'shape':961,1292 'share':2021 'short':101,1714 'sibl':128 'signal':1374,1589 'signatur':960 'silent':323,1619,1992 'simpli':1592 'skill':3,54,815,885,1176,1201,1881 'skill-ultracook' 'skill.md':807 'skills/age/references/voice.md':2026 'skip':1948 'slug':199,211,240,252,261,459,493,507,511,752,794,1198,1208,1277,1284,1410,1454,1560,1640,1791,1840,1955 'small':1789 'smaller':1117 'soften':1985 'source-paulnsorensen' 'spawn':134,166,339,411,466,483,607,614,619,632,743,765,866,1259,1527,1579,1598,1782,1811,1828 'spec':13,192,201,208,247,266 'specialis':979 'specul':2042 'stake':145,530,543,1939 'start':320,362,1675 'status':361,1078,1310,1319,1342,1487 'stay':453,1998 'stdout':1036,1080,1089 'stdout-driven':1088 'step':75,438,1741,1758 'stop':288,370,379,415,477,624,670,754,796,1006,1347,1373,1442,1445,1520,1556,1588,1616,1720,1724,1752,2006 'style':938 'sub':125,168,343,347,574,832,858,871,1033,1065,1073,1107,1219,1230,1461,1466,1481,1784,1820,1826,1872,1900,1959,1969 'sub-ag':167,342,346,573,831,857,870,1032,1064,1072,1106,1218,1229,1460,1465,1480,1783,1819,1825,1871,1899,1958,1968 'sub-agent-transport':124 'subag':973,1129,1916 'success':1059,1721,1965 'suit':907,957 'summari':384,406,421,1716,1726,2033 'suppli':212 'surfac':365,1349,1447,1558,1770,1977 'tabl':471,599,627,1576 'task':16,1121 'tell':300,2008 'tempt':1082 'termin':1573 'test':906,910,929,956 'thin':1779 'third':409 'though':783,1016 'thought':95 'three':612 'tier':1118 'tilth':1860 'tool':879,936,1142,1163,1773,1797,1921 'top':473,1300,1416 'top-to-bottom':472 'topic-agent-skills' 'topic-ai-coding' 'topic-claude-code' 'topic-code-review' 'topic-developer-tools' 'total':424 'track':593 'transport':127 'travel':762 'trigger':456,2001 'two':149,559,605,1377 'two-cure-pass':148,558,1376 'type':974,1130,1159,1917 'ultracook':1,665,1124,1725 'unambigu':15 'up':2051 'use':6,52,98,484,1131,1660,1887,2012 'user':9,57,302,455,1565,1622,2000,2010 'user-trigg':454,1999 'usual':194 'verbatim':1352,1979 'via':921 'visibl':1040 'voic':2022 'wait':351 'walk':469 'want':25,58,78 'whatev':1434 'whether':700 'whey':1241 'whey-drain':1240 'whole':27,60 'whose':200 'window':1275 'wipe':324,1620,1694,2003 'wire':1087 'without':72,256,828,1824 'work':119,1270 'worker':942,1122,1158,1260,1816,1907 'would':835,853,1081,1334,1698 'write':633,750,791,895,924,998,1172,1281,1360,1398,1438,1470,1477,1486,1506,1530,1794 'wrong':1880","prices":[{"id":"f8e2f927-3f3f-4048-9673-2153b4646d77","listingId":"5576ad7b-1a3e-46fd-bae4-df1f0b39942f","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.595Z"}],"sources":[{"listingId":"5576ad7b-1a3e-46fd-bae4-df1f0b39942f","source":"github","sourceId":"paulnsorensen/easy-cheese/ultracook","sourceUrl":"https://github.com/paulnsorensen/easy-cheese/tree/main/skills/ultracook","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:09.595Z","lastSeenAt":"2026-05-18T19:13:41.579Z"}],"details":{"listingId":"5576ad7b-1a3e-46fd-bae4-df1f0b39942f","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"paulnsorensen","slug":"ultracook","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":"3e31b62c9ba9775da97d62da6d06005e70b7f6f7","skill_md_path":"skills/ultracook/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/paulnsorensen/easy-cheese/tree/main/skills/ultracook"},"layout":"multi","source":"github","category":"easy-cheese","frontmatter":{"name":"ultracook","license":"MIT","description":"This skill should be used when the user has an approved spec or unambiguous task with a high-blast-radius footprint and wants the whole pipeline (cook → press → age → cure → age → cure → age, all `--auto`) to run forward in fresh-context isolation per phase — phrases like \"/ultracook .cheese/specs/<slug>.md\", \"ultracook this\", \"run the full pipeline in isolation\", \"fresh-context auto chain\", \"send it through the cave\", \"pipeline with no contamination\". Runs inline and spawns full-peer general-purpose sub-agents (one per phase), each invoking the phase skill with `--auto` and writing its handoff slug under `.cheese/<phase>/<slug>.md`. Sub-agents inherit the parent's model and full tool / MCP / skill access. Use when the user wants `/cook --auto`'s autonomous chain semantics but with each phase reasoning blind to prior phases. After `/mold`; ends after the third age spawn (or earlier on halt / early-stop)."},"skills_sh_url":"https://skills.sh/paulnsorensen/easy-cheese/ultracook"},"updatedAt":"2026-05-18T19:13:41.579Z"}}