Команда Pipeline

/dr-archive

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

Обзор

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

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

/dr-archive
/dr-archive cancel
/dr-archive cancel TASK-NNNN

Что делает

  1. Шаг 0 — Определение задачи — разрешает, какая задача архивируется, из аргумента или через диалог при нескольких активных задачах.
  2. Шаг 0.1 — Pre-Archive Git Check (обязательно, multi-agent с v1.18.0 / <TASK-ID>) — классифицирует каждый затронутый репозиторий как 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-контракт <TASK-ID> не меняется (любое незакоммиченное изменение блокирует, 3-way prompt).
  3. Шаг 0.5 — Рефлексия (обязательно, не пропускается) — загружает навык рефлексии и выполняет полный рабочий процесс:
    • Создаёт datarim/reflection/reflection-[task_id].md
    • Генерирует эволюционные предложения: Class A (безопасные, применить сейчас) и Class B (требуют обновления PRD)
    • Представляет Class A для одобрения; применяет одобренные к runtime
    • Логирует изменения в datarim/history/evolution-log.md
    • Запускает проверку health-метрик; предлагает /dr-optimize при превышении порогов
    • Записывает последующие задачи для шага 4

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

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

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

> /dr-archive

Определение задачи: <TASK-ID> (единственная активная)

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

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

Архивация <TASK-ID>...
  Область: auth
  Архив: documentation/archive/auth/archive-<TASK-ID>.md

Бэклог обновлён:
  <TASK-ID> удалён из backlog.md
  Постоянная запись: documentation/archive/auth/archive-<TASK-ID>.md

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

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

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

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

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