Parking
Open-source starter kit for an agent-ready Markdown vault with AGENTS.md, templates, skills, logs, and file-safe AI workflows.
npx -y skills add dzhokhov/markdown-agent-vault-ru --skill parkingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Парковка текущего контекста работы для безопасного переключения на другую задачу. Агент анализирует ход беседы, определяет проект и задачу, классифицирует тип прерывания, записывает стоп-кадр в log.md проекта, обновляет plan.md (если появляется blocker или меняется вектор), а затем фиксирует состояние в правильном слое: plan.md §Blockers, tasks.md или delegations/ в зависимости от типа паузы. После этого можно безопасно переключаться или закрывать чат — точка возврата сохранена. ОБЯЗАТЕЛЬНО используй этот скилл, когда пользователь говорит: «паркуйся», «park», «припаркуйся», «стоп-кадр», «запаркуй», «parking», «сохрани точку возврата», «зафиксируй где мы». Также используй проактивно, если видишь, что пользователь переключается на другую тему без явной парковки — предложи: «Сделать стоп-кадр перед переключением?»
SKILL.md
17.5 KB, as published. Nobody here has run it
Парковка контекста
Ты выполняешь протокол парковки — фиксируешь текущее состояние работы, чтобы любая будущая сессия (или возврат в этом же чате) могла восстановить контекст с точки остановки.
Зачем это нужно
Переключение контекста стоит ~23 минуты на восстановление фокуса (исследование Ophir & Nass). Без явной точки возврата исходная задача теряется — особенно когда контекстное окно забивается новым материалом. Парковка решает эту проблему: она создаёт формализованную «хлебную крошку», которая переживает и этот чат, и следующий.
Модель роутинга задач
Парковка работает в рамках task-routing-модели (см. task-routing-methodology-2026-04.md и Правила 10–14 AGENTS.md). Ключевые инварианты:
plan.md— медленный контракт проекта (Goal, Milestones, Blockers, Drift Guard, Contingency). Парковка обязательно меняетplan.md §Blockers, если тип прерывания — BLOCKED или DELEGATED с milestone-impact. Блокеры — first-class сущность плана, не секцияtasks.md. См. §5.4 методологии.tasks.md— execution queue. МаркерPAUSEDидёт сюда только если это NEED_INFO шаг текущего milestone (тактический сбор информации). Размышление («надо разобраться с X») идёт вplan.mdкак open question под milestone, не вtasks.md. СекцииBlockedвtasks.mdнет — она переехала вplan.md §Blockers.01_now/ops/<contour>/delegations/<slug>.md— если парковка произошла потому, что задача делегирована сотруднику, маркер идёт сюда. Если блокирует milestone — параллельно запись вplan.md §BlockersсТип: delegated-work.01_now/personal/tasks.md— личное внешнее обязательство владельца. Парковка не порождает личных строк — это событие маршрутизации, а не тип прерывания.00_inbox/— только для «случайной идеи», у которой нет ни проекта, ни домашнего контура. Опять же — не парковка, а routing.
💡 SPAWNED — категориальная ошибка. Появление новой идеи в ходе работы над основной задачей — не тип прерывания, а событие маршрутизации: идея уходит в свой целевой файл (plan.md другого проекта, personal/tasks.md, 00_inbox/, delegations/), и работа продолжается без парковки. В типах PAUSED этого маркера больше нет.
Протокол (выполняй строго по шагам)
Шаг 1. Определи проект и задачу из контекста беседы
Проанализируй текущий чат и определи:
- Проект: к какому проекту из
01_now/projects/относится работа. Если не относится ни к одному — укажи «вне проекта» и выбери destination по типу (см. Шаг 4): личное →01_now/personal/tasks.md, curiosity →00_inbox/. - Задача: что конкретно делали (не «работали над проектом», а «дописали 3 из 5 пунктов анализа unit-экономики»).
- Точка остановки: на чём именно прервались — максимально конкретно.
- Влияет ли прерывание на вектор проекта? Если да — на Шаге 3 обновляется
plan.md, не толькоlog.md.
Шаг 2. Классифицируй тип прерывания
Определи тип автоматически из контекста разговора. Не спрашивай пользователя, если тип очевиден.
| Маркер | Тип | Когда использовать | Триггер возврата |
|---|---|---|---|
⏸️ BLOCKED | Жду внешнего события / результата из другого проекта / ответа клиента / дедлайна | Мяч не у пользователя, и никакого действия, приближающего результат, у него нет. Включает cross-project dependency и external-event. | Получен ответ / прошёл дедлайн / сработал fallback |
🔀 DELEGATED | Отдал в проработку сотруднику | Задача в работе у делегата, SoT — трекер или delegations/<slug>.md | Результат готов, нужно проверить |
🔍 NEED_INFO | Нужно найти/изучить | У владельца есть action, который приблизит результат (читать, спрашивать, пробовать) — это тактический execution-шаг, не блокер | Информация найдена и структурирована |
⏹️ STOPPED | Просто остановился | Конец сессии, нет конкретного блокера | Следующая сессия по этому проекту |
Правило дизамбигуации BLOCKED vs NEED_INFO: если тип неочевиден — спроси одним коротким вопросом: «У тебя есть действие, которое приблизит результат, или ты просто ждёшь?». Есть действие → NEED_INFO. Нет действия → BLOCKED.
Маркера 💡 SPAWNED больше нет — новая идея/задача не паркуется, а маршрутизируется в свой целевой файл без прерывания основной работы (см. §«Модель роутинга задач» выше).
Шаг 3. Обнови plan.md — first-class слой
Это первый слой записи. Порядок «медленные слои опережают быстрые» (write-protocol.md §5) означает, что plan.md всегда обновляется раньше log.md, tasks.md, delegations/.
По типу прерывания:
| Тип | Что пишется в plan.md |
|---|---|
| ⏸️ BLOCKED | Новая карточка в ## Blockers (Bx, с полями: Открыт, Тип, Ждём, Блокирует, Моё действие, Условие возврата, Fallback, Stale check) + статус каждого затронутого milestone меняется на blocked on Bx |
| 🔀 DELEGATED без milestone-impact | plan.md не меняется — запись идёт только в delegations/<slug>.md |
| 🔀 DELEGATED с milestone-impact (блокирует milestone) | Новая карточка в ## Blockers с Тип: delegated-work, параллельно записи в delegations/<slug>.md |
| 🔍 NEED_INFO тактический | plan.md не меняется — строка идёт в tasks.md §Next |
| 🔍 NEED_INFO стратегический (меняет вектор) | Правка в §Milestones или §Drift Guard — это не блокер, а изменение плана |
| ⏹️ STOPPED | plan.md не меняется — запись только в log.md |
Если первоначальный подход оказался тупиком, scope поменялся, milestone потерял смысл — это всегда правка plan.md в §Milestones / §Drift Guard / §Contingency, а не блокер.
Шаг 4. Запиши стоп-кадр в log.md проекта
Открой 01_now/projects/<project>/log.md и добавь запись в формате:
- YYYY-MM-DD: <МАРКЕР> PAUSED | Задача: <что делали>.
Остановился на: <конкретная точка>.
Причина: <почему переключаемся>.
Действие: <что сделано для разблокировки — кому написал, что делегировал, куда записал идею>.
Вернуться когда: <триггер возврата>.
Нейтральный пример:
- 2026-03-07: BLOCKED PAUSED | Задача: пересчитать модель запуска.
Остановился на: собрал все метрики кроме одного входного показателя.
Причина: нет подтверждённых данных от ответственного.
Действие: записал делегирование в файл ответственного.
Вернуться когда: получу данные или через 3 дня.
Для типа ⏹️ STOPPED формат короче:
- 2026-03-07: ⏹️ STOPPED PAUSED | Задача: <что делали>.
Остановился на: <конкретная точка>.
Следующий шаг: <что делать при возврате>.
Шаг 5. Создай/обнови маркер-задачу в целевом файле
Выбор файла жёстко зависит от типа прерывания:
| Тип | Куда идёт маркер | Формат |
|---|---|---|
⏸️ BLOCKED | <project>/plan.md §Blockers — новая карточка Bx + blocked on Bx на затронутых milestone'ах | карточка блокера со всеми полями (см. Шаг 3) |
🔀 DELEGATED без milestone-impact | Только 01_now/ops/<contour>/delegations/<slug>.md Active | - [ ] YYYY-MM-DD → <суть> [tracker-link] • due: <дата> • [контекст](chat-or-log-ref) |
🔀 DELEGATED с milestone-impact | delegations/<slug>.md Active + plan.md §Blockers Bx (Тип: delegated-work) со ссылкой на строку в delegations | карточка блокера + lean-index строка, двусторонне связанные |
🔀 DELEGATED без трекера | delegations/<slug>.md с пометкой tracker_sot: none + plan.md §Blockers если блокирует milestone | карточка блокера + lean-index без tracker-link |
🔍 NEED_INFO тактический | <project>/tasks.md §Next | - [ ] 🔍 <собрать X> → <что после> (YYYY-MM-DD) |
🔍 NEED_INFO стратегический | <project>/plan.md §Milestones или §Drift Guard | правка плана, не строка-маркер |
⏹️ STOPPED | Только запись в <project>/log.md (см. Шаг 4). tasks.md §Active остаётся как есть | — |
Convergence rule для delegated-work blockers: если сотрудник перестаёт блокировать milestone (делегирование выполнено или больше не критично), блокер закрывается по ritual §5.4.2 методологии — карточка переезжает в ## Blockers — Resolved, статус milestone снимается, строка в delegations/<slug>.md переходит в Done (7d).
Нейтральный пример карточки блокера в plan.md:
### B1 — Недостающий показатель от ответственного
- Открыт: 2026-03-07
- Тип: delegated-work
- Ждём: подтверждённый показатель, чтобы пересчитать модель
- Блокирует: M3
- Моё действие: напомнить ответственному через 3 дня
- Условие возврата: получены подтверждённые данные
- Fallback: взять оценку из последнего отчёта и пометить как приближение
- Stale check: 7 дней
Нейтральный пример параллельной строки в delegations/responsible.md:
- [ ] 2026-03-07 → собрать недостающий показатель [TRACKER-123](url) • due: 2026-03-10 • ссылка на `plan.md#b1`
Шаг 6. Подтверди парковку
Ответь пользователю одним коротким сообщением в формате:
Припарковался. [Проект X] — записал стоп-кадр в log.md, маркер в [целевой файл]. (если применимо) plan.md обновлён: [что изменилось]. Точка остановки: [краткое описание]. Триггер возврата: [условие]. Можем переключаться.
Пример с делегированием:
Припарковался. 2026-example — log.md, делегирование в ops/2026-example/delegations/responsible.md. Точка остановки: собрал все метрики кроме одного показателя. Триггер возврата: ответственный присылает данные или 2026-03-10. Можем переключаться.
Ограничение глубины переключений
Если пользователь уже находится на первом уровне переключения (ушёл от основной задачи A к сервисной B) и хочет нырнуть ещё глубже (задача C) — заблокируй:
«Это второй уровень переключения. Записываю задачу [C] в tasks.md/inbox — вернёмся к ней отдельно. Сейчас заканчиваем [B] или паркуемся и возвращаемся к [A].»
Максимальная допустимая глубина: 1 уровень.
Протокол «длинный чат»
Если в текущем чате уже было 2+ парковки или диалог явно длинный и многотемный — предупреди:
«Чат стал длинным. Рекомендую продолжить в новой сессии — я подхвачу контекст из log.md при вызове /resume.»
Проактивная парковка
Если пользователь начинает говорить о другом проекте/задаче без явной команды парковки, и при этом в текущем чате шла содержательная работа — предложи:
«Вижу, что переключаемся. Сделать стоп-кадр по [текущая задача], чтобы не потерять точку возврата?»
Не навязывай — если пользователь говорит «не надо» или переключение тривиальное (короткий вопрос, не требующий глубокого погружения) — пропусти.