{
  "markdown": "# cc-task-manager\n\n[English](README.en.md)\n\nClaude Code plugin для управления задачами проекта. Состояние ведёт CLI `cctm` — модель только формулирует задачи, инварианты держит код.\n\n## Требования\n\n- Claude Code CLI\n- python3\n- macOS, Linux, Windows (WSL)\n\n## Установка\n\n### Как плагин Claude Code (рекомендуется)\n\n```\n/plugin marketplace add BeMySlaveDarlin/cc-task-manager\n/plugin install cc-task-manager@bemyslavedarlin-cc-task-manager\n```\n\n### Ручная установка (legacy)\n\n```bash\ngit clone https://github.com/BeMySlaveDarlin/cc-task-manager.git\ncd cc-task-manager && bash install.sh\n```\n\nLegacy-режим не подключает hooks — автосинк работает только при установке плагином.\n\n## Использование\n\nSkills активируются по ключевым словам или явно:\n\n- `/ts` — CRUD задач: «создай задачу», «покажи задачи», «закрой задачу #5»\n- `/finalize` — финализация сессии: «финализируй», «подведи итоги»\n- `/rs` — восстановление контекста: «продолжим», «где остановились»\n\nCLI доступен и напрямую:\n\n```\ncctm list             # активные задачи\ncctm next             # что делать дальше (без заблокированных)\ncctm show 7           # задача целиком\ncctm create --title \"...\" --priority HIGH\ncctm close 7\ncctm grep \"auth\"      # поиск по телам задач\ncctm sync             # сверка с нативными задачами Claude Code\ncctm doctor           # проверка инвариантов\ncctm export --md      # человекочитаемый дамп\n\ncctm handoff latest   # снимок последней сессии\ncctm handoff list     # кто и когда финализировался, включая параллельные сессии\ncctm handoff show ab12cd34\ncctm handoff write --md handoff.md\n```\n\n## Хранение\n\n`.claude/session/` целевого проекта:\n\n```\nmeta.json               счётчик id, версия схемы\ntasks/007.json          одна задача = один файл, вся целиком\nhandoff/ab12cd34.json   снимок сессии: один файл на сессию\n```\n\nСтатусы: `open`, `deferred`, `done`, `cancelled`. Никаких markdown-файлов в сторе,\nникакого дублирования состояния — индекс строится на лету.\n\n### Синхронизация с нативным стором\n\nClaude Code ведёт свои задачи (TaskCreate/TaskUpdate) в `~/.claude/tasks/session-*/`.\n`cctm sync` находит сессии проекта, сопоставляет задачи (по связке `external`, затем по заголовку)\nи переносит состояние в реестр. Hook `TaskCompleted` запускает синк автоматически, `SessionEnd` —\nсинк плюс handoff (`cctm session-end`), так что оборванная сессия не оставляет реестр протухшим.\n\n## Handoff между сессиями\n\nЗадачи говорят «что», handoff — «где остановились». Пишется на `/finalize`, читается на `/rs`.\n\nФайл на сессию (`handoff/<первые 8 символов session id>.json`), поэтому параллельные сессии\nне перетирают друг друга: каждая пишет своё, `cctm handoff latest` отдаёт самый свежий и\nотдельной строкой сообщает, что параллельно писали ещё N сессий — их видно в `cctm handoff list`.\n\nСписки задач в handoff проставляются автоматически: каждая правка помечает задачу id сессии\n(`session`, `created_by` в JSON задачи), так что чужая работа в чужой handoff не попадает.\n\nХук `SessionEnd` дописывает handoff сам:\n\n- сессия закрылась без `/finalize`, но задачи трогала → технический handoff (`kind: auto`,\n  списки задач без текста — видно, что вообще происходило);\n- после `/finalize` ещё что-то делали → к сводке дописывается блок «После финализации»,\n  ручной текст не затирается.\n\nХранится 20 последних, дальше вытесняются; `cctm handoff prune --keep N --days D` — вручную.\n\n## Миграция с 1.x\n\n**Автоматическая.** Первое же обращение к реестру в проекте со старым форматом запускает миграцию:\nделается бэкап `.claude/session.bak-YYYYMMDD`, задачи переносятся в JSON-стор, старые\n`tasks.md` / `queue.md` / `details/` удаляются, печатается отчёт. Затем исходная команда выполняется как обычно.\n\nПереносит `tasks.md` + `details/*.md` (включая `archive/`, датные имена, `cancelled-`/`superseded-`).\nФайлы, не являющиеся задачами, остаются на месте и перечисляются в отчёте.\n\nРучной контроль, если нужен:\n\n```\ncctm --no-auto-migrate list        # отказаться от автомиграции, только сообщить (exit 3)\ncctm migrate --dry-run             # план без изменений\ncctm migrate --path /path/to/proj  # мигрировать чужой проект, не заходя в него\n```\n\n## Кастомизация\n\n`.claude/finalize.local.md` — локальные шаги финализации (before/pre + post).\n\n## Лицензия\n\n[MIT](LICENSE)\n",
  "bytes": 4248,
  "sha": "71f255e6c85ab4687369dc550582769ecfa9523523d81ad9231eb2050c83d6f2",
  "repo_slug": "bemyslavedarlin/cc-task-manager",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_bemyslavedarlin_cc_task_manager_claude_c_519fba50/readme"
}