{"id":"ce10d5c4-80ba-4a40-b340-ae696fb0d685","shortId":"VSXCrU","kind":"skill","title":"wiki-ingest","tagline":"Ingest sources into the Obsidian wiki vault. Reads a source, extracts entities and concepts, creates or updates wiki pages, cross-references, and logs the operation. Supports files, URLs, and batch mode. Triggers on: ingest, process this source, add this to the wiki, read and fil","description":"# wiki-ingest: Source Ingestion\n\nRead the source. Write the wiki. Cross-reference everything. A single source typically touches 8-15 wiki pages.\n\n**Syntax standard**: Write all Obsidian Markdown using proper Obsidian Flavored Markdown. Wikilinks as `[[Note Name]]`, callouts as `> [!type] Title`, embeds as `![[file]]`, properties as YAML frontmatter. If the kepano/obsidian-skills plugin is installed, prefer its canonical obsidian-markdown skill for Obsidian syntax reference. Otherwise, follow the guidance in this skill.\n\n---\n\n## Delta Tracking\n\nBefore ingesting any file, check `.raw/.manifest.json` to avoid re-processing unchanged sources.\n\n```bash\n# Check if manifest exists\n[ -f .raw/.manifest.json ] && echo \"exists\" || echo \"no manifest yet\"\n```\n\n**Manifest format** (create if missing):\n```json\n{\n  \"sources\": {\n    \".raw/articles/article-slug-2026-04-08.md\": {\n      \"hash\": \"abc123\",\n      \"ingested_at\": \"2026-04-08\",\n      \"pages_created\": [\"wiki/sources/article-slug.md\", \"wiki/entities/Person.md\"],\n      \"pages_updated\": [\"wiki/index.md\"]\n    }\n  }\n}\n```\n\n**Before ingesting a file:**\n1. Compute a hash: `md5sum [file] | cut -d' ' -f1` (or `sha256sum` on Linux).\n2. Check if the path exists in `.manifest.json` with the same hash.\n3. If hash matches, skip. Report: \"Already ingested (unchanged). Use `force` to re-ingest.\"\n4. If missing or hash differs, proceed with ingest.\n\n**After ingesting a file:**\n1. Record `{hash, ingested_at, pages_created, pages_updated}` in `.manifest.json`.\n2. Write the updated manifest back.\n\nSkip delta checking if the user says \"force ingest\" or \"re-ingest\".\n\n---\n\n## URL Ingestion\n\nTrigger: user passes a URL starting with `https://`.\n\nSteps:\n\n1. **Fetch** the page using WebFetch.\n2. **Clean** (optional): if `defuddle` is available (`which defuddle 2>/dev/null`), run `defuddle [url]` to strip ads, nav, and clutter. Typically saves 40-60% tokens. Fall back to raw WebFetch output if not installed.\n3. **Derive slug** from the URL path (last segment, lowercased, spaces→hyphens, strip query strings).\n4. **Save** to `.raw/articles/[slug]-[YYYY-MM-DD].md` with a frontmatter header:\n   ```markdown\n   ---\n   source_url: [url]\n   fetched: [YYYY-MM-DD]\n   ---\n   ```\n5. Proceed with **Single Source Ingest** starting at step 2 (file is now in `.raw/`).\n\n---\n\n## Image / Vision Ingestion\n\nTrigger: user passes an image file path (`.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.svg`, `.avif`).\n\nSteps:\n\n1. **Read** the image file using the Read tool. Claude can process images natively.\n2. **Describe** the image contents: extract all text (OCR), identify key concepts, entities, diagrams, and data visible in the image.\n3. **Save** the description to `.raw/images/[slug]-[YYYY-MM-DD].md`:\n   ```markdown\n   ---\n   source_type: image\n   original_file: [original path]\n   fetched: YYYY-MM-DD\n   ---\n   # Image: [slug]\n\n   [Full description of image contents, transcribed text, entities visible, etc.]\n   ```\n4. Copy the image to `_attachments/images/[slug].[ext]` if it's not already in the vault.\n5. Proceed with **Single Source Ingest** on the saved description file.\n\nUse cases: whiteboard photos, screenshots, diagrams, infographics, document scans.\n\n---\n\n## Single Source Ingest\n\nTrigger: user drops a file into `.raw/` or pastes content.\n\nSteps:\n\n1. **Read** the source completely. Do not skim.\n2. **Discuss** key takeaways with the user. Ask: \"What should I emphasize? How granular?\" Skip this if the user says \"just ingest it.\"\n3. **Create** source summary in `wiki/sources/`. Use the source frontmatter schema from `references/frontmatter.md`. Assign an address per the **Address Assignment** section below.\n4. **Create or update** entity pages for every person, org, product, and repo mentioned. One page per entity. Assign addresses to new entity pages.\n5. **Create or update** concept pages for significant ideas and frameworks. Assign addresses to new concept pages.\n6. **Update** relevant domain page(s) and their `_index.md` sub-indexes.\n7. **Update** `wiki/overview.md` if the big picture changed.\n8. **Update** `wiki/index.md`. Add entries for all new pages.\n9. **Update** `wiki/hot.md` with this ingest's context.\n10. **Append** to `wiki/log.md` (new entries at the TOP):\n    ```markdown\n    ## [YYYY-MM-DD] ingest | Source Title\n    - Source: `.raw/articles/filename.md`\n    - Summary: [[Source Title]]\n    - Pages created: [[Page 1]], [[Page 2]]\n    - Pages updated: [[Page 3]], [[Page 4]]\n    - Key insight: One sentence on what is new.\n    ```\n11. **Check for contradictions.** If new info conflicts with existing pages, add `> [!contradiction]` callouts on both pages.\n\n---\n\n## Batch Ingest\n\nTrigger: user drops multiple files or says \"ingest all of these.\"\n\nSteps:\n\n1. List all files to process. Confirm with user before starting.\n2. Process each source following the single ingest flow. Defer cross-referencing between sources until step 3.\n3. After all sources: do a cross-reference pass. Look for connections between the newly ingested sources.\n4. Update index, hot cache, and log once at the end (not per-source).\n5. Report: \"Processed N sources. Created X pages, updated Y pages. Here are the key connections I found.\"\n\nBatch ingest is less interactive. For 30+ sources, expect significant processing time. Check in with the user after every 10 sources.\n\n---\n\n## Context Window Discipline\n\nToken budget matters. Follow these rules during ingest:\n\n- Read `wiki/hot.md` first. If it contains the relevant context, don't re-read full pages.\n- Read `wiki/index.md` to find existing pages before creating new ones.\n- Read only 3-5 existing pages per ingest. If you need 10+, you are reading too broadly.\n- Use PATCH for surgical edits. Never re-read an entire file just to update one field.\n- Keep wiki pages short. 100-300 lines max. If a page grows beyond 300 lines, split it.\n- Use search (`/search/simple/`) to find specific content without reading full pages.\n\n---\n\n## Contradictions\n\n> [!note] Custom callout dependency\n> The `[!contradiction]` callout type used below is a **custom callout** defined in `.obsidian/snippets/vault-colors.css` (auto-installed by `/wiki` scaffold). It renders with reddish-brown styling and an alert-triangle icon when the snippet is enabled. If the snippet is missing, Obsidian falls back to default callout styling, so the page still works without the visual flourish. See [[skills/wiki/references/css-snippets.md]] for the four custom callouts (`contradiction`, `gap`, `key-insight`, `stale`).\n\nWhen new info contradicts an existing wiki page:\n\nOn the existing page, add:\n```markdown\n> [!contradiction] Conflict with [[New Source]]\n> [[Existing Page]] claims X. [[New Source]] says Y.\n> Needs resolution. Check dates, context, and primary sources.\n```\n\nOn the new source summary, reference it:\n```markdown\n> [!contradiction] Contradicts [[Existing Page]]\n> This source says Y, but existing wiki says X. See [[Existing Page]] for details.\n```\n\nDo not silently overwrite old claims. Flag and let the user decide.\n\n---\n\n## What Not to Do\n\n- **Source files under `.raw/` are immutable.** Do not modify the files that users drop there (articles, transcripts, images). The `.raw/.manifest.json` delta tracker and its `address_map` (DragonScale Mechanism 2) are the only files under `.raw/` that `wiki-ingest` itself maintains. Treat every other file under `.raw/` as read-only source content.\n- Do not create duplicate pages. Always check the index and search before creating.\n- Do not skip the log entry. Every ingest must be recorded.\n- Do not skip the hot cache update. It is what keeps future sessions fast.\n\n---\n\n## Address Assignment (DragonScale Mechanism 2 MVP)\n\n**Opt-in feature**. DragonScale address assignment runs only if `scripts/allocate-address.sh` is present AND `.vault-meta/` exists. Otherwise, skip this entire section and proceed with ingest normally.\n\n**Feature detection (run at start of every ingest)**:\n\n```bash\nif [ -x ./scripts/allocate-address.sh ] && [ -d ./.vault-meta ]; then\n  DRAGONSCALE_ADDRESSES=1\nelse\n  DRAGONSCALE_ADDRESSES=0\nfi\n```\n\nWhen `DRAGONSCALE_ADDRESSES=0`, pages are created without an `address:` frontmatter field, and `wiki-lint`'s Address Validation section is skipped entirely (missing addresses are not flagged in any severity). This preserves default plugin behavior for vaults that have not adopted DragonScale.\n\nWhen `DRAGONSCALE_ADDRESSES=1`, proceed with the rest of this section.\n\n---\n\nEvery **newly created non-meta wiki page** gets a stable address in its frontmatter:\n\n```yaml\naddress: c-000042\n```\n\nFormat: `c-<6-digit-counter>`. The `c-` prefix stands for \"creation-order counter.\" Zero-padded.\n\nRollout baseline: **2026-04-23** (Phase 2 ship date). Pages with `created:` >= this date are post-rollout and MUST have an address (unless excluded below). Pages with `created:` earlier are legacy-exempt until a deliberate backfill pass assigns `l-NNNNNN` addresses.\n\n### Required tool: `scripts/allocate-address.sh`\n\nAddress allocation is delegated to an atomic Bash helper. The helper uses `flock` on `.vault-meta/.address.lock` to prevent read-use-increment races and recovers the counter by scanning existing frontmatter if the counter file is missing.\n\n```bash\nADDR=$(./scripts/allocate-address.sh)\n# ADDR is now e.g. \"c-000042\"; counter is already incremented\n```\n\n**CRITICAL**: never use the Write or Edit tool on `.vault-meta/address-counter.txt`. That would fire the PostToolUse hook, which runs `git add wiki/ .raw/` and can accidentally commit unrelated pending wiki changes under a generic message. Counter mutation is **only** permitted through the helper script (Bash tool).\n\n### Helper modes\n\n- `./scripts/allocate-address.sh` — atomically reserves and returns the next address.\n- `./scripts/allocate-address.sh --peek` — prints the next value without reserving (safe, read-only).\n- `./scripts/allocate-address.sh --rebuild` — recomputes the counter from the highest observed `c-NNNNNN` in existing frontmatter. Never resets to 1 silently if pages already have addresses. Run this if the counter file is suspected corrupt.\n\n### Assignment procedure (per new page)\n\n1. Before writing a new non-meta page, call `./scripts/allocate-address.sh` and capture the output.\n2. Include `address: c-XXXXXX` in the page's frontmatter.\n3. Record the path-to-address mapping in `.raw/.manifest.json` under a new top-level key `address_map` (see schema below).\n\n### `address_map` in `.raw/.manifest.json`\n\n```json\n{\n  \"sources\": { ... },\n  \"address_map\": {\n    \"wiki/concepts/Example.md\": \"c-000042\",\n    \"wiki/entities/Another.md\": \"c-000043\"\n  }\n}\n```\n\nOn re-ingest of the same source (whether by `--force` or a changed hash), always consult `address_map` first. If the target page path has a prior address, REUSE it. Do not allocate a new one.\n\nOn a page rename, the skill must update the `address_map` key (old path -> new path) while preserving the address value.\n\n### Exclusions (do NOT assign an address to)\n\n- Meta files: `_index.md`, `index.md`, `log.md`, `hot.md`, `overview.md`, `dashboard.md`, `dashboard.base`, `Wiki Map.md`, `getting-started.md`.\n- Fold pages under `wiki/folds/` (they use their own deterministic `fold_id`).\n- Pre-rollout legacy pages (`created:` < 2026-04-23). Legacy pages get `l-NNNNNN` addresses only via a deliberate backfill operation.\n\n### Idempotency rules\n\n- If a page being (re)written already has an `address:` field in its current content, REUSE it. Do not allocate a new one.\n- If a source is re-ingested and `address_map` has a mapping for the target path, reuse that mapping.\n- If the source has been ingested before AND the target page has no address AND the page `created:` date is post-rollout, allocate an address and record it. This covers the case where an older ingest produced a page before Phase 2 rollout; the rollout cutoff still applies (pages dated pre-2026-04-23 stay legacy).\n\n### Concurrency policy\n\n- **Single-writer only** in Phase 2. Do not run parallel ingests from multiple Claude sessions or sub-agents that assign addresses. The `flock` in the helper prevents counter corruption but does not serialize page writes themselves.\n- Sub-agents (codex, general-purpose) that are dispatched for research or review MUST NOT call the allocator. They are read-only in this respect.\n- Multi-writer support is a deferred feature.\n\n### Batch ingest\n\nAssign addresses sequentially during single-source-ingest for each source. Do not pre-reserve a block of counter values. The helper is cheap (one lock, one integer read/write).","tags":["wiki","ingest","claude","obsidian","agricidaniel","agent-skills","ai-second-brain","autonomous-research","claude-code","claude-code-skill","claude-plugin","karpathy-llm-wiki"],"capabilities":["skill","source-agricidaniel","skill-wiki-ingest","topic-agent-skills","topic-ai-second-brain","topic-autonomous-research","topic-claude-code","topic-claude-code-skill","topic-claude-plugin","topic-karpathy-llm-wiki","topic-knowledge-graph","topic-knowledge-management","topic-llm","topic-multi-agent","topic-obsidian"],"categories":["claude-obsidian"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/AgriciDaniel/claude-obsidian/wiki-ingest","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add AgriciDaniel/claude-obsidian","source_repo":"https://github.com/AgriciDaniel/claude-obsidian","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 5150 github stars · SKILL.md body (12,546 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-18T18:52:44.479Z","embedding":null,"createdAt":"2026-05-18T12:53:57.653Z","updatedAt":"2026-05-18T18:52:44.479Z","lastSeenAt":"2026-05-18T18:52:44.479Z","tsv":"'-000042':1280,1393,1565 '-000043':1568 '-04':165,1302,1664,1777 '-08':166 '-15':71 '-2026':1776 '-23':1303,1665,1778 '-300':884 '-5':848 '-60':300 '/.address.lock':1363 '/.vault-meta':1198 '/address-counter.txt':1410 '/dev/null':287 '/scripts/allocate-address.sh':1196,1387,1448,1456,1468,1517 '/search/simple':898 '/wiki':929 '0':1206,1211 '1':178,231,271,382,503,659,707,1202,1254,1486,1507 '10':634,806,856 '100':883 '11':676 '2':191,242,277,286,358,396,511,661,718,1088,1155,1305,1522,1766,1789 '2026':164,1301,1663 '3':203,311,416,534,665,735,736,847,1533 '30':793 '300':892 '4':218,326,453,556,667,754 '40':299 '5':349,469,580,769 '6':597,1283 '7':609 '8':70,617 '9':626 'abc123':161 'accident':1425 'ad':293 'add':42,620,687,995,1420 'addr':1386,1388 'address':549,552,575,592,1084,1151,1162,1201,1205,1210,1217,1225,1232,1253,1273,1278,1321,1342,1346,1455,1492,1524,1539,1550,1555,1561,1586,1597,1615,1625,1632,1672,1690,1712,1737,1749,1805,1859 'adopt':1249 'agent':1802,1823 'alert':941 'alert-triangl':940 'alloc':1347,1602,1700,1747,1839 'alreadi':209,465,1396,1490,1687 'alway':1118,1584 'append':635 'appli':1772 'articl':1075 'ask':518 'assign':547,553,574,591,1152,1163,1338,1502,1630,1804,1858 'atom':1352,1449 'attachments/images':458 'auto':926 'auto-instal':925 'avail':283 'avif':380 'avoid':133 'back':247,303,956 'backfil':1336,1677 'baselin':1300 'bash':139,1193,1353,1385,1444 'batch':34,693,787,1856 'behavior':1243 'beyond':891 'big':614 'block':1875 'broad':861 'brown':936 'budget':812 'c':1279,1282,1288,1392,1478,1526,1564,1567 'c-nnnnnn':1477 'c-xxxxxx':1525 'cach':758,1142 'call':1516,1837 'callout':89,689,910,914,921,959,976 'canon':108 'captur':1519 'case':481,1756 'chang':616,1430,1582 'cheap':1882 'check':130,140,192,250,677,799,1012,1119 'claim':1004,1049 'claud':391,1797 'clean':278 'clutter':296 'codex':1824 'commit':1426 'complet':507 'comput':179 'concept':17,407,584,595 'concurr':1781 'confirm':713 'conflict':683,998 'connect':748,784 'consult':1585 'contain':824 'content':400,447,501,902,1112,1695 'context':633,808,827,1014 'contradict':679,688,907,913,977,986,997,1026,1027 'copi':454 'corrupt':1501,1813 'counter':1286,1295,1374,1381,1394,1435,1472,1497,1812,1877 'cover':1754 'creat':18,154,168,237,535,557,581,657,774,842,1115,1125,1214,1264,1310,1327,1662,1741 'creation':1293 'creation-ord':1292 'critic':1398 'cross':24,62,729,743 'cross-refer':23,61,742 'cross-referenc':728 'current':1694 'custom':909,920,975 'cut':184 'cutoff':1770 'd':185,1197 'dashboard.base':1642 'dashboard.md':1641 'data':411 'date':1013,1307,1312,1742,1774 'dd':334,348,426,440,647 'decid':1055 'default':958,1241 'defer':727,1854 'defin':922 'defuddl':281,285,289 'deleg':1349 'deliber':1335,1676 'delta':124,249,1080 'depend':911 'deriv':312 'describ':397 'descript':419,444,478 'detail':1043 'detect':1186 'determinist':1654 'diagram':409,485 'differ':223 'digit':1285 'digit-count':1284 'disciplin':810 'discuss':512 'dispatch':1830 'document':487 'domain':600 'dragonscal':1086,1153,1161,1200,1204,1209,1250,1252 'drop':494,697,1073 'duplic':1116 'e.g':1391 'earlier':1328 'echo':146,148 'edit':866,1404 'els':1203 'emb':93 'emphas':522 'enabl':948 'end':764 'entir':872,1178,1230 'entiti':15,408,450,560,573,578 'entri':621,639,1131 'etc':452 'everi':563,805,1102,1132,1191,1262 'everyth':64 'exclud':1323 'exclus':1627 'exempt':1332 'exist':143,147,196,685,839,849,988,993,1002,1028,1035,1040,1174,1377,1481 'expect':795 'ext':460 'extract':14,401 'f':144 'f1':186 'fall':302,955 'fast':1150 'featur':1160,1185,1855 'fetch':272,344,436 'fi':1207 'field':878,1219,1691 'fil':49 'file':31,95,129,177,183,230,359,372,386,433,479,496,699,710,873,1061,1070,1092,1104,1382,1498,1635 'find':838,900 'fire':1413 'first':821,1588 'flag':1050,1235 'flavor':83 'flock':1358,1807 'flourish':969 'flow':726 'fold':1646,1655 'follow':118,722,814 'forc':213,255,1579 'format':153,1281 'found':786 'four':974 'framework':590 'frontmatt':99,338,543,1218,1276,1378,1482,1532 'full':443,833,905 'futur':1148 'gap':978 'general':1826 'general-purpos':1825 'generic':1433 'get':1270,1668 'getting-started.md':1645 'gif':377 'git':1419 'granular':524 'grow':890 'guidanc':120 'hash':160,181,202,205,222,233,1583 'header':339 'helper':1354,1356,1442,1446,1810,1880 'highest':1475 'hook':1416 'hot':757,1141 'hot.md':1639 'hyphen':322 'icon':943 'id':1656 'idea':588 'idempot':1679 'identifi':405 'imag':364,371,385,394,399,415,431,441,446,456,1077 'immut':1065 'includ':1523 'increment':1369,1397 'index':608,756,1121 'index.md':605,1636,1637 'info':682,985 'infograph':486 'ingest':3,4,38,52,54,127,162,175,210,217,226,228,234,256,260,262,354,366,474,491,532,631,648,694,702,725,752,788,818,852,1098,1133,1183,1192,1572,1710,1729,1760,1794,1857,1865 'insight':669,981 'instal':105,310,927 'integ':1886 'interact':791 'jpeg':376 'jpg':375 'json':157,1559 'keep':879,1147 'kepano/obsidian-skills':102 'key':406,513,668,783,980,1549,1617 'key-insight':979 'l':1340,1670 'l-nnnnnn':1339,1669 'last':318 'legaci':1331,1660,1666,1780 'legacy-exempt':1330 'less':790 'let':1052 'level':1548 'line':885,893 'lint':1223 'linux':190 'list':708 'lock':1884 'log':27,760,1130 'log.md':1638 'look':746 'lowercas':320 'maintain':1100 'manifest':142,150,152,246 'manifest.json':198,241 'map':1085,1540,1551,1556,1562,1587,1616,1713,1716,1723 'map.md':1644 'markdown':79,84,111,340,428,643,996,1025 'match':206 'matter':813 'max':886 'md':335,427 'md5sum':182 'mechan':1087,1154 'mention':569 'messag':1434 'meta':1173,1267,1362,1409,1514,1634 'miss':156,220,953,1231,1384 'mm':333,347,425,439,646 'mode':35,1447 'modifi':1068 'multi':1849 'multi-writ':1848 'multipl':698,1796 'must':1134,1318,1612,1835 'mutat':1436 'mvp':1156 'n':772 'name':88 'nativ':395 'nav':294 'need':855,1010 'never':867,1399,1483 'new':577,594,624,638,675,681,843,984,1000,1006,1020,1505,1511,1545,1604,1620,1702 'newli':751,1263 'next':1454,1460 'nnnnnn':1341,1479,1671 'non':1266,1513 'non-meta':1265,1512 'normal':1184 'note':87,908 'observ':1476 'obsidian':8,78,82,110,114,954 'obsidian-markdown':109 'obsidian/snippets/vault-colors.css':924 'ocr':404 'old':1048,1618 'older':1759 'one':570,670,844,877,1605,1703,1883,1885 'oper':29,1678 'opt':1158 'opt-in':1157 'option':279 'order':1294 'org':565 'origin':432,434 'otherwis':117,1175 'output':307,1521 'overview.md':1640 'overwrit':1047 'pad':1298 'page':22,73,167,171,236,238,274,561,571,579,585,596,601,625,656,658,660,662,664,666,686,692,776,779,834,840,850,881,889,906,963,990,994,1003,1029,1041,1117,1212,1269,1308,1325,1489,1506,1515,1530,1592,1608,1647,1661,1667,1683,1734,1740,1763,1773,1818 'parallel':1793 'pass':265,369,745,1337 'past':500 'patch':863 'path':195,317,373,435,1537,1593,1619,1621,1720 'path-to-address':1536 'peek':1457 'pend':1428 'per':550,572,767,851,1504 'per-sourc':766 'permit':1439 'person':564 'phase':1304,1765,1788 'photo':483 'pictur':615 'plugin':103,1242 'png':374 'polici':1782 'post':1315,1745 'post-rollout':1314,1744 'posttoolus':1415 'pre':1658,1775,1872 'pre-reserv':1871 'pre-rollout':1657 'prefer':106 'prefix':1289 'present':1169 'preserv':1240,1623 'prevent':1365,1811 'primari':1016 'print':1458 'prior':1596 'procedur':1503 'proceed':224,350,470,1181,1255 'process':39,136,393,712,719,771,797 'produc':1761 'product':566 'proper':81 'properti':96 'purpos':1827 'queri':324 'race':1370 'raw':305,363,498,1063,1094,1106,1422 'raw/.manifest.json':131,145,1079,1542,1558 'raw/articles':329 'raw/articles/article-slug-2026-04-08.md':159 'raw/articles/filename.md':652 'raw/images':421 're':135,216,259,831,869,1571,1685,1709 're-ingest':215,258,1570,1708 're-process':134 're-read':830,868 'read':11,47,55,383,389,504,819,832,835,845,859,870,904,1109,1367,1466,1843 'read-on':1108,1465,1842 'read-use-incr':1366 'read/write':1887 'rebuild':1469 'recomput':1470 'record':232,1136,1534,1751 'recov':1372 'reddish':935 'reddish-brown':934 'refer':25,63,116,744,1023 'referenc':730 'references/frontmatter.md':546 'relev':599,826 'renam':1609 'render':932 'repo':568 'report':208,770 'requir':1343 'research':1832 'reserv':1450,1463,1873 'reset':1484 'resolut':1011 'respect':1847 'rest':1258 'return':1452 'reus':1598,1696,1721 'review':1834 'rollout':1299,1316,1659,1746,1767,1769 'rule':816,1680 'run':288,1164,1187,1418,1493,1792 'safe':1464 'save':298,327,417,477 'say':254,530,701,1008,1032,1037 'scaffold':930 'scan':488,1376 'schema':544,1553 'screenshot':484 'script':1443 'scripts/allocate-address.sh':1167,1345 'search':897,1123 'section':554,1179,1227,1261 'see':970,1039,1552 'segment':319 'sentenc':671 'sequenti':1860 'serial':1817 'session':1149,1798 'sever':1238 'sha256sum':188 'ship':1306 'short':882 'signific':587,796 'silent':1046,1487 'singl':66,352,472,489,724,1784,1863 'single-source-ingest':1862 'single-writ':1783 'skill':112,123,1611 'skill-wiki-ingest' 'skills/wiki/references/css-snippets.md':971 'skim':510 'skip':207,248,525,1128,1139,1176,1229 'slug':313,330,422,442,459 'snippet':946,951 'sourc':5,13,41,53,57,67,138,158,341,353,429,473,490,506,536,542,649,651,654,721,732,739,753,768,773,794,807,1001,1007,1017,1021,1031,1060,1111,1560,1576,1706,1726,1864,1868 'source-agricidaniel' 'space':321 'specif':901 'split':894 'stabl':1272 'stale':982 'stand':1290 'standard':75 'start':268,355,717,1189 'stay':1779 'step':270,357,381,502,706,734 'still':964,1771 'string':325 'strip':292,323 'style':937,960 'sub':607,1801,1822 'sub-ag':1800,1821 'sub-index':606 'summari':537,653,1022 'support':30,1851 'surgic':865 'suspect':1500 'svg':379 'syntax':74,115 'takeaway':514 'target':1591,1719,1733 'text':403,449 'time':798 'titl':92,650,655 'token':301,811 'tool':390,1344,1405,1445 'top':642,1547 'top-level':1546 'topic-agent-skills' 'topic-ai-second-brain' 'topic-autonomous-research' 'topic-claude-code' 'topic-claude-code-skill' 'topic-claude-plugin' 'topic-karpathy-llm-wiki' 'topic-knowledge-graph' 'topic-knowledge-management' 'topic-llm' 'topic-multi-agent' 'topic-obsidian' 'touch':69 'track':125 'tracker':1081 'transcrib':448 'transcript':1076 'treat':1101 'triangl':942 'trigger':36,263,367,492,695 'type':91,430,915 'typic':68,297 'unchang':137,211 'unless':1322 'unrel':1427 'updat':20,172,239,245,559,583,598,610,618,627,663,755,777,876,1143,1613 'url':32,261,267,290,316,342,343 'use':80,212,275,387,480,540,862,896,916,1357,1368,1400,1651 'user':253,264,368,493,517,529,696,715,803,1054,1072 'valid':1226 'valu':1461,1626,1878 'vault':10,468,1172,1245,1361,1408 'vault-meta':1171,1360,1407 'via':1674 'visibl':412,451 'vision':365 'visual':968 'webfetch':276,306 'webp':378 'whether':1577 'whiteboard':482 'wiki':2,9,21,46,51,60,72,880,989,1036,1097,1222,1268,1421,1429,1643 'wiki-ingest':1,50,1096 'wiki-lint':1221 'wiki/concepts/example.md':1563 'wiki/entities/another.md':1566 'wiki/entities/person.md':170 'wiki/folds':1649 'wiki/hot.md':628,820 'wiki/index.md':173,619,836 'wiki/log.md':637 'wiki/overview.md':611 'wiki/sources':539 'wiki/sources/article-slug.md':169 'wikilink':85 'window':809 'without':903,966,1215,1462 'work':965 'would':1412 'write':58,76,243,1402,1509,1819 'writer':1785,1850 'written':1686 'x':775,1005,1038,1195 'xxxxxx':1527 'y':778,1009,1033 'yaml':98,1277 'yet':151 'yyyi':332,346,424,438,645 'yyyy-mm-dd':331,345,423,437,644 'zero':1297 'zero-pad':1296","prices":[{"id":"aa8e14de-755d-4f28-9690-0398cf6ac903","listingId":"ce10d5c4-80ba-4a40-b340-ae696fb0d685","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"AgriciDaniel","category":"claude-obsidian","install_from":"skills.sh"},"createdAt":"2026-05-18T12:53:57.653Z"}],"sources":[{"listingId":"ce10d5c4-80ba-4a40-b340-ae696fb0d685","source":"github","sourceId":"AgriciDaniel/claude-obsidian/wiki-ingest","sourceUrl":"https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/wiki-ingest","isPrimary":false,"firstSeenAt":"2026-05-18T12:53:57.653Z","lastSeenAt":"2026-05-18T18:52:44.479Z"}],"details":{"listingId":"ce10d5c4-80ba-4a40-b340-ae696fb0d685","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"AgriciDaniel","slug":"wiki-ingest","github":{"repo":"AgriciDaniel/claude-obsidian","stars":5150,"topics":["agent-skills","ai","ai-second-brain","autonomous-research","claude-code","claude-code-skill","claude-plugin","karpathy-llm-wiki","knowledge-graph","knowledge-management","llm","multi-agent","obsidian","obsidian-ai","obsidian-plugin","open-source","pkm","rag","second-brain","wiki"],"license":"mit","html_url":"https://github.com/AgriciDaniel/claude-obsidian","pushed_at":"2026-04-24T10:21:48Z","description":"Claude + Obsidian knowledge companion. Persistent, compounding wiki vault based on Karpathy's LLM Wiki pattern. /wiki /save /autoresearch","skill_md_sha":"e71716589237616ebaec4103e8c8cc3eaed22732","skill_md_path":"skills/wiki-ingest/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/wiki-ingest"},"layout":"multi","source":"github","category":"claude-obsidian","frontmatter":{"name":"wiki-ingest","description":"Ingest sources into the Obsidian wiki vault. Reads a source, extracts entities and concepts, creates or updates wiki pages, cross-references, and logs the operation. Supports files, URLs, and batch mode. Triggers on: ingest, process this source, add this to the wiki, read and file this, batch ingest, ingest all of these, ingest this url."},"skills_sh_url":"https://skills.sh/AgriciDaniel/claude-obsidian/wiki-ingest"},"updatedAt":"2026-05-18T18:52:44.479Z"}}