day-open
Day Open protocol. Collects yesterday's commits, issues, notes, calendar, bot QA, Scout, world events — builds DayPlan and compact dashboard.
Install
npx skills add https://github.com/TserenTserenov/FMT-exocortex-template/tree/main/.claude/skills/day-open
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install tserentserenov-fmt-exocortex-template@llmmart
git clone https://github.com/TserenTserenov/FMT-exocortex-template.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole tserentserenov/fmt-exocortex-template collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Day Open (протокол открытия дня)
Роль: R1 Стратег. Два выхода: DayPlan (git, 80+ строк) + compact dashboard (VS Code, 20-30 строк). Порядок: сначала DayPlan → потом compact. Дата: ПЕРВОЕ действие =
date. Режим:memory/day-rhythm-config.yaml→interactive: false= одним блоком, решения → «Требует внимания». Фильтр свежести: issues, видео, заметки — за 2 дня. Urgent — всегда. Issues — только actionable: пропускать read-only репо и upstream без push-доступа. Шаблоны:.claude/skills/day-open/templates.md(читать перед шагами 7a и 7d). Детали шагов:day-open/day-open-details.md
БЛОКИРУЮЩЕЕ: пошаговое исполнение
Day Open = протокол. Блокирующее требование — наблюдаемое свойство: ни один шаг не пропущен молча; каждый шаг отмечается ДО перехода к следующему. Инструмент по умолчанию — список задач сессии (TodoWrite): каждый шаг → отдельная задача (pending → in_progress → completed). TodoWrite недоступен в сессии (клиент не выдал инструмент — штатная ситуация, зависит от сборки клиента) → НЕ останавливаться и НЕ вести протокол «в уме»: сообщить пилоту одной строкой («пошаговый контроль без TodoWrite — веду явную нумерацию»), вести шаги явной нумерацией в ответах («Шаг X из Y: <название> — выполнен») с отметкой каждого перед переходом к следующему, факт замены зафиксировать в отчёте открытия дня. Шаг невозможен → blocked (не пропускать молча). Почему: без явного трекинга агент пропускает шаги из-за загрязнения контекста (SOTA.002). Правило сформулировано через свойство, а не через конкретный инструмент: доступность инструментов контролирует клиент, не шаблон (issues #561, #563).
Алгоритм
0. Extensions (before)
bash .claude/scripts/load-extensions.sh day-open before → Exit 0: Read каждый файл, выполнить. Exit 1: пропустить.
1. Вчера
Прочитать вчерашний DayPlan (только секции «Итоги», «Завтра начать с», «Требует внимания»). Коммиты за вчера по всем $IWE_WORKSPACE/*/ репо.
1b. GitHub Issues
day-open-scaffold.sh (render_repo_issues) делает свип. Critical FMT issues: bash $IWE_SCRIPTS/fmt-critical-alert.sh --no-telegram.
1c. Inbox Triage
Разобрать inbox/fleeting-notes.md, inbox/captures.md, inbox/extraction-reports/*.md (pending-review). Категоризировать по PD.FORM.083. Знание доменное без маркера «Экстрактору» → таблица Кандидаты Экстрактору в DayPlan. Каждая заметка в DayPlan — markdown-ссылка на источник.
2. План на сегодня
Приоритет: (1) carry-over из Day Close → все без обрезки; (2) WeekPlan: in_progress + pending → проверить релевантность, бюджет (Budget Spread); (3) MEMORY.md «РП текущей недели»; (4) mandatory_daily_wps. Слот 1 = саморазвитие.
3. Саморазвитие
Руководство, где остановился, черновики (<governance-repo>/drafts/).
4. Стратегирование
Если strategy_day → DayPlan НЕ создавать, план в WeekPlan. Пропустить шаг 7.
4b. Помидорки
Из day-rhythm-config.yaml → pomodoro.
4c. Календарь
Единый источник — подключённый календарный коннектор (MCP-инструменты календаря; имена зависят от установки, имя содержит «calendar» без учёта регистра, напр. mcp__claude_ai_Google_Calendar__*): список календарей → события каждого за день → секция «Календарь» для DayPlan (Встречи + Напоминания).
Если коннектора нет — фоллбэк: bash $IWE_SCRIPTS/server-calendar.sh YYYY-MM-DD. NB: его ответ «Google credentials не настроены» — факт о скрипте (он ходит за собственным файлом ключей ~/.secrets/google-calendar), не о календаре; при работающем коннекторе скрипт не нужен (issue #581).
Если strategy_day: та же логика для недели (у фоллбэка — --week YYYY-MM-DD) → секция «Календарь недели» в WeekPlan.
5. IWE за ночь (светофор)
cd "$IWE_TEMPLATE" && bash update.sh --check --fast + проверка Base-репо (FPF, SPF, ZP) на отставание от origin. Обновления → «Требует внимания». Scout report не проревьюен → «Требует внимания».
5a2. Видео
video.enabled: true → показать только новые файлы за сегодня (-mtime 0). false → пропустить.
5c. Редактор контента
content_editor.enabled: true → топ-3 черновика из drafts/ по актуальности/свежести/полноте → таблица в DayPlan. Сигнал готовых постов → «Требует внимания». Любое другое значение, включая отсутствие секции content_editor (issue #804) → пропустить.
6. Мир
news.enabled: false → пропустить. Иначе: Feeds/WebSearch → заголовки с URL. Субагент Haiku (context isolation) анализирует заголовки + топ-5 РП → «Вывод: 2-4 предложения» в начале секции.
6b. Требует внимания
Собрать из шагов 1–6. Нет → не выводить.
6b2. Разметка ТВС
Пометить каждый РП режимом Текущее / Важное / Срочное. Хотя бы один блок Важного обязателен. Срочное — только угроза остановки конвейера.
6c. Extensions (after)
bash .claude/scripts/load-extensions.sh day-open after → Exit 0: Read каждый файл, выполнить. Exit 1: пропустить.
7. Запись
⚠️ Перед шагами 7a и 7d:
Read .claude/skills/day-open/templates.md. Файл не найден → сообщить пилоту, не продолжать. Прочитатьparams.yaml → multiplier_enabled(нет ключа =true). Приfalseвыбрать только веткиmultiplier:off: не выводить физическое время, WakaTime, плановый/фактический мультипликатор и соответствующую подсекцию Week Close.
7a. DayPlan: <governance-repo>/current/DayPlan YYYY-MM-DD.md по шаблону из templates.md. Предыдущий → archive/day-plans/.
7a2. Session Log: <governance-repo>/sessions/YYYY-MM-DD.md. Если существует — не перезаписывать.
7b. bash .claude/scripts/load-extensions.sh day-open checks → Exit 0: выполнить верификацию. БЛОКИРУЮЩЕЕ: commit запрещён до прохождения всех checks.
7c. git commit + git push.
7d. Compact dashboard → вывести в VS Code по шаблону «Шаблон compact dashboard» из templates.md.
Files (fmt-exocortex-template)
-
day-open-details.md 18.1 KB
# Day Open — Детали (lazy-load) > Загружать при необходимости деталей по конкретному шагу. > Основной протокол: `day-open/SKILL.md` --- ## Шаг 0: Extensions (before) ```bash bash .claude/scripts/load-extensions.sh day-open before ``` Exit 0 → `Read` каждый файл из вывода (alphabetic) → выполнить содержимое как первые шаги. Exit 1 → пропустить. Поддерживает `extensions/day-open.before.md` И `extensions/day-open.before.<suffix>.md`. --- ## Шаг 1: Вчера Прочитать вчерашний DayPlan (`archive/day-plans/` или `current/`). Взять: - Секцию «Итоги» → 1-3 результата - Секцию «Завтра начать с:» / carry-over РП → **приоритетный вход** для шага 2 - Незакрытые вопросы из «Требует внимания» **Экономия контекста (issue #207):** DayPlan 80–150 строк — НЕ читать целиком. Нужны только три блока: frontmatter (`Read` первых ~10 строк) + секции «Итоги», «Завтра начать с», «Требует внимания» (вытащить `grep`/`awk` по заголовкам или `Read` с offset на конкретные секции). Полный файл — только если структура нестандартная и адресные секции не найдены. Fallback: файла нет → пропустить, работать из коммитов. Коммиты за вчера по всем `$IWE_WORKSPACE/*/` репо. Сопоставить с DayPlan. --- ## Шаг 1b: GitHub Issues `gh issue list` по всем репо (включая вложенным). Фильтр 2 дня. Связь с РП по ключевым словам. **Только actionable:** пропускать read-only и upstream без push-доступа. **Свип делает скрипт, не агент (issue #207):** секцию «Новые задачи в репозиториях» наполняет `day-open-scaffold.sh` (`render_repo_issues`) — он сам пропускает каталоги без `.git` и без GitHub-remote и кэширует ответ на 1ч. Вручную перебирать репо через `gh` не нужно — это удваивает токены на пустых репо. **Critical FMT issues (детектор):** ```bash bash $IWE_SCRIPTS/fmt-critical-alert.sh --no-telegram ``` Выводит markdown-таблицу открытых issues с label `critical`/`deadline` в FMT-exocortex-template. Если `TG_BOT_TOKEN` и `TG_CHAT_ID` настроены — убрать `--no-telegram` для дублирования в Telegram (MVP detection chain для weekend P0). Источник: peer-session 2026-06-01-18. --- ## Шаг 1c: Inbox Triage **Источники:** - `<governance-repo>/inbox/fleeting-notes.md` — свежие заметки - `<governance-repo>/inbox/captures.md` — знаниевые кандидаты (если есть) - `<governance-repo>/inbox/extraction-reports/*.md` со `status: pending-review` — отчёты Экстрактора (если есть) **Категоризация заметок** по PD.FORM.083 (8 категорий): НЭП / Задача / Гипотеза / Знание доменное / Знание реализационное / Черновик / Личные данные / Шум. Полная справка → `memory/feedback_note_review_routing.md`. НЕ удалять. **Carry-over заметок из вчерашнего DayPlan:** проверить по git log (`note-review`), были ли обработаны. Если да → секция «Разбор заметок» = «все обработаны» (с ссылкой на коммит). Не переносить обработанные заметки как carry-over. **Гиперссылки на заметки (БЛОКИРУЮЩЕЕ):** каждая заметка в секции «Разбор заметок» DayPlan — markdown-ссылка на её источник (`inbox/fleeting-notes.md` для свежих, `archive/notes/Notes-Archive.md#L<line>` для обработанных, `inbox/captures.md` для знания). Причина: после Note-Review сама заметка исчезает из fleeting-notes.md, и без ссылки суть заметки теряется через день. Формат строки таблицы: `[«заголовок»](путь#L<line>) (DD мес HH:MM)`. **Знаниевые заметки = кандидаты (БЛОКИРУЮЩЕЕ):** заметки категории «Знание доменное» без явного маркера «Экстрактору» в тексте → в DayPlan секция «Разбор заметок» таблицей **Кандидаты Экстрактору** с колонками «Заметка | Тип | Предполагаемый Pack | Действие». Решение «отдать / оставить» принимает пользователь в живом разборе. Note-Review в `captures.md` пишет ТОЛЬКО при явном маркере. Причина: `captures.md` = очередь Экстрактора; любое знание туда = неявное согласие на формализацию, которое Note-Review делать не уполномочен. --- ## Шаг 2: План на сегодня **Приоритет входов (строгий порядок):** 1. **Carry-over из Day Close (БЛОКИРУЮЩЕЕ):** ВСЕ РП из секции «Завтра начать с» → в план без обрезки. Это решение пользователя — Day Open не фильтрует и не сокращает этот список 2. **WeekPlan (ОБЯЗАТЕЛЬНО):** прочитать WeekPlan → ВСЕ in_progress и pending РП → проверить каждый: релевантен сегодня? Есть дата/дедлайн сегодня? Просрочен? → добавить. **Экономия контекста (issue #207):** WeekPlan 13+ КБ — для шага 2 и Budget Spread нужна только таблица РП (секция «План на неделю» с колонками # / название / h / статус). Читать её адресно (`Read` на секцию или `grep`/`awk` по таблице), а не весь файл. **Budget Spread** (если `budget_spread.enabled: true` в day-rhythm-config.yaml): для каждого РП с бюджетом ≥ `threshold_h`: - `days_left` = оставшиеся рабочие дни из `budget_spread.working_days` (список кодов дня недели: mon/tue/wed/thu/fri/sat/sun), включая сегодня; ключа нет → как раньше, пн–пт (issue #902 — форма недели пользователя зашита в правило не должна была быть, у пользователя с рабочими выходными бюджет дня завышался в полтора раза) - `daily_slot` = round(budget_week / days_left, `rounding`) - Нет бюджета в WeekPlan → пропустить, добавить в «Требует внимания» - РП уже в плане (carry-over) → взять max(carry_over_budget, daily_slot) - Иначе → добавить с daily_slot - Не ограничиваться «2-4 штуки» — план дня отражает реальную нагрузку 3. **MEMORY.md → «РП текущей недели»:** сверить — нет ли РП, упущенных в WeekPlan (ad-hoc, reopened) 4. `day-rhythm-config.yaml → mandatory_daily_wps` — обязательные РП (проверить наличие в плане, если нет → добавить) **Слот 1 = саморазвитие.** Mandatory РП отсутствуют в WeekPlan → «Требует внимания». --- ## Шаг 4c: Календарь (Day Mode) **Единый источник — календарный коннектор** (MCP-инструменты календаря, имена зависят от установки, имя содержит «calendar» без учёта регистра, напр. `mcp__claude_ai_Google_Calendar__*`): получить список календарей, затем события каждого за день. Классификация и формат — те же, что ниже у скрипта. Скрипт ниже — **фоллбэк для установок без коннектора** (issue #581). Его ответ «Google credentials не настроены» означает отсутствие файла ключей `~/.secrets/google-calendar`, а не пустой календарь: при работающем коннекторе заводить файл не требуется. ```bash bash $IWE_SCRIPTS/server-calendar.sh YYYY-MM-DD ``` **Что делает скрипт (фоллбэк):** 1. Запрашивает ВСЕ календари из `calendar_ids` (никаких сокращений — см. `feedback_calendar_query_day_open`). 2. Фильтрует только по `visibility == "private"` (не по названию). 3. Классифицирует: - **Встречи** — несколько участников, длительность >30 мин, нет маркеров задачи. - **Напоминания / Тех-операции** — маркеры 🔧 ✅ ⏰ 🔔 📋 ❗ или ключевые слова (backup, проверить, remind, smoke, test), либо ≤30 мин без участников. 4. Статус относительно текущего времени: ⏳ предстоит / 🔄 идёт / ✅ завершено. 5. Считает свободные блоки ≥1h в рамках 09:00–22:00. **Формат в DayPlan:** две таблицы (Встречи + Напоминания) по шаблону `memory/templates-dayplan.md`. --- ## Шаг 4c-alt: Календарь недели (Week Mode, strategy_day) Если сегодня `strategy_day` (из `day-rhythm-config.yaml`): ```bash bash $IWE_SCRIPTS/server-calendar.sh --week YYYY-MM-DD ``` Результат → вставить в WeekPlan секцию **«Календарь недели W{N}»** (шаблон `memory/templates-dayplan.md`). Позволяет при планировании сразу учитывать встречи и тех-операции. --- ## Шаг 5: IWE за ночь (светофор) **Проверка обновлений IWE:** ```bash cd "$IWE_TEMPLATE" && bash update.sh --check --fast 2>&1 ``` `--fast` (issue #230, v2.5.0) сравнивает только версию манифеста — секунда вместо 2+ минут полного пофайлового сравнения на 300+ файлах. Для полного списка изменений — `bash update.sh --check` (без `--fast`), отдельно, не в составе Day Open. Если доступно обновление → «Требует внимания»: «Доступно обновление IWE → `/iwe-update`». **Проверка Base-репо (FPF, SPF, ZP):** ```bash for repo in FPF SPF ZP; do dir="$IWE_WORKSPACE/$repo" [ -d "$dir/.git" ] && (cd "$dir" && git fetch --quiet 2>/dev/null && behind=$(git rev-list --count HEAD..origin/main 2>/dev/null || echo 0) && [ "$behind" -gt 0 ] && echo "$repo: $behind новых коммитов" || echo "$repo: актуален") done ``` Если есть новые коммиты → «Требует внимания»: «[repo] обновлён upstream → `cd "$IWE_WORKSPACE/[repo]" && git pull --rebase`». После pull FPF/SPF — запустить локальный reindex MCP-индекса, если установлен. --- ## Шаг 5a2: Видео Если `day-rhythm-config.yaml → video.enabled: true`: 1. Сканировать директории из `video.directories` на файлы с расширениями из `video.extensions` 2. Показать ТОЛЬКО новые записи за сегодня (`-mtime 0`). Старые файлы — не оповещать 3. Есть новые → «N новых видеозаписей сегодня (X ГБ)». Нет → «0 новых записей сегодня» 4. `video.enabled: false` → пропустить --- ## Шаг 5c: Редактор контента (DP.ROLE.033 / DP.SC.127) `config: content_editor.enabled` (day-rhythm-config.yaml) — `true` → выполнить, иначе (включая отсутствие секции, issue #804) → пропустить. 1. Читать все `<governance-repo>/drafts/D-NNN-*.md` — frontmatter (`created`, `ttl`, `updated`) + текст. 2. Читать WeekPlan активной недели — R-таблица (инициативы) + S-таблица (неудовлетворённости). 3. Оценить каждый черновик: (a) сильная идея — тезис в 1-2 предл.; (b) актуальность — совпадает с ≥1 R или S по тексту; (c) свежесть — `updated`/`created` ≤14 дней и TTL не истёк; (d) полнота — есть вступление + основная часть. 4. Отобрать топ-3 → секция «Редактор контента» в DayPlan: таблица D-ID / название / R/S-связь / причина. 5. Список застрявших (TTL истёк) отдельно под таблицей. Не архивировать — только показать. 6. Сигнал: проверить репо из `config.content_editor.index_repo` на посты со статусом из `config.content_editor.index_ready_status`. Если ≥ `config.content_editor.publish_signal_threshold` → «Требует внимания»: «N готовых постов в Index — запустить цикл публикации (Ц3)?» 7. Топ-3 формируется каждый день заново — не кэшировать вчерашние рекомендации. --- ## Шаг 6: Мир (новости) Если `day-rhythm-config.yaml → news.enabled: true`: Feeds/WebSearch по настроенным источникам. **Ссылки на источники обязательны** (URL). ### 6a: News Lens (субагент Haiku) После сбора заголовков вызвать субагент (Haiku, context isolation) с промптом: > Ты — разведчик новостей. Тебе дан список заголовков + список активных РП пользователя. > Задача: написать 2-4 предложения «Что из этого важно для работы сегодня?» > Отвечай только на русском. Без перечисления всех новостей — только синтез. > Входные данные: > НОВОСТИ: {заголовки с темами} > АКТИВНЫЕ РП: {топ-5 РП по приоритету из DayPlan} Вывод субагента → поле **«Вывод:»** в начале секции «Мир»: ``` **Вывод:** <2-4 предложения синтеза> **AI/LLM:** [Заголовок 1](url) · [Заголовок 2](url) · ... **Инженерия:** [Заголовок 1](url) · ... **Мировые события:** [Заголовок 1](url) · ... ``` Субагент недоступен / таймаут → пропустить «Вывод», показать только ссылки. --- ## Шаг 6b2: Разметка ТВС Модель ТВС — Текущее · Важное · Срочное (см. различения [[Текущее ≠ Важное ≠ Срочное (ТВС)]]). При сборке плана дня пометить каждый РП/блок режимом ТВС: - **Важное (развитие)** — ставить на максимально защищённый слот (утро, после завтрака): вероятность выполнить выше. Хотя бы один блок важного в день обязателен — иначе копится срочное. - **Текущее (текучка)** — операционка, во вторую половину дня. - **Срочное** — только угроза остановки конвейера; в план дня не закладывается заранее, попадает в течение дня. Проверка нового дела: «может подождать до ближайшей сессии стратегирования?» Да → мимолётная заметка, НЕ срочное. Нет → в план работ на сегодня. Дедлайн или «горит» сам по себе срочным не делает ([[Дедлайн ≠ Срочность]]). --- ## Шаг 7a2: Шаблон Session Log Записать журнал сессии: `<governance-repo>/sessions/YYYY-MM-DD.md`: ```markdown --- type: session-log date: YYYY-MM-DD week: W{N} agent: Стратег / Кодировщик --- # Session Log: YYYY-MM-DD ## Day Open - DayPlan: `current/DayPlan YYYY-MM-DD.md` - Carry-over: [список из вчерашнего «Завтра начать с»] ## Сессии дня > Заполняется в Day Close: список Quick Close сессий + ключевые рубежи ## Day Close > Дописывается в Day Close: ссылка на `archive/day-plans/DayPlan YYYY-MM-DD.md` + 3 варианта плана на завтра ``` Если файл уже существует (двойной Day Open) — не перезаписывать, пропустить. -
SKILL.md 9.9 KB
--- name: day-open description: "Day Open protocol. Collects yesterday's commits, issues, notes, calendar, bot QA, Scout, world events — builds DayPlan and compact dashboard." argument-hint: "" version: 1.1.0 layer: L1 status: active browser_safe: false triggers: slash: [/day-open] phrases: [открывай] routing: executor: sonnet deterministic: false --- # Day Open (протокол открытия дня) > **Роль:** R1 Стратег. **Два выхода:** DayPlan (git, 80+ строк) + compact dashboard (VS Code, 20-30 строк). > **Порядок:** сначала DayPlan → потом compact. **Дата:** ПЕРВОЕ действие = `date`. > **Режим:** `memory/day-rhythm-config.yaml` → `interactive: false` = одним блоком, решения → «Требует внимания». > **Фильтр свежести:** issues, видео, заметки — за 2 дня. Urgent — всегда. > **Issues — только actionable:** пропускать read-only репо и upstream без push-доступа. > **Шаблоны:** `.claude/skills/day-open/templates.md` (читать перед шагами 7a и 7d). > **Детали шагов:** `day-open/day-open-details.md` ## БЛОКИРУЮЩЕЕ: пошаговое исполнение Day Open = протокол. Блокирующее требование — наблюдаемое свойство: **ни один шаг не пропущен молча**; каждый шаг отмечается ДО перехода к следующему. Инструмент по умолчанию — список задач сессии (TodoWrite): каждый шаг → отдельная задача (pending → in_progress → completed). **TodoWrite недоступен в сессии** (клиент не выдал инструмент — штатная ситуация, зависит от сборки клиента) → НЕ останавливаться и НЕ вести протокол «в уме»: сообщить пилоту одной строкой («пошаговый контроль без TodoWrite — веду явную нумерацию»), вести шаги явной нумерацией в ответах («Шаг X из Y: <название> — выполнен») с отметкой каждого перед переходом к следующему, факт замены зафиксировать в отчёте открытия дня. Шаг невозможен → blocked (не пропускать молча). **Почему:** без явного трекинга агент пропускает шаги из-за загрязнения контекста (SOTA.002). Правило сформулировано через свойство, а не через конкретный инструмент: доступность инструментов контролирует клиент, не шаблон (issues #561, #563). ## Алгоритм ### 0. Extensions (before) `bash .claude/scripts/load-extensions.sh day-open before` → Exit 0: Read каждый файл, выполнить. Exit 1: пропустить. <!-- Детали: day-open-details.md § Шаг 0 --> ### 1. Вчера Прочитать вчерашний DayPlan (только секции «Итоги», «Завтра начать с», «Требует внимания»). Коммиты за вчера по всем `$IWE_WORKSPACE/*/` репо. <!-- Детали (адресное чтение, fallback): day-open-details.md § Шаг 1 --> ### 1b. GitHub Issues `day-open-scaffold.sh` (`render_repo_issues`) делает свип. Critical FMT issues: `bash $IWE_SCRIPTS/fmt-critical-alert.sh --no-telegram`. <!-- Детали (фильтры, кэш): day-open-details.md § Шаг 1b --> ### 1c. Inbox Triage Разобрать `inbox/fleeting-notes.md`, `inbox/captures.md`, `inbox/extraction-reports/*.md` (pending-review). Категоризировать по PD.FORM.083. Знание доменное без маркера «Экстрактору» → таблица **Кандидаты Экстрактору** в DayPlan. Каждая заметка в DayPlan — markdown-ссылка на источник. <!-- Детали (гиперссылки, блокирующие правила): day-open-details.md § Шаг 1c --> ### 2. План на сегодня Приоритет: (1) carry-over из Day Close → все без обрезки; (2) WeekPlan: in_progress + pending → проверить релевантность, бюджет (Budget Spread); (3) MEMORY.md «РП текущей недели»; (4) `mandatory_daily_wps`. Слот 1 = саморазвитие. <!-- Детали (Budget Spread алгоритм, экономия контекста): day-open-details.md § Шаг 2 --> ### 3. Саморазвитие Руководство, где остановился, черновики (`<governance-repo>/drafts/`). ### 4. Стратегирование Если `strategy_day` → DayPlan НЕ создавать, план в WeekPlan. Пропустить шаг 7. ### 4b. Помидорки Из `day-rhythm-config.yaml → pomodoro`. ### 4c. Календарь Единый источник — подключённый календарный коннектор (MCP-инструменты календаря; имена зависят от установки, имя содержит «calendar» без учёта регистра, напр. `mcp__claude_ai_Google_Calendar__*`): список календарей → события каждого за день → секция «Календарь» для DayPlan (Встречи + Напоминания). Если коннектора нет — фоллбэк: `bash $IWE_SCRIPTS/server-calendar.sh YYYY-MM-DD`. NB: его ответ «Google credentials не настроены» — факт о скрипте (он ходит за собственным файлом ключей `~/.secrets/google-calendar`), не о календаре; при работающем коннекторе скрипт не нужен (issue #581). Если `strategy_day`: та же логика для недели (у фоллбэка — `--week YYYY-MM-DD`) → секция «Календарь недели» в WeekPlan. <!-- Детали (алгоритм классификации, формат): day-open-details.md § Шаг 4c --> ### 5. IWE за ночь (светофор) `cd "$IWE_TEMPLATE" && bash update.sh --check --fast` + проверка Base-репо (FPF, SPF, ZP) на отставание от origin. Обновления → «Требует внимания». Scout report не проревьюен → «Требует внимания». <!-- Детали (bash-скрипты): day-open-details.md § Шаг 5 --> ### 5a2. Видео `video.enabled: true` → показать только новые файлы за сегодня (`-mtime 0`). `false` → пропустить. <!-- Детали: day-open-details.md § Шаг 5a2 --> ### 5c. Редактор контента `content_editor.enabled: true` → топ-3 черновика из `drafts/` по актуальности/свежести/полноте → таблица в DayPlan. Сигнал готовых постов → «Требует внимания». Любое другое значение, включая отсутствие секции `content_editor` (issue #804) → пропустить. <!-- Детали (полный алгоритм оценки): day-open-details.md § Шаг 5c --> ### 6. Мир `news.enabled: false` → пропустить. Иначе: Feeds/WebSearch → заголовки с URL. Субагент Haiku (context isolation) анализирует заголовки + топ-5 РП → «Вывод: 2-4 предложения» в начале секции. <!-- Детали (промпт субагента, формат секции): day-open-details.md § Шаг 6 --> ### 6b. Требует внимания Собрать из шагов 1–6. Нет → не выводить. ### 6b2. Разметка ТВС Пометить каждый РП режимом Текущее / Важное / Срочное. Хотя бы один блок Важного обязателен. Срочное — только угроза остановки конвейера. <!-- Детали (правила ТВС, различения): day-open-details.md § Шаг 6b2 --> ### 6c. Extensions (after) `bash .claude/scripts/load-extensions.sh day-open after` → Exit 0: Read каждый файл, выполнить. Exit 1: пропустить. ### 7. Запись > ⚠️ **Перед шагами 7a и 7d:** `Read .claude/skills/day-open/templates.md`. Файл не найден → сообщить пилоту, не продолжать. > Прочитать `params.yaml → multiplier_enabled` (нет ключа = `true`). При > `false` выбрать только ветки `multiplier:off`: не выводить физическое время, > WakaTime, плановый/фактический мультипликатор и соответствующую подсекцию Week Close. **7a.** DayPlan: `<governance-repo>/current/DayPlan YYYY-MM-DD.md` по шаблону из `templates.md`. Предыдущий → `archive/day-plans/`. **7a2.** Session Log: `<governance-repo>/sessions/YYYY-MM-DD.md`. Если существует — не перезаписывать. <!-- Шаблон Session Log: day-open-details.md § Шаг 7a2 --> **7b.** `bash .claude/scripts/load-extensions.sh day-open checks` → Exit 0: выполнить верификацию. БЛОКИРУЮЩЕЕ: commit запрещён до прохождения всех checks. **7c.** `git commit` + `git push`. **7d.** Compact dashboard → вывести в VS Code по шаблону «Шаблон compact dashboard» из `templates.md`. <!-- USER-SPACE --> <!-- /USER-SPACE --> -
templates.md 9 KB
> Используется в: `.claude/skills/day-open/SKILL.md` (шаги 7a, 7d). ## Шаблон DayPlan > **Стиль:** collapsible, без `---`, `<b>` в summary. Приоритет = светофор (🔴🟡🟢). Результат = краткое название из Strategy.md. ```markdown --- type: daily-plan date: YYYY-MM-DD week: W{N} status: active agent: Стратег --- # Day Plan: DD месяца YYYY (День недели) <details open> <summary><b>План на сегодня</b></summary> | 🚦 | # | РП | h | Статус | Результат | |----|---|-----|---|--------|-----------| | ⚫ | N | **Саморазвитие** — [тема] | 1-2 | pending | — | | 🔴 | ... | **Название** | X | in_progress | Краткое название | **Бюджет дня:** ~Yh РП всего / ~Xh физ / Плановый мультипликатор ~N.Nx </details> <details> <summary><b>Календарь (DD месяца)</b></summary> | Время | Событие | Длит. | Связь с РП | |-------|---------|-------|------------| | HH:MM | Название | Xh | WP-N / — | ⏱ Свободных блоков ≥1h: [слоты] </details> <details> <summary><b>IWE за ночь (светофор)</b></summary> | Подсистема | Статус | Детали | |------------|--------|--------| | template-sync | 🟢/🔴 | [статус] | | Scout | 🟢/🟡/🔴 | [N находок] | </details> <details> <summary><b>Наработки Scout (разбор)</b></summary> > Отчёт за DD мес — N находок, M capture-кандидатов > **Статус ревью:** ⬜ не проверен / ✅ проверен **Ожидают разбора:** N captures за последние DD дней (без ревью). </details> <details> <summary><b>Разбор заметок</b></summary> > Источник: Note-Review (вчера) или мини-триаж (Day Open шаг 1c). > **Если все обработаны** (проверить git log `note-review`) → написать: «Все заметки обработаны (коммит HASH, N заметок). Carry-over: нет.» > **Если есть необработанные** → таблица ниже. Неразобранное переносится в следующий DayPlan. | Заметка | Тип | Предложение | ✅ | |---------|-----|-------------|---| | «текст» | НЭП / Задача / Черновик / Знание / Шум | → куда | [ ] | </details> <details> <summary><b>Редактор контента</b></summary> > Топ-3 черновика из `drafts/` для работы сегодня. **Топ-3 к работе:** | D-ID | Название | R/S | Причина | |------|----------|-----|---------| | D-??? | Название | R? / S? | Причина готовности | **Застрявшие (TTL истёк):** - D-??? «Название» (ttl: YYYY-MM-DD) — продвинуть / архивировать / обновить TTL? </details> <details> <summary><b>Итоги вчера (DD мес)</b></summary> **Коммиты:** N в M репо | **РП закрыто:** N </details> *Создан: YYYY-MM-DD (Day Open)* ``` ## Шаблон compact dashboard (VS Code) > Короткая сводка для быстрого старта. Подробности — в DayPlan (git). ```markdown ## DD месяца YYYY (День недели) — Day Open **Вчера:** N РП done, N коммитов. Ключевое: #X [название], #Y [название] **Issues:** N открытых в M репо [самые свежие: #X repo, #Y repo] **Календарь:** [события через запятую или «свободен»] **Бюджет:** W{N}: ~Zh РП / ~Yh физ | Сегодня: ~Zh РП / ~Yh физ **ТОС:** [узкое горлышко] | Прогресс: R1 ✅/🔄/⏳, R2 ... ### План дня | 🚦 | # | РП | h | |----|---|-----|---| | ⚫ | N | **Саморазвитие** — [тема] | 1 | | 🔴 | ... | **Название** | X | ### Требует внимания 1. [пункт — если есть] *Нет пунктов → секция не выводится.* > Подробно: [DayPlan YYYY-MM-DD](ссылка на git) ``` ## Шаблон WeekPlan > **Стиль:** collapsible, без `---`, `<b>` в summary. Приоритет = светофор (🔴🟡🟢). Результат = краткое название из Strategy.md (не ID). > **Бюджет:** формат `~Zh РП всего (в том числе Xh на R1-R{N}) / ~Yh физ / Плановый мультипликатор ~N.Nx`. Активные — **жирным**. Done — зачёркнуть: `| ~~#~~ | ~~название~~ | ... |` ```markdown --- type: week-plan week: W{N} date_start: YYYY-MM-DD date_end: YYYY-MM-DD status: draft agent: Стратег --- # WeekPlan W{N}: DD мес — DD мес YYYY <details open> <summary><b>План на неделю W{N}</b></summary> **Фокус:** [1 предложение] **Бюджет:** ~Zh РП всего (в том числе Xh на R1-R{N}) / ~Yh физ / Плановый мультипликатор ~N.Nx > 🔴 критический 🟡 средний 🟢 низкий | 🚦 | # | РП | h | Источник | P | Статус | Результат | |----|---|-----|---|----------|---|--------|-----------| | 🔴 | ... | **Название** — описание | X | R{N} / S-НЭП-X / carry | P3 | in_progress | Краткое название | > **Колонка «Источник» (Сверка РП↔НЭП, WP-196 Ф11):** `R{N}` = приоритет месяца, `S-НЭП-X` = неудовлетворённость, `carry` = перенос. РП без источника — сигнал «зачем это делаем?» > **Колонка «P» (S-25):** проект P1-P6 из `docs/Projects.md` (если применимо). **Сводка:** N РП, Xh. 🔴 Xh (N) 🟡 Xh (N) 🟢 Xh (N) **Off-plan:** [список] ### Time-boxing (PD.METHOD.017) - Маленькие (≤4h): N - Большие (4-15h): N - Open-ended: 0 (запрещены) ### Что НЕ берём в эту неделю и почему - РП X — отложен, причина: ... </details> <details> <summary><b>ТОС + запрос недели</b></summary> > ОДНО ограничение, снятие которого разблокирует наибольшую пропускную способность (PD.METHOD.017 шаг 4). **ТОС:** [одна формулировка] **Запрос недели:** [что нужно от себя или от других] </details> <details> <summary><b>Итоги прошлой недели W{N-1}</b></summary> > **Split (ОПТ-5, WP-297):** факты переехали в `WeekReport W{N-1}`. Здесь только ссылка. См. `current/WeekReport W{N-1} YYYY-MM-DD.md` (ссылка через frontmatter `week_report:`). </details> <details> <summary><b>Стратегическая сверка</b></summary> | ID | Результат | Бюджет | Статус | P | Связанные РП | |----|-----------|--------|--------|---|-------------| | R1 | ... | ... | ... | P3 | WP-X, WP-Y | **ТОС-месяца:** [узкое горлышко] **Расхождения:** [план vs факт] </details> <details> <summary><b>Повестка сессии стратегирования</b></summary> - [ ] Ревью прошлой недели (источник: WeekReport W{N-1}) - [ ] Inbox Triage (недельный) - [ ] НЭП: проверить O1-O{N} - [ ] Стратегическая сверка - [ ] **Применённые критерии отбора РП** (PD.METHOD.017): ТОС + Budget fit + Time-boxing - [ ] **Сверка РП↔НЭП:** для каждого РП источник (R{N} / S-НЭП) - [ ] Видео-ревью (С3) - [ ] Проверка активации + ревью спящих ### Вопросы для обсуждения 1. ... </details> <details> <summary><b>Сверка РП↔НЭП (для Week Close)</b></summary> | РП | Источник (R/S-НЭП) | Результат | Снимает НЭП? | |----|--------------------|-----------|--------------| | ... | ... | ... | да / частично / нет | </details> <details> <summary><b>Рекомендации изменений в НЭП и Стратегию (для Week Close)</b></summary> - **НЭП:** ... - **Strategy.md:** ... </details> <details> <summary><b>Inbox Triage (недельный)</b></summary> [из fleeting-notes, unsatisfied-questions, WP context files] </details> <details> <summary><b>Контент-план W{N}</b></summary> 1. **#NNN Название** — канал, бюджет, дедлайн </details> <details open> <summary><b>План на понедельник DD мес</b></summary> | 🚦 | # | РП | h | Результат | |----|---|-----|---|-----------| </details> *Создан: YYYY-MM-DD (Strategy Session)* ```
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.