{"id":"a05feab7-32a5-4aae-87eb-b17d44db2ccb","shortId":"PQHSCF","kind":"skill","title":"immune","tagline":"Hybrid adaptive system v4.1: SQLite FTS4 + Adapter pattern + Cheatsheet (positive) + Immune (negative) + ContextMemory + Score + Flush. All reads/writes go through immune-adapter.js CLI. Dual-write JSON+SQLite for migration safety. Persistent memory shared with Chimera.","description":"# Immune System v4 — Hybrid Cheatsheet + Immune\n\nYou operate a hybrid adaptive system with two complementary memories:\n- **Cheatsheet** (positive patterns): domain-specific strategies injected BEFORE generation to improve output quality\n- **Immune** (negative patterns): antibodies that detect known errors and discover new threats AFTER generation\n\nBoth memories use Hot/Cold tiering to keep context lean.\nAll data access goes through the **adapter CLI** (`node ~/.claude/skills/immune/immune-adapter.js`).\n\n## Input Parsing\n\nThe user invokes with content to scan. Parse these parameters:\n\n- **input**: The text/code/content to scan (required — either inline or from context)\n- **domain**: One of: fitness, code, writing, research, strategy, webdesign, _global (default: auto-detect)\n- **domains**: Array of domains (overrides single domain). Example: `domains=fitness,code`\n- **constraints**: Any specific requirements the output should satisfy (optional)\n- **mode**: `full` (cheatsheet + scan, default) | `scan-only` (skip cheatsheet) | `cheatsheet-only` (return cheatsheet, no scan)\n\n<examples>\n<example>\n/immune Check this function for common pitfalls\n→ domains=[\"code\"] (auto-detected), mode=full\n</example>\n<example>\n/immune domain=fitness Vérifie ce programme de musculation\n→ domains=[\"fitness\"] (explicit)\n</example>\n<example>\n/immune domains=fitness,code Check this workout generator API\n→ domains=[\"fitness\", \"code\"] (multi-domain)\n</example>\n<example>\n/immune\n→ scans the most recent output in the conversation\n</example>\n</examples>\n\nIf no inline text is provided, scan the last substantive output in the conversation.\n\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]`.\n\n## Execution\n\n### Step -1 — Context Search (past session awareness)\n\nSearch for relevant past sessions to inform the current scan:\n\n```bash\nnode ~/.claude/skills/immune/immune-adapter.js get-context --query \"{task keywords or domain}\" --days 90 --limit 5\n```\n\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.\n\nLog: `[IMMUNE] Context: {count} relevant past sessions found`\n\n### Step 0 — Cheatsheet Injection (positive patterns)\n\nSkip this step if `mode == \"scan-only\"`.\n\n**0a. Load HOT strategies via adapter:**\n\nRun:\n```bash\nnode ~/.claude/skills/immune/immune-adapter.js get-strategies --domains '{domains_json}' --tier hot --limit 15\n```\nParse the JSON output. The adapter returns strategies pre-filtered by domain, classified as HOT, sorted by effectiveness descending, and capped at 15.\n\n**0b. Load COLD strategies summary:**\n\nRun:\n```bash\nnode ~/.claude/skills/immune/immune-adapter.js get-strategies --domains '{domains_json}' --tier cold\n```\nExtract a short keyword from each COLD strategy's `pattern` field. Join as comma-separated list.\n\n**0c. Build cheatsheet block:**\nFormat HOT strategies as XML:\n```xml\n<cheatsheet domain=\"{domains}\">\n  <strategy id=\"{id}\" effectiveness=\"{effectiveness}\">\n    {pattern}\n    Example: {example}\n  </strategy>\n  ...\n</cheatsheet>\n```\n\nIf there are COLD strategies, add a one-liner:\n```xml\n<cheatsheet_cold>Also consider: {comma-separated COLD pattern keywords}</cheatsheet_cold>\n```\n\nIf `mode == \"cheatsheet-only\"`, output the cheatsheet block and stop here.\n\nLog:\n```\n[IMMUNE] Cheatsheet: {n_hot} HOT + {n_cold} COLD strategies (domains: {domains})\n```\n\n**0d. Present cheatsheet to user:**\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.\n\n### Step 1 — Load & Classify Antibodies (Hot/Cold)\n\n**1a. Load HOT antibodies via adapter:**\n\nRun:\n```bash\nnode ~/.claude/skills/immune/immune-adapter.js get-antibodies --domains '{domains_json}' --tier hot --limit 15\n```\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.\n\n**1b. Load COLD antibodies summary:**\n\nRun:\n```bash\nnode ~/.claude/skills/immune/immune-adapter.js get-antibodies --domains '{domains_json}' --tier cold\n```\nFor each COLD antibody, extract a short keyword from its `pattern` field.\nJoin as comma-separated list.\n\nLog:\n```\n[IMMUNE] Tier split: {n_hot} HOT + {n_cold} COLD / {n_hot + n_cold} total (domains: {domains})\n```\n\n### Step 2 — Scan\n\nSpawn the `immune-scan` agent (Haiku) with the following XML-structured prompt:\n\n```xml\n<scan_request>\n  <domains>{detected_domains as JSON array}</domains>\n  <task>{task description or \"Scan the following content for errors and threats\"}</task>\n  <constraints>{constraints or \"none\"}</constraints>\n\n  <content>\n{the input text/code/content to scan}\n  </content>\n\n  <hot_antibodies>\n{JSON array of HOT antibodies — full objects with id, domains, pattern, severity, correction}\n  </hot_antibodies>\n\n  <cold_summary>\nDormant patterns (not detailed, for awareness only): {comma-separated COLD keywords}\n  </cold_summary>\n\n  <cheatsheet_applied>\n{list of strategy IDs and patterns that were injected in Step 0, or \"none\" if scan-only mode}\n  </cheatsheet_applied>\n</scan_request>\n```\n\nLog: `[IMMUNE] Scanning... ({n_hot} active antibodies)`\nWait for result.\n\nIf corrections applied:\n  Log: `[IMMUNE] Match {antibody_id}: {original} → {corrected}`\nIf new threats detected:\n  Log: `[IMMUNE] New threat: {pattern}`\nIf new strategies detected:\n  Log: `[IMMUNE] New strategy: {pattern}`\n\n### Step 3 — Update Immune Memory (with COLD deduplication)\n\n**3a. Matched HOT antibodies:**\nFor each antibody matched by the scanner, update via adapter:\n```bash\nnode ~/.claude/skills/immune/immune-adapter.js update-antibody --id {antibody_id} --increment_seen true --last_seen {today}\n```\n\n**3b. New threats — deduplicate via similarity scoring:**\nFor each new threat in `new_threats_detected`:\n\n1. Check for duplicate using multi-criteria similarity (Jaccard + substring + domain):\n```bash\nnode ~/.claude/skills/immune/immune-adapter.js check-duplicate --pattern \"{pattern}\" --domains '{domains_json}' --type antibody\n```\nReturns `{ duplicate: true/false, best_match: { id, score, pattern }, threshold: 0.7 }`\n\n2. **If duplicate is true** (score >= 0.7, same domain + similar pattern) → REACTIVATE:\n   - Update the matched antibody: `update-antibody --id {matched_id} --increment_seen true --last_seen {today}`\n   - Log: `[IMMUNE] Reactivated COLD antibody {id}: {pattern}`\n   - Do NOT create a new antibody (prevents duplicates)\n3. **If no match** AND `auto_add_threats` is true → CREATE new antibody:\n```bash\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}\"}'\n```\n   - Log: `[IMMUNE] + New antibody {id}: {pattern}`\n\n**3c. Get updated stats:**\n```bash\nnode ~/.claude/skills/immune/immune-adapter.js stats\n```\n\nLog: `[IMMUNE] Memory: {total} antibodies ({n_hot} hot, {n_cold} cold) | +{new} added | Reactivated: {reactivated}`\n\n### Step 3b — Update Cheatsheet Memory (positive patterns)\n\nSkip if `mode == \"scan-only\"` or no `new_strategies_detected` in scan result.\n\n**3b-i. Deduplicate via similarity scoring:**\nFor each new strategy in `new_strategies_detected`:\n1. Check for duplicate using multi-criteria similarity:\n```bash\nnode ~/.claude/skills/immune/immune-adapter.js check-duplicate --pattern \"{pattern}\" --domains '{domains_json}' --type strategy\n```\n2. **If duplicate is true** (score >= 0.7, overlapping domains + similar pattern) → REINFORCE:\n   - Calculate new effectiveness: `new_eff = old_eff * 0.8 + reported_eff * 0.2` (exponential moving average)\n   - Update: `update-strategy --id {matched_id} --increment_seen true --last_seen {today} --effectiveness {new_eff}`\n   - Log: `[IMMUNE] Reinforced strategy {id}: {pattern} (eff: {old}→{new})`\n3. **If no match** AND `auto_add_strategies` is true → CREATE new strategy:\n```bash\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}\"}'\n```\n   - Log: `[IMMUNE] + New strategy {id}: {pattern}`\n\n**3b-ii. Prune low-effectiveness:**\nIf any strategy has `effectiveness < 0.2` AND `seen_count >= 5`, note it for manual review.\n\nLog: `[IMMUNE] Cheatsheet: {total} strategies | +{new} added | Reinforced: {reinforced}`\n\n### Step 4 — Score\n\nCalculate the universal score via adapter:\n```bash\nnode ~/.claude/skills/immune/immune-adapter.js score --domains '{domains_json}' --severities '[{\"severity\":\"critical\",\"count\":N},{\"severity\":\"warning\",\"count\":N},{\"severity\":\"info\",\"count\":N}]'\n```\n\nThe adapter returns: `score` (0-100), `pass` (boolean), `z` (z-score vs domain baseline), `baseline` (mean, std, threshold, n), `deductions`.\n\n### Step 5 — Output\n\n**If clean:**\n```\n───\nIMMUNE v4 | domains={domains} | Score: {score}/100 ({PASS|FAIL}) | z={z}\n   Baseline ({domain}): mean={mean} std={std} threshold={threshold}\n   Cheatsheet: {n_strategies} strategies applied | Antibodies: {n_hot}/{max} HOT, {n_cold} COLD\n   No issues detected\n───\n```\n\n**If corrections or threats found:**\n```\n───\nIMMUNE v4 | domains={domains} | Score: {score}/100 ({PASS|FAIL}) | z={z}\n   Baseline ({domain}): mean={mean} std={std} threshold={threshold}\n\nCorrections Applied:\n  [AB-XXX] {pattern} → {correction}\n\nNew Threats Detected:\n  [{severity}] {pattern} — {suggested_correction}\n\nReactivated:\n  [AB-XXX] {pattern} (was COLD, now HOT)\n\nNew Strategies Learned:\n  [CS-XXX] {pattern} (eff: {effectiveness})\n\n───\nCorrected Output:\n{the corrected content, formatted for the domain}\n───\nMemory: {total_ab} antibodies + {total_cs} strategies | +{new_ab} AB | +{new_cs} CS\n───\n```\n\nThen present the corrected output in a human-readable format appropriate to the domain.\n\n### Step 6 — Session Log\n\nLog the session result for future context:\n```bash\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}\n```\n\nThis writes to `context/YYYY-MM-DD.md` + SQLite session_logs + FTS4 index for future `get-context` searches.\n\n### Step 7 — Flush Pre-Compaction (optional)\n\nIf the conversation context is approaching compaction, save any pending antibodies/strategies that haven't been committed yet:\n```bash\nnode ~/.claude/skills/immune/immune-adapter.js flush-pending --json '{\"antibodies\":[...],\"strategies\":[...]}'\n```\n\nQuality gate validation:\n- Pattern must be >= 20 characters\n- Antibodies require: id, pattern, severity, correction\n- Strategies require: id, pattern\n- FTS4 duplicate check prevents re-creating existing patterns\n- Flushed records are flagged with `quality_gate=1`\n\nLog: `[IMMUNE] Pre-compaction flush: +{n} antibodies, +{n} strategies (quality_gate=true)`\n\n## Error Handling\n\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.\n- If `immune_memory.json` does not exist: adapter auto-creates it with empty antibodies.\n- If `cheatsheet_memory.json` does not exist: adapter auto-creates it with empty strategies.\n- If `immune_memory.json` has `\"version\": 2`: adapter auto-migrates `\"domain\"` to `\"domains\": [\"domain_value\"]`.\n- If the agent returns invalid JSON: retry once. If still invalid, report the raw output with a warning.\n- If no input is provided and no recent output exists: ask the user what to scan.\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","mnemoclaw","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-mnemoclaw","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/Mnemoclaw/immune","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Mnemoclaw/immune","source_repo":"https://github.com/Mnemoclaw/immune","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 11 github stars · SKILL.md body (12,079 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:07:32.248Z","embedding":null,"createdAt":"2026-04-29T01:03:27.962Z","updatedAt":"2026-05-18T19:07:32.248Z","lastSeenAt":"2026-05-18T19:07:32.248Z","tsv":"'-1':266 '-100':1172 '/.claude/skills/immune/config.yaml':241 '/.claude/skills/immune/immune-adapter.js':98,284,358,401,533,583,775,817,896,934,998,1075,1149,1334,1399 '/100':1199,1239 '/immune':173,187,198,213,491 '0':336,705,1171 '0.2':1031,1119 '0.7':837,844,1015 '0.8':1028 '0a':349 '0b':393 '0c':427 '0d':483 '1':519,803,915,987,1094,1440 '15':368,392,543,574 '1a':524 '1b':575 '2':628,838,1009,1508,1582 '20':1412 '3':561,752,881,1060 '30d':565 '3a':759 '3b':788,952,973,1108 '3b-i':972 '3b-ii':1107 '3c':928 '4':1139 '5':296,1123,1189 '6':1322 '7':1374 '90':294 'ab':902,1255,1268,1295,1301,1302 'ab-xxx':1254,1267 'access':91 'activ':718 'ad':948,1135 'adapt':3,8,46,95,354,374,529,545,772,1146,1168,1457,1483,1496,1509 'add':445,887,898,1066,1077 'add-antibodi':897 'add-strategi':1076 'agent':635,1520 'also':451 'antibodi':69,522,527,536,547,578,586,595,673,719,729,762,765,778,780,827,853,856,870,878,893,899,925,940,1217,1296,1404,1414,1448,1490,1554,1568 'antibodies/strategies':1390 'api':206 'appli':500,725,1216,1253 'approach':1385 'appropri':1317 'array':137,261,649,670,1569 'ask':1546 'auto':134,183,238,886,1065,1485,1498,1511 'auto-cr':1484,1497 'auto-detect':133,182,237 'auto-migr':1510 'averag':1034 'awar':271,316,687 'back':1461 'baselin':1181,1182,1204,1244 'bash':282,356,399,531,581,773,815,894,932,996,1073,1147,1332,1397 'best':831 'block':430,467,512 'boolean':1174 'brief':1348 'build':428 'calcul':1021,1141 'call':506 'cap':390,572 'ce':191 'charact':1413 'cheatsheet':10,40,52,158,165,167,170,337,429,462,466,473,485,494,954,1131,1212 'cheatsheet-on':166,461 'cheatsheet_memory.json':1468,1492 'check':174,202,804,819,988,1000,1426 'check-dupl':818,999 'chimera':35,508 'classifi':382,521,553 'clean':1192,1344 'cli':22,96,1458 'code':126,146,181,201,209 'cold':395,409,416,443,456,478,479,577,591,594,618,619,623,692,757,869,945,946,1223,1224,1272,1556,1572 'comma':424,454,607,690 'comma-separ':423,453,606,689 'commit':1395 'common':178 'compact':1378,1386,1445 'complementari':50 'consid':452 'constraint':147,661 'content':105,244,323,656,1288 'context':87,121,267,287,329,496,1331,1371,1383 'context/yyyy-mm-dd.md':1361 'contextmemori':14 'convers':221,235,1382 'correct':681,724,732,911,912,1229,1252,1258,1265,1284,1287,1309,1345,1419 'count':330,560,571,914,1093,1122,1157,1161,1165 'creat':875,891,1070,1430,1486,1499 'criteria':810,994 'critic':557,1156 'cs':1279,1298,1304,1305 'cs-xxx':1278 'current':280 'data':90 'date':1338 'day':293 'de':193 'deduct':1187 'dedupl':758,791,975 'default':132,160 'descend':388 'descript':651 'detail':685 'detect':71,135,184,239,645,736,745,802,968,986,1227,1261,1577 'direct':1466 'discov':75 'domain':56,122,136,139,142,144,180,188,195,199,207,212,236,246,256,262,263,292,309,362,363,381,405,406,481,482,537,538,552,587,588,625,626,646,678,814,823,824,846,905,906,1004,1005,1017,1084,1085,1151,1152,1180,1195,1196,1205,1235,1236,1245,1292,1320,1340,1341,1513,1515,1516 'domain-specif':55 'dormant':682 'dual':24,1476 'dual-writ':23,1475 'duplic':806,820,829,840,880,990,1001,1011,1425 'eff':1025,1027,1030,1050,1057,1091,1282 'effect':387,1023,1048,1090,1113,1118,1283 'either':117 'empti':1489,1502,1566 'enrich':311 'error':73,658,1454 'exampl':143,438,439,1088,1089 'execut':264 'exist':1431,1482,1495,1545 'explicit':197 'exponenti':1032 'extract':410,596 'fail':1201,1241,1459 'fall':1460 'field':420,603 'file':1465 'filter':379,550 'first':916,1095 'fit':125,145,189,196,200,208 'flag':325,1346,1436 'flush':16,1375,1401,1433,1446 'flush-pend':1400 'follow':639,655 'format':431,1289,1316 'found':300,334,1232,1355 'fts4':7,1365,1424 'full':157,186,674,1571 'function':176 'futur':1330,1368 'gate':1407,1439,1452 'generat':61,79,205,504 'get':286,360,403,535,585,929,1370 'get-antibodi':534,584 'get-context':285,1369 'get-strategi':359,402 'global':131,253 'go':19 'goe':92 'haiku':636,1574 'handl':1455 'haven':1392 'histor':315 'hot':351,366,384,432,475,476,526,541,555,615,616,621,672,717,761,942,943,1219,1221,1274,1560,1567 'hot/cold':83,523 'human':1314 'human-read':1313 'hybrid':2,39,45 'id':677,697,730,779,781,833,857,859,871,901,926,1039,1041,1055,1080,1105,1416,1422 'ii':1109 'immun':1,12,36,41,66,328,472,611,633,714,727,738,747,754,867,923,937,1052,1102,1130,1193,1233,1442 'immune-adapter.js':21 'immune-scan':632 'immune_memory.json':1467,1479,1505 'improv':63 'increment':782,860,1042 'index':1366 'info':1164 'inform':278 'inject':59,338,514,702 'inlin':118,224 'input':99,111,665,1538 'invalid':1522,1528 'invok':103 'issu':306,1226 'jaccard':812 'join':421,604 'json':26,364,371,407,539,589,648,669,825,900,1006,1079,1153,1342,1403,1464,1523 'keep':86 'kept':1471 'keyword':247,290,413,458,599,693 'know':320 'known':72 'last':230,563,785,863,919,1045,1098 'lean':88 'learn':1277 'limit':295,367,542 'liner':449 'list':426,609,694 'load':350,394,520,525,576 'log':327,471,610,713,726,737,746,866,922,936,1051,1101,1129,1324,1325,1336,1364,1441 'log-sess':1335 'low':1112 'low-effect':1111 'manual':1127 'match':243,251,728,760,766,832,852,858,884,1040,1063 'max':1220 'mean':1183,1206,1207,1246,1247 'memori':32,51,81,755,938,955,1293 'migrat':29,1512 'mode':156,185,345,460,712,960 'move':1033 'multi':211,809,993 'multi-criteria':808,992 'multi-domain':210 'muscul':194 'must':1410 'n':474,477,614,617,620,622,716,941,944,1158,1162,1166,1186,1213,1218,1222,1447,1449 'negat':13,67 'new':76,734,739,743,748,789,797,800,877,892,924,947,966,981,984,1022,1024,1049,1059,1071,1103,1134,1259,1275,1300,1303,1578 'next':503,903,1082 'node':97,283,357,400,532,582,774,816,895,933,997,1074,1148,1333,1398 'none':663,707,1557 'note':301,1124 'number':904,1083 'object':675 'old':1026,1058 'one':123,448 'one-lin':447 'oper':43 'option':155,1379 'origin':731 'output':64,152,218,232,372,464,1190,1285,1310,1532,1544 'overlap':1016 'overrid':140 'paramet':110 'pars':100,108,369 'pass':1173,1200,1240 'past':269,275,305,332 'pattern':9,54,68,303,340,419,437,457,602,679,683,699,741,750,821,822,835,848,872,907,908,927,957,1002,1003,1019,1056,1086,1087,1106,1257,1263,1270,1281,1409,1417,1423,1432 'pend':1389,1402 'persist':31 'phase':1581 'pitfal':179 'posit':11,53,339,956 'pre':378,549,1377,1444 'pre-compact':1376,1443 'pre-filt':377,548 'prefix':1081 'present':484,1307 'prevent':879,1427 'prism':516 'programm':192 'prompt':517,643 'provid':227,258,1540 'prune':1110 'qualifi':1558 'qualiti':65,1406,1438,1451 'queri':288 'raw':1531 're':1429 're-creat':1428 'reactiv':849,868,949,950,1266 'read':240,1463 'readabl':1315 'reads/writes':18 'recent':217,1543 'record':1434 'recur':302 'reinforc':1020,1053,1136,1137 'relev':274,331 'report':1029,1529 'requir':116,150,1415,1421 'research':128 'result':298,722,971,1328,1343 'retri':1524 'return':169,375,509,546,828,1169,1521 'review':1128 'run':355,398,489,530,580 'safeti':30 'satisfi':154 'save':1387 'scan':107,115,159,162,172,214,228,281,313,347,629,634,653,668,710,715,962,970,1353,1551,1564 'scan-on':161,346,709,961 'scanner':318,769 'score':15,794,834,843,978,1014,1140,1144,1150,1170,1178,1197,1198,1237,1238,1356,1357 'search':268,272,1372 'seen':559,564,570,783,786,861,864,913,917,920,1043,1046,1092,1096,1099,1121 'send':1562 'separ':425,455,608,691 'session':270,276,333,1323,1327,1337,1363 'sever':556,568,680,909,910,1154,1155,1159,1163,1262,1418 'share':33 'short':412,598 'show':492 'similar':322,793,811,847,977,995,1018 'singl':141,255 'skill' 'skill-immune' 'skip':164,341,958 'sort':385,566 'source-mnemoclaw' 'spawn':630 'specif':57,149 'split':613 'sqlite':6,27,1362 'standalon':490 'stat':931,935 'std':1184,1208,1209,1248,1249 'step':265,335,343,518,627,704,751,951,1138,1188,1321,1373 'still':1527,1561,1576 'stop':469 'strategi':58,129,352,361,376,396,404,417,433,444,480,696,744,749,967,982,985,1008,1038,1054,1067,1072,1078,1104,1116,1133,1214,1215,1276,1299,1405,1420,1450,1503 'string':257 'strong':250 'structur':642 'substant':231 'substr':813 'suggest':1264 'summari':397,579,1347,1349,1573 'sync':1473 'system':4,37,47 'task':289,650 'text':225 'text/code/content':113,666 'threat':77,660,735,740,790,798,801,888,1231,1260,1579 'threshold':836,1185,1210,1211,1250,1251 'tier':84,365,408,540,590,612 'today':787,865,918,921,1047,1097,1100,1339 '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':624,939,1132,1294,1297 'true':784,842,862,890,1013,1044,1069,1453 'true/false':830 'two':49 'type':826,1007 'univers':1143 'updat':753,770,777,850,855,930,953,1035,1037 'update-antibodi':776,854 'update-strategi':1036 'use':82,252,807,991 'user':102,487,498,1548 'v4':38,1194,1234 'v4.1':5 'valid':1408 'valu':1517 'version':1507 'via':353,528,771,792,976,1145,1474,1580 'vs':1179 'vérifi':190 'wait':720 'warn':1160,1535 'webdesign':130 'workout':204 'wrap':259 'write':25,127,1359,1477 'xml':435,436,450,511,641,644 'xml-structur':640 'xxx':1256,1269,1280 'yet':1396 'z':1175,1177,1202,1203,1242,1243 'z-score':1176","prices":[{"id":"5a65cbde-76d0-4ffc-8292-f7d7c08d9848","listingId":"a05feab7-32a5-4aae-87eb-b17d44db2ccb","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Mnemoclaw","category":"immune","install_from":"skills.sh"},"createdAt":"2026-04-29T01:03:27.962Z"}],"sources":[{"listingId":"a05feab7-32a5-4aae-87eb-b17d44db2ccb","source":"github","sourceId":"Mnemoclaw/immune","sourceUrl":"https://github.com/Mnemoclaw/immune","isPrimary":false,"firstSeenAt":"2026-04-29T01:03:27.962Z","lastSeenAt":"2026-05-18T19:07:32.248Z"}],"details":{"listingId":"a05feab7-32a5-4aae-87eb-b17d44db2ccb","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Mnemoclaw","slug":"immune","github":{"repo":"Mnemoclaw/immune","stars":11,"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/Mnemoclaw/immune","pushed_at":"2026-05-18T13:58:58Z","description":"Hybrid adaptive memory system for Claude Code — Cheatsheet (positive patterns) + Immune (negative patterns)","skill_md_sha":"f3b7508045a0159a17511135baf882e548dc97a8","skill_md_path":"skill.md","default_branch":"master","skill_tree_url":"https://github.com/Mnemoclaw/immune"},"layout":"root","source":"github","category":"immune","frontmatter":{"name":"immune","description":"Hybrid adaptive system v4.1: SQLite FTS4 + Adapter pattern + Cheatsheet (positive) + Immune (negative) + ContextMemory + Score + Flush. All reads/writes go through immune-adapter.js CLI. Dual-write JSON+SQLite for migration safety. Persistent memory shared with Chimera."},"skills_sh_url":"https://skills.sh/Mnemoclaw/immune"},"updatedAt":"2026-05-18T19:07:32.248Z"}}