{"id":"b7c5205b-e781-490a-b4c0-9a90a8b4cf2c","shortId":"xy7Ww3","kind":"skill","title":"cure","tagline":"This skill should be used when the user has an `/age` report (or any list of review findings, CI failures, or a \"fix these\" instruction) and wants the selected items resolved — phrases like \"fix these findings\", \"/cure <slug>\", \"address the high-stake items\", \"act on the age repo","description":"# /cure\n\nUse this skill after `/age`, failed validation, or user-selected review findings need to be fixed and prepared for shipping.\n\nDo not use it to apply every suggestion automatically. The user chooses what to cure.\n\n## Inputs\n\nAccept any of: a `/age` slug (`/cure <slug>` reads `.cheese/age/<slug>.md`), a pasted findings list, a CI failure summary, or a scoped instruction like \"fix the high-stake age findings\". `/age` may also hand off with a pre-locked selection by passing the chosen ids in a structured handoff context (see `references/selection.md#handoff-from-age` for the canonical format); when that context is present, skip rendering the selection list and go straight to apply.\n\nIf selection is ambiguous *and* not pre-locked from `/age`, render a numbered selection list per `references/selection.md` and ask what to apply. The default selection is empty.\n\nOptional flags:\n\n- `--auto` — autonomous mode (propagated from `/cook --auto`). Bypasses the user-selection step. Must be paired with `--stake <floor>` to set the inclusion threshold; `/cook --auto` always passes `--stake medium+`. See `references/selection.md` for the auto-selection rules and `## Auto mode` below for the pass-cap and revert behaviour.\n- `--stake <floor>` — used only with `--auto`. Accepts `high`, `medium+` (medium or higher), or `all`. Without `--auto` this flag is ignored — interactive selection is the only sanctioned path.\n- `--hard` — propagated metacognitive-gate flag (from `/cook --hard` or `/cheese --hard`). Cure is the *only* pipeline skill that fires the gate: when `--hard` is in scope and the user selects the share-for-review handoff option (the **Open or update the PR** label, which dispatches `/gh`), invoke `/hard-cheese <slug>` first and proceed only on exit `0`. Under `--auto --hard`, see `## --hard mode` and the auto-mode puncture clause below.\n\n## Flow\n\n1. **Load** — read the findings (markdown, not JSON sidecars).\n2. **Select** — if `/age` handed off a structured pre-locked selection, adopt it as-is after re-confirming the cited ids still exist in the report. Otherwise gate on explicit user selection. See `references/selection.md` for the recognized verbs.\n3. **Apply** — fix one logical group at a time via `cheez-read` (re-confirm anchor location) and `cheez-write` (apply).\n4. **Validate** — run the narrowest tests that prove each fix, then any relevant project-wide gates (lint, typecheck, build).\n5. **Re-review hand-off** — recommend `/age --scope <touched-path>` so review runs through the proper skill rather than reimplementing it inline. `/cure` does not re-grade its own work. If the user picks re-age, the resulting report can feed a fresh `/cure` invocation.\n6. **Ship report** — what changed, checks run, deferred items, residual risks. Write the handoff slug at the top of `.cheese/cure/<slug>.md` (see `## Handoff slug` below) so the chain (and `/ultracook`) can read the outcome without re-parsing the full report.\n7. **Hand off** — prompt the next step via the shared handoff gate (see `## Handoff` below). Never dispatch before the user selects; after a non-stop selection, run the selected command immediately.\n\n## Preferred tools and fallbacks\n\nCode search, reading, and editing all go through the cheez-* skills (`/cheez-search`, `/cheez-read`, `/cheez-write`) — see those skills for tool selection rules.\n\nBeyond cheez-* there are cure-specific tools:\n\n| Need | Prefer | Fallback |\n| --- | --- | --- |\n| Understanding findings | `/age` report plus code-review-graph: `get_minimal_context_tool`, `get_review_context_tool` | diff, touched files, tests |\n| CI and PR context | `gh` | local test output or user-provided logs |\n| Diffs | `delta` | plain `git diff` |\n| Conflict resolution | mergiraf | manual resolution with targeted tests |\n\n**Freshness:** before the first code-review-graph query in a run, call `build_or_update_graph_tool` (and `embed_graph_tool` if you'll use `semantic_search_nodes_tool` to find sibling code with the same concept under a different name). See [`/cheez-search`](../cheez-search/SKILL.md#when-code-review-graph-beats-tilth-if-your-harness-has-it) for the full freshness contract and when semantic search beats tilth.\n\nIf a preferred tool is missing, continue with the fallback. If a missing tool prevents safe application, stop and explain the blocker.\n\n## Validation\n\nRun the narrowest tests that prove the fix, then any relevant existing wider gates. If a gate is unavailable, record why. Do not declare ready when selected findings remain unresolved.\n\n## Handoff slug\n\nWrite the cure report to `.cheese/cure/<slug>.md` with a minimum handoff slug at the top so `/ultracook` and `/cheese --continue` can chain without re-parsing the full report:\n\n```markdown\nstatus: ok | halt: <one-line reason>\nnext: age | done\nartifact: <path-if-any>\n<one-line orientation: what cure applied or deferred>\n```\n\n`status: ok` when at least one finding applied cleanly (or no findings met the stake floor in `--auto` mode); `status: halt: <reason>` when every selected fix failed the revert/keep evaluation or a project-wide gate cannot be made green. `next:` is `age` whenever re-review should follow — that is the autonomous-chain default and the standard interactive recommendation. `next:` is `done` only when invoked interactively without `--auto` *and* the user explicitly opts out of re-review. Cure does not track which pass it is on; the two-cure-pass cap is enforced by `/age --auto`'s third invocation, not by cure.\n\n## Output\n\nThe cure report body lives below the handoff slug in the same file at `.cheese/cure/<slug>.md`:\n\n```markdown\n## Cure Report\n\n### Applied\n- <finding>: <fix summary>\n\n### Deferred\n- <finding>: <reason>\n\n### Checks\n- <command>: <pass|fail|skipped with reason>\n\n### Re-review\n- Remaining risk:\n- Suggested next step: `/age --scope <touched-path>` to verify the fixes, or `/gh` to ship.\n```\n\n## Handoff\n\n**Pipeline:** culture → mold → cook → press → age → **[cure]** → ship\n\nAfter the cure report is rendered, ask via the shared handoff gate in [`../../shared/handoff-gate.md`](../../shared/handoff-gate.md). Lead each option with the verb (what the user wants to *do* next); the skill command is the backing detail. Default options:\n\n- **Re-review the touched code** *(recommended when fixes were non-trivial)* — `/age --scope <touched-path>`, runs review through the proper skill. Propagates `--hard` when in scope.\n- **Open or update the PR** — `/gh`. When `--hard` is in scope, this option first dispatches `/hard-cheese <slug>` and proceeds to `/gh` only if the gate exits `0`.\n- **Stop** — dispatch none; sit on the changes for now.\n\nPre-select **Re-review the touched code** when any applied fix touched logic outside the original finding's hunk, when a corrective fix exposed adjacent risk, or when checks were skipped. Pre-select **Open or update the PR** when all selected findings applied cleanly and gates passed. Never dispatch before selection; after a non-stop selection, run the selected command immediately.\n\n## --hard mode\n\n`/cure --hard` is the gate-firing path for the `/hard-cheese` metacognitive vibecheck. The flag propagates up the pipeline (`/cheese → /mold → /cook → /press → /age → /cure`); cure is the only step that actually fires the gate. The contract:\n\n- **Interactive `/cure --hard`:** at the handoff gate, when the user selects the share-for-review option (the **Open or update the PR** label, which dispatches `/gh`), invoke `/hard-cheese <slug>` *before* handing off. Proceed only on exit `0`. If the gate exits non-zero (`FAILED` status — cap exhausted), surface the artifact path and abort the handoff; the user must improve their understanding before sharing for review.\n- **Picking a non-sharing option** (**Re-review the touched code** or **Stop**) does *not* fire the gate. Re-review and pausing do not put code in front of readers.\n- **Auto-mode puncture** — see the clause in `### Auto mode` below. The auto-mode puncture is the single sanctioned point at which `--hard` overrides `--auto`'s skip-handoff semantics.\n\nThe gate's mechanism (SOLO-graded fresh-context judge, Socratic retry, fail-open on judge error) lives in `skills/hard-cheese/SKILL.md`. The full composition matrix lives in `skills/hard-cheese/references/composition.md`.\n\n### Auto mode\n\nWhen invoked with `--auto --stake <floor>`:\n\n- Skip the selection-list rendering and the handoff gate.\n- Auto-select every finding whose stake meets the floor (`high` only, `medium+` for medium or higher, or `all`).\n- Apply findings one at a time. After each fix, run the narrowest test that proves it. If the fix breaks a previously-passing test or any project-wide gate, revert that single finding's edit and record it under `### Deferred` in the cure report with the test name and the failure summary. Continue with the remaining findings.\n- After all selected findings are processed, skip the handoff gate and invoke `/age --scope <touched-paths> --auto` so the chain can re-review.\n- `/age --auto` enforces the two-pass cap. Cure does not need to track passes itself — it just keeps applying when invoked.\n- Never invoke `/gh` from auto mode. The chain ends with the final age report and the user opens a PR manually if they want.\n\n**`--auto --hard` puncture clause.** When `--hard` is also in scope, the chain pauses *once*, at the natural terminal point: after cure invokes `/age --auto` and the returned age slug shows `next: done` (chain-clean *or* two-cure-pass cap reached), invoke `/hard-cheese <slug>` *before returning to the caller*. This is the only sanctioned puncture of `--auto`'s skip-handoff semantics. Concretely:\n\n- The trigger is **age's `next: done`** read from the age slug cure just invoked, not cure's own slug-writing step. Cure cannot tell on its own which pass is final (the cap is enforced inside `/age --auto`, the chain-clean signal is also issued by age) — reading age's handoff is the only honest signal.\n- The puncture fires from the cure frame whose age-child returned `next: done`. That is cure pass 1 if findings cleared early, cure pass 2 if the cap is reached. Never between passes — punching the gate into every cure call would defeat its signal.\n- On `PASS`: chain exits with `\"gate passed → ready to share for review\"`.\n- On `FAILED`: chain exits non-zero with the artifact path.\n- On `ERROR`: chain exits `0` with a warning (the fail-open divergence documented in `skills/hard-cheese/SKILL.md`).\n- A non-TTY environment aborts with `\"--hard requires an interactive TTY; remove --hard or run interactively\"` — the puncture requires a human in the loop.\n\nIf no findings meet the stake floor, write an empty cure report with `### Applied: (none — no findings at or above <floor>)` and skip straight to the auto handoff with a one-line \"auto chain clean\" note.\n\n### When invoked from /ultracook\n\n`/ultracook` spawns cure as a fresh-context sub-agent and owns the chain itself. When the spawn prompt explicitly says \"for THIS PHASE ONLY\" and \"do not chain forward to the next phase,\" honour the override: apply the auto-selected findings, write `.cheese/cure/<slug>.md` (with the handoff slug at the top, `next: age`), and stop. Do not invoke `/age --scope <touched-paths> --auto` from inside the sub-agent. The orchestrator reads the cure slug and spawns the next age itself.\n\n## Rules\n\n- Nothing applies without explicit selection or approval. The only sanctioned bypass is `--auto --stake <floor>`, which substitutes a stake-based auto-selection for the user's selection and is meant for `/cook --auto` chains, not interactive use.\n- Keep fixes scoped to selected (or auto-selected) findings.\n- Do not hide failed or skipped checks. In auto mode, reverted findings go under `### Deferred`, never silently dropped.\n- Prefer PR-ready output, but do not open a PR unless the user asks. Auto mode never opens a PR.\n- If a selected finding rests on a false premise (the `/age` claim is wrong, or the diff already addresses it), stop and surface the premise before applying. Disagreeing with the report is allowed; silently working around it is not.\n- Apply the shared voice kernel (lives at `skills/age/references/voice.md` in this repo): lead the cure report with what was applied, flag residual risk as `certain | speculating | don't know`, agree when the diff is fine without manufacturing follow-ups.","tags":["cure","easy","cheese","paulnsorensen","agent-skills","ai-coding","claude-code","code-review","developer-tools"],"capabilities":["skill","source-paulnsorensen","skill-cure","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/cure","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 (12,346 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:40.984Z","embedding":null,"createdAt":"2026-05-18T13:21:08.872Z","updatedAt":"2026-05-18T19:13:40.984Z","lastSeenAt":"2026-05-18T19:13:40.984Z","tsv":"'/../shared/handoff-gate.md':970,971 '/age':12,55,92,118,174,353,442,592,894,938,1007,1145,1424,1434,1502,1581,1812,1931 '/cheese':279,778,1141 '/cheez-read':570 '/cheez-search':569,680 '/cheez-search/skill.md':681 '/cheez-write':571 '/cook':199,217,276,1143,1866 '/cure':38,50,94,456,479,1122,1146,1160 '/gh':316,945,1025,1039,1185,1458 '/hard-cheese':318,1035,1132,1187,1523 '/mold':1142 '/press':1144 '/ultracook':510,776,1750,1751 '0':325,1045,1195,1674 '1':341,1620 '2':350,1627 '3':391 '4':414 '5':434 '6':481 '7':522 'abort':1212,1691 'accept':88,248 'act':45 'actual':1153 'address':39,1939 'adjac':1081 'adopt':362 'age':48,116,144,471,794,838,954,1468,1507,1546,1553,1592,1594,1611,1806,1831 'age-child':1610 'agent':1761,1820 'agre':1988 'allow':1953 'alreadi':1938 'also':120,1487,1589 'alway':219 'ambigu':167 'anchor':407 'appli':77,163,186,392,413,804,922,1066,1100,1353,1453,1724,1789,1835,1947,1960,1978 'applic':721 'approv':1840 'around':1956 'artifact':796,1209,1668 'as-i':364 'ask':183,963,1914 'auto':194,200,218,228,232,247,257,327,335,814,865,895,1258,1265,1270,1282,1317,1322,1335,1426,1435,1460,1480,1503,1536,1582,1736,1743,1792,1814,1846,1855,1867,1879,1890,1915 'auto-mod':334,1257,1269 'auto-select':227,1334,1791,1854,1878 'automat':80 'autonom':195,849 'autonomous-chain':848 'back':990 'base':1853 'beat':687,703 'behaviour':242 'beyond':579 'blocker':726 'bodi':906 'break':1372 'build':433,650 'bypass':201,1844 'call':649,1642 'caller':1528 'cannot':832,1567 'canon':147 'cap':239,890,1205,1441,1520,1577,1630 'certain':1983 'chain':508,781,850,1429,1463,1491,1513,1585,1649,1661,1672,1744,1765,1780,1868 'chain-clean':1512,1584 'chang':485,1052 'check':486,924,1085,1888 'cheese/age':96 'cheese/cure':500,765,917,1796 'cheez':402,411,567,580 'cheez-read':401 'cheez-writ':410 'child':1612 'choos':83 'chosen':132 'ci':20,103,611 'cite':372 'claim':1932 'claus':338,1263,1483 'clean':805,1101,1514,1586,1745 'clear':1623 'code':558,596,642,670,684,999,1063,1236,1252 'code-review-graph':595,641 'command':552,987,1118 'composit':1312 'concept':674 'concret':1542 'confirm':370,406 'conflict':629 'context':138,151,601,605,614,1297,1758 'continu':711,779,1407 'contract':698,1158 'cook':952 'correct':1078 'cultur':950 'cure':1,86,281,584,762,876,888,901,904,920,955,959,1147,1397,1442,1500,1518,1555,1559,1566,1607,1618,1625,1641,1721,1753,1825,1973 'cure-specif':583 'declar':751 'default':188,851,992 'defeat':1644 'defer':488,923,1394,1896 'delta':625 'detail':991 'diff':607,624,628,1937,1991 'differ':677 'disagre':1948 'dispatch':315,538,1034,1047,1106,1184 'diverg':1682 'document':1683 'done':795,859,1511,1549,1615 'drop':1899 'earli':1624 'edit':562,1389 'emb':656 'empti':191,1720 'end':1464 'enforc':892,1436,1579 'environ':1690 'error':1306,1671 'evalu':825 'everi':78,819,1337,1640 'exhaust':1206 'exist':375,739 'exit':324,1044,1194,1199,1650,1662,1673 'explain':724 'explicit':382,869,1771,1837 'expos':1080 'fail':56,822,926,1203,1302,1660,1680,1885 'fail-open':1301,1679 'failur':21,104,1405 'fallback':557,589,714 'fals':1928 'feed':476 'file':609,915 'final':1467,1575 'find':19,37,63,100,117,345,591,668,755,803,808,1073,1099,1338,1354,1387,1411,1415,1622,1713,1727,1794,1881,1893,1924 'fine':1993 'fire':288,1128,1154,1241,1604 'first':319,640,1033 'fix':24,35,67,111,393,423,735,821,943,1002,1067,1079,1361,1371,1873 'flag':193,259,274,1136,1979 'floor':812,1343,1717 'flow':340 'follow':844,1997 'follow-up':1996 'format':148 'forward':1781 'frame':1608 'fresh':478,637,697,1296,1757 'fresh-context':1295,1756 'front':1254 'full':520,696,787,1311 'gate':273,290,380,430,533,741,744,831,968,1043,1103,1127,1156,1165,1198,1243,1289,1333,1383,1421,1638,1652 'gate-fir':1126 'get':599,603 'gh':615 'git':627 'go':160,564,1894 'grade':461,1294 'graph':598,644,653,657,686 'green':835 'group':396 'halt':792,817 'hand':121,354,439,523,1189 'hand-off':438 'handoff':137,142,305,494,503,532,535,758,770,910,948,967,1164,1214,1286,1332,1420,1540,1596,1737,1800 'handoff-from-ag':141 'har':691 'hard':269,277,280,292,328,330,1016,1027,1120,1123,1161,1280,1481,1485,1693,1699 'hide':1884 'high':42,114,249,1344 'high-stak':41,113 'higher':253,1350 'honest':1600 'honour':1786 'human':1707 'hunk':1075 'id':133,373 'ignor':261 'immedi':553,1119 'improv':1218 'inclus':215 'inlin':455 'input':87 'insid':1580,1816 'instruct':26,109 'interact':262,855,863,1159,1696,1702,1870 'invoc':480,898 'invok':317,862,1186,1320,1423,1455,1457,1501,1522,1557,1748,1811 'issu':1590 'item':31,44,489 'json':348 'judg':1298,1305 'keep':1452,1872 'kernel':1964 'know':1987 'label':313,1182 'lead':972,1971 'least':801 'like':34,110 'line':1742 'lint':431 'list':16,101,158,179,1328 'live':907,1307,1314,1965 'll':661 'load':342 'local':616 'locat':408 'lock':127,172,360 'log':623 'logic':395,1069 'loop':1710 'made':834 'manual':632,1476 'manufactur':1995 'markdown':346,789,919 'matrix':1313 'may':119 'md':97,501,766,918,1797 'meant':1864 'mechan':1291 'medium':222,250,251,1346,1348 'meet':1341,1714 'mergiraf':631 'met':809 'metacognit':272,1133 'metacognitive-g':271 'minim':600 'minimum':769 'miss':710,717 'mode':196,233,331,336,815,1121,1259,1266,1271,1318,1461,1891,1916 'mold':951 'must':207,1217 'name':678,1402 'narrowest':418,730,1364 'natur':1496 'need':64,587,1445 'never':537,1105,1456,1633,1897,1917 'next':527,793,836,857,936,984,1510,1548,1614,1784,1805,1830 'node':665 'non':546,1005,1112,1201,1228,1664,1688 'non-shar':1227 'non-stop':545,1111 'non-trivi':1004 'non-tti':1687 'non-zero':1200,1663 'none':1048,1725 'note':1746 'noth':1834 'number':177 'ok':791,798 'one':394,802,1355,1741 'one-lin':1740 'open':308,1020,1091,1177,1303,1473,1681,1908,1918 'opt':870 'option':192,306,974,993,1032,1175,1230 'orchestr':1822 'origin':1072 'otherwis':379 'outcom':514 'output':618,902,1904 'outsid':1070 'overrid':1281,1788 'own':1763 'pair':209 'pars':518,785 'pass':130,220,238,881,889,925,1104,1376,1440,1448,1519,1573,1619,1626,1635,1648,1653 'pass-cap':237 'past':99 'path':268,1129,1210,1669 'paus':1248,1492 'per':180 'phase':1775,1785 'phrase':33 'pick':468,1225 'pipelin':285,949,1140 'plain':626 'plus':594 'point':1277,1498 'pr':312,613,1024,1095,1181,1475,1902,1910,1920 'pr-readi':1901 'pre':126,171,359,1056,1089 'pre-lock':125,170,358 'pre-select':1055,1088 'prefer':554,588,707,1900 'premis':1929,1945 'prepar':69 'present':153 'press':953 'prevent':719 'previous':1375 'previously-pass':1374 'proceed':321,1037,1191 'process':1417 'project':428,829,1381 'project-wid':427,828,1380 'prompt':525,1770 'propag':197,270,1015,1137 'proper':449,1013 'prove':421,733,1367 'provid':622 'punch':1636 'punctur':337,1260,1272,1482,1534,1603,1704 'put':1251 'queri':645 'rather':451 're':369,405,436,460,470,517,784,841,874,931,995,1059,1232,1245,1432 're-ag':469 're-confirm':368,404 're-grad':459 're-pars':516,783 're-review':435,840,873,930,994,1058,1231,1244,1431 'reach':1521,1632 'read':95,343,403,512,560,1550,1593,1823 'reader':1256 'readi':752,1654,1903 'reason':929 'recogn':389 'recommend':441,856,1000 'record':747,1391 'references/selection.md':140,181,224,386 'reimplement':453 'relev':426,738 'remain':756,933,1410 'remov':1698 'render':155,175,962,1329 'repo':49,1970 'report':13,378,474,483,521,593,763,788,905,921,960,1398,1469,1722,1951,1974 'requir':1694,1705 'residu':490,1980 'resolut':630,633 'resolv':32 'rest':1925 'result':473 'retri':1300 'return':1506,1525,1613 'revert':241,1384,1892 'revert/keep':824 'review':18,62,304,437,445,597,604,643,685,842,875,932,996,1010,1060,1174,1224,1233,1246,1433,1658 'risk':491,934,1082,1981 'rule':230,578,1833 'run':416,446,487,549,648,728,1009,1115,1362,1701 'safe':720 'sanction':267,1276,1533,1843 'say':1772 'scope':108,295,443,939,1008,1019,1030,1425,1489,1813,1874 'search':559,664,702 'see':139,223,329,385,502,534,572,679,1261 'select':30,61,128,157,165,178,189,205,229,263,299,351,361,384,542,548,551,577,754,820,1057,1090,1098,1108,1114,1117,1169,1327,1336,1414,1793,1838,1856,1861,1876,1880,1923 'selection-list':1326 'semant':663,701,1287,1541 'set':213 'share':302,531,966,1172,1222,1229,1656,1962 'share-for-review':301,1171 'ship':71,482,947,956 'show':1509 'sibl':669 'sidecar':349 'signal':1587,1601,1646 'silent':1898,1954 'singl':1275,1386 'sit':1049 'skill':3,53,286,450,568,574,986,1014 'skill-cure' 'skills/age/references/voice.md':1967 'skills/hard-cheese/references/composition.md':1316 'skills/hard-cheese/skill.md':1309,1685 'skip':154,927,1087,1285,1324,1418,1539,1732,1887 'skip-handoff':1284,1538 'slug':93,495,504,759,771,911,1508,1554,1563,1801,1826 'slug-writ':1562 'socrat':1299 'solo':1293 'solo-grad':1292 'source-paulnsorensen' 'spawn':1752,1769,1828 'specif':585 'specul':1984 'stake':43,115,211,221,243,811,1323,1340,1716,1847,1852 'stake-bas':1851 'standard':854 'status':790,797,816,1204 'step':206,528,937,1151,1565 'still':374 'stop':547,722,1046,1113,1238,1808,1941 'straight':161,1733 'structur':136,357 'sub':1760,1819 'sub-ag':1759,1818 'substitut':1849 'suggest':79,935 'summari':105,1406 'surfac':1207,1943 'target':635 'tell':1568 'termin':1497 'test':419,610,617,636,731,1365,1377,1401 'third':897 'threshold':216 'tilth':688,704 'time':399,1358 'tool':555,576,586,602,606,654,658,666,708,718 'top':498,774,1804 'topic-agent-skills' 'topic-ai-coding' 'topic-claude-code' 'topic-code-review' 'topic-developer-tools' 'touch':608,998,1062,1068,1235 'track':879,1447 'trigger':1544 'trivial':1006 'tti':1689,1697 'two':887,1439,1517 'two-cure-pass':886,1516 'two-pass':1438 'typecheck':432 'unavail':746 'understand':590,1220 'unless':1911 'unresolv':757 'up':1998 'updat':310,652,1022,1093,1179 'use':6,51,74,244,662,1871 'user':9,60,82,204,298,383,467,541,621,868,980,1168,1216,1472,1859,1913 'user-provid':620 'user-select':59,203 'valid':57,415,727 'verb':390,977 'verifi':941 'via':400,529,964 'vibecheck':1134 'voic':1963 'want':28,981,1479 'warn':1677 'when-code-review-graph-beats-tilth-if-your-harness-has-it':682 'whenev':839 'whose':1339,1609 'wide':429,830,1382 'wider':740 'without':256,515,782,864,1836,1994 'work':464,1955 'would':1643 'write':412,492,760,1564,1718,1795 'wrong':1934 'zero':1202,1665","prices":[{"id":"61a1bc62-dac1-4c48-a330-0253269ecb50","listingId":"b7c5205b-e781-490a-b4c0-9a90a8b4cf2c","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:08.872Z"}],"sources":[{"listingId":"b7c5205b-e781-490a-b4c0-9a90a8b4cf2c","source":"github","sourceId":"paulnsorensen/easy-cheese/cure","sourceUrl":"https://github.com/paulnsorensen/easy-cheese/tree/main/skills/cure","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:08.872Z","lastSeenAt":"2026-05-18T19:13:40.984Z"}],"details":{"listingId":"b7c5205b-e781-490a-b4c0-9a90a8b4cf2c","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"paulnsorensen","slug":"cure","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":"685a3201273ef4ecbcdd8fd3ce3166209f97484a","skill_md_path":"skills/cure/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/paulnsorensen/easy-cheese/tree/main/skills/cure"},"layout":"multi","source":"github","category":"easy-cheese","frontmatter":{"name":"cure","license":"MIT","description":"This skill should be used when the user has an `/age` report (or any list of review findings, CI failures, or a \"fix these\" instruction) and wants the selected items resolved — phrases like \"fix these findings\", \"/cure <slug>\", \"address the high-stake items\", \"act on the age report\", \"fix the failing CI\", \"apply the cleanup\". Loads the report, gates on explicit user selection, applies focused fixes via cheez-write, runs the project's existing test/lint/build gates, and produces a shipping-ready summary. Supports `--auto --stake <floor>` (propagated from `/cook --auto`) for the autonomous chain (see `## Auto mode`). Use even when the user just says \"fix it\" if a review report or finding list is in scope. Default selection is empty — never apply everything implicitly. After `/age`; loops back to `/age --scope <touched-path>` for re-review or hands off to `/gh` to ship."},"skills_sh_url":"https://skills.sh/paulnsorensen/easy-cheese/cure"},"updatedAt":"2026-05-18T19:13:40.984Z"}}