[{"data":1,"prerenderedAt":1057},["ShallowReactive",2],{"ru.code.llm-wiki-obsidian-implementation":3,"ru.code.llm-wiki-obsidian-implementation-surround":1053},{"id":4,"title":5,"body":6,"createdAt":1041,"description":1042,"draft":1043,"extension":1044,"image":1045,"language":1046,"meta":1047,"navigation":228,"path":1048,"read":272,"seo":1049,"stem":1050,"topics":1051,"updatedAt":1041,"__hash__":1052},"content\u002Fru\u002Fcode\u002F19.llm-wiki-obsidian-implementation.md","Как я реализовал LLM-вики в Obsidian",{"type":7,"value":8,"toc":1028},"minimark",[9,19,40,47,52,55,80,95,98,129,132,136,139,142,150,165,171,176,181,186,191,195,198,201,207,210,451,454,458,466,469,475,478,484,487,507,510,549,555,559,565,572,578,581,702,705,718,728,731,736,794,799,829,832,836,839,845,848,854,857,879,882,888,896,900,903,909,912,942,945,962,965,969,975,978,981,1002,1005,1009,1012,1018,1021,1024],[10,11,12,13,18],"p",{},"В ",[14,15,17],"a",{"href":16},"\u002Fru\u002Fcode\u002Fknowledge-compilation-over-rag","прошлой статье"," я объяснил, почему отказался от RAG в Obsidian. Здесь — практическая часть. Как повторить такую же схему у себя: какой skill поставить, какие папки создать, как запускать ingest, как задавать вопросы и как не превратить вики в кашу после третьего источника.",[10,20,21,22,31,32,35,36,39],{},"Я использую ",[14,23,27],{"href":24,"rel":25},"https:\u002F\u002Fgithub.com\u002FAstro-Han\u002Fkarpathy-llm-wiki",[26],"nofollow",[28,29,30],"code",{},"Astro-Han\u002Fkarpathy-llm-wiki",". Это skill для Claude Code, Cursor, Codex и других инструментов, которые понимают стандарт Agent Skills. Он реализует идею LLM-вики: источники складываются в ",[28,33,34],{},"raw\u002F",", агент компилирует из них markdown-страницы в ",[28,37,38],{},"wiki\u002F",", отвечает по ним с цитатами и периодически проверяет вики через lint.",[10,41,42,43,46],{},"Ниже я буду использовать вымышленный пример — ",[28,44,45],{},"Atlas Wiki",". Допустим, это личная вики по исследованию городских пространств. Название не важно. Важно, что тема узкая и долгоживущая.",[48,49,51],"h2",{"id":50},"установить-skill","Установить skill",[10,53,54],{},"Установка библиотеки выглядит так:",[56,57,62],"pre",{"className":58,"code":59,"language":60,"meta":61,"style":61},"language-bash shiki shiki-themes github-light github-dark","npx add-skill Astro-Han\u002Fkarpathy-llm-wiki\n","bash","",[28,63,64],{"__ignoreMap":61},[65,66,69,73,77],"span",{"class":67,"line":68},"line",1,[65,70,72],{"class":71},"sScJk","npx",[65,74,76],{"class":75},"sZZnC"," add-skill",[65,78,79],{"class":75}," Astro-Han\u002Fkarpathy-llm-wiki\n",[10,81,82,83,86,87,90,91,94],{},"В Claude Code, Cursor и OpenCode это основной путь. Для Codex CLI в README проекта указан ручной вариант: скопировать skill в ",[28,84,85],{},".agents\u002Fskills\u002Fkarpathy-llm-wiki\u002F",". Для других агентов принцип тот же: в каталог skills должны попасть ",[28,88,89],{},"SKILL.md"," и папка ",[28,92,93],{},"references\u002F",".",[10,96,97],{},"После установки у агента появляется три операции:",[99,100,101,113,123],"ul",{},[102,103,104,107,108,110,111,94],"li",{},[28,105,106],{},"Ingest"," — забрать источник, сохранить его в ",[28,109,34],{}," и скомпилировать знания в ",[28,112,38],{},[102,114,115,118,119,122],{},[28,116,117],{},"Query"," — прочитать ",[28,120,121],{},"wiki\u002Findex.md",", открыть релевантные страницы и ответить с ссылками.",[102,124,125,128],{},[28,126,127],{},"Lint"," — проверить здоровье вики: индекс, ссылки, raw-ссылки, orphan-страницы и потенциальные противоречия.",[10,130,131],{},"Это не приложение и не плагин для Obsidian. Это инструкция для coding-agent'а. Вся работа происходит через обычные файлы в твоём волте.",[48,133,135],{"id":134},"создать-папку-проекта","Создать папку проекта",[10,137,138],{},"Я не делаю одну глобальную LLM-вики на весь Obsidian. Это плохая идея: слишком много тем, слишком много мусора, слишком дорогой контекст. Вместо этого я создаю отдельную вики под конкретную область.",[10,140,141],{},"Например:",[56,143,148],{"className":144,"code":146,"language":147,"meta":61},[145],"language-text","Wiki\u002FAtlas\u002F\n","text",[28,149,146],{"__ignoreMap":61},[10,151,152,153,155,156,155,158,160,161,164],{},"Первую структуру можно не создавать руками. По спецификации skill сам создаёт ",[28,154,34],{},", ",[28,157,38],{},[28,159,121],{}," и ",[28,162,163],{},"wiki\u002Flog.md"," при первом ingest'е, если их ещё нет. Но я предпочитаю сразу понимать, что должно получиться:",[56,166,169],{"className":167,"code":168,"language":147,"meta":61},[145],"Wiki\u002FAtlas\u002F\n├── raw\u002F\n│   ├── articles\u002F\n│   ├── books\u002F\n│   ├── notes\u002F\n│   └── interviews\u002F\n└── wiki\u002F\n    ├── index.md\n    ├── log.md\n    ├── concepts\u002F\n    ├── places\u002F\n    └── people\u002F\n",[28,170,168],{"__ignoreMap":61},[10,172,173,175],{},[28,174,34],{}," — неизменяемые источники. Туда кладутся статьи, PDF, заметки, транскрипты, экспортированные треды, куски документации. После ingest'а источник лучше не править и не переименовывать. Если нужна новая версия — добавь новый файл.",[10,177,178,180],{},[28,179,38],{}," — скомпилированные статьи. Их поддерживает агент: создаёт новые страницы, обновляет старые, добавляет связи и пишет index.",[10,182,183,185],{},[28,184,121],{}," — карта вики. Агент начинает query с неё.",[10,187,188,190],{},[28,189,163],{}," — журнал операций. Туда пишутся ingest\u002Fquery archive\u002Flint события.",[48,192,194],{"id":193},"добавить-локальные-правила","Добавить локальные правила",[10,196,197],{},"Сам skill универсальный. Но универсальности мало. Для нормальной работы агенту нужно объяснить, что именно считать хорошей страницей в твоей вики.",[10,199,200],{},"Для этого я добавляю локальную инструкцию в корень папки:",[56,202,205],{"className":203,"code":204,"language":147,"meta":61},[145],"Wiki\u002FAtlas\u002FCLAUDE.md\n",[28,206,204],{"__ignoreMap":61},[10,208,209],{},"Пример минимального содержания:",[56,211,215],{"className":212,"code":213,"language":214,"meta":61,"style":61},"language-markdown shiki shiki-themes github-light github-dark","# Atlas Wiki\n\nThis is a topic-specific LLM wiki about urban spaces, city observation, architecture, walking routes, and visual research.\n\n## Scope\n\nUse this wiki only for sources related to urban spaces, photography walks, city patterns, architecture, public transport, signage, and local history.\n\nIgnore unrelated personal notes, work notes, and generic productivity material.\n\n## Wiki Structure\n\n- `wiki\u002Fconcepts\u002F` — reusable concepts, methods, patterns, and recurring observations.\n- `wiki\u002Fplaces\u002F` — city districts, streets, buildings, and locations.\n- `wiki\u002Fpeople\u002F` — photographers, architects, authors, and researchers.\n\n## Writing Rules\n\n- Write wiki pages in Russian.\n- Use standard Markdown.\n- Use relative Markdown links inside `wiki\u002F`.\n- Prefer durable concepts over source-by-source summaries.\n- Keep sources traceable through the `Raw` field.\n- If sources contradict each other, mark the conflict explicitly.\n\n## Query Rules\n\n- Always start from `wiki\u002Findex.md`.\n- Prefer wiki pages over model memory.\n- Answer in Russian.\n- Cite wiki pages with Markdown links.\n","markdown",[28,216,217,223,230,237,242,248,253,259,264,270,275,281,286,300,311,322,327,333,338,346,354,368,376,390,398,403,409,414,427,435,443],{"__ignoreMap":61},[65,218,219],{"class":67,"line":68},[65,220,222],{"class":221},"sq-ep","# Atlas Wiki\n",[65,224,226],{"class":67,"line":225},2,[65,227,229],{"emptyLinePlaceholder":228},true,"\n",[65,231,233],{"class":67,"line":232},3,[65,234,236],{"class":235},"sVt8B","This is a topic-specific LLM wiki about urban spaces, city observation, architecture, walking routes, and visual research.\n",[65,238,240],{"class":67,"line":239},4,[65,241,229],{"emptyLinePlaceholder":228},[65,243,245],{"class":67,"line":244},5,[65,246,247],{"class":221},"## Scope\n",[65,249,251],{"class":67,"line":250},6,[65,252,229],{"emptyLinePlaceholder":228},[65,254,256],{"class":67,"line":255},7,[65,257,258],{"class":235},"Use this wiki only for sources related to urban spaces, photography walks, city patterns, architecture, public transport, signage, and local history.\n",[65,260,262],{"class":67,"line":261},8,[65,263,229],{"emptyLinePlaceholder":228},[65,265,267],{"class":67,"line":266},9,[65,268,269],{"class":235},"Ignore unrelated personal notes, work notes, and generic productivity material.\n",[65,271,273],{"class":67,"line":272},10,[65,274,229],{"emptyLinePlaceholder":228},[65,276,278],{"class":67,"line":277},11,[65,279,280],{"class":221},"## Wiki Structure\n",[65,282,284],{"class":67,"line":283},12,[65,285,229],{"emptyLinePlaceholder":228},[65,287,289,293,297],{"class":67,"line":288},13,[65,290,292],{"class":291},"s4XuR","-",[65,294,296],{"class":295},"sj4cs"," `wiki\u002Fconcepts\u002F`",[65,298,299],{"class":235}," — reusable concepts, methods, patterns, and recurring observations.\n",[65,301,303,305,308],{"class":67,"line":302},14,[65,304,292],{"class":291},[65,306,307],{"class":295}," `wiki\u002Fplaces\u002F`",[65,309,310],{"class":235}," — city districts, streets, buildings, and locations.\n",[65,312,314,316,319],{"class":67,"line":313},15,[65,315,292],{"class":291},[65,317,318],{"class":295}," `wiki\u002Fpeople\u002F`",[65,320,321],{"class":235}," — photographers, architects, authors, and researchers.\n",[65,323,325],{"class":67,"line":324},16,[65,326,229],{"emptyLinePlaceholder":228},[65,328,330],{"class":67,"line":329},17,[65,331,332],{"class":221},"## Writing Rules\n",[65,334,336],{"class":67,"line":335},18,[65,337,229],{"emptyLinePlaceholder":228},[65,339,341,343],{"class":67,"line":340},19,[65,342,292],{"class":291},[65,344,345],{"class":235}," Write wiki pages in Russian.\n",[65,347,349,351],{"class":67,"line":348},20,[65,350,292],{"class":291},[65,352,353],{"class":235}," Use standard Markdown.\n",[65,355,357,359,362,365],{"class":67,"line":356},21,[65,358,292],{"class":291},[65,360,361],{"class":235}," Use relative Markdown links inside ",[65,363,364],{"class":295},"`wiki\u002F`",[65,366,367],{"class":235},".\n",[65,369,371,373],{"class":67,"line":370},22,[65,372,292],{"class":291},[65,374,375],{"class":235}," Prefer durable concepts over source-by-source summaries.\n",[65,377,379,381,384,387],{"class":67,"line":378},23,[65,380,292],{"class":291},[65,382,383],{"class":235}," Keep sources traceable through the ",[65,385,386],{"class":295},"`Raw`",[65,388,389],{"class":235}," field.\n",[65,391,393,395],{"class":67,"line":392},24,[65,394,292],{"class":291},[65,396,397],{"class":235}," If sources contradict each other, mark the conflict explicitly.\n",[65,399,401],{"class":67,"line":400},25,[65,402,229],{"emptyLinePlaceholder":228},[65,404,406],{"class":67,"line":405},26,[65,407,408],{"class":221},"## Query Rules\n",[65,410,412],{"class":67,"line":411},27,[65,413,229],{"emptyLinePlaceholder":228},[65,415,417,419,422,425],{"class":67,"line":416},28,[65,418,292],{"class":291},[65,420,421],{"class":235}," Always start from ",[65,423,424],{"class":295},"`wiki\u002Findex.md`",[65,426,367],{"class":235},[65,428,430,432],{"class":67,"line":429},29,[65,431,292],{"class":291},[65,433,434],{"class":235}," Prefer wiki pages over model memory.\n",[65,436,438,440],{"class":67,"line":437},30,[65,439,292],{"class":291},[65,441,442],{"class":235}," Answer in Russian.\n",[65,444,446,448],{"class":67,"line":445},31,[65,447,292],{"class":291},[65,449,450],{"class":235}," Cite wiki pages with Markdown links.\n",[10,452,453],{},"Да, это выглядит как бюрократия. Но без локальной инструкции агент будет угадывать структуру. А LLM, которая угадывает структуру базы знаний, — это быстрый путь к энтропии.",[48,455,457],{"id":456},"первый-ingest","Первый ingest",[10,459,460,461,463,464,94],{},"Можно дать агенту URL, путь к файлу или просто вставленный текст. Skill сам должен сохранить источник в ",[28,462,34],{},", а потом скомпилировать его в ",[28,465,38],{},[10,467,468],{},"Пример с URL:",[56,470,473],{"className":471,"code":472,"language":147,"meta":61},[145],"Ingest this article into Atlas Wiki:\nhttps:\u002F\u002Fexample.com\u002Fhow-cities-use-signage\n",[28,474,472],{"__ignoreMap":61},[10,476,477],{},"Пример с локальным файлом:",[56,479,482],{"className":480,"code":481,"language":147,"meta":61},[145],"Ingest file `Wiki\u002FAtlas\u002Fraw\u002Farticles\u002F2026-04-30-city-signage.md` into Atlas Wiki.\n",[28,483,481],{"__ignoreMap":61},[10,485,486],{},"При ingest'е skill делает две разные операции, и это важно:",[488,489,490,499],"ol",{},[102,491,492,498],{},[493,494,495,496],"strong",{},"Fetch в ",[28,497,34],{}," — сохраняет источник как markdown-файл.",[102,500,501,506],{},[493,502,503,504],{},"Compile в ",[28,505,38],{}," — создаёт или обновляет скомпилированные страницы.",[10,508,509],{},"Шаблон raw-файла в skill выглядит примерно так:",[56,511,513],{"className":212,"code":512,"language":214,"meta":61,"style":61},"# Source Title\n\n> Source: URL or origin description\n> Collected: 2026-04-30\n> Published: 2026-04-25\n\nOriginal content below.\n",[28,514,515,520,524,530,535,540,544],{"__ignoreMap":61},[65,516,517],{"class":67,"line":68},[65,518,519],{"class":221},"# Source Title\n",[65,521,522],{"class":67,"line":225},[65,523,229],{"emptyLinePlaceholder":228},[65,525,526],{"class":67,"line":232},[65,527,529],{"class":528},"s9eBZ","> Source: URL or origin description\n",[65,531,532],{"class":67,"line":239},[65,533,534],{"class":528},"> Collected: 2026-04-30\n",[65,536,537],{"class":67,"line":244},[65,538,539],{"class":528},"> Published: 2026-04-25\n",[65,541,542],{"class":67,"line":250},[65,543,229],{"emptyLinePlaceholder":228},[65,545,546],{"class":67,"line":255},[65,547,548],{"class":235},"Original content below.\n",[10,550,551,552,554],{},"Смысл ",[28,553,34],{}," — сохранить источник достаточно близко к оригиналу. Не переписывать мнение автора. Не превращать статью в summary. Просто убрать мусор форматирования и оставить текст, из которого потом можно восстановить происхождение знания.",[48,556,558],{"id":557},"как-выглядит-скомпилированная-статья","Как выглядит скомпилированная статья",[10,560,561,562,564],{},"После ingest'а агент создаёт или обновляет страницы в ",[28,563,38],{},". Важно: файл называется не по источнику, а по концепту.",[10,566,567,568,571],{},"Например, статья ",[28,569,570],{},"how-cities-use-signage.md"," может породить страницу:",[56,573,576],{"className":574,"code":575,"language":147,"meta":61},[145],"wiki\u002Fconcepts\u002Fwayfinding-signage.md\n",[28,577,575],{"__ignoreMap":61},[10,579,580],{},"Страница строится по шаблону skill:",[56,582,584],{"className":212,"code":583,"language":214,"meta":61,"style":61},"# Wayfinding Signage\n\n> Sources: Example Magazine, 2026-04-25\n> Raw: [How Cities Use Signage](..\u002F..\u002Fraw\u002Farticles\u002F2026-04-30-how-cities-use-signage.md)\n\n## Overview\n\nWayfinding signage is the layer of visual navigation that helps people understand where they are, where they can go, and how to move through a city without asking for help.\n\n## Key Principles\n\n...\n\n## See Also\n\n- [Public Space Legibility](public-space-legibility.md)\n- [Transit Maps](..\u002Fplaces\u002Ftransit-maps.md)\n",[28,585,586,591,595,600,619,623,628,632,637,641,646,650,655,659,664,668,686],{"__ignoreMap":61},[65,587,588],{"class":67,"line":68},[65,589,590],{"class":221},"# Wayfinding Signage\n",[65,592,593],{"class":67,"line":225},[65,594,229],{"emptyLinePlaceholder":228},[65,596,597],{"class":67,"line":232},[65,598,599],{"class":528},"> Sources: Example Magazine, 2026-04-25\n",[65,601,602,605,609,612,616],{"class":67,"line":239},[65,603,604],{"class":528},"> Raw: [",[65,606,608],{"class":607},"svl0z","How Cities Use Signage",[65,610,611],{"class":528},"](",[65,613,615],{"class":614},"sgANj","..\u002F..\u002Fraw\u002Farticles\u002F2026-04-30-how-cities-use-signage.md",[65,617,618],{"class":528},")\n",[65,620,621],{"class":67,"line":244},[65,622,229],{"emptyLinePlaceholder":228},[65,624,625],{"class":67,"line":250},[65,626,627],{"class":221},"## Overview\n",[65,629,630],{"class":67,"line":255},[65,631,229],{"emptyLinePlaceholder":228},[65,633,634],{"class":67,"line":261},[65,635,636],{"class":235},"Wayfinding signage is the layer of visual navigation that helps people understand where they are, where they can go, and how to move through a city without asking for help.\n",[65,638,639],{"class":67,"line":266},[65,640,229],{"emptyLinePlaceholder":228},[65,642,643],{"class":67,"line":272},[65,644,645],{"class":221},"## Key Principles\n",[65,647,648],{"class":67,"line":277},[65,649,229],{"emptyLinePlaceholder":228},[65,651,652],{"class":67,"line":283},[65,653,654],{"class":235},"...\n",[65,656,657],{"class":67,"line":288},[65,658,229],{"emptyLinePlaceholder":228},[65,660,661],{"class":67,"line":302},[65,662,663],{"class":221},"## See Also\n",[65,665,666],{"class":67,"line":313},[65,667,229],{"emptyLinePlaceholder":228},[65,669,670,672,675,678,680,684],{"class":67,"line":324},[65,671,292],{"class":291},[65,673,674],{"class":235}," [",[65,676,677],{"class":607},"Public Space Legibility",[65,679,611],{"class":235},[65,681,683],{"class":682},"s2frl","public-space-legibility.md",[65,685,618],{"class":235},[65,687,688,690,692,695,697,700],{"class":67,"line":329},[65,689,292],{"class":291},[65,691,674],{"class":235},[65,693,694],{"class":607},"Transit Maps",[65,696,611],{"class":235},[65,698,699],{"class":682},"..\u002Fplaces\u002Ftransit-maps.md",[65,701,618],{"class":235},[10,703,704],{},"Вот здесь и происходит отличие от RAG. Векторная база хранила бы чанки исходной статьи. LLM-вики хранит уже обработанное знание: концепт, связи, источники, конфликты, ссылки на соседние страницы.",[10,706,707,708,155,711,155,714,717],{},"Один источник может обновить несколько страниц. Например, статья про городскую навигацию может затронуть ",[28,709,710],{},"wayfinding-signage",[28,712,713],{},"public-space-legibility",[28,715,716],{},"street-furniture"," и страницу конкретного района. Это нормально. Вики должна копить связи, а не складывать каждый источник в отдельный ящик.",[48,719,721,722,160,725],{"id":720},"проверить-indexmd-и-logmd","Проверить ",[28,723,724],{},"index.md",[28,726,727],{},"log.md",[10,729,730],{},"После ingest'а я всегда смотрю два файла.",[10,732,733,735],{},[28,734,121],{}," должен получить новую или обновлённую строку:",[56,737,739],{"className":212,"code":738,"language":214,"meta":61,"style":61},"# Knowledge Base Index\n\n## Concepts\n\nConcepts and recurring patterns in urban research.\n\n| Article | Summary | Updated |\n|---------|---------|---------|\n| [Wayfinding Signage](concepts\u002Fwayfinding-signage.md) | Visual navigation systems that help people move through the city. | 2026-04-30 |\n",[28,740,741,746,750,755,759,764,768,773,778],{"__ignoreMap":61},[65,742,743],{"class":67,"line":68},[65,744,745],{"class":221},"# Knowledge Base Index\n",[65,747,748],{"class":67,"line":225},[65,749,229],{"emptyLinePlaceholder":228},[65,751,752],{"class":67,"line":232},[65,753,754],{"class":221},"## Concepts\n",[65,756,757],{"class":67,"line":239},[65,758,229],{"emptyLinePlaceholder":228},[65,760,761],{"class":67,"line":244},[65,762,763],{"class":235},"Concepts and recurring patterns in urban research.\n",[65,765,766],{"class":67,"line":250},[65,767,229],{"emptyLinePlaceholder":228},[65,769,770],{"class":67,"line":255},[65,771,772],{"class":235},"| Article | Summary | Updated |\n",[65,774,775],{"class":67,"line":261},[65,776,777],{"class":235},"|---------|---------|---------|\n",[65,779,780,783,786,788,791],{"class":67,"line":266},[65,781,782],{"class":235},"| [",[65,784,785],{"class":607},"Wayfinding Signage",[65,787,611],{"class":235},[65,789,790],{"class":682},"concepts\u002Fwayfinding-signage.md",[65,792,793],{"class":235},") | Visual navigation systems that help people move through the city. | 2026-04-30 |\n",[10,795,796,798],{},[28,797,163],{}," должен получить запись операции:",[56,800,802],{"className":212,"code":801,"language":214,"meta":61,"style":61},"## [2026-04-30] ingest | How Cities Use Signage\n- Updated: wiki\u002Fconcepts\u002Fwayfinding-signage.md\n- Updated: wiki\u002Fconcepts\u002Fpublic-space-legibility.md\n",[28,803,804,815,822],{"__ignoreMap":61},[65,805,806,809,812],{"class":67,"line":68},[65,807,808],{"class":221},"## [",[65,810,811],{"class":607},"2026-04-30",[65,813,814],{"class":221},"] ingest | How Cities Use Signage\n",[65,816,817,819],{"class":67,"line":225},[65,818,292],{"class":291},[65,820,821],{"class":235}," Updated: wiki\u002Fconcepts\u002Fwayfinding-signage.md\n",[65,823,824,826],{"class":67,"line":232},[65,825,292],{"class":291},[65,827,828],{"class":235}," Updated: wiki\u002Fconcepts\u002Fpublic-space-legibility.md\n",[10,830,831],{},"Если этих двух следов нет, ingest сделан плохо. Без индекса агенту нечего читать при query. Без лога ты через неделю не поймёшь, откуда взялись изменения.",[48,833,835],{"id":834},"задавать-вопросы-к-вики","Задавать вопросы к вики",[10,837,838],{},"Query должен быть явно направлен в конкретную вики. Не “что я знаю про навигацию”, а:",[56,840,843],{"className":841,"code":842,"language":147,"meta":61},[145],"What do I know about wayfinding signage in Atlas Wiki?\n",[28,844,842],{"__ignoreMap":61},[10,846,847],{},"или по-русски:",[56,849,852],{"className":850,"code":851,"language":147,"meta":61},[145],"Что я знаю про городскую навигацию в Atlas Wiki?\n",[28,853,851],{"__ignoreMap":61},[10,855,856],{},"Агент в этот момент делает так:",[488,858,859,864,867,870,873,876],{},[102,860,861,862,94],{},"Читает ",[28,863,121],{},[102,865,866],{},"Находит релевантные страницы.",[102,868,869],{},"Открывает эти страницы.",[102,871,872],{},"Синтезирует ответ.",[102,874,875],{},"Даёт ссылки на wiki-страницы.",[102,877,878],{},"Не меняет файлы без явного запроса.",[10,880,881],{},"Последний пункт критичен. Query не должен переписывать базу знаний. Это чтение. Если ответ получился полезным, его можно отдельно сохранить:",[56,883,886],{"className":884,"code":885,"language":147,"meta":61},[145],"Save this answer as an archived query in Atlas Wiki.\n",[28,887,885],{"__ignoreMap":61},[10,889,890,891,893,894,94],{},"Тогда skill создаст отдельную страницу-архив, обновит ",[28,892,724],{}," и добавит запись в ",[28,895,727],{},[48,897,899],{"id":898},"запускать-lint","Запускать lint",[10,901,902],{},"Когда страниц становится больше двадцати-тридцати, вики начинает немного расползаться. Это нормально. Для этого есть lint:",[56,904,907],{"className":905,"code":906,"language":147,"meta":61},[145],"Lint Atlas Wiki.\n",[28,908,906],{"__ignoreMap":61},[10,910,911],{},"По спецификации skill auto-fix применяется только к детерминированным вещам:",[99,913,914,923,926,929,935],{},[102,915,916,917,919,920,922],{},"файл есть в ",[28,918,38],{},", но его нет в ",[28,921,724],{},";",[102,924,925],{},"запись в индексе ведёт в несуществующий файл;",[102,927,928],{},"markdown-ссылка сломана, но правильный файл можно найти однозначно;",[102,930,931,934],{},[28,932,933],{},"Raw","-ссылка указывает не туда;",[102,936,937,938,941],{},"в ",[28,939,940],{},"See Also"," есть очевидно битые ссылки.",[10,943,944],{},"А вот спорные вещи skill должен только докладывать:",[99,946,947,950,953,956,959],{},[102,948,949],{},"противоречия между страницами;",[102,951,952],{},"устаревшие claims;",[102,954,955],{},"missing conflict annotations;",[102,957,958],{},"orphan-страницы;",[102,960,961],{},"концепты, которые часто упоминаются, но не имеют отдельной страницы.",[10,963,964],{},"Это правильное разделение. Агент может чинить механику. Но смысловые решения лучше не отдавать автопилоту.",[48,966,968],{"id":967},"что-лучше-не-автоматизировать","Что лучше не автоматизировать",[10,970,971,972,974],{},"Самая большая ошибка — повесить file watcher на ",[28,973,34],{}," и делать ingest автоматически при каждом новом файле. Звучит удобно, но это плохая идея.",[10,976,977],{},"Ingest — это не конвертация формата. Это редакторское решение. Агент выбирает, какие концепты создать, какие страницы обновить, какие связи поставить и где отметить конфликт источников. Если это происходит фоном, база начинает дрейфовать. Ты замечаешь проблему только через месяц, когда половина страниц уже написана в странной логике.",[10,979,980],{},"Мой рабочий режим такой:",[488,982,983,986,989,992,999],{},[102,984,985],{},"Я выбираю один источник.",[102,987,988],{},"Запускаю ingest.",[102,990,991],{},"Смотрю diff.",[102,993,994,995,160,997,94],{},"Проверяю ",[28,996,724],{},[28,998,727],{},[102,1000,1001],{},"Только потом считаю источник обработанным.",[10,1003,1004],{},"Да, это медленнее. Зато база остаётся управляемой.",[48,1006,1008],{"id":1007},"минимальный-рецепт","Минимальный рецепт",[10,1010,1011],{},"Если собрать всё в короткую инструкцию, получается так:",[56,1013,1016],{"className":1014,"code":1015,"language":147,"meta":61},[145],"1. Поставить skill:\n   npx add-skill Astro-Han\u002Fkarpathy-llm-wiki\n\n2. Создать папку:\n   Wiki\u002FAtlas\u002F\n\n3. Добавить локальную инструкцию:\n   Wiki\u002FAtlas\u002FCLAUDE.md\n\n4. Запустить первый ingest:\n   Ingest this article into Atlas Wiki: \u003CURL>\n\n5. Проверить:\n   wiki\u002Findex.md\n   wiki\u002Flog.md\n   wiki\u002F\u003Ctopic>\u002F\u003Carticle>.md\n\n6. Задавать вопросы:\n   What do I know about X in Atlas Wiki?\n\n7. Периодически чистить:\n   Lint Atlas Wiki.\n",[28,1017,1015],{"__ignoreMap":61},[10,1019,1020],{},"Это и есть вся система. Никакой векторной базы, отдельного сервера, embeddings pipeline и синхронизации индекса между машинами. Только markdown, agent skill и дисциплина вокруг ingest'а.",[10,1022,1023],{},"Для личной базы знаний это оказалось гораздо практичнее RAG. Не потому что RAG плох сам по себе, а потому что в моём случае задача другая. Мне не нужно быстро доставать случайные куски из огромного корпуса. Мне нужно, чтобы знания по узкой теме накапливались, связывались и оставались читаемыми без агента.",[1025,1026,1027],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sq-ep, html code.shiki .sq-ep{--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .svl0z, html code.shiki .svl0z{--shiki-default:#032F62;--shiki-default-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline}html pre.shiki code .sgANj, html code.shiki .sgANj{--shiki-default:#22863A;--shiki-default-text-decoration:underline;--shiki-dark:#85E89D;--shiki-dark-text-decoration:underline}html pre.shiki code .s2frl, html code.shiki .s2frl{--shiki-default:#24292E;--shiki-default-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline}",{"title":61,"searchDepth":225,"depth":225,"links":1029},[1030,1031,1032,1033,1034,1035,1037,1038,1039,1040],{"id":50,"depth":225,"text":51},{"id":134,"depth":225,"text":135},{"id":193,"depth":225,"text":194},{"id":456,"depth":225,"text":457},{"id":557,"depth":225,"text":558},{"id":720,"depth":225,"text":1036},"Проверить index.md и log.md",{"id":834,"depth":225,"text":835},{"id":898,"depth":225,"text":899},{"id":967,"depth":225,"text":968},{"id":1007,"depth":225,"text":1008},"2026-05-11","Практическая инструкция по запуску LLM-вики в Obsidian на базе karpathy-llm-wiki: установка skill, структура папок, ingest, query и lint.",false,"md","llm-wiki-obsidian-implementation.jpg","ru",{},"\u002Fru\u002Fcode\u002Fllm-wiki-obsidian-implementation",{"title":5,"description":1042},"ru\u002Fcode\u002F19.llm-wiki-obsidian-implementation",null,"TMkGyEQmb0dDT0XOFxuTUoftwjujiu41Qc8nZOfJ5RA",[1054],{"title":1055,"path":16,"stem":1056,"draft":1043,"children":-1},"Компиляция знаний: почему я не использую RAG в Obsidian","ru\u002Fcode\u002F18.knowledge-compilation-over-rag",1779086429272]