# Obsidian Daily Append

> Добавляет запись в сегодняшнюю daily-заметку (мысль, событие, встреча, TODO, узел): определяет тип, вставляет в нужный раздел, создаёт файл при отсутствии. ОБЯЗАТЕЛЬНО срабатывай на «добавь в сегодняшнюю/daily», «запиши в дневник», «зафиксируй в today».

- Skill: `jtprogru/obsidian-daily-append-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add jtprogru/obsidian-daily-append-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jtprogru/obsidian-daily-append-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: jtprogru (https://skillmd.com/u/jtprogru)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jtprogru/obsidian-daily-append-2

---


# obsidian-daily-append

Добавляет данные в ежедневную заметку текущего дня. Структура заметки нетривиальная — нельзя просто аппендить в конец файла, нужно роутить по разделам и сохранять стиль. Семантика хранилища, тегов и frontmatter — см. `.agents/rules/`.

**Когда НЕ использовать:** полноценная атомарная заметка — `obsidian-ingest`; ревью недели/месяца — `obsidian-journal-review`; запись про прошедший/будущий день — вручную; разбор большой заметки — `obsidian-ingest` / `obsidian-split-note`.

---

## Алгоритм

### 1. Путь и существование файла

Путь: `05. Дневник/YYYY/MM/YYYY-MM-DD.md`, дата — **сегодняшняя** (`currentDate` в системном контексте). Не пиши в прошедшие/будущие дни без явного запроса.

Если файл существует → шаг 2. Если нет → спроси: «Заметки на сегодня (`YYYY-MM-DD.md`) ещё нет. Создать её по шаблону и добавить туда данные?» После «да» — создай по разделу «Создание новой заметки» ниже, затем шаг 2.

### 2. Определи тип данных

| Тип | Признаки | Целевой раздел |
|-----|----------|----------------|
| **Быстрая мысль / наблюдение** | Короткая идея, инсайт без глубокого разбора, эмоция | `### Мысли вслух` |
| **Событие / факт дня** | «Принял таблетку», «встретил X», «получил письмо» | `### Мысли вслух` (по умолчанию) или отдельный блок, если крупное |
| **Встреча / созвон** | Участник, формат (1:1, синк, демо) | `### Встреча с [[@nick (Имя)]]` или `### 1:1 с …` |
| **Ссылка на новую атомарную заметку** | «Оформил мысль», «вынес в заметку», даёт wikilink | `### Заметка дня` |
| **Разбор / узел / инсайт** | «Разобрал узел», глубокая саморефлексия | `### Узел №N — <тема>` (N — следующий по счёту) |
| **TODO / решение** | «Не забыть», «надо сделать», «решил, что…» | callout `> [!todo]` под подходящим разделом или в `### Открытые узлы — что дальше` |

### 3. Уточняющие вопросы — только при реальной неясности

**Задавай уточняющий вопрос только когда тип записи или место вставки реально неясны; если всё ясно — вставляй молча.** Если запрос можно разнести по 2+ типам — один вопрос с вариантами лучше неправильной вставки. Максимум два вопроса; короткие и конкретные, не «расскажи поподробнее».

Что имеет смысл спросить, когда чего-то не хватает: связь (проект/MOC/человек wikilink-ом), контекст мысли; для встречи — с кем именно и итог одной строкой; для атомарной — wikilink и краткая аннотация «почему важна сегодня»; для узла — главный сдвиг рамки и связанные заметки; для TODO — срок и к какому проекту/узлу относится. Если что-то уже дано в запросе — не переспрашивай.

### 4. Сформируй фрагмент

Стиль — по `content-style.md`: русский, личный тон, без «вы», wikilinks на людей/проекты/MOC, имена людей `[[@nick (Имя Фамилия)]]`, callout-ы `> [!todo]` / `> [!info]` / `> [!warning]` где уместно.

**Шаблоны фрагментов:**

**Мысль / событие:**
```
<1–3 предложения от первого лица или безлично, с wikilinks где уместно>
```

**Встреча:**
```
#### Встреча с [[@nick (Имя)]]

<1–3 предложения: контекст, итог, связанные темы через wikilinks>
```

**Ссылка на атомарную:**
```
Оформил мысль: [[Название атомарной заметки]] — <краткая аннотация, почему важна сегодня>.
```

**Узел разбора:**
```
#### Узел №N — <короткая тема>

Заметка: [[Название атомарной заметки]] (если есть)

<2–4 предложения: главный сдвиг рамки, ключевая находка, связь с другими узлами>
```

**TODO** (контекст опционален — однострочный TODO это норма):
```
> [!todo] **<срок>** — <конкретное действие>.
```

### 5. Вставь в нужный раздел

