# Claude Code — Единая база знаний

## Контекст
Это база знаний DevOps-инженера Олега Батлаева. Содержит всю информацию об инфраструктуре, проектах и решениях. Синхронизируется между Claude Code, Cursor, Gitea и Nextcloud.

## Язык: русский

## Структура (Obsidian vault)
- `projects/dttb/` — домашний сервер (Proxmox, сеть, все сервисы)
  - `network-topology.md` — полная карта сети 10.0.0.0/24
  - `proxmox-inventory.md` — все VM/LXC
  - `credentials.md` — пароли и ключи
  - `npm-proxy-hosts.md` — домены *.dttb.ru
- `projects/niikn/` — проект НИИКН
- `projects/glavtorg/` — проект Главторг (Windows-сервер, 1С)
- `decisions/` — принятые решения (формат: YYYY-MM-DD-тема.md)
- `snippets/` — полезный код и конфиги
- `notes/` — заметки из чатов с ИИ
- `daily/` — ежедневные заметки (YYYY-MM-DD.md)
- `templates/` — шаблоны (daily-note, decision)

## Obsidian-конвенции
- Используй `[[двойные скобки]]` для внутренних ссылок
- Теги `#topic` для фильтрации
- Daily notes в формате YYYY-MM-DD
- Разделяй факты (decisions/) от рабочих заметок (notes/)

## Инфраструктура
- **Proxmox:** 10.0.0.250 (root/1qaz!QAZ)
- **Gitea:** git.dttb.ru (oleg/OL260380eg) — LXC 136 (10.0.0.189)
- **Nextcloud AIO:** dttb.ru (admin/1qaz!QAZ) — VM 250 (10.0.0.230:11001)
- **NPM:** 10.0.0.195:81 (it5870@yandex.ru/1qaz!QAZ) — LXC 103
- **code-server:** ai.dttb.ru — LXC 132 (10.0.0.179) + OmniRoute + CLIProxy
- **OpenClaw:** bot.dttb.ru — LXC 137 (10.0.0.239) — основной AI-бот

## Синхронизация knowledge-base
См. [[decisions/2026-04-17-nextcloud-sync-schema]]. Три-четыре хоста держат vault в синхроне через Gitea:
- **Mac** `~/knowledge-base` — RW, git + rclone-bisync на Nextcloud (Stop-hook)
- **code-server LXC 132** `/root/knowledge-base` — RW, cron `*/5` `kb-autosync.sh`
- **openclaw LXC 137** `/root/knowledge-base` — RO, cron `*/15` `kb-pull.sh`
- **Nextcloud** `/Knowledge Base/` — сервисная копия для iPhone/веб-доступа

## Частые команды
- Список VM: `sshpass -p '1qaz!QAZ' ssh -o StrictHostKeyChecking=no root@10.0.0.250 qm list`
- Список LXC: `sshpass -p '1qaz!QAZ' ssh -o StrictHostKeyChecking=no root@10.0.0.250 pct list`
- Проверить хост: `ping -c3 <ip>`
- Домены NPM: смотри `projects/dttb/npm-proxy-hosts.md`
- Карта сети: смотри `projects/dttb/network-topology.md`

## Podkop (обход РКН на OpenWrt — почти все объекты)
**Канонический справочник:** `snippets/podkop-reference.md` (модель, списки, конфиг, грабли, инвентарь). Диагностика «не работает»: `snippets/podkop-fakeip-diagnostics.md`.
Кардинальные правила (за них уже наступали на грабли):
- Объект **в РФ** (выход туннеля зарубежный) → списки `russia_inside` / точечные `meta`/`youtube`/`telegram`. **НИКОГДА `russia_outside`** (это РФ-сайты для тех, кто ЗА границей — сломает gosuslugi/ozon/ЕИС).
- РФ-сайт «Доступ ограничен» + FakeIP → убирать лишний **список**, а не лепить per-domain override (overrides слетают при реконфиге podkop).
- Фейкапится ли домен: `ssh root@<router> 'nslookup ДОМЕН 127.0.0.42'` (198.18.x = ушёл в туннель).
- busybox `ip -br` не работает; `disable_quic=1` обязателен; awg0 в firewall WAN-зоне.

## Как работать
- Перед правкой — читай текущее состояние файла
- Не предлагай решения, которые уже описаны в `decisions/`
- При изменениях в инфраструктуре — обнови `proxmox-inventory.md` и `network-topology.md`
- Отвечай кратко, без воды и повторений

## Ресёрч через OmniRoute (бесплатные модели)

При работе над задачами используй двухэтапный подход:
1. **Ресёрч** — вызывай MCP тул `research` для поиска решений через бесплатные модели (Sonnet 4.5, GPT-5.4, Gemini)
2. **Исполнение** — реализуй найденное решение сам (Opus 4.6 через Max подписку)

### MCP тулы omniroute
- `research(query, model?)` — запрос к бесплатной модели. По умолчанию kr/claude-sonnet-4.5
- `research_compare(query, models?)` — сравнить ответы нескольких моделей
- `models_list()` — список доступных бесплатных моделей

### Когда использовать research
- Поиск best practices и подходов к задаче
- Сравнение технологий/решений
- Генерация конфигов и шаблонов для проверки
- НЕ используй для простых задач где ответ очевиден

## Правила
1. Проверяй базу перед работой — решение может уже быть
2. Сохраняй новые решения в `decisions/`
3. Полезный код → `snippets/`
4. Обновляй inventory при изменениях в инфраструктуре
5. Коммить на русском: `git add -A && git commit -m "описание" && git push`

### Рекомендуемые модели для ресёрча через research-тул
- `kr/claude-sonnet-4.5` — основная (Kiro/AWS, бесплатно)
- `cx/gpt-5.4` — альтернатива (Codex/OpenAI, бесплатно)
- `gh/claude-opus-4.6` — GitHub Models (бесплатно, лимиты)
- `gemini-cli/gemini-2.5-pro` — Google Gemini

### CLI скрипт
```bash
research "вопрос"                          # через Sonnet 4.5
research -m cx/gpt-5.4 "вопрос"           # через GPT-5.4
```
