From 824f99c14b2a9937726a535523369d516a54d254 Mon Sep 17 00:00:00 2001 From: Anton Semenov Date: Fri, 15 May 2026 12:08:42 +0300 Subject: [PATCH] feat: initial dream-core-start plugin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Skill 'старт' — handoff протокол між сесіями Dream Core. - skills/start/SKILL.md: 10 steps Part 1 (старт сесії) + 8 steps Part 2 (закриття) - userConfig: memory_dir + project_dir for cross-machine portability - Paths parameterized via ${MEMORY_DIR} / ${PROJECT_DIR} placeholders - License: MIT --- .claude-plugin/plugin.json | 32 ++++++ .gitignore | 3 + LICENSE | 21 ++++ README.md | 41 +++++++ skills/start/SKILL.md | 221 +++++++++++++++++++++++++++++++++++++ 5 files changed, 318 insertions(+) create mode 100644 .claude-plugin/plugin.json create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 skills/start/SKILL.md diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..ee93093 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,32 @@ +{ + "name": "dream-core-start", + "version": "1.0.0", + "description": "Handoff-протокол між сесіями Claude Code для проекту Dream Core. Skill 'старт' читає память проекту в чіткому порядку при старті нової сесії та структуровано закриває попередню через master-документ NEXT_SESSION_START_HERE.md (4 секції: робота / спостереження / Claude / Антон).", + "author": { + "name": "Anton Semenov", + "email": "anton.semenov.ser@gmail.com" + }, + "repository": "https://git.oleks.space/anton/claude-plugin-dream-core-start.git", + "license": "MIT", + "keywords": [ + "dream-core", + "session-handoff", + "memory", + "russian", + "productivity" + ], + "userConfig": { + "memory_dir": { + "type": "string", + "title": "Project memory directory", + "description": "Абсолютний шлях до каталогу пам'яті проекту, де живе NEXT_SESSION_START_HERE.md, MEMORY.md, dream-core.md, session_*.md, known_issues/, roadmap/. На Windows: C:\\Users\\\\.claude\\projects\\\\memory. На POSIX: $HOME/.claude/projects//memory.", + "default": "~/.claude/projects/C--Users-anton/memory" + }, + "project_dir": { + "type": "string", + "title": "Dream Core project directory", + "description": "Абсолютний шлях до коріню проекту Dream Core (терминал-агента), де лежать CLAUDE.md, scripts/protected_hashes.json, тощо.", + "default": "C:\\pro\\terminal-agent" + } + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8cc0620 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.cache/ +.claude/ +*.log diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6369c40 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Anton Semenov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..8889b25 --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# dream-core-start + +Plugin для handoff між сесіями Claude Code в проекті Dream Core. + +## What / Що це + +Skill `старт` — single-source handoff протокол: + +- **Старт сесії:** читання `NEXT_SESSION_START_HERE.md` (4 секції: ✅ робота · 👁 спостереження · 🤖 Claude · 👤 Антон), потім MEMORY.md, dream-core.md, профіль, активні плани, відкриті known_issues, остання сесія, live-state перевірки. +- **Закриття сесії:** оновлення master-документа + новий `session_YYYY_MM_DD_*.md` + блок поточного статусу в `dream-core.md` + ротація known_issues / roadmap + чистка `MEMORY.md` індексу. + +## Trigger words + +`"старт"`, `"включи скилл старт"`, `"начнём сессию"`, `"новая сессия Dream Core"`. + +Закриття сесії: `"хватит на сегодня"`, `"сохраняем"`, `"обновляй память"`, `"до следующей сессии"`, `"обнови память проекта"`. + +## Configuration + +Плагін очікує два шляхи в `userConfig` (`.claude-plugin/plugin.json`): + +| Key | Default | Що це | +|---------------|----------------------------------------------------|--------------------------------------------------------------------------------| +| `memory_dir` | `~/.claude/projects/C--Users-anton/memory` | Каталог пам'яті проекту (NEXT_SESSION_START_HERE.md, MEMORY.md, session_*, …) | +| `project_dir` | `C:\pro\terminal-agent` | Корінь Dream Core (`CLAUDE.md`, `scripts/protected_hashes.json`) | + +На іншій машині / під іншого користувача переозначайте обидва через `claude plugin config dream-core-start`. + +## Dependencies + +- Пам'ять проекту в `memory_dir` має існувати разом з `NEXT_SESSION_START_HERE.md` як master handoff. +- Проект Dream Core у `project_dir` (для перевірок `protected_hashes.json` тощо). +- Жодних MCP / external tools — скіл read-only щодо файлів пам'яті, окрім фази закриття, де він пише через звичайні file-tools хосту. + +## Install + +``` +claude plugin add https://git.oleks.space/anton/claude-plugin-dream-core-start.git +``` + +Або через oleks-реєстр (entry в `claude-plugin-index/plugins.json`). diff --git a/skills/start/SKILL.md b/skills/start/SKILL.md new file mode 100644 index 0000000..561925c --- /dev/null +++ b/skills/start/SKILL.md @@ -0,0 +1,221 @@ +--- +name: старт +description: Использовать при старте новой сессии работы над Dream Core. Объясняет как ознакомиться со всеми документами проекта и как правильно оставить документы для следующей сессии после окончания работы. Триггеры — "старт", "включи скилл старт", "начнём сессию", "новая сессия Dream Core". +--- + +# Skill: старт — handoff протокол между сессиями Dream Core + +## Цель +Гарантировать что **каждая новая сессия Claude** входит в контекст за 5 минут, а **Антон** получает структурированный отчёт без копания в логах. Память — единственный канал между сессиями. Без обновления — следующая сессия слепая. + +--- + +## Конфигурация путей + +Все пути к памяти и проекту берутся из `userConfig` плагина: + +- `${MEMORY_DIR}` — `userConfig.memory_dir` (default `~/.claude/projects/C--Users-anton/memory`) +- `${PROJECT_DIR}` — `userConfig.project_dir` (default `C:\pro\terminal-agent`) + +Если плагин установлен с дефолтами — пути ниже разворачиваются автоматически. Если Антон переопределил `memory_dir` / `project_dir` (другая машина, другой проект) — подставлять значения из конфига перед чтением. + +--- + +## 🟢 ЧАСТЬ 1 — Старт сессии (Claude читает в этом порядке) + +### Шаг 1: МАСТЕР-документ (читать целиком) +``` +${MEMORY_DIR}/NEXT_SESSION_START_HERE.md +``` + +Это **единственный handoff документ** между сессиями. Содержит 4 секции: +- **✅ ПОСЛЕДНЯЯ ПРОДЕЛАННАЯ РАБОТА** — что закрыто, какие файлы изменены, какой эффект +- **👁 НАБЛЮДЕНИЯ** — live state + команды проверки +- **🤖 РЕКОМЕНДАЦИИ CLAUDE CODE** — что делать новому Claude, что НЕ делать, приоритет фиксов +- **👤 РЕКОМЕНДАЦИИ АНТОНУ** — что проверять, когда возвращаться, триггеры вмешательства + +Если этот файл свежий — большинство контекста ты уже понимаешь. + +### Шаг 2: Индекс памяти +``` +${MEMORY_DIR}/MEMORY.md +``` +Карта папки + хронология фаз + где что лежит. + +### Шаг 3: Архитектура и грабли +``` +${MEMORY_DIR}/dream-core.md +``` +5 уровней защиты, текущий статус (обновлённый), хронология. + +### Шаг 4: Профиль и правила работы +``` +${MEMORY_DIR}/user_profile.md +${MEMORY_DIR}/feedback_autonomy.md +${MEMORY_DIR}/feedback_dev_process.md +${MEMORY_DIR}/feedback_read_project_claude_md.md +``` + +### Шаг 5: Главный гайд проекта (по необходимости) +``` +${PROJECT_DIR}/CLAUDE.md +``` +1813 строк. Читать **только если** мастер-документ ссылается на конкретный раздел или ты собираешься менять защищённые файлы. + +### Шаг 6: Активные планы +``` +${MEMORY_DIR}/roadmap/dream_action_plan_after_critical_fixes.md +${MEMORY_DIR}/roadmap/dream_graduation_plan.md +``` + +### Шаг 7: Известные проблемы +``` +${MEMORY_DIR}/known_issues/ +``` +Те что без ✅ — открытые. + +### Шаг 8: Последняя сессия (если есть детали) +Самый свежий `session_YYYY_MM_DD_*.md` в корне `${MEMORY_DIR}/`. Если master-документ ссылается — читать. + +### Шаг 9: Запустить команды проверки live state +Из секции 👁 в `NEXT_SESSION_START_HERE.md`. Запустить ВСЕ, не пропуская. + +### Шаг 10: Подтвердить понимание Антону +Одной строкой: +> "Память прочитана. Phase X/10, success=N (за час +M), win_rate=NN%, architecture=Y. Открытые TODO: <короткий список из 🤖 рекомендаций>. Готов к работе." + +**НЕ задавать уточняющих вопросов** до завершения шагов 1-9. + +--- + +## 🔴 ЧАСТЬ 2 — Завершение сессии (обновление handoff) + +Триггеры: "хватит на сегодня", "сохраняем", "обновляй память", "до следующей сессии", "обнови память проекта". + +**Цель закрытия:** следующая сессия должна войти в контекст из ОДНОГО `NEXT_SESSION_START_HERE.md` (плюс детальный session_*.md для глубокого). + +### Шаг 1: создать session-файл +``` +${MEMORY_DIR}/session_YYYY_MM_DD_.md +``` + +Шаблон: +```markdown +--- +name: Сессия YYYY-MM-DD — <короткое название> +description: <ключевые темы через запятую> +type: project +--- + +## Корень проблемы (если был аудит) +<симптом + диагностика> + +## Что сделано +| # | Файл | Изменение | Эффект | +|---|---|---|---| +| 1 | path | что | зачем | + +## Hash-update (если protected files менялись) + + +## Доказательства совпадения цели и поведения +<метрики ДО vs ПОСЛЕ> + +## Что НЕ зафиксили (отложено) +<пункты> + +## Скиллы использованы + + +**Why:** <главная цель сессии> +**How to apply:** <что проверить при возврате> +``` + +### Шаг 2: обновить `NEXT_SESSION_START_HERE.md` (КРИТИЧНО) + +Переписать 4 секции под актуальное состояние: + +```markdown +## ✅ ПОСЛЕДНЯЯ ПРОДЕЛАННАЯ РАБОТА (YYYY-MM-DD) +<коротко: какая дыра закрыта, какие файлы, общий эффект> +<ссылка на session_YYYY_MM_DD_*.md для деталей> + +## 👁 НАБЛЮДЕНИЯ (live state) +<команды проверки + ожидаемые значения> + +## 🤖 РЕКОМЕНДАЦИИ CLAUDE CODE +<что НЕ делать> +<приоритет следующих фиксов> +<обязательные скиллы перед изменениями> + +## 👤 РЕКОМЕНДАЦИИ АНТОНУ +<когда проверять> +<триггеры вмешательства> +<чего избегать> +``` + +**НЕ дублировать** содержимое session_*.md в master-документ — там ссылка. + +### Шаг 3: обновить `dream-core.md` +Добавить блок `## Текущий статус (YYYY-MM-DD, время — заголовок)` в начало (после frontmatter). Старый статус НЕ удалять — переименовать в `## Прошлый статус`. + +### Шаг 4: новые проблемы → `known_issues/` +Если выявлен НОВЫЙ баг, не закрылся: +``` +${MEMORY_DIR}/known_issues/.md +``` +Шаблон: +```markdown +--- +name: <короткое имя> +description: <одна строка> +type: project +--- +# <Заголовок> +## Симптом +## Корень +## Решение (предложение) +**Why:** <почему важно> +**How to apply:** <когда чинить> +``` + +Если **закрыли в этой сессии** проблему которая была в `known_issues/` — переименовать в `name: ЗАКРЫТА YYYY-MM-DD — ...` + добавить ссылку на session. + +### Шаг 5: новые планы → `roadmap/` +План развития → `${MEMORY_DIR}/roadmap/.md`. Старые планы НЕ удалять (помечать ✅ в `MEMORY.md` индексе). + +### Шаг 6: обновить `MEMORY.md` индекс +- Если новая фаза или важная веха → добавить в хронологию +- Закрытые known_issues помечать ✅ +- Новые roadmap-файлы добавлять с пометкой "← АКТИВНЫЙ" + +### Шаг 7: навести порядок +- Свежий `session_*.md` остаётся в корне `${MEMORY_DIR}/` +- Если в корне 3+ session_* — старые в `archive_sessions/` +- Устаревшие audit-доки → `archive_audits/` + +### Шаг 8: подтвердить Антону +> "Память сохранена. Session: . NEXT_SESSION_START_HERE.md обновлён всеми 4 секциями. Следующая сессия — команда 'старт'." + +--- + +## 🛠 Связанные скиллы (использовать активно) + +| Скилл | Когда | +|---|---| +| `root-cause-fix` | Перед ЛЮБЫМ багфиксом — найти корень | +| `agent-restart-verify` | После правки кода Dream Core (особенно protected) — restart + grep + functional test | +| `update-project-memory` | Альтернативный шаблон закрытия (если эта структура не подходит) | + +--- + +## Правила (всегда) + +1. **NEXT_SESSION_START_HERE.md — единственный handoff документ.** Не дублировать его контент в других местах. Только ссылки. +2. **Доказательства, не слова.** Каждое "сделано" подкреплять curl / лог / grep / `file_path:line`. +3. **Автономно.** Не спрашивать разрешения продолжать пока скилл не дошёл до конца. +4. **По-русски** — никакого английского кроме кода/команд/тулов. +5. **Скиллы поверх default** — `root-cause-fix` и `agent-restart-verify` проактивно. +6. **НЕ трогать protected files** (см. `${PROJECT_DIR}/scripts/protected_hashes.json`) без обновления SHA. +7. **Память — единственная связь между сессиями.** Без обновления master-документа следующий Claude слеп. +8. **Антон зашёл — он первым делом читает свою секцию** (👤 РЕКОМЕНДАЦИИ АНТОНУ) в master-документе. Эта секция должна быть actionable: команды + ожидаемые значения + триггеры.