Дневник читается сверху вниз как календарь: что записано раньше — выше. Новая запись всегда идёт **ниже** существующих и никогда не вклинивается между ними.

**Раздел есть.** Найди последний непустой блок раздела — абзац, пункт списка, callout, вложенный `####`-блок — и добавь фрагмент через пустую строку после него, до следующего заголовка того же или более высокого уровня. Завершающий `> [!todo]` не якорь конца раздела: новый фрагмент встаёт после него.

`old_string` для `Edit` бери по последней строке существующего блока, а не по заголовку раздела — вставка «сразу после заголовка» и есть та самая запись в начало.

```
# было                      # стало
### Мысли вслух             ### Мысли вслух

<утренний абзац>            <утренний абзац>

                            <новый фрагмент>
```

**Раздела нет.** Создай его в конце `## Дневник` — после последнего существующего раздела, перед следующим `##`-заголовком или в конце файла. Порядок разделов в заметке равен порядку их появления за день; фиксированного канонического порядка у daily нет. Не двигай уже существующие разделы ради «приведения к правильному виду».

**Раздел единственный.** Перед созданием — `grep -n "^### <название>" "<путь>"`. Нашлось — пиши в существующий, дубль не заводи.

Хронология держится на уровне записей внутри раздела и на уровне появления разделов. Если «Заметка дня» завелась днём, а вечером пришла новая мысль, она уйдёт в «Мысли вслух» выше «Заметки дня» — это нормально: раздел это тема, а не время.

**Используй `Edit`, не `Write`** — никогда не перезаписывай файл целиком.

### 6. Покажи план до вставки

Перед `Edit` — короткий план (файл, тип, раздел, preview фрагмента) и подтверждение. Исключение: пользователь в текущем запросе явно сказал «без подтверждения», «делай сразу» — тогда сразу вставка; на прошлые сессии исключение не распространяется.

### 7. Отчитайся

Кратко: что добавлено, в какой раздел, какие связи. Если мысль глубокая и тянет на атомарку — предложи `obsidian-ingest` отдельно.

---

## Создание новой заметки

Шапку руками не собирай — дёргай тот же шаблон, который Obsidian применяет при создании ежедневной заметки: `_Система/1. Шаблоны/Ежедневная заметка.md` (он же прописан в `periodic-notes` → `daily.template`). Навигационные wikilinks считает Templater из имени файла, поэтому расхождения между скиллом и шаблоном не возникает — правится шаблон, скилл ничего не знает о его содержимом.

```bash
mkdir -p "05. Дневник/<YYYY>/<MM>"
obsidian templater:create-from-template \
  template="_Система/1. Шаблоны/Ежедневная заметка.md" \
  file="05. Дневник/<YYYY>/<MM>/<YYYY-MM-DD>.md"
```

Успех — команда печатает путь созданного файла. Три правила вокруг вызова:

- **Проверь существование файла до вызова.** Команда не перезаписывает и не отказывает — она молча создаёт дубль `<YYYY-MM-DD> 1.md`. Файл на месте → сразу шаг 2 алгоритма.
- **Свежесозданная папка не видна Obsidian с первого раза.** После `mkdir -p` первый вызов падает с `Error: Failed to create note from template`; повтори его один раз, второй проходит. Два провала подряд — проблема не в папке, иди в fallback.
- **Нужен запущенный Obsidian.** Не запущен, CLI молчит, Templater выключен — fallback ниже, и скажи об этом в отчёте.

После создания — продолжи с шага 2 алгоритма.

### Fallback: шапка руками

Только когда CLI недоступен. Блок ниже — копия шаблона на момент написания скилла, он может разойтись с актуальным; при первой возможности пересоздай заметку через Templater.

```markdown
---
tags:
- journal/daily
aliases: []
---

**< [[<вчера-YYYY-MM-DD>|Вчера]] | [[<YYYY-Www>|Неделя]] | [[<YYYY-MMM>|Месяц]] | [[<завтра-YYYY-MM-DD>|Завтра]] >**

## Дневник

> [!info] Записывай не только рабочие мысли, но и свои собственные

```

**Расчёт wikilinks навигации:**

- Вчера: `<сегодня - 1 день>` в формате `YYYY-MM-DD`
- Неделя: `YYYY-Www`, где `ww` — ISO-номер недели сегодняшней даты с ведущим нулём (например, `2026-W19`)
- Месяц: `YYYY-MMM`, где `MMM` — `M` + двузначный номер месяца (например, `2026-M05`)
- Завтра: `<сегодня + 1 день>` в формате `YYYY-MM-DD`

```bash
date -v-1d +%Y-%m-%d  # вчера (BSD/macOS)
date -v+1d +%Y-%m-%d  # завтра
date +%Y-W%V          # ISO-неделя (формат W##)
date +%Y-M%m          # месяц
```

