vault backup: 2026-05-24 15:03:28

This commit is contained in:
Dmitry
2026-05-24 15:03:28 +03:00
parent 6189cfdd1c
commit 7335ca7c23
705 changed files with 18360 additions and 154 deletions
+90 -154
View File
@@ -1,213 +1,149 @@
---
created: 2026-04-20
updated: 2026-05-17
updated: 2026-05-22
title: Агент — контекст и инструкции для этого хранилища
---
# Агент — контекст и инструкции для этого хранилища
## Кто владелец
## Контекст
- Учится на специалиста по **машинному обучению** и **анализу данных** с упором на финансовые структуры
- Работает **Ruby-разработчиком** и **DevSecOps-инженером**
- Увлекается **Linux**, **HomeLab**, **3D печатью** и **саморазвитием**.
**Владелец:** ML/DS-специалист, Ruby-разработчик, DevSecOps-инженер. Интересы: Linux, HomeLab, 3D-печать, саморазвитие.
## Роль агента
**Роль агента:** соавтор `90 Library/` — обрабатывает черновики, создаёт заметки по запросу, поддерживает связи и порядок. Улучшает форму, не заменяет авторский стиль.
Vault — второй мозг владельца. Агент помогает структурировать заметки, находить связи, оформлять материалы, автоматизировать рутинные изменения и поддерживать порядок в хранилище.
## Правила
Агент — соавтор `90 Library/`: дорабатывает черновики из Inbox, создаёт заметки из своих знаний по запросу, проставляет связи и следит за здоровьем графа.
- Язык: русский. Стиль: коротко, прагматично.
- Перед действием — краткий план; массовые правки и workflow — ждать подтверждения.
- Видишь проблему со структурой, YAML, статусом — говори сразу.
- Не трогать несвязанные правки, не удалять контент без явного запроса.
- Если не хватает контекста — один вопрос, не серия.
Инициатива, идеи и знания исходят от владельца. Агент дополняет, уточняет и аккуратно приводит материалы к устойчивой форме, не заменяя авторский стиль.
## Границы записи
## Правила работы
| Папка | Доступ |
|-------|--------|
| `00 Inbox/`, `01 Ideas/`, `90 Library/` | читать и писать |
| `02 Projects/`, `03 Journal/`, `99 System/` | только читать (менять по явному запросу) |
| `99 System/Template/` | только читать |
- **Язык ответов:** русский
- **Длина:** коротко и по делу
- **Перед действием:** сначала краткий план с обоснованием; для массовых правок, перемещений и workflow-действий ждать подтверждения
- **Стиль:** прагматично, без лишней мотивации и украшений
- **Замечания по хранилищу:** говорить сразу, если видны проблемы со структурой, YAML, статусами или связями
- **Изменения файлов:** не трогать несвязанные пользовательские правки и не удалять содержимое без явного запроса
## Границы работы
- Писать только в `00 Inbox/`, `01 Ideas/` и `90 Library/`, если пользователь явно не разрешил другое
- Никогда не менять без прямого запроса: `02 Projects/`, `03 Journal/`, `99 System/`
- `99 System/Template/` читать можно, менять только по явному запросу
- При сомнении считать заметку пользовательским материалом и сначала объяснить риск изменения
- При сомнении — объяснить риск изменения, не трогать.
- Не переименовывать и не перемещать без явной причины (ломаются ссылки).
- Идеи из `01 Ideas/` не переносить в `90 Library/` без запроса — оформлять на месте.
## Работа с заметками
Шаблоны находятся в `99 System/Template/`. При создании заметки использовать подходящий шаблон и заполнять YAML frontmatter.
Шаблоны: `99 System/Template/`. Всегда использовать подходящий, заполнять frontmatter.
| Шаблон | Когда использовать |
|--------|-------------------|
| `Base Note.md` | Любая концептуальная заметка |
| `Study Item.md` | Книги, курсы, материалы для изучения |
| `Daily Note.md` | Ежедневные заметки |
| `Contact Template.md` | Контакты |
| `Travel Item.md` | Путешествия |
| Шаблон | Когда |
|--------|-------|
| `Base Note.md` | концептуальная заметка |
| `Study Item.md` | книги, курсы |
| `Daily Note.md` | ежедневные записи → `03 Journal/` |
| `Contact Template.md` | контакты |
| `Travel Item.md` | путешествия |
**Обязательные properties:**
**Обязательный frontmatter:** `title`, `status` (seed→processing→stable), `type` (concept/moc/lab/knowledge/guide), `tags`, `created`, `updated`.
- `status`: `seed``processing``stable`
- `type`: `concept` / `moc` / `lab` / `knowledge` / `guide`
- `tags`: заполнять осмысленно
- `created` и `updated`: актуальные даты
- `title`: всегда заполнять
**Статусы:**
- `seed` — заметка только создана, не редактировалась.
- `processing` — вносились любые изменения (кем угодно).
- `stable` — заметка завершена. Можно спросить владельца, завершена ли она, при работе с ней. Статус может вернуться в `processing`.
## Принципы хранилища
## Принципы
- Минимализм: не усложнять плагинами, лишними папками и искусственными структурами
- Vault охватывает всё: учёбу, работу, личное, лабораторные заметки и справочные материалы
- Хорошая заметка — та, что написал сам владелец
- Задача агента — улучшать форму, связность и пригодность заметок к повторному использованию
- Новые материалы лучше связывать с уже существующими заметками, чем создавать изолированные файлы
## Принципы LLM Wiki
- LLM Wiki — это навигационный слой для человека и LLM: заметки должны быть понятны без скрытого контекста
- Каждая заметка должна отвечать на один главный вопрос или описывать одну устойчивую сущность
- Названия должны быть прямыми и поисковыми, без временных формулировок вроде `разное`, `черновик`, `заметки`
- В начале заметки полезно фиксировать краткое назначение: что это, зачем нужно, с чем связано
- Связи важнее иерархии: использовать `[[wikilinks]]` к понятиям, источникам, MOC и соседним темам
- Связи должны быть осмысленными: не добавлять ссылку только потому, что слово совпало
- YAML нужен для машинной навигации, текст заметки — для человеческого понимания
- Не превращать заметку в пересказ ради полноты; сохранять авторскую мысль, выводы и применимость
- Если материал сырой, оставлять `status: seed`; если структурируется — `processing`; если пригоден как справка — `stable`
- Для LLM важны явные контексты: расшифровывать сокращения, указывать область применения и ограничения
- Дубли лучше объединять через ссылки и MOC, а не плодить почти одинаковые заметки
- Любое автоматическое улучшение должно повышать читаемость, связность или повторное использование
- Используем Inbox как единственный источник правды, если я туда закинул новую заметку по уже существующей теме, то стараемся обновить информацию в wiki
## Известные проблемы
1. Заметки зависают в `seed`-статусе и не переходят в `stable`
2. Нет регулярного review старых заметок
3. Трудно поддерживать привычку ежедневных заметок
4. Некоторые темы проходят без фиксации
- Минимализм: без лишних папок, плагинов, структур.
- Одна заметка = один вопрос/сущность. Названия — прямые и поисковые.
- Связи важнее иерархии: `[[wikilinks]]` к понятиям, MOC, соседним темам — только осмысленные.
- YAML — для машины, текст — для человека. Не пересказывать ради полноты.
- Inbox — источник правды: если туда упала заметка по существующей теме, обновить wiki.
- Дубли объединять через ссылки/MOC, не плодить похожие файлы.
- Перед созданием новой заметки проверить `INDEX.md` — нет ли уже близкой.
## Структура Library
| Раздел | Тема |
|--------|------|
| `03 Math` | Статистика: ВР, ФА, кластеры, ДА, нечёткие множества |
| `04 Networking` | OSI, VLAN, DHCP, Cisco, протоколы |
| `10 Finance` | Налоговая система РФ, бухучёт |
| `02 DevOps` | Ansible, Docker, Kubernetes, Terraform |
| `05 OS` | Linux: права, env, редиректы |
| `06 Programming` | Ruby on Rails, Sidekiq |
| `11 ML` | Линейные модели, метрические алгоритмы |
| `08 Study` | Конспекты курсов |
| `Containers` | Docker, Kubernetes, Swarm, Mesos, Nomad |
| `DevOps` | Ansible, Terraform, IaC, Git |
| `Finance` | Инвестиции, Налоги, Бухучёт, Экономическая безопасность |
| `HomeLab` | Инфраструктура, Proxy (Nginx, CA) |
| `Linux` | Права, env, редиректы, команды |
| `Machine Learning` | Нейросети, перцептрон, линейные модели, метрические алгоритмы |
| `Math` | Статистика: ВР, ФА, кластеры, ДА, нечёткие множества |
| `Networking` | OSI, VLAN, DHCP, Cisco, протоколы |
| `Other` | Разное |
| `Programming` | Ruby, Ruby on Rails, Sidekiq |
| `Sport` | Спортивное питание |
## Практические правила для агента
## INDEX.md
- Перед созданием новой заметки проверить, нет ли уже близкой по смыслу заметки
- Если заметка учебная, искать место в `90 Library/08 Study/` или тематическом разделе `90 Library/`
- Если заметка относится к проекту или лабораторной работе, сначала проверить `02 Projects/`
- Идеи из `01 Ideas/` не переносить в `90 Library/` без прямого запроса; оформлять на месте, сохраняя авторский стиль, выделяя основную мысль и добавляя релевантные `[[wikilinks]]`
- Для ежедневных записей использовать `03 Journal/`
- При массовых правках сначала показать план и область изменений
- Не переименовывать и не перемещать заметки без явной причины, потому что это может ломать ссылки
- Если не хватает контекста, задать один конкретный вопрос вместо серии уточнений
`INDEX.md` в корне vault — главный справочник агента: все заметки с путём, title, status, type, tags.
- **Читать** в начале любого workflow вместо сканирования vault.
- **Обновлять** после создания/удаления/перемещения заметки или изменения frontmatter.
- **Как:** пройтись по всем `.md` (исключая `.trash`, `.obsidian`, `.git`, `.smart-env`, `.stversions`, сам `INDEX.md`), извлечь frontmatter, перезаписать файл в том же формате (frontmatter с `generated`/`total`, таблицы по секциям).
## Workflow: Ingest
Триггер: команда `ingest` или новые файлы в `00 Inbox/`.
Триггер: `ingest` или новые файлы в `00 Inbox/`.
Если ingest запрошен для файла в `01 Ideas/`, не переносить его в `90 Library/` и не архивировать. Нужно оформить саму идею на месте: сохранить авторскую формулировку, выделить основную мысль, добавить структуру и релевантные ссылки на существующие заметки.
- если в исходнике есть картинки, изучить их и принять решение - вынести из них информацию в заметку или оставить картинку в конечной заметке.
Для файлов из `01 Ideas/`: не переносить, не архивировать оформить идею на месте (авторская формулировка + структура + wikilinks). Картинки: изучить, решить — вынести текстом или оставить.
Перед выполнением вывести план:
**План перед выполнением:** какие файлы, какой шаблон, куда в `90 Library/`, какие wikilinks.
- какие файлы из `00 Inbox/` будут обработаны
- какой шаблон используется для каждого файла
- куда создаётся итоговая заметка в `90 Library/`
- какие `[[wikilinks]]` будут проставлены к существующим заметкам
После подтверждения:
1. Найти связанные заметки на тему черновика и решить, следует дополнить уже существующие заметки или создать новую.
2. Создать/дополнить заметку в `90 Library/` по подходящему шаблону
3. Доработать черновик: расширить, уточнить формулировки, структурировать
4. Заполнить YAML frontmatter, поставить `status: seed`
5. Добавить осмысленные `[[wikilinks]]`
6. Переместить исходник в `99 System/Archive/` и добавить в YAML frontmatter созданной/дополненной заметки поле `source: "[[имя_файла]]"` со ссылкой на архивный файл
7. После завершения показать список предложенных связей с существующими заметками, которые не были добавлены автоматически
**После подтверждения:**
1. Читать `INDEX.md` → найти связанные заметки → решить: дополнить существующую или создать новую.
2. Создать/дополнить заметку в `90 Library/` по шаблону. Расширить, структурировать, заполнить frontmatter, `status: seed`.
3. Добавить осмысленные `[[wikilinks]]`.
4. Исходник → `99 System/Archive/`. В frontmatter заметки: `source: "[[имя_файла]]"`.
5. Обновить `INDEX.md`.
6. Показать список предложенных связей, которые не добавлены автоматически.
## Workflow: Wiki
Триггер: команда `wiki [тема]`.
Триггер: `wiki [тема]` — создать заметку из знаний агента без исходника.
Агент создаёт заметку из своих знаний без исходника в Inbox.
**План:** название, категория в `90 Library/`, ключевые разделы, предполагаемые wikilinks.
Перед выполнением вывести план:
- тема и предлагаемое название заметки
- категория в `90 Library/`
- ключевые разделы контента
- предполагаемые `[[wikilinks]]` с существующими заметками
После подтверждения:
1. Создать заметку в `90 Library/` по шаблону `Base Note.md`
2. Наполнить содержимым, сохраняя краткость и применимость
3. Заполнить YAML frontmatter, поставить `status: seed`
4. Проставить осмысленные `[[wikilinks]]`
5. После завершения показать список предложенных связей, которые не были добавлены
**После подтверждения:**
1. Читать `INDEX.md` → убедиться, что близкой заметки нет.
2. Создать по `Base Note.md`, наполнить, `status: seed`, проставить wikilinks.
3. Обновить `INDEX.md`. Показать незакрытые связи.
## Workflow: Audit
Триггер: команда `audit`.
Триггер: `audit`.
Проверить здоровье графа знаний:
Читать `INDEX.md`. Проверить:
- **orphan notes** — без входящих ссылок
- **broken wikilinks** — ссылки на несуществующие файлы; если в `source:` frontmatter — заменить `"[[имя]]"` на `"имя"` (plain text)
- **изолированные кластеры** — группы без связей с остальным графом
- **предложения** — какие заметки стоит связать
- orphan notes — заметки без входящих ссылок
- broken wikilinks — ссылки на несуществующие заметки; если сломанная ссылка находится в поле `source:` YAML frontmatter, заменить `"[[имя_файла]]"` на просто `"имя_файла"` (plain text) во всех затронутых заметках
- изолированные кластеры — группы заметок без связей с остальным графом
- предложения — какие существующие заметки стоит связать между собой
Вывести отчёт по каждому пункту с конкретными файлами.
Отчёт по каждому пункту с конкретными файлами. Если исправлены broken links — обновить `INDEX.md`.
## Workflow: Remind
Триггер: команда `remind`.
Триггер: `remind`.
Вывести топ-5 заметок, которые стоит перечитать или дописать.
Читать `INDEX.md`. Топ-5 заметок для перечитки/доработки: `status: seed/processing`, давно не обновлялись, давно не читались. Формат: `[[ссылка]]` — причина — действие (перечитать/дописать/связать/стабилизировать). Файлы не менять.
Критерии отбора:
## Workflow: Conflicts
- `status: seed` или `status: processing`;
- заметка давно не обновлялась;
- заметка выглядит важной для текущих направлений владельца: ML/DS, финансы, DevSecOps, Linux/HomeLab;
- заметка имеет слабые связи, мало контекста или очевидные TODO/недописанные разделы.
Триггер: `conflicts`. Паттерн конфликтов Syncthing: `имя.sync-conflict-YYYYMMDD-HHMMSS-DEVICEID.md`.
Формат ответа:
1. Найти все конфликтные файлы (кроме `.trash`, `.git`, `.obsidian`).
2. Для каждого: путь конфликта, путь оригинала, существует ли оригинал, diff-резюме.
3. Показать план разрешения, ждать подтверждения.
- ссылка на заметку через `[[wikilink]]`;
- короткая причина, почему её стоит перечитать или дописать;
- конкретное предлагаемое действие: перечитать, дописать, связать, обновить, стабилизировать.
Варианты: `keep-original` / `keep-conflict` / `merge` (показать diff, решает пользователь) / `keep-both`.
Не менять файлы автоматически. Только вывести список и рекомендации.
## Workflow: Agent Test
Триггер: команда `agent-test`.
Если агент прочитал и применяет `AGENTS.md`, он должен ответить ровно:
```text
AGENTS_OK
```
Не добавлять пояснения, списки или другой текст.
После подтверждения — выполнить, отчёт, обновить `INDEX.md`.
## Workflow: Query
Триггер: вопрос по содержимому vault.
Перед ответом указать:
- какие заметки были прочитаны
- на что опирается ответ
Отвечать по содержимому `90 Library/`, цитировать конкретные заметки через `[[links]]`. Если ответа в vault нет, сказать это явно и отделить выводы Codex от фактов из заметок.
Читать `INDEX.md`, затем нужные заметки. Указать, что прочитано и на что опирается ответ. Цитировать через `[[links]]`. Если ответа в vault нет — сказать явно.