{"id":"163b7aab-f8ba-4cf8-9384-844fae39313e","shortId":"cxTrDu","kind":"skill","title":"immune","tagline":"Hybrid adaptive memory system for Claude Code — Cheatsheet (positive patterns) + Immune (negative patterns)","description":"# Immune System v4 — Hybrid Cheatsheet + Immune\r\n\r\nYou operate a hybrid adaptive system with two complementary memories:\r\n- **Cheatsheet** (positive patterns): domain-specific strategies injected BEFORE generation to improve output quality\r\n- **Immune** (negative patterns): antibodies that detect known errors and discover new threats AFTER generation\r\n\r\nBoth memories use Hot/Cold tiering to keep context lean.\r\nAll data access goes through the **adapter CLI** (`node ~/.claude/skills/immune/immune-adapter.js`).\r\n\r\n## Input Parsing\r\n\r\nThe user invokes with content to scan. Parse these parameters:\r\n\r\n- **input**: The text/code/content to scan (required — either inline or from context)\r\n- **domain**: One of: fitness, code, writing, research, strategy, webdesign, _global (default: auto-detect)\r\n- **domains**: Array of domains (overrides single domain). Example: `domains=fitness,code`\r\n- **constraints**: Any specific requirements the output should satisfy (optional)\r\n- **mode**: `full` (cheatsheet + scan, default) | `scan-only` (skip cheatsheet) | `cheatsheet-only` (return cheatsheet, no scan)\r\n\r\n<examples>\r\n<example>\r\n/immune Check this function for common pitfalls\r\n→ domains=[\"code\"] (auto-detected), mode=full\r\n</example>\r\n<example>\r\n/immune domain=fitness Vérifie ce programme de musculation\r\n→ domains=[\"fitness\"] (explicit)\r\n</example>\r\n<example>\r\n/immune domains=fitness,code Check this workout generator API\r\n→ domains=[\"fitness\", \"code\"] (multi-domain)\r\n</example>\r\n<example>\r\n/immune\r\n→ scans the most recent output in the conversation\r\n</example>\r\n</examples>\r\n\r\nIf no inline text is provided, scan the last substantive output in the conversation.\r\n\r\n**Domain auto-detection:** Read `~/.claude/skills/immune/config.yaml` and match content against `domain_keywords`. If no strong match, use `[\"_global\"]`. If single `domain` string provided, wrap in array: `domains = [domain]`.\r\n\r\n## Execution\r\n\r\n### Step -1 — Context Search (past session awareness)\r\n\r\nSearch for relevant past sessions to inform the current scan:\r\n\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js get-context --query \"{task keywords or domain}\" --days 90 --limit 5\r\n```\r\n\r\nIf results are found, note recurring patterns or past issues for the domain. This enriches the scan with historical awareness — the scanner will know if similar content was flagged before.\r\n\r\nLog: `[IMMUNE] Context: {count} relevant past sessions found`\r\n\r\n### Step 0 — Cheatsheet Injection (positive patterns)\r\n\r\nSkip this step if `mode == \"scan-only\"`.\r\n\r\n**0a. Load HOT strategies via adapter:**\r\n\r\nRun:\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js get-strategies --domains '{domains_json}' --tier hot --limit 15\r\n```\r\nParse the JSON output. The adapter returns strategies pre-filtered by domain, classified as HOT, sorted by effectiveness descending, and capped at 15.\r\n\r\n**0b. Load COLD strategies summary:**\r\n\r\nRun:\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js get-strategies --domains '{domains_json}' --tier cold\r\n```\r\nExtract a short keyword from each COLD strategy's `pattern` field. Join as comma-separated list.\r\n\r\n**0c. Build cheatsheet block:**\r\nFormat HOT strategies as XML:\r\n```xml\r\n<cheatsheet domain=\"{domains}\">\r\n  <strategy id=\"{id}\" effectiveness=\"{effectiveness}\">\r\n    {pattern}\r\n    Example: {example}\r\n  </strategy>\r\n  ...\r\n</cheatsheet>\r\n```\r\n\r\nIf there are COLD strategies, add a one-liner:\r\n```xml\r\n<cheatsheet_cold>Also consider: {comma-separated COLD pattern keywords}</cheatsheet_cold>\r\n```\r\n\r\nIf `mode == \"cheatsheet-only\"`, output the cheatsheet block and stop here.\r\n\r\nLog:\r\n```\r\n[IMMUNE] Cheatsheet: {n_hot} HOT + {n_cold} COLD strategies (domains: {domains})\r\n```\r\n\r\n**0d. Present cheatsheet to user:**\r\nIf running standalone (`/immune`), show the cheatsheet as context the user should apply to their next generation. If called by Chimera, return the XML block for injection into PRISM prompts.\r\n\r\n### Step 1 — Load & Classify Antibodies (Hot/Cold)\r\n\r\n**1a. Load HOT antibodies via adapter:**\r\n\r\nRun:\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js get-antibodies --domains '{domains_json}' --tier hot --limit 15\r\n```\r\nThe adapter returns antibodies pre-filtered by domain, classified as HOT (severity=critical OR seen_count>=3 OR last_seen<30d), sorted by severity then seen_count, capped at 15.\r\n\r\n**1b. Load COLD antibodies summary:**\r\n\r\nRun:\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js get-antibodies --domains '{domains_json}' --tier cold\r\n```\r\nFor each COLD antibody, extract a short keyword from its `pattern` field.\r\nJoin as comma-separated list.\r\n\r\nLog:\r\n```\r\n[IMMUNE] Tier split: {n_hot} HOT + {n_cold} COLD / {n_hot + n_cold} total (domains: {domains})\r\n```\r\n\r\n### Step 2 — Scan\r\n\r\nSpawn the `immune-scan` agent (Haiku) with the following XML-structured prompt:\r\n\r\n```xml\r\n<scan_request>\r\n  <domains>{detected_domains as JSON array}</domains>\r\n  <task>{task description or \"Scan the following content for errors and threats\"}</task>\r\n  <constraints>{constraints or \"none\"}</constraints>\r\n\r\n  <content>\r\n{the input text/code/content to scan}\r\n  </content>\r\n\r\n  <hot_antibodies>\r\n{JSON array of HOT antibodies — full objects with id, domains, pattern, severity, correction}\r\n  </hot_antibodies>\r\n\r\n  <cold_summary>\r\nDormant patterns (not detailed, for awareness only): {comma-separated COLD keywords}\r\n  </cold_summary>\r\n\r\n  <cheatsheet_applied>\r\n{list of strategy IDs and patterns that were injected in Step 0, or \"none\" if scan-only mode}\r\n  </cheatsheet_applied>\r\n</scan_request>\r\n```\r\n\r\nLog: `[IMMUNE] Scanning... ({n_hot} active antibodies)`\r\nWait for result.\r\n\r\nIf corrections applied:\r\n  Log: `[IMMUNE] Match {antibody_id}: {original} → {corrected}`\r\nIf new threats detected:\r\n  Log: `[IMMUNE] New threat: {pattern}`\r\nIf new strategies detected:\r\n  Log: `[IMMUNE] New strategy: {pattern}`\r\n\r\n### Step 3 — Update Immune Memory (with COLD deduplication)\r\n\r\n**3a. Matched HOT antibodies:**\r\nFor each antibody matched by the scanner, update via adapter:\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js update-antibody --id {antibody_id} --increment_seen true --last_seen {today}\r\n```\r\n\r\n**3b. New threats — deduplicate via similarity scoring:**\r\nFor each new threat in `new_threats_detected`:\r\n\r\n1. Check for duplicate using multi-criteria similarity (Jaccard + substring + domain):\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js check-duplicate --pattern \"{pattern}\" --domains '{domains_json}' --type antibody\r\n```\r\nReturns `{ duplicate: true/false, best_match: { id, score, pattern }, threshold: 0.7 }`\r\n\r\n2. **If duplicate is true** (score >= 0.7, same domain + similar pattern) → REACTIVATE:\r\n   - Update the matched antibody: `update-antibody --id {matched_id} --increment_seen true --last_seen {today}`\r\n   - Log: `[IMMUNE] Reactivated COLD antibody {id}: {pattern}`\r\n   - Do NOT create a new antibody (prevents duplicates)\r\n3. **If no match** AND `auto_add_threats` is true → CREATE new antibody:\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js add-antibody --json '{\"id\":\"AB-{next_number}\",\"domains\":{domains},\"pattern\":\"{pattern}\",\"severity\":\"{severity}\",\"correction\":\"{correction}\",\"seen_count\":1,\"first_seen\":\"{today}\",\"last_seen\":\"{today}\"}'\r\n```\r\n   - Log: `[IMMUNE] + New antibody {id}: {pattern}`\r\n\r\n**3c. Get updated stats:**\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js stats\r\n```\r\n\r\nLog: `[IMMUNE] Memory: {total} antibodies ({n_hot} hot, {n_cold} cold) | +{new} added | Reactivated: {reactivated}`\r\n\r\n### Step 3b — Update Cheatsheet Memory (positive patterns)\r\n\r\nSkip if `mode == \"scan-only\"` or no `new_strategies_detected` in scan result.\r\n\r\n**3b-i. Deduplicate via similarity scoring:**\r\nFor each new strategy in `new_strategies_detected`:\r\n1. Check for duplicate using multi-criteria similarity:\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js check-duplicate --pattern \"{pattern}\" --domains '{domains_json}' --type strategy\r\n```\r\n2. **If duplicate is true** (score >= 0.7, overlapping domains + similar pattern) → REINFORCE:\r\n   - Calculate new effectiveness: `new_eff = old_eff * 0.8 + reported_eff * 0.2` (exponential moving average)\r\n   - Update: `update-strategy --id {matched_id} --increment_seen true --last_seen {today} --effectiveness {new_eff}`\r\n   - Log: `[IMMUNE] Reinforced strategy {id}: {pattern} (eff: {old}→{new})`\r\n3. **If no match** AND `auto_add_strategies` is true → CREATE new strategy:\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js add-strategy --json '{\"id\":\"{prefix}-{next_number}\",\"domains\":{domains},\"pattern\":\"{pattern}\",\"example\":\"{example}\",\"effectiveness\":{eff},\"seen_count\":1,\"first_seen\":\"{today}\",\"last_seen\":\"{today}\"}'\r\n```\r\n   - Log: `[IMMUNE] + New strategy {id}: {pattern}`\r\n\r\n**3b-ii. Prune low-effectiveness:**\r\nIf any strategy has `effectiveness < 0.2` AND `seen_count >= 5`, note it for manual review.\r\n\r\nLog: `[IMMUNE] Cheatsheet: {total} strategies | +{new} added | Reinforced: {reinforced}`\r\n\r\n### Step 4 — Score\r\n\r\nCalculate the universal score via adapter:\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js score --domains '{domains_json}' --severities '[{\"severity\":\"critical\",\"count\":N},{\"severity\":\"warning\",\"count\":N},{\"severity\":\"info\",\"count\":N}]'\r\n```\r\n\r\nThe adapter returns: `score` (0-100), `pass` (boolean), `z` (z-score vs domain baseline), `baseline` (mean, std, threshold, n), `deductions`.\r\n\r\n### Step 5 — Output\r\n\r\n**If clean:**\r\n```\r\n───\r\nIMMUNE v4 | domains={domains} | Score: {score}/100 ({PASS|FAIL}) | z={z}\r\n   Baseline ({domain}): mean={mean} std={std} threshold={threshold}\r\n   Cheatsheet: {n_strategies} strategies applied | Antibodies: {n_hot}/{max} HOT, {n_cold} COLD\r\n   No issues detected\r\n───\r\n```\r\n\r\n**If corrections or threats found:**\r\n```\r\n───\r\nIMMUNE v4 | domains={domains} | Score: {score}/100 ({PASS|FAIL}) | z={z}\r\n   Baseline ({domain}): mean={mean} std={std} threshold={threshold}\r\n\r\nCorrections Applied:\r\n  [AB-XXX] {pattern} → {correction}\r\n\r\nNew Threats Detected:\r\n  [{severity}] {pattern} — {suggested_correction}\r\n\r\nReactivated:\r\n  [AB-XXX] {pattern} (was COLD, now HOT)\r\n\r\nNew Strategies Learned:\r\n  [CS-XXX] {pattern} (eff: {effectiveness})\r\n\r\n───\r\nCorrected Output:\r\n{the corrected content, formatted for the domain}\r\n───\r\nMemory: {total_ab} antibodies + {total_cs} strategies | +{new_ab} AB | +{new_cs} CS\r\n───\r\n```\r\n\r\nThen present the corrected output in a human-readable format appropriate to the domain.\r\n\r\n### Step 6 — Session Log\r\n\r\nLog the session result for future context:\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js log-session --date {today} --domains '{domains_json}' --result {clean|corrected|flagged} --summary \"{brief summary of what was scanned and found}\" --score {score}\r\n```\r\n\r\nThis writes to `context/YYYY-MM-DD.md` + SQLite session_logs + FTS4 index for future `get-context` searches.\r\n\r\n### Step 7 — Flush Pre-Compaction (optional)\r\n\r\nIf the conversation context is approaching compaction, save any pending antibodies/strategies that haven't been committed yet:\r\n```bash\r\nnode ~/.claude/skills/immune/immune-adapter.js flush-pending --json '{\"antibodies\":[...],\"strategies\":[...]}'\r\n```\r\n\r\nQuality gate validation:\r\n- Pattern must be >= 20 characters\r\n- Antibodies require: id, pattern, severity, correction\r\n- Strategies require: id, pattern\r\n- FTS4 duplicate check prevents re-creating existing patterns\r\n- Flushed records are flagged with `quality_gate=1`\r\n\r\nLog: `[IMMUNE] Pre-compaction flush: +{n} antibodies, +{n} strategies (quality_gate=true)`\r\n\r\n## Error Handling\r\n\r\n- If adapter CLI fails: fall back to reading JSON files directly (`immune_memory.json`, `cheatsheet_memory.json`) — they are kept in sync via dual-write.\r\n- If `immune_memory.json` does not exist: adapter auto-creates it with empty antibodies.\r\n- If `cheatsheet_memory.json` does not exist: adapter auto-creates it with empty strategies.\r\n- If `immune_memory.json` has `\"version\": 2`: adapter auto-migrates `\"domain\"` to `\"domains\": [\"domain_value\"]`.\r\n- If the agent returns invalid JSON: retry once. If still invalid, report the raw output with a warning.\r\n- If no input is provided and no recent output exists: ask the user what to scan.\r\n- If all antibodies are COLD (none qualify as HOT): still send the scan with empty `hot_antibodies` array and full `cold_summary`. Haiku can still detect new threats via Phase 2.","tags":["immune","contactjccoaching-wq","adaptive-memory","agent-skills","automated-code-review","claude-code","claude-code-skills","code-quality","error-detection","learning-system","llm-optimization","prompt-engineering"],"capabilities":["skill","source-contactjccoaching-wq","skill-immune","topic-adaptive-memory","topic-agent-skills","topic-automated-code-review","topic-claude-code","topic-claude-code-skills","topic-code-quality","topic-error-detection","topic-learning-system","topic-llm-optimization","topic-prompt-engineering"],"categories":["immune"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/contactjccoaching-wq/immune","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add contactjccoaching-wq/immune","source_repo":"https://github.com/contactjccoaching-wq/immune","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 10 github stars · SKILL.md body (12,385 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-04-24T07:03:29.565Z","embedding":null,"createdAt":"2026-04-23T13:04:09.802Z","updatedAt":"2026-04-24T07:03:29.565Z","lastSeenAt":"2026-04-24T07:03:29.565Z","tsv":"'-1':245 '-100':1151 '/.claude/skills/immune/config.yaml':220 '/.claude/skills/immune/immune-adapter.js':77,263,337,380,512,562,754,796,875,913,977,1054,1128,1313,1378 '/100':1178,1218 '/immune':152,166,177,192,470 '0':315,684,1150 '0.2':1010,1098 '0.7':816,823,994 '0.8':1007 '0a':328 '0b':372 '0c':406 '0d':462 '1':498,782,894,966,1073,1419 '15':347,371,522,553 '1a':503 '1b':554 '2':607,817,988,1487,1561 '20':1391 '3':540,731,860,1039 '30d':544 '3a':738 '3b':767,931,952,1087 '3b-i':951 '3b-ii':1086 '3c':907 '4':1118 '5':275,1102,1168 '6':1301 '7':1353 '90':273 'ab':881,1234,1247,1274,1280,1281 'ab-xxx':1233,1246 'access':70 'activ':697 'ad':927,1114 'adapt':3,25,74,333,353,508,524,751,1125,1147,1436,1462,1475,1488 'add':424,866,877,1045,1056 'add-antibodi':876 'add-strategi':1055 'agent':614,1499 'also':430 'antibodi':48,501,506,515,526,557,565,574,652,698,708,741,744,757,759,806,832,835,849,857,872,878,904,919,1196,1275,1383,1393,1427,1469,1533,1547 'antibodies/strategies':1369 'api':185 'appli':479,704,1195,1232 'approach':1364 'appropri':1296 'array':116,240,628,649,1548 'ask':1525 'auto':113,162,217,865,1044,1464,1477,1490 'auto-cr':1463,1476 'auto-detect':112,161,216 'auto-migr':1489 'averag':1013 'awar':250,295,666 'back':1440 'baselin':1160,1161,1183,1223 'bash':261,335,378,510,560,752,794,873,911,975,1052,1126,1311,1376 'best':810 'block':409,446,491 'boolean':1153 'brief':1327 'build':407 'calcul':1000,1120 'call':485 'cap':369,551 'ce':170 'charact':1392 'cheatsheet':9,19,31,137,144,146,149,316,408,441,445,452,464,473,933,1110,1191 'cheatsheet-on':145,440 'cheatsheet_memory.json':1447,1471 'check':153,181,783,798,967,979,1405 'check-dupl':797,978 'chimera':487 'classifi':361,500,532 'claud':7 'clean':1171,1323 'cli':75,1437 'code':8,105,125,160,180,188 'cold':374,388,395,422,435,457,458,556,570,573,597,598,602,671,736,848,924,925,1202,1203,1251,1535,1551 'comma':403,433,586,669 'comma-separ':402,432,585,668 'commit':1374 'common':157 'compact':1357,1365,1424 'complementari':29 'consid':431 'constraint':126,640 'content':84,223,302,635,1267 'context':66,100,246,266,308,475,1310,1350,1362 'context/yyyy-mm-dd.md':1340 'convers':200,214,1361 'correct':660,703,711,890,891,1208,1231,1237,1244,1263,1266,1288,1324,1398 'count':309,539,550,893,1072,1101,1136,1140,1144 'creat':854,870,1049,1409,1465,1478 'criteria':789,973 'critic':536,1135 'cs':1258,1277,1283,1284 'cs-xxx':1257 'current':259 'data':69 'date':1317 'day':272 'de':172 'deduct':1166 'dedupl':737,770,954 'default':111,139 'descend':367 'descript':630 'detail':664 'detect':50,114,163,218,624,715,724,781,947,965,1206,1240,1556 'direct':1445 'discov':54 'domain':35,101,115,118,121,123,159,167,174,178,186,191,215,225,235,241,242,271,288,341,342,360,384,385,460,461,516,517,531,566,567,604,605,625,657,793,802,803,825,884,885,983,984,996,1063,1064,1130,1131,1159,1174,1175,1184,1214,1215,1224,1271,1299,1319,1320,1492,1494,1495 'domain-specif':34 'dormant':661 'dual':1455 'dual-writ':1454 'duplic':785,799,808,819,859,969,980,990,1404 'eff':1004,1006,1009,1029,1036,1070,1261 'effect':366,1002,1027,1069,1092,1097,1262 'either':96 'empti':1468,1481,1545 'enrich':290 'error':52,637,1433 'exampl':122,417,418,1067,1068 'execut':243 'exist':1410,1461,1474,1524 'explicit':176 'exponenti':1011 'extract':389,575 'fail':1180,1220,1438 'fall':1439 'field':399,582 'file':1444 'filter':358,529 'first':895,1074 'fit':104,124,168,175,179,187 'flag':304,1325,1415 'flush':1354,1380,1412,1425 'flush-pend':1379 'follow':618,634 'format':410,1268,1295 'found':279,313,1211,1334 'fts4':1344,1403 'full':136,165,653,1550 'function':155 'futur':1309,1347 'gate':1386,1418,1431 'generat':40,58,184,483 'get':265,339,382,514,564,908,1349 'get-antibodi':513,563 'get-context':264,1348 'get-strategi':338,381 'global':110,232 'goe':71 'haiku':615,1553 'handl':1434 'haven':1371 'histor':294 'hot':330,345,363,411,454,455,505,520,534,594,595,600,651,696,740,921,922,1198,1200,1253,1539,1546 'hot/cold':62,502 'human':1293 'human-read':1292 'hybrid':2,18,24 'id':656,676,709,758,760,812,836,838,850,880,905,1018,1020,1034,1059,1084,1395,1401 'ii':1088 'immun':1,12,15,20,45,307,451,590,612,693,706,717,726,733,846,902,916,1031,1081,1109,1172,1212,1421 'immune-scan':611 'immune_memory.json':1446,1458,1484 'improv':42 'increment':761,839,1021 'index':1345 'info':1143 'inform':257 'inject':38,317,493,681 'inlin':97,203 'input':78,90,644,1517 'invalid':1501,1507 'invok':82 'issu':285,1205 'jaccard':791 'join':400,583 'json':343,350,386,518,568,627,648,804,879,985,1058,1132,1321,1382,1443,1502 'keep':65 'kept':1450 'keyword':226,269,392,437,578,672 'know':299 'known':51 'last':209,542,764,842,898,1024,1077 'lean':67 'learn':1256 'limit':274,346,521 'liner':428 'list':405,588,673 'load':329,373,499,504,555 'log':306,450,589,692,705,716,725,845,901,915,1030,1080,1108,1303,1304,1315,1343,1420 'log-sess':1314 'low':1091 'low-effect':1090 'manual':1106 'match':222,230,707,739,745,811,831,837,863,1019,1042 'max':1199 'mean':1162,1185,1186,1225,1226 'memori':4,30,60,734,917,934,1272 'migrat':1491 'mode':135,164,324,439,691,939 'move':1012 'multi':190,788,972 'multi-criteria':787,971 'multi-domain':189 'muscul':173 'must':1389 'n':453,456,593,596,599,601,695,920,923,1137,1141,1145,1165,1192,1197,1201,1426,1428 'negat':13,46 'new':55,713,718,722,727,768,776,779,856,871,903,926,945,960,963,1001,1003,1028,1038,1050,1082,1113,1238,1254,1279,1282,1557 'next':482,882,1061 'node':76,262,336,379,511,561,753,795,874,912,976,1053,1127,1312,1377 'none':642,686,1536 'note':280,1103 'number':883,1062 'object':654 'old':1005,1037 'one':102,427 'one-lin':426 'oper':22 'option':134,1358 'origin':710 'output':43,131,197,211,351,443,1169,1264,1289,1511,1523 'overlap':995 'overrid':119 'paramet':89 'pars':79,87,348 'pass':1152,1179,1219 'past':248,254,284,311 'pattern':11,14,33,47,282,319,398,416,436,581,658,662,678,720,729,800,801,814,827,851,886,887,906,936,981,982,998,1035,1065,1066,1085,1236,1242,1249,1260,1388,1396,1402,1411 'pend':1368,1381 'phase':1560 'pitfal':158 'posit':10,32,318,935 'pre':357,528,1356,1423 'pre-compact':1355,1422 'pre-filt':356,527 'prefix':1060 'present':463,1286 'prevent':858,1406 'prism':495 'programm':171 'prompt':496,622 'provid':206,237,1519 'prune':1089 'qualifi':1537 'qualiti':44,1385,1417,1430 'queri':267 'raw':1510 're':1408 're-creat':1407 'reactiv':828,847,928,929,1245 'read':219,1442 'readabl':1294 'recent':196,1522 'record':1413 'recur':281 'reinforc':999,1032,1115,1116 'relev':253,310 'report':1008,1508 'requir':95,129,1394,1400 'research':107 'result':277,701,950,1307,1322 'retri':1503 'return':148,354,488,525,807,1148,1500 'review':1107 'run':334,377,468,509,559 'satisfi':133 'save':1366 'scan':86,94,138,141,151,193,207,260,292,326,608,613,632,647,689,694,941,949,1332,1530,1543 'scan-on':140,325,688,940 'scanner':297,748 'score':773,813,822,957,993,1119,1123,1129,1149,1157,1176,1177,1216,1217,1335,1336 'search':247,251,1351 'seen':538,543,549,762,765,840,843,892,896,899,1022,1025,1071,1075,1078,1100 'send':1541 'separ':404,434,587,670 'session':249,255,312,1302,1306,1316,1342 'sever':535,547,659,888,889,1133,1134,1138,1142,1241,1397 'short':391,577 'show':471 'similar':301,772,790,826,956,974,997 'singl':120,234 'skill' 'skill-immune' 'skip':143,320,937 'sort':364,545 'source-contactjccoaching-wq' 'spawn':609 'specif':36,128 'split':592 'sqlite':1341 'standalon':469 'stat':910,914 'std':1163,1187,1188,1227,1228 'step':244,314,322,497,606,683,730,930,1117,1167,1300,1352 'still':1506,1540,1555 'stop':448 'strategi':37,108,331,340,355,375,383,396,412,423,459,675,723,728,946,961,964,987,1017,1033,1046,1051,1057,1083,1095,1112,1193,1194,1255,1278,1384,1399,1429,1482 'string':236 'strong':229 'structur':621 'substant':210 'substr':792 'suggest':1243 'summari':376,558,1326,1328,1552 'sync':1452 'system':5,16,26 'task':268,629 'text':204 'text/code/content':92,645 'threat':56,639,714,719,769,777,780,867,1210,1239,1558 'threshold':815,1164,1189,1190,1229,1230 'tier':63,344,387,519,569,591 'today':766,844,897,900,1026,1076,1079,1318 'topic-adaptive-memory' 'topic-agent-skills' 'topic-automated-code-review' 'topic-claude-code' 'topic-claude-code-skills' 'topic-code-quality' 'topic-error-detection' 'topic-learning-system' 'topic-llm-optimization' 'topic-prompt-engineering' 'total':603,918,1111,1273,1276 'true':763,821,841,869,992,1023,1048,1432 'true/false':809 'two':28 'type':805,986 'univers':1122 'updat':732,749,756,829,834,909,932,1014,1016 'update-antibodi':755,833 'update-strategi':1015 'use':61,231,786,970 'user':81,466,477,1527 'v4':17,1173,1213 'valid':1387 'valu':1496 'version':1486 'via':332,507,750,771,955,1124,1453,1559 'vs':1158 'vérifi':169 'wait':699 'warn':1139,1514 'webdesign':109 'workout':183 'wrap':238 'write':106,1338,1456 'xml':414,415,429,490,620,623 'xml-structur':619 'xxx':1235,1248,1259 'yet':1375 'z':1154,1156,1181,1182,1221,1222 'z-score':1155","prices":[{"id":"938f3248-9e53-42fe-b247-195b506c0dd8","listingId":"163b7aab-f8ba-4cf8-9384-844fae39313e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"contactjccoaching-wq","category":"immune","install_from":"skills.sh"},"createdAt":"2026-04-23T13:04:09.802Z"}],"sources":[{"listingId":"163b7aab-f8ba-4cf8-9384-844fae39313e","source":"github","sourceId":"contactjccoaching-wq/immune","sourceUrl":"https://github.com/contactjccoaching-wq/immune","isPrimary":false,"firstSeenAt":"2026-04-23T13:04:09.802Z","lastSeenAt":"2026-04-24T07:03:29.565Z"}],"details":{"listingId":"163b7aab-f8ba-4cf8-9384-844fae39313e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"contactjccoaching-wq","slug":"immune","github":{"repo":"contactjccoaching-wq/immune","stars":10,"topics":["adaptive-memory","agent-skills","automated-code-review","claude-code","claude-code-skills","code-quality","error-detection","learning-system","llm-optimization","prompt-engineering"],"license":"mit","html_url":"https://github.com/contactjccoaching-wq/immune","pushed_at":"2026-04-03T11:49:10Z","description":"Hybrid adaptive memory system for Claude Code — Cheatsheet (positive patterns) + Immune (negative patterns)","skill_md_sha":"353f2bde3251ee4f534cf901d65b3e821a8c0e85","skill_md_path":"skill.md","default_branch":"master","skill_tree_url":"https://github.com/contactjccoaching-wq/immune"},"layout":"root","source":"github","category":"immune","frontmatter":{},"skills_sh_url":"https://skills.sh/contactjccoaching-wq/immune"},"updatedAt":"2026-04-24T07:03:29.565Z"}}