{"id":"dfc465d4-3c71-47be-9967-1c7913be1612","shortId":"HsqQZG","kind":"skill","title":"git-wiki","tagline":"Maintain a personal, LLM-curated knowledge wiki in a GitHub repo using the Karpathy LLM-wiki pattern. Use this skill when the user wants to ingest a source (article, paper, notes, URL) into their wiki, query accumulated knowledge (\"what do I know about X?\", \"what did I learn from","description":"# git-wiki\n\nIngest, query, and lint a personal markdown wiki stored in a GitHub repo,\nusing the three-layer [Karpathy LLM-wiki pattern][gist]: raw sources →\nwiki pages → schema. `gh` handles GitHub; `qmd` handles search.\n\n## When to use this skill\n\nInvoke when the user asks to:\n\n- **ingest** a new source — \"add this paper / article / meeting notes to my wiki\"\n- **query** the wiki — \"what do I know about X?\" / \"what did I learn from Y?\"\n- **lint** — \"lint the wiki\", \"check the wiki for drift\"\n\nAlso activate on close synonyms, even if the user does not say \"wiki\":\n\n- \"save this to my notes\" / \"add this to what I know about X\"\n- \"what did I learn about X last month?\"\n- \"check my notes for contradictions\"\n\nDo **not** invoke this skill for unrelated markdown editing or general\nGitHub work.\n\n## First-time setup\n\nIf the user has no wiki yet, point them at the one-shot installer:\n\n```sh\nbash <(curl -sL https://raw.githubusercontent.com/rarce/git-wiki/main/install.sh)\n```\n\nIt creates a personal GitHub repo (private by default), clones it,\ninstalls this skill into the clone at `.agents/skills/git-wiki/`, runs\nthe bundled scaffolder, and pushes the initial commit.\n\nIf the user prefers to run the steps manually (or already has a wiki repo\nthey want to add the skill to), the equivalent sequence is:\n\n```sh\ngh repo create my-wiki --private --clone\ncd my-wiki\nnpx -y skills add rarce/git-wiki\n.agents/skills/git-wiki/scripts/setup.sh\n```\n\n`scripts/setup.sh` is the *scaffolder*: it must be run from inside an\nexisting git clone. It does not create or clone the repo. After it\ncompletes, all operations below target the local clone.\n\n## Preconditions\n\nBefore any operation, resolve the wiki directory and confirm tools exist:\n\n```sh\nWIKI_DIR=\"${WIKI_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}\"\ntest -f \"$WIKI_DIR/CLAUDE.md\"          # schema present → right directory\ncommand -v gh && command -v qmd && command -v git\ngh auth status\n```\n\nIf `CLAUDE.md` is missing, the wiki has not been bootstrapped — tell the\nuser to run `scripts/setup.sh` (see *First-time setup* above) and stop.\n\nAlways read `$WIKI_DIR/CLAUDE.md` first. It is the authoritative schema;\nthis skill defers to anything written there.\n\n## Operations\n\n### ingest\n\nIngesting a source means: saving the raw source, writing synthesis into\nwiki pages, cross-linking, updating the index and log, committing, pushing,\nand re-embedding. A good ingest touches **10–15 files**.\n\n1. **Clean tree check.** `git -C \"$WIKI_DIR\" status --porcelain` must be\n   empty. If dirty, ask the user to stash or commit first.\n2. **Capture the source.** Fetch or read the content, then save it under\n   `sources/<slug>.md` with frontmatter:\n   ```yaml\n   ---\n   title: <original title>\n   url: <source url if any>\n   kind: article | paper | notes | transcript | other\n   captured: YYYY-MM-DD\n   ---\n   ```\n   The body can be the full text or a condensed quote. **Never rewrite a\n   source file on subsequent ingests** — it is immutable.\n3. **Find candidate pages to touch.** Read `index.md`, then run:\n   ```sh\n   qmd query \"<topic of the source>\"\n   ```\n   The top 5–10 hits plus anything referenced in `index.md` form the\n   candidate set.\n4. **Write the summary page.** Either create a new page under `pages/`\n   (topic), `people/` (person), or `concepts/` (concept), or update an\n   existing one. New pages must have the full YAML frontmatter:\n   ```yaml\n   ---\n   title: ...\n   tags: [...]\n   created: YYYY-MM-DD\n   updated: YYYY-MM-DD\n   sources: [sources/<slug>.md]\n   ---\n   ```\n   Updates must bump `updated:` and append to `sources:`.\n5. **Cross-link.** For every entity (person, concept, tool) mentioned in\n   the new content, ensure there is a link. If the target page exists,\n   use a relative link. If it doesn't and the entity is significant, create\n   a stub page.\n6. **Update `index.md`.** Add or update the entry under the right category\n   (Pages / People / Concepts / Sources). One line per entry with a link,\n   short description, and tags.\n7. **Append to `log.md`.**\n   ```\n   ## [YYYY-MM-DD] ingest | <title>\n   <one paragraph: what the source was about, what pages were created or\n   updated (list them), any notable cross-references.>\n   ```\n8. **Commit + push.**\n   ```sh\n   git -C \"$WIKI_DIR\" add -A\n   git -C \"$WIKI_DIR\" commit -m \"ingest: <title>\"\n   git -C \"$WIKI_DIR\" push\n   ```\n9. **Re-embed.** `qmd embed` — only changed files are re-embedded, so this\n   is fast.\n\n### query\n\nQuerying the wiki means: answering the user from wiki content, with\ncitations, and (when the answer is novel) filing the synthesis back as a\nnew page.\n\n1. **Structural scan.** Read `$WIKI_DIR/index.md` to get the map.\n2. **Hybrid search.**\n   ```sh\n   qmd query \"<the user's natural-language question>\"\n   ```\n   `qmd query` does BM25 + vector + LLM rerank; it is the best default.\n   If it is noisy, fall back to `qmd search` (keywords) or `qmd vsearch`\n   (phrase similarity).\n3. **Read the top hits.** Use `qmd get \"<path>\"` or your Read tool. Read\n   enough to answer, not the whole file unless necessary.\n4. **Synthesize.** Write the answer from the wiki pages. Cite each page\n   inline with a relative link, e.g. `(see [BM25](concepts/bm25.md))`.\n   If the wiki doesn't contain the answer, say so explicitly rather than\n   inventing.\n5. **Compound.** If the synthesized answer is novel and useful, ask the\n   user if they want to file it back as a new page. This is the\n   compounding step that makes the wiki grow in value over time.\n6. **Log the query.** Append to `log.md`:\n   ```\n   ## [YYYY-MM-DD] query | <short question>\n   <one line: what was asked; which pages answered it.>\n   ```\n7. **Commit** only if you wrote anything (a new page, a log entry, or\n   both). Use `git commit -m \"query: <short question>\"` and push. If you\n   only read, no commit.\n\n### lint\n\nA periodic health check. Run when the user says \"lint the wiki\" or after\na batch of ingests.\n\nChecks to perform, in order, reporting findings **before** mutating:\n\n1. **Index drift.**\n   - Files listed in `index.md` whose targets don't exist.\n   - Files under `pages/` `people/` `concepts/` missing from `index.md`.\n2. **Broken relative links.** For every wiki page, parse markdown links\n   and check each relative path resolves on disk.\n3. **Stale updated dates.** Pages whose `updated:` is older than the\n   newest `captured:` among their listed `sources:`.\n4. **Orphans.** Pages that are not linked from `index.md` **and** not\n   linked from any other wiki page (except source files).\n5. **Missing cross-refs.** Run `qmd query \"<entity>\"` for each\n   `people/` and `concepts/` page title; if another page mentions the\n   entity in prose but doesn't link to its page, flag it.\n6. **Contradictions.** For each concept page, `qmd query` it and scan\n   the top hits for statements that contradict the concept page's claims.\n   This is heuristic — report with moderate confidence and let the user\n   decide.\n\nReport all findings as a concise bulleted list grouped by check. Ask the\nuser which to fix. Then apply fixes, commit as `lint: <summary>`, append\nto `log.md`:\n\n```\n## [YYYY-MM-DD] lint | <summary>\n<checks run; issues found; fixes applied; files touched.>\n```\n\nPush and `qmd embed`.\n\n## Failure modes and recovery\n\n- **Dirty working tree at start of `ingest`** — stop and ask the user to\n  commit/stash. Do not auto-stash.\n- **`qmd` returns empty or errors** — fall back to reading `index.md` and\n  `log.md`, plus your own Grep over the wiki dir. Tell the user qmd failed\n  and suggest `qmd embed`.\n- **Push rejected** — `git pull --rebase` then retry. Do not force-push.\n- **Missing `CLAUDE.md` in `$WIKI_DIR`** — wrong directory, or setup never\n  ran. Stop and instruct the user.\n- **`gh` not authenticated** — tell the user to run `gh auth login`. Do not\n  attempt to proceed with HTTPS tokens or SSH fallbacks.\n- **A page's frontmatter is malformed** — fix it (this is a lint finding),\n  but do not silently rewrite prose while you are at it.\n\n## Design notes\n\n- **Sources are immutable.** Only `sources/<slug>.md` files are raw\n  capture. Wiki pages are the synthesis layer and may be rewritten freely.\n- **Log prefixes matter.** The `## [YYYY-MM-DD] <op> | <title>` format is\n  designed for grep queries like `grep 'ingest |' log.md`.\n- **Compound, don't re-synthesize.** When a `query` produces a novel\n  answer, filing it as a wiki page turns one question into permanent\n  knowledge. This is the whole point of the pattern.\n- **10–15 files per ingest** is a rough signal of a healthy ingest. Too\n  few means you skipped cross-linking; too many means you're overreaching.\n\n## Command reference\n\nResolve the wiki directory at the start of every operation:\n\n```sh\nWIKI_DIR=\"${WIKI_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}\"\n```\n\nGitHub / git:\n\n```sh\ngh auth status                                    # confirm auth\ngh repo view                                      # see the wiki repo\ngit -C \"$WIKI_DIR\" status\ngit -C \"$WIKI_DIR\" log --oneline -20\ngit -C \"$WIKI_DIR\" add -A\ngit -C \"$WIKI_DIR\" commit -m \"<op>: <title>\"\ngit -C \"$WIKI_DIR\" pull --rebase\ngit -C \"$WIKI_DIR\" push\n```\n\nqmd:\n\n```sh\nqmd collection list\nqmd search  \"keyword\"          # BM25 only, fast\nqmd vsearch \"phrase\"            # vector only\nqmd query   \"full question\"     # hybrid + LLM rerank (best quality)\nqmd get     \"pages/foo.md\"\nqmd embed                       # re-embed after edits (fast, incremental)\n```\n\n[gist]: https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f","tags":["git","wiki","rarce","agent-skills","claude-code","github-cli","karpathy","knowledge-base","llm-wiki","markdown","qmd","rag"],"capabilities":["skill","source-rarce","skill-git-wiki","topic-agent-skills","topic-claude-code","topic-github-cli","topic-karpathy","topic-knowledge-base","topic-llm-wiki","topic-markdown","topic-qmd","topic-rag","topic-wiki"],"categories":["git-wiki"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/rarce/git-wiki/git-wiki","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add rarce/git-wiki","source_repo":"https://github.com/rarce/git-wiki","install_from":"skills.sh"}},"qualityScore":"0.458","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 16 github stars · SKILL.md body (9,531 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-22T13:03:14.052Z","embedding":null,"createdAt":"2026-04-19T00:40:39.094Z","updatedAt":"2026-04-22T13:03:14.052Z","lastSeenAt":"2026-04-22T13:03:14.052Z","tsv":"'-20':1458 '/dev/null':349,1430 '/karpathy/442a6bf555914893e9891c11519de94f':1522 '/rarce/git-wiki/main/install.sh)':218 '1':448,770,992 '10':445,540,1378 '15':446,1379 '2':348,471,780,1012,1429 '3':524,820,1031 '4':551,842,1048 '5':539,606,877,1068 '6':648,915,1100 '7':675,936 '8':704 '9':726 'accumul':42 'activ':142 'add':108,159,265,289,651,712,1463 'agents/skills/git-wiki':237 'agents/skills/git-wiki/scripts/setup.sh':291 'alreadi':257 'also':141 'alway':395 'among':1044 'anoth':1084 'answer':748,759,835,846,870,882,934,1357 'anyth':409,543,942 'append':603,676,919,1158 'appli':1153,1171 'articl':34,111,492 'ask':102,463,887,931,1146,1191 'attempt':1271 'auth':369,1267,1436,1439 'authent':1260 'authorit':403 'auto':1199 'auto-stash':1198 'back':765,810,896,1207 'bash':213 'batch':980 'best':803,1505 'bm25':796,861,1490 'bodi':503 'bootstrap':380 'broken':1013 'bullet':1141 'bump':600 'bundl':240 'c':453,709,715,722,1448,1453,1460,1466,1472,1478 'candid':526,549 'captur':472,497,1043,1315 'categori':659 'cd':282 'chang':733 'check':136,175,451,968,983,1024,1145,1166 'citat':755 'cite':851 'claim':1122 'claude.md':372,1243 'clean':449 'clone':228,235,281,305,311,323 'close':144 'collect':1485 'command':359,362,365,1405 'commit':246,435,469,705,718,937,953,963,1155,1469 'commit/stash':1195 'complet':316 'compound':878,904,1345 'concept':567,568,614,662,1008,1080,1104,1119 'concepts/bm25.md':862 'concis':1140 'condens':511 'confid':1129 'confirm':333,1438 'contain':868 'content':479,620,753 'contradict':179,1101,1117 'creat':220,276,309,557,585,644,694 'cross':428,608,702,1071,1397 'cross-link':427,607,1396 'cross-ref':1070 'cross-refer':701 'curat':9 'curl':214 'date':1034 'dd':501,589,594,682,925,1164,1334 'decid':1134 'default':227,804 'defer':407 'descript':672 'design':1304,1337 'dir':338,340,455,711,717,724,1220,1246,1419,1421,1450,1455,1462,1468,1474,1480 'dir/claude.md':354,398 'dir/index.md':775 'directori':331,358,1248,1410 'dirti':462,1182 'disk':1030 'doesn':637,866,1092 'drift':140,994 'e.g':859 'edit':188,1516 'either':556 'emb':729,731,1177,1229,1511,1514 'embed':440,738 'empti':460,1203 'enough':833 'ensur':621 'entiti':612,641,1088 'entri':655,667,948 'equival':270 'error':1205 'even':146 'everi':611,1017,1415 'except':1065 'exist':303,335,572,630,1003 'explicit':873 'f':352 'fail':1225 'failur':1178 'fall':809,1206 'fallback':1279 'fast':742,1492,1517 'fetch':475 'file':447,517,734,762,839,894,995,1004,1067,1172,1312,1358,1380 'find':525,989,1137,1292 'first':194,389,399,470 'first-tim':193,388 'fix':1151,1154,1170,1286 'flag':1098 'forc':1240 'force-push':1239 'form':547 'format':1335 'found':1169 'freeli':1326 'frontmatt':487,581,1283 'full':507,579,1500 'general':190 'get':777,827,1508 'gh':87,274,361,368,1258,1266,1435,1440 'gist':81,1519 'gist.github.com':1521 'gist.github.com/karpathy/442a6bf555914893e9891c11519de94f':1520 'git':2,56,304,341,367,452,708,714,721,952,1232,1422,1433,1447,1452,1459,1465,1471,1477 'git-wiki':1,55 'github':14,69,89,191,223,1432 'good':442 'grep':1216,1339,1342 'group':1143 'grow':910 'handl':88,91 'health':967 'healthi':1389 'heurist':1125 'hit':541,824,1113 'https':1275 'hybrid':781,1502 'immut':523,1308 'increment':1518 'index':432,993 'index.md':531,546,650,998,1011,1056,1210 'ingest':31,58,104,413,414,443,520,683,720,982,1188,1343,1382,1390 'initi':245 'inlin':854 'insid':301 'instal':211,230 'instruct':1255 'invent':876 'invok':98,182 'issu':1168 'karpathi':18,76 'keyword':814,1489 'kind':491 'know':47,123,164 'knowledg':10,43,1369 'languag':791 'last':173 'layer':75,1321 'learn':53,129,170 'let':1131 'like':1341 'line':665,928 'link':429,609,625,634,670,858,1015,1022,1054,1059,1094,1398 'lint':61,132,133,964,974,1157,1165,1291 'list':697,996,1046,1142,1486 'llm':8,20,78,798,1503 'llm-curat':7 'llm-wiki':19,77 'local':322 'log':434,916,947,1327,1456 'log.md':678,921,1160,1212,1344 'login':1268 'm':719,954,1470 'maintain':4 'make':907 'malform':1285 'mani':1400 'manual':255 'map':779 'markdown':64,187,1021 'matter':1329 'may':1323 'md':485,597,1311 'mean':417,747,1393,1401 'meet':112 'mention':616,1086 'miss':374,1009,1069,1242 'mm':500,588,593,681,924,1163,1333 'mode':1179 'moder':1128 'month':174 'must':297,458,576,599 'mutat':991 'my-wiki':277,283 'natur':790 'natural-languag':789 'necessari':841 'never':513,1251 'new':106,559,574,619,768,899,944 'newest':1042 'noisi':808 'notabl':700 'note':36,113,158,177,494,1305 'novel':761,884,1356 'npx':286 'older':1039 'one':209,573,664,684,927,1365 'one-shot':208 'onelin':1457 'oper':318,327,412,1416 'order':987 'orphan':1049 'overreach':1404 'page':85,426,527,555,560,562,575,629,647,660,692,769,850,853,900,933,945,1006,1019,1035,1050,1064,1081,1085,1097,1105,1120,1281,1317,1363 'pages/foo.md':1509 'paper':35,110,493 'paragraph':685 'pars':344,1020,1425 'path':1027 'pattern':22,80,1377 'peopl':564,661,1007,1078 'per':666,1381 'perform':985 'period':966 'perman':1368 'person':6,63,222,565,613 'phrase':818,1495 'plus':542,1213 'point':204,1374 'porcelain':457 'precondit':324 'prefer':250 'prefix':1328 'present':356 'privat':225,280 'proceed':1273 'produc':1354 'prose':1090,1298 'pull':1233,1475 'push':243,436,706,725,957,1174,1230,1241,1481 'pwd':350,1431 'qmd':90,364,535,730,784,793,812,816,826,1074,1106,1176,1201,1224,1228,1482,1484,1487,1493,1498,1507,1510 'qualiti':1506 'queri':41,59,117,536,743,744,785,794,918,926,955,1075,1107,1340,1353,1499 'question':792,1366,1501 'quot':512 'ran':1252 'rarce/git-wiki':290 'rather':874 'raw':82,420,1314 'raw.githubusercontent.com':217 'raw.githubusercontent.com/rarce/git-wiki/main/install.sh)':216 're':439,728,737,1349,1403,1513 're-emb':727,1512 're-embed':438,736 're-synthes':1348 'read':396,477,530,773,821,830,832,961,1209 'rebas':1234,1476 'recoveri':1181 'ref':1072 'refer':703,1406 'referenc':544 'reject':1231 'relat':633,857,1014,1026 'repo':15,70,224,261,275,313,1441,1446 'report':988,1126,1135 'rerank':799,1504 'resolv':328,1028,1407 'retri':1236 'return':1202 'rev':343,1424 'rev-pars':342,1423 'rewrit':514,1297 'rewritten':1325 'right':357,658 'rough':1385 'run':238,252,299,385,533,969,1073,1167,1265 'save':154,418,481 'say':152,871,973 'scaffold':241,295 'scan':772,1110 'schema':86,355,404 'scripts/setup.sh':292,386 'search':92,782,813,1488 'see':387,860,1443 'sequenc':271 'set':550 'setup':196,391,1250 'sh':212,273,336,534,707,783,1417,1434,1483 'short':671 'shot':210 'show':346,1427 'show-toplevel':345,1426 'signal':1386 'signific':643 'silent':1296 'similar':819 'skill':25,97,184,232,267,288,406 'skill-git-wiki' 'skip':1395 'sl':215 'sourc':33,83,107,416,421,474,484,516,595,596,605,663,688,1047,1066,1306,1310 'source-rarce' 'ssh':1278 'stale':1032 'start':1186,1413 'stash':467,1200 'statement':1115 'status':370,456,1437,1451 'step':254,905 'stop':394,1189,1253 'store':66 'structur':771 'stub':646 'subsequ':519 'suggest':1227 'summari':554 'synonym':145 'synthes':843,881,1350 'synthesi':423,764,1320 'tag':584,674 'target':320,628,1000 'tell':381,1221,1261 'test':351 'text':508 'three':74 'three-lay':73 'time':195,390,914 'titl':489,583,1082 'token':1276 'tool':334,615,831 'top':538,823,1112 'topic':563 'topic-agent-skills' 'topic-claude-code' 'topic-github-cli' 'topic-karpathy' 'topic-knowledge-base' 'topic-llm-wiki' 'topic-markdown' 'topic-qmd' 'topic-rag' 'topic-wiki' 'toplevel':347,1428 'touch':444,529,1173 'transcript':495 'tree':450,1184 'turn':1364 'unless':840 'unrel':186 'updat':430,570,590,598,601,649,653,696,1033,1037 'url':37,490 'use':16,23,71,95,631,825,886,951 'user':28,101,149,199,249,383,465,750,787,889,972,1133,1148,1193,1223,1257,1263 'v':360,363,366 'valu':912 'vector':797,1496 'view':1442 'vsearch':817,1494 'want':29,263,892 'whole':838,1373 'whose':999,1036 'wiki':3,11,21,40,57,65,79,84,116,119,135,138,153,202,260,279,285,330,337,339,353,376,397,425,454,710,716,723,746,752,774,849,865,909,976,1018,1063,1219,1245,1316,1362,1409,1418,1420,1445,1449,1454,1461,1467,1473,1479 'work':192,1183 'write':422,552,844 'written':410 'wrong':1247 'wrote':941 'x':49,125,166,172 'y':131,287 'yaml':488,580,582 'yet':203 'yyyi':499,587,592,680,923,1162,1332 'yyyy-mm-dd':498,586,591,679,922,1161,1331","prices":[{"id":"e35eb6c4-7a73-4a23-8739-6a92f914f02f","listingId":"dfc465d4-3c71-47be-9967-1c7913be1612","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"rarce","category":"git-wiki","install_from":"skills.sh"},"createdAt":"2026-04-19T00:40:39.094Z"}],"sources":[{"listingId":"dfc465d4-3c71-47be-9967-1c7913be1612","source":"github","sourceId":"rarce/git-wiki/git-wiki","sourceUrl":"https://github.com/rarce/git-wiki/tree/main/skills/git-wiki","isPrimary":false,"firstSeenAt":"2026-04-19T00:40:39.094Z","lastSeenAt":"2026-04-22T13:03:14.052Z"}],"details":{"listingId":"dfc465d4-3c71-47be-9967-1c7913be1612","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"rarce","slug":"git-wiki","github":{"repo":"rarce/git-wiki","stars":16,"topics":["agent-skills","claude-code","github-cli","karpathy","knowledge-base","llm-wiki","markdown","qmd","rag","wiki"],"license":"mit","html_url":"https://github.com/rarce/git-wiki","pushed_at":"2026-04-16T15:06:21Z","description":"Claude Code skill implementing Karpathy's LLM-wiki pattern on a personal GitHub repo, with qmd for on-device hybrid search.","skill_md_sha":"47f567f62f98a3834c4fa11d451edf89359d0f62","skill_md_path":"skills/git-wiki/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/rarce/git-wiki/tree/main/skills/git-wiki"},"layout":"multi","source":"github","category":"git-wiki","frontmatter":{"name":"git-wiki","license":"MIT","description":"Maintain a personal, LLM-curated knowledge wiki in a GitHub repo using the Karpathy LLM-wiki pattern. Use this skill when the user wants to ingest a source (article, paper, notes, URL) into their wiki, query accumulated knowledge (\"what do I know about X?\", \"what did I learn from Y?\"), or lint the wiki for drift. Activate even when the user does not explicitly say \"wiki\" — e.g., \"save this paper to my notes\", \"add this to what I know about X\", or \"check my notes for contradictions\". Uses `gh` for GitHub operations and `qmd` for on-device hybrid BM25+vector search. Do not invoke for unrelated markdown editing or general GitHub work.","compatibility":"Requires gh (authenticated), git, node+npm, and qmd (auto-installed by scripts/setup.sh on first run). Designed for Claude Code and other agents that support Agent Skills."},"skills_sh_url":"https://skills.sh/rarce/git-wiki/git-wiki"},"updatedAt":"2026-04-22T13:03:14.052Z"}}