Команда Pipeline

/dr-archive

Архивация задачи с обязательной рефлексией и эволюционными предложениями

Обзор

/dr-archive — финальный этап пайплайна. Определяет целевую задачу, проверяет чистоту git-репозиториев, выполняет обязательную рефлексию (Step 0.5) с генерацией эволюционных предложений, упаковывает задачу в постоянный архивный документ, обновляет бэклог, обрабатывает создание последующих задач и сбрасывает контекст. С версии v1.10.0 (TUNE-0013) ранее отдельная команда /dr-reflect объединена здесь, поскольку «опциональный обязательный контроль» был признан дефектом проектирования.

Использование

/dr-archive
/dr-archive cancel
/dr-archive cancel TASK-0001

Что делает

  1. Шаг 0 — Определение задачи — разрешает, какая задача архивируется, из аргумента или через диалог при нескольких активных задачах.
  2. Шаг 0.1 — Pre-Archive Git Check (обязательно, multi-agent с v1.18.0 / TUNE-0044) — классифицирует каждый затронутый репозиторий как workspace (общий для параллельных агент-сессий) или project (одноагентный). Для workspace-репо scripts/pre-archive-check.sh --task-id <ID> --shared <repo> классифицирует hunks каждого изменённого файла как own, foreign, mixed или unattributed: foreign-only НЕ блокирует архивацию (это коммитят параллельные сессии), а own/mixed/unattributed блокируют до применения patch-staging recipe (git add -p или non-interactive blob-swap). Для project-репо legacy-контракт TUNE-0003 не меняется (любое незакоммиченное изменение блокирует, 3-way prompt).
  3. Шаг 0.5 — Рефлексия (обязательно, не пропускается) — загружает навык рефлексии и выполняет полный рабочий процесс:
    • Создаёт datarim/reflection/reflection-[task_id].md
    • Генерирует эволюционные предложения: Class A (безопасные, применить сейчас) и Class B (требуют обновления PRD)
    • Представляет Class A для одобрения; применяет одобренные к runtime
    • Логирует изменения в datarim/docs/evolution-log.md
    • Запускает проверку health-метрик; предлагает /dr-optimize при превышении порогов
    • Записывает последующие задачи для шага 4

    Этот шаг невозможно пропустить. Флага --no-reflect не существует. При сбое архивация останавливается — повторный запуск возвращает к шагу 0.5.

  4. Шаг 1 — Определение области архива — извлекает префикс из ID задачи (например, INFRA из INFRA-0001) и сопоставляет с поддиректорией архива.
  5. Шаг 2 — Создание архивного документа — записывает documentation/archive/{area}/archive-{task_id}.md по канонической форме templates/archive-template.md (v2.14.0+, TUNE-0255). Архив несёт четыре операторских раздела в строгом порядке — «Начальная задача» (одно предложение обычным языком, что требовалось сделать; источник — операторский бриф), «Как решили» (маркированный список без вложенности: на каждый пункт брифа — цитата, статус и одно-два предложения; пункты из tasks/{ID}-expectations.md сворачиваются в тот же список с пометкой «(уточнение брифа)»), «Артефакты задачи» (что появилось или изменилось), «Следующие шаги» (конкретные команды /dr-* или операторские действия, либо «всё закрыто»). Под горизонтальной чертой --- — аудит-аддендум с подсекциями ### verification_outcome, ### Acceptance Criteria, ### Lessons Learned, ### Operator Handoff, ### Related. Статусы: «выполнено» / «частично» / «не выполнено» / «неприменимо» — никогда не служебные met/partial/missed/n-a. Включает контроль заявлений о потере данных: перед записью чего-либо как «безвозвратно утеряно» агент проходит 5-канальный чеклист восстановления.
  6. Шаг 3 — Обновление бэклога — если задача была в backlog.md, удаляет её и добавляет запись в backlog-archive.md со статусом completed, датой и ссылкой на архив.
  7. Шаг 4 — Последующие задачи — читает follow-up из документа рефлексии и предлагает добавить их в бэклог.
  8. Шаг 5 — Обновление таблицы задач — добавляет строку в таблицу архивных задач в tasks.md.
  9. Шаг 6 — Обновление контекста — убирает задачу из ## Active Tasks в activeContext.md, добавляет в ## Последние завершённые. Не сбрасывает весь файл — остальные активные задачи сохраняются.

Режим отмены

При фразе «cancel task» или указании ID для отмены: задача удаляется из бэклога, добавляется в архив со статусом cancelled, убирается из активных. Архивный документ не создаётся, рефлексия не запускается.

Аргументы

Необязательно. cancel для отмены вместо архивации. Можно указать ID задачи для однозначного определения.

Результат

Создаёт: documentation/archive/{area}/archive-{task_id}.md, datarim/reflection/reflection-[task_id].md. Обновляет: datarim/backlog.md, datarim/backlog-archive.md, datarim/tasks.md, datarim/activeContext.md, datarim/docs/evolution-log.md.

Пример сессии

> /dr-archive

Определение задачи: AUTH-0001 (единственная активная)

Проверка чистоты Git:
  arcanada workspace: clean
  Projects/Datarim/code/datarim: clean

Шаг 0.5 — Рефлексия:
  Создан: datarim/reflection/reflection-AUTH-0001.md
  Эволюционные предложения:
    [Class A] Обновить security.md паттернами OAuth (одобрено → применено)
    [Class B] Рефакторинг auth-агента — отложено (нужен PRD)
  Health-метрики: в пределах порогов

Архивация AUTH-0001...
  Область: auth
  Архив: documentation/archive/auth/archive-AUTH-0001.md

Бэклог обновлён:
  AUTH-0001 удалён из backlog.md
  AUTH-0001 добавлен в backlog-archive.md (completed)

Последующие задачи из рефлексии:
  1. Добавить rate limiting в модуль AUTH
  2. Написать пользовательскую документацию
Добавить в бэклог? (y/n)

Контекст обновлён. Готов к новой задаче.

Следующий шаг: /dr-init или /dr-dream

Связанные команды

  • /dr-qa — предыдущий этап: контроль качества
  • /dr-compliance — опциональный предыдущий этап: hardening
  • /dr-init — начать новую задачу
  • /dr-dream — если база знаний разрослась