---
name: tnm
description: Управление задачами в Obsidian через плагин TaskNotes. Создание, редактирование, фильтрация и удаление задач с поддержкой проектов, приоритетов, дедлайнов и тегов.
argument-hint: "[действие: create/list/update/delete] [заголовок задачи] [параметры: --project, --status, --priority, --due]"
user-invocable: true
metadata:
  version: "1.0"
  plugin: tasknotes
  api_type: http_rest
---

# Obsidian TaskNotes Skill

## Триггеры активации

Скилл активируется при упоминании:

- **задачи**, **таски**, **task** — в контексте Obsidian
- **TaskNotes** — прямое название плагина
- **дедлайн**, **срок**, **приоритет**, **проект** — в связи с управлением задачами

**Действия-триггеры:** создать задачу, показать задачи, отметить выполненным, что мне делать, список задач, изменить статус

---

## Архитектура TaskNotes

### Принцип: Одна задача = Один файл

Каждая задача — отдельный Markdown-файл в директории `/Tasks` с YAML frontmatter.

### Структура файла задачи

```markdown
---
status: todo | in-progress | done | cancelled
priority: low | medium | high | critical
due: YYYY-MM-DD
project: Название проекта
tags:
  - tag1
  - tag2
created: YYYY-MM-DD
completed: YYYY-MM-DD
estimated_minutes: 30
---

# Заголовок задачи

Описание задачи. Может быть многострочным.

## Подзадачи

- [ ] Подзадача 1
- [x] Подзадача 2 (выполнена)

## Заметки

- Дополнительная информация
- Ссылки на связанные заметки

## Ссылки

- [[Связанная заметка]]
- [Внешняя ссылка](https://example.com)
```

````

---

## Доступные статусы

| Статус        | Описание      | Иконка |
| ------------- | ------------- | ------ |
| `todo`        | К выполнению  | ☐      |
| `in-progress` | В работе      | ◐      |
| `done`        | Выполнена     | ☑      |
| `cancelled`   | Отменена      | ⊘      |
| `blocked`     | Заблокирована | ⊠      |

---

## Команды и параметры

### 1. Создание задачи

```bash
# Базовое создание
tasknotes create "Заголовок задачи"

# Со всеми параметрами
tasknotes create "Ревью PR #123" \
  --project "Backend API" \
  --priority high \
  --due 2026-04-15 \
  --tags "work,code-review" \
  --estimate 60
```

**Параметры:**

- `--project`, `-p` — название проекта (kebab-case)
- `--priority`, `-pr` — `low` | `medium` | `high` | `critical`
- `--due`, `-d` — дата в формате `YYYY-MM-DD`
- `--tags`, `-t` — теги через запятую
- `--estimate`, `-e` — время в минутах
- `--status`, `-s` — начальный статус (по умолчанию: `todo`)

---

### 2. Список задач

```bash
# Все задачи
tasknotes list

# Табличный вид
tasknotes list --table

# Фильтрация
tasknotes list --status in-progress
tasknotes list --project "Backend API"
tasknotes list --priority high,critical
tasknotes list --due-before 2026-04-15
tasknotes list --due-after 2026-04-01
tasknotes list --tags "work,urgent"
```

**Параметры фильтрации:**

- `--status` — один или несколько через запятую
- `--project` — точное или частичное совпадение
- `--priority` — уровень приоритета
- `--due-before` / `--due-after` — даты для фильтрации
- `--tags` — наличие всех указанных тегов
- `--limit`, `-n` — ограничить количество (по умолчанию: 50)

---

### 3. Обновление задачи

```bash
# Изменить статус
tasknotes update "Ревью PR #123" --status done

# Изменить несколько полей
tasknotes update "Ревью PR #123" \
  --priority critical \
  --due 2026-04-20 \
  --add-tags "urgent"

# Переместить в другой проект
tasknotes update "Ревью PR #123" --project "Frontend"
```

**Специальные флаги:**

- `--add-tags` — добавить теги (не заменить)
- `--remove-tags` — удалить теги
- `--append-notes` — добавить текст в раздел ## Заметки

---

### 4. Удаление задачи

```bash
# Мягкое удаление (в корзину /Tasks/.archive/)
tasknotes delete "Ревью PR #123"

# Полное удаление
tasknotes delete "Ревью PR #123" --permanent
```

---

### 5. Просмотр деталей

```bash
tasknotes show "Ревью PR #123"
```

Выводит полное содержимое файла задачи с форматированием.

---

## Именование файлов

### Формат

`[статус]-[проект]-[slug-заголовка].md`

### Примеры

| Заголовок задачи          | Проект      | Имя файла                           |
| ------------------------- | ----------- | ----------------------------------- |
| Ревью PR #123             | Backend API | `todo-backend-api-review-pr-123.md` |
| Исправить баг авторизации | Auth        | `in-progress-auth-fix-auth-bug.md`  |
| Написать документацию     | Docs        | `done-docs-write-documentation.md`  |

### Правила генерации имени

