vault backup: 2026-05-24 15:03:28
This commit is contained in:
@@ -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 нет — сказать явно.
|
||||
|
||||
Reference in New Issue
Block a user