diff --git a/03 Resources/Claude code setup Azure.md b/03 Resources/SOPs/Claude code setup Azure.md similarity index 100% rename from 03 Resources/Claude code setup Azure.md rename to 03 Resources/SOPs/Claude code setup Azure.md diff --git a/03 Resources/claude code best practice.md b/03 Resources/SOPs/claude code best practice.md similarity index 100% rename from 03 Resources/claude code best practice.md rename to 03 Resources/SOPs/claude code best practice.md diff --git a/05 Aimpress LTD/linux_docker_apache_vim_cheatsheet.html b/05 Aimpress LTD/linux_docker_apache_vim_cheatsheet.html deleted file mode 100644 index 332e9d0..0000000 --- a/05 Aimpress LTD/linux_docker_apache_vim_cheatsheet.html +++ /dev/null @@ -1,511 +0,0 @@ - - - - - -Linux · Docker · Apache2 · Vim — Шпаргалка - - - -
-
-
-

Linux · Docker · Apache2 · Vim

-

Шпаргалка для быстрого старта

-
-
- -
- - - - -
- -
- -
- - -
-
-
Навигация и файлы
-
-
ls -laПоказать все файлы с деталями (включая скрытые)
-
pwdГде ты сейчас находишься
-
cd /path/to/dirПерейти в папку
-
cd ..На уровень выше
-
cd ~Домой (в /home/user)
-
mkdir mydirСоздать папку
-
mkdir -p a/b/cСоздать вложенные папки сразу
-
rm file.txtУдалить файл
-
rm -rf ./folder⚠️ Удалить папку со всем содержимым
-
cp src destСкопировать файл
-
mv old newПереместить / переименовать
-
cat file.txtВывести содержимое файла
-
tail -f log.txtСмотреть лог в реальном времени
-
grep "слово" fileНайти строку в файле
-
find / -name "*.log"Найти файлы по имени
-
chmod 755 script.shВыдать права на выполнение
-
chown user:group fileСменить владельца файла
-
-
-
-
-
Процессы и система
-
-
ps auxПоказать все запущенные процессы
-
topМонитор процессов (q — выйти)
-
htopКрасивый монитор процессов
-
kill 1234Убить процесс по PID
-
kill -9 1234Убить намертво (если обычный kill не помог)
-
df -hСколько места на дисках
-
du -sh ./dirСколько весит папка
-
free -hСколько памяти
-
uname -aВерсия системы и ядра
-
uptimeСколько сервер работает без перезагрузки
-
whoamiПод каким юзером ты работаешь
-
sudo suСтать root-ом
-
historyИстория команд
-
Ctrl + CОстановить текущий процесс
-
Ctrl + ZОтправить процесс в фон
-
Ctrl + LОчистить экран терминала
-
-
-
-
-
Сеть и SSH
-
-
ssh user@ipПодключиться по SSH
-
ssh -p 2222 user@ipSSH на нестандартный порт
-
scp file user@ip:/pathСкопировать файл на сервер
-
curl -I https://site.comПроверить HTTP заголовки сайта
-
wget https://url/fileСкачать файл
-
netstat -tulpnКакие порты слушают (занятые)
-
ss -tulpnТо же самое, но быстрее
-
ping google.comПроверить соединение
-
ufw statusСтатус файрвола
-
ufw allow 80Открыть порт 80
-
-
-
-
-
Systemd (сервисы)
-
-
systemctl status nginxСтатус сервиса
-
systemctl start nginxЗапустить сервис
-
systemctl stop nginxОстановить сервис
-
systemctl restart nginxПерезапустить сервис
-
systemctl enable nginxАвтозапуск при старте системы
-
journalctl -u nginx -fЛоги сервиса в реальном времени
-
-
-
- - -
-
💡 Большинство команд требуют sudo или добавления себя в группу docker
-
-
Контейнеры
-
-
docker psСписок запущенных контейнеров
-
docker ps -aВсе контейнеры, включая остановленные
-
docker run -d nginxЗапустить контейнер в фоне
-
docker run -it ubuntu bashЗапустить интерактивно с bash
-
docker stop myappОстановить контейнер
-
docker start myappЗапустить остановленный контейнер
-
docker restart myappПерезапустить контейнер
-
docker rm myappУдалить контейнер (должен быть остановлен)
-
docker rm -f myappУдалить контейнер принудительно
-
docker exec -it myapp bashЗайти внутрь работающего контейнера
-
docker logs myappЛоги контейнера
-
docker logs -f myappЛоги в реальном времени
-
docker inspect myappВся инфа о контейнере (JSON)
-
docker statsCPU/RAM всех контейнеров в реальном времени
-
-
-
-
-
Образы
-
-
docker imagesСписок скачанных образов
-
docker pull nginxСкачать образ с Docker Hub
-
docker build -t myapp .Собрать образ из Dockerfile в текущей папке
-
docker rmi nginxУдалить образ
-
docker tag myapp user/myapp:v1Дать образу тег
-
docker push user/myapp:v1Залить образ в Docker Hub
-
-
-
-
-
Docker Compose
-
-
docker compose up -dЗапустить всё из docker-compose.yml в фоне
-
docker compose downОстановить и удалить контейнеры
-
docker compose down -vТо же + удалить volumes (данные!)
-
docker compose logs -fЛоги всех сервисов
-
docker compose psСтатус сервисов
-
docker compose restart appПерезапустить конкретный сервис
-
docker compose buildПересобрать образы
-
docker compose pullОбновить образы
-
-
-
-
-
Чистка мусора
-
-
docker system pruneУдалить всё неиспользуемое
-
docker volume pruneУдалить неиспользуемые volumes
-
docker network lsСписок сетей
-
docker volume lsСписок volumes
-
-
-
- - -
-
-
Управление сервисом
-
-
systemctl status apache2Статус Apache
-
systemctl start apache2Запустить Apache
-
systemctl stop apache2Остановить Apache
-
systemctl restart apache2Перезапустить (разрывает соединения)
-
systemctl reload apache2Перезагрузить конфиг (без разрыва)
-
apachectl configtestПроверить конфиг на ошибки перед перезапуском
-
-
-
-
-
Конфиги и сайты
-
-
/etc/apache2/Главная папка конфигов
-
/etc/apache2/apache2.confОсновной конфиг сервера
-
/etc/apache2/sites-available/Доступные конфиги сайтов (все)
-
/etc/apache2/sites-enabled/Включённые сайты (симлинки)
-
a2ensite mysite.confВключить сайт
-
a2dissite mysite.confВыключить сайт
-
a2enmod rewriteВключить модуль rewrite
-
a2dismod rewriteВыключить модуль
-
apache2ctl -MСписок включённых модулей
-
-
-
-
-
Логи
-
-
/var/log/apache2/access.logВсе запросы к серверу
-
/var/log/apache2/error.logОшибки — сюда первым делом
-
tail -f /var/log/apache2/error.logСмотреть ошибки в реальном времени
-
grep "error" /var/log/apache2/error.logНайти все ошибки в логе
-
-
-
-
-
Полезные штуки
-
-
/var/www/html/Корень сайта по умолчанию
-
apachectl -vВерсия Apache
-
apache2 -lСкомпилированные модули
-
a2enmod ssl && a2enmod headersВключить SSL и headers (для HTTPS)
-
certbot --apache -d site.comБесплатный SSL через Let's Encrypt
-
-
-
- - -
-
🚨 Главное правило: Vim имеет режимы. По умолчанию ты в NORMAL — нажатие букв выполняет команды, а НЕ пишет текст.
-
- NORMAL — навигация и команды - INSERT — ввод текста - VISUAL — выделение - COMMAND — команды с двоеточием -
-
-
Войти в режим ввода текста (из NORMAL)
-
-
iНачать писать перед курсором
-
aНачать писать после курсора
-
oСоздать новую строку ниже и начать писать
-
OСоздать новую строку выше и начать писать
-
Esc⬅️ Выйти из любого режима обратно в NORMAL
-
-
-
-
-
Сохранить и выйти (из NORMAL, нажать :)
-
-
:wСохранить файл
-
:qВыйти (если нет несохранённых изменений)
-
:wqСохранить и выйти
-
:q!Выйти БЕЗ сохранения (бросить изменения)
-
:wq!Сохранить и выйти принудительно (read-only)
-
ZZСохранить и выйти (быстрый способ)
-
-
-
-
-
Навигация (NORMAL режим)
-
-
h j k l← ↓ ↑ → (или просто стрелки)
-
ggПерейти в начало файла
-
GПерейти в конец файла
-
:42Перейти на строку 42
-
Ctrl + FСтраница вниз
-
Ctrl + BСтраница вверх
-
0В начало строки
-
$В конец строки
-
wСледующее слово
-
bПредыдущее слово
-
-
-
-
-
Редактирование (NORMAL режим)
-
-
ddВырезать (удалить) строку
-
yyСкопировать строку
-
pВставить после курсора
-
PВставить перед курсором
-
uОтменить действие (Undo)
-
Ctrl + RВернуть отменённое (Redo)
-
xУдалить символ под курсором
-
dwУдалить слово
-
cwЗаменить слово (удаляет и входит в INSERT)
-
rЗаменить один символ (без входа в INSERT)
-
.Повторить последнее действие
-
-
-
-
-
Поиск и замена
-
-
/словоНайти вперёд (Enter — перейти)
-
?словоНайти назад
-
nСледующее совпадение
-
NПредыдущее совпадение
-
:s/old/new/gЗаменить в текущей строке
-
:%s/old/new/gЗаменить во всём файле
-
:%s/old/new/gcТо же, но с подтверждением каждой замены
-
-
-
- - -
- - - - diff --git a/99 Daily/2026-04-15.md b/99 Daily/2026-04-15.md index 56b6f7f..e045af5 100644 --- a/99 Daily/2026-04-15.md +++ b/99 Daily/2026-04-15.md @@ -10,3 +10,4 @@ tags: [daily] - 10:13 (26min) — Claude Code session ended | `memory-compiler` - 10:17 — Claude Code session ended | `memory-compiler` - 10:21 — Claude Code session ended | `memory-compiler` +- 10:26 — Claude Code session ended | `memory-compiler` diff --git a/raw/Karpathy's Obsidian RAG + Claude Code = CHEAT CODE.md b/raw/_processed/Karpathy's Obsidian RAG + Claude Code = CHEAT CODE.md similarity index 100% rename from raw/Karpathy's Obsidian RAG + Claude Code = CHEAT CODE.md rename to raw/_processed/Karpathy's Obsidian RAG + Claude Code = CHEAT CODE.md diff --git a/raw/Как сделать Claude Code в 10 раз умнее (бесплатно) по методу Карпати с помощью Obsidian.md b/raw/_processed/Как сделать Claude Code в 10 раз умнее (бесплатно) по методу Карпати с помощью Obsidian.md similarity index 100% rename from raw/Как сделать Claude Code в 10 раз умнее (бесплатно) по методу Карпати с помощью Obsidian.md rename to raw/_processed/Как сделать Claude Code в 10 раз умнее (бесплатно) по методу Карпати с помощью Obsidian.md diff --git a/wiki/_master-index.md b/wiki/_master-index.md index b9d0a40..fa076f9 100644 --- a/wiki/_master-index.md +++ b/wiki/_master-index.md @@ -18,6 +18,7 @@ This 3-hop pattern works for hundreds of articles without vector search. | Topic | Description | Articles | |-------|-------------|----------| +| [[wiki/obsidian-rag/_index\|obsidian-rag/]] | Karpathy's LLM wiki method — Obsidian RAG, setup, vs true RAG | 3 | | [[wiki/concepts/_index\|concepts/]] | Atomic knowledge extracted from Claude Code sessions | 0 | | [[wiki/connections/_index\|connections/]] | Cross-cutting insights linking 2+ concepts | 0 | | [[wiki/qa/_index\|qa/]] | Filed answers to queries (saved with `--file-back`) | 0 | diff --git a/wiki/obsidian-rag/_index.md b/wiki/obsidian-rag/_index.md new file mode 100644 index 0000000..0a9f4c7 --- /dev/null +++ b/wiki/obsidian-rag/_index.md @@ -0,0 +1,10 @@ +# Obsidian RAG — Topic Index + +> Knowledge base methodology: Karpathy's LLM wiki approach using Obsidian + Claude Code. +> No vector database. No embeddings. Just structured markdown with smart indexing. + +| Article | Summary | Source | Updated | +|---------|---------|--------|---------| +| [[wiki/obsidian-rag/karpathy-llm-wiki-approach\|karpathy-llm-wiki-approach]] | Core concept: compiler analogy, 4 verbs, why it works | raw/ | 2026-04-15 | +| [[wiki/obsidian-rag/obsidian-rag-vs-true-rag\|obsidian-rag-vs-true-rag]] | When to use Obsidian RAG vs vector database RAG | raw/ | 2026-04-15 | +| [[wiki/obsidian-rag/claude-code-obsidian-setup\|claude-code-obsidian-setup]] | Practical setup: tools, hooks, vault structure, commands | raw/ | 2026-04-15 | diff --git a/wiki/obsidian-rag/claude-code-obsidian-setup.md b/wiki/obsidian-rag/claude-code-obsidian-setup.md new file mode 100644 index 0000000..b24ae39 --- /dev/null +++ b/wiki/obsidian-rag/claude-code-obsidian-setup.md @@ -0,0 +1,92 @@ +--- +title: "Claude Code + Obsidian Setup" +aliases: [obsidian-setup, karpathy-setup, wiki-setup] +tags: [claude-code, obsidian, setup, workflow] +sources: [raw/Karpathy's Obsidian RAG + Claude Code = CHEAT CODE.md, raw/Как сделать Claude Code в 10 раз умнее.md] +created: 2026-04-15 +updated: 2026-04-15 +--- + +# Claude Code + Obsidian Setup + +Practical setup guide for the Karpathy-style LLM knowledge base. + +## Key Takeaways + +- CLAUDE.md is the most important file — it defines Claude as "the librarian" +- Web Clipper + Local Images Plus = one-click article ingestion +- `_master-index.md` is the LLM's table of contents — always kept current +- Sessions auto-captured via hooks → compiled to wiki after 21:00 + +## Tools Required + +| Tool | Purpose | Required | +|------|---------|---------| +| Obsidian | Frontend (graph view, search, browse) | Yes | +| Claude Code | LLM backend (compile, query, audit) | Yes | +| Obsidian Web Clipper | Browser extension → raw/ | Recommended | +| Local Images Plus | Downloads images from clipped pages | Recommended | +| claude-memory-compiler | Auto-captures sessions → daily logs | Installed | + +## Vault Structure (This Vault) + +``` +VadymSamoilenko/ +├── raw/ ← dump articles here (Web Clipper target) +│ └── _processed/ ← compiled files move here +├── wiki/ ← LLM's domain, do not edit manually +│ ├── _master-index.md +│ ├── obsidian-rag/ ← example topic folder +│ ├── concepts/ ← auto-generated from sessions +│ ├── connections/ ← auto-generated cross-links +│ └── qa/ ← filed query answers +└── output/ ← query results, reports +``` + +## Hook System (Already Configured) + +| Hook | When | What it does | +|------|------|-------------| +| SessionStart | Every session start | Injects `_master-index.md` + recent daily log | +| SessionEnd | Session ends | Captures transcript → flush.py → daily log | +| PreCompact | Before context compaction | Safety net — saves context | +| PostCompact | After compaction | Haiku writes structured entry to project note | + +Auto-compilation fires after **21:00** when a session ends. + +## The Compile Workflow + +1. Clip article with Web Clipper → lands in `raw/` +2. Open Claude Code, say: **"compile"** +3. Claude reads raw/, creates wiki article, updates `_index.md` and `_master-index.md` +4. Processed file moves to `raw/_processed/` +5. Article appears in Obsidian with wikilinks + +## Query Pattern (3 hops) + +``` +Question → _master-index.md → topic/_index.md → article → answer +``` + +Manual query: +```bash +cd ~/.claude/memory-compiler && uv run python scripts/query.py "your question" +``` + +With auto-filing: +```bash +uv run python scripts/query.py "your question" --file-back +``` + +## Audit Command + +``` +audit the wiki +``` + +Claude reviews for: broken links, orphan articles, contradictions, gaps. Reports without making changes. + +## Related + +- [[wiki/obsidian-rag/karpathy-llm-wiki-approach|Karpathy's LLM Wiki Approach]] +- [[wiki/obsidian-rag/obsidian-rag-vs-true-rag|Obsidian RAG vs True RAG]] diff --git a/wiki/obsidian-rag/karpathy-llm-wiki-approach.md b/wiki/obsidian-rag/karpathy-llm-wiki-approach.md new file mode 100644 index 0000000..ba7c856 --- /dev/null +++ b/wiki/obsidian-rag/karpathy-llm-wiki-approach.md @@ -0,0 +1,70 @@ +--- +title: "Karpathy's LLM Knowledge Base Approach" +aliases: [obsidian-rag, karpathy-wiki, llm-knowledge-base] +tags: [knowledge-management, obsidian, claude-code, workflow] +sources: [raw/Karpathy's Obsidian RAG + Claude Code = CHEAT CODE.md, raw/Как сделать Claude Code в 10 раз умнее.md] +created: 2026-04-15 +updated: 2026-04-15 +--- + +# Karpathy's LLM Knowledge Base Approach + +Andrej Karpathy replaced RAG with a structured Obsidian vault + LLM system. No vector database, no embeddings — just markdown files with smart indexing. + +## Key Takeaways + +- LLMs navigate **index files**, not brute-force search every document +- **3-hop navigation**: `_master-index.md` → topic `_index.md` → article = fast + cheap +- Works for solo operators and small teams up to ~thousands of documents +- Obsidian is the **frontend** (graph view, search, browsing) — Claude Code is the **backend** +- The wiki is the LLM's domain — humans dump raw material, LLM maintains the wiki + +## The Compiler Analogy + +| Stage | Role | Path | +|-------|------|------| +| Raw sources | Input (articles, PDFs, clips) | `raw/` | +| LLM compiler | Processes raw → structured wiki | Claude Code | +| Wiki | The executable — queryable knowledge | `wiki/` | +| Lint | Health checks (broken links, gaps) | periodic audit | +| Query | Runtime — using the knowledge | any session | + +## Why It Works Without RAG + +Claude Code doesn't read every document when answering. It does 3-4 targeted file reads: +1. Read `wiki/_master-index.md` — what topics exist? +2. Read that topic's `_index.md` — what articles are in it? +3. Read 1-3 specific articles +4. Synthesize the answer + +This scales because **the index is the retrieval mechanism**, not semantic similarity search. + +## The Four Verbs + +- **Clip** — Web Clipper → raw/ (one click) +- **Compile** — "compile" in Claude Code → wiki articles appear +- **Query** — ask questions → answers from wiki (3-4 file reads) +- **Audit** — "audit the wiki" → LLM finds gaps, contradictions + +## Vault Structure + +``` +vault/ +├── raw/ — inbox (you own this) +├── wiki/ — LLM's domain +│ ├── _master-index.md +│ └── {topic}/ +│ ├── _index.md +│ └── {article}.md +└── output/ — query results +``` + +## Key Insight: Outputs Compound + +Every query result can be filed back into the wiki (`--file-back`). Questions make the system smarter — the answer becomes part of the knowledge base. + +## Related + +- [[wiki/obsidian-rag/obsidian-rag-vs-true-rag|Obsidian RAG vs True RAG]] +- [[wiki/obsidian-rag/claude-code-obsidian-setup|Claude Code + Obsidian Setup]] +- [[wiki/concepts/_index|Session Knowledge Concepts]] diff --git a/wiki/obsidian-rag/obsidian-rag-vs-true-rag.md b/wiki/obsidian-rag/obsidian-rag-vs-true-rag.md new file mode 100644 index 0000000..6f2089f --- /dev/null +++ b/wiki/obsidian-rag/obsidian-rag-vs-true-rag.md @@ -0,0 +1,56 @@ +--- +title: "Obsidian RAG vs True RAG" +aliases: [rag-comparison, when-to-use-rag] +tags: [rag, knowledge-management, architecture, decision] +sources: [raw/Karpathy's Obsidian RAG + Claude Code = CHEAT CODE.md] +created: 2026-04-15 +updated: 2026-04-15 +--- + +# Obsidian RAG vs True RAG + +When does structured markdown beat a vector database? Almost always, for solo operators. + +## Key Takeaways + +- Obsidian RAG wins for <5,000 docs, solo/small team, personal use +- True RAG wins at scale: millions of docs, multi-user, production apps +- Start with Obsidian — scale to RAG only when you hit the ceiling +- The audit step makes Obsidian RAG self-improving; vector stores are static + +## Where Obsidian RAG Wins + +| Factor | Obsidian RAG | True RAG | +|--------|-------------|----------| +| Setup | 15 minutes | Hours/days | +| Infrastructure | Zero | Vector DB, embeddings, hosting | +| Human-readable | Yes — browse your own wiki | No — black box | +| Self-improving | Yes — audit loop | No | +| Output compound | Yes — answers feed back in | No | +| You get smarter | Yes — you read and learn | No — just get chunks | +| Cost | Free (subscription already paid) | API costs per embed/query | + +## Where True RAG Wins + +| Factor | When RAG is needed | +|--------|-------------------| +| Scale | 5,000+ documents | +| Bulk ingestion | 500 new docs at once — compiling takes hours | +| Semantic fallback | If index misses it, Obsidian misses it | +| Multi-user | Production apps, teams need real infrastructure | +| Speed | Large-scale retrieval needs sub-second response | + +## Decision Rule + +``` +Solo operator or small team + <5,000 docs → Obsidian RAG +Multi-user or production or massive scale → True RAG +Unsure → Start with Obsidian, migrate if needed +``` + +The upgrade path: if you outgrow Obsidian RAG, you have a well-organized markdown wiki that maps cleanly into a vector store. Starting with Obsidian forces good information architecture. + +## Related + +- [[wiki/obsidian-rag/karpathy-llm-wiki-approach|Karpathy's LLM Wiki Approach]] +- [[wiki/obsidian-rag/claude-code-obsidian-setup|Claude Code + Obsidian Setup]]