1. Текущий статус в начале (для сортировки)
2. Проект в kebab-case
3. Заголовок: lowercase, транслитерация кириллицы, сокращение до 5 слов
4. Спецсимволы заменяются на `-`

---

## Представления (Views)

TaskNotes поддерживает различные представления через Obsidian Bases:

| Команда                             | Описание                   |
| ----------------------------------- | -------------------------- |
| `tasknotes view kanban`             | Kanban-доска по статусам   |
| `tasknotes view calendar`           | Календарь с дедлайнами     |
| `tasknotes view agenda`             | Список на сегодня/неделю   |
| `tasknotes view project [название]` | Задачи конкретного проекта |

---

## Интеграция с другими плагинами

### Obsidian Dataview

```dataview
TABLE status, priority, due, project
FROM "Tasks"
WHERE status != "done"
SORT priority DESC, due ASC
```

### Obsidian Calendar

Задачи с `due` автоматически отображаются в Calendar.

### Obsidian Spaced Repetition

Добавь `#flashcards` в заметки задачи для повторения контекста.

---

## Отчёт о выполнении

После любой операции ВСЕГДА выводить:

```markdown
**TaskNotes операция:**

- Действие: [create/update/delete/list]
- Задача: "[заголовок]"
- Файл: `Tasks/[имя-файла].md`
- Изменённые поля: [список]
- Результат: ✅ Успешно / ❌ Ошибка: [описание]
```

---

## Anti-examples (что НЕ делать)

❌ **Плохо:**

```markdown
---
status: "в работе"
priority: "высокий"
due: "15 апреля 2026"
---

Нет заголовка H1
```

Проблемы:

- Статус на русском (должен быть `in-progress`)
- Приоритет на русском (должен быть `high`)
- Дата не в ISO формате
- Отсутствует заголовок `#`

❌ **Плохо:**

```
tasknotes create "Задача" --project "Мой Проект" --tags "работа, срочно"
```

Проблемы:

- Проект с пробелами и заглавными (должен быть `moy-proekt`)
- Теги с пробелами после запятой (должны быть `work,urgent` или `работа,срочно` в kebab-case)

---

## Алгоритм принятия решений

```
ПОЛУЧИЛ ЗАПРОС
│
├─ Упоминание "список задач" / "что мне делать" / "мои задачи"?
│   └─ ДА → tasknotes list [--status todo,in-progress]
│
├─ Упоминание "создать задачу" / "новая задача" / "добавить задачу"?
│   └─ ДА → Определить параметры → tasknotes create "[заголовок]" [параметры]
│
├─ Упоминание "выполнил" / "готово" / "сделал"?
│   └─ ДА → Найти задачу → tasknotes update "[заголовок]" --status done
│
├─ Упоминание "перенести" / "отложить" / "дедлайн"?
│   └─ ДА → tasknotes update "[заголовок]" --due [новая-дата]
│
└─ Неопределённость → Уточнить: "Создать новую задачу или найти существующую?"
```

---

## Примеры полных сценариев

### Сценарий 1: Создание рабочей задачи

**Запрос:** "Создай задачу на ревью кода, проект Backend, высокий приоритет, срок пятница"

**Действие:**

```bash
tasknotes create "Ревью кода API авторизации" \
  --project "backend" \
  --priority high \
  --due 2026-04-17 \
  --tags "work,code-review,api"
```

**Отчёт:**

```markdown
**TaskNotes операция:**

- Действие: create
- Задача: "Ревью кода API авторизации"
- Файл: `Tasks/todo-backend-review-koda-api-avtorizacii.md`
- Изменённые поля: project, priority, due, tags
- Результат: ✅ Успешно
```

### Сценарий 2: Просмотр задач на сегодня

**Запрос:** "Что у меня запланировано на сегодня?"

**Действие:**

```bash
tasknotes list --due 2026-04-11 --status todo,in-progress --table
```

### Сценарий 3: Завершение задачи

**Запрос:** "Я закончил ревью кода"

**Действие:**

```bash
tasknotes update "Ревью кода API авторизации" --status done --completed 2026-04-11
```

---

## Примечания для модели

- **Язык интерфейса:** русский для общения, английский для технических полей (status, priority, project names в kebab-case)
- **Даты:** всегда ISO 8601 (`YYYY-MM-DD`), никаких "завтра"/"пятница" без уточнения
- **Приоритеты:** если пользователь говорит "срочно" → `critical`, "важно" → `high`, "можно потом" → `low`
- **Проекты:** если не указан → спросить или использовать `inbox`
- **Теги:** транслитерировать кириллицу (`работа` → `rabota`), kebab-case
- **Не додумывать:** если не хватает контекста — задать уточняющий вопрос, не генерировать случайные данные

```

---

**Ключевые особенности перевода:**
- Все технические термины (status, priority, due) оставлены как есть (требования API), но с русскими пояснениями
- Примеры запросов адаптированы под русскоязычного пользователя
- Алгоритмы и anti-examples переведены с сохранением строгих правил
- Добавлена транслитерация для работы с кириллическими названиями
```
````
