Команда Pipeline

/dr-archive

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

Обзор

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

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

/dr-archive
/dr-archive --auto-commit
/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 — Рефлексия (обязательно, не пропускается) — сначала проверка актуальности: если /dr-compliance уже записал рефлексию, соответствующую текущему отчёту compliance, она переиспользуется. Иначе загружается навык рефлексии и выполняется полный рабочий процесс:
    • Создаёт 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 — удаляет строку задачи из ## Active в thin-index tasks.md и файл плана; постоянной записью служит архивный документ.
  9. Шаг 6 — Обновление контекста — убирает задачу из ## Active Tasks в activeContext.md, который зеркалит tasks.md. Остальные активные задачи сохраняются; раздел «последние завершённые» не пишется (недавние задачи показывает /dr-status --recent N).
  10. Шаг 7.5 — Авто-коммит архива (опционально, --auto-commit) — локально коммитит только архивный документ (и его stage-снапшот). Никогда не делает push, теги или публикацию.
  11. Шаг 8 — Итог для оператора — выводит короткое резюме перед блоком следующих шагов.

Перед закрытием финальный evidence-гейт сверяет каждый случай приёмки задачи с записанными доказательствами; любой пробел блокирует архивацию.

Режим отмены

При фразе «cancel task» или указании ID для отмены: команда записывает documentation/archive/cancelled/archive-{task_id}.md, удаляет задачу из бэклога и активного контекста и пропускает рефлексию, так как задача не завершена.

Аргументы

Необязательно. cancel для отмены вместо архивации. Можно указать ID задачи для однозначного определения. --auto-commit / --no-auto-commit управляют локальным коммитом архивной записи (по умолчанию выключен).

Результат

Создаёт: 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:
  workspace: clean
  project repo: 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 — если база знаний разрослась

Отчёт о результате

Перед сообщением человеку применяется Human Outcome Reporting. Объясняются изменение для пользователя, исходные условия, проверки и доказательства, а также открытые ограничения. Итог этапа не означает завершения всей задачи. Точные протоколы и технические записи сохраняются. Для повторного объяснения без продолжения работы — /dr-explain.