Паттерн рабочего пространства
Назначение
Создание выделенной директории рабочего пространства для выполнения workflow. Все рабочие файлы (планы, результаты, отчёты, резервные копии) хранятся в одном месте, сохраняя чистоту проекта.
Структура
./moira-ws/{workspace-name}/├── process-id.txt # ID выполнения workflow для восстановления├── development-plan.md # Планы и спецификации├── step-1/ # Результаты конкретных шагов│ └── step-results.md├── *.backup.json # Файлы резервных копий└── ... # Прочие рабочие файлыРасположение рабочего пространства
Все рабочие пространства создаются в поддиректории ./moira-ws/ текущего проекта:
./moira-ws/{workspace-name}/НЕ создавайте рабочие пространства в корне проекта (./feature-name/) или в других местах. Всегда
используйте ./moira-ws/ для единообразия.
Соглашение об именовании
Формат: {short-name}-{YYYYMMDD}-{HHMM}
short-name: Краткое описание задачи (макс. 20 символов, kebab-case)- Дата и время создания
Примеры:
wmf-edit-20251211-2145auth-fix-20251212-0930api-refactor-20251215-1400
Реализация
Владелец рабочего пространства
Существующая ранняя ответственность определяет канонический путь рабочего пространства и возвращает
его как глобальный workspace_path. Нода, единственная задача которой выбрать или создать
директорию, добавляет ход, но не добавляет суждения.
Если стабильные файлы берутся из default-значений реестра workflow, сразу после этого владельца
разместите ноду materialize. Она создаёт директорию назначения и распаковывает все объявленные
файлы из одного ограниченного архива, удерживая на этом маршруте их тела вне контекста агента:
{ "id": "materialize-workspace-bootstrap", "type": "materialize", "basePath": "{{workspace_path}}", "files": [ { "path": "process-id.txt", "from": "workspace_process_id_file" }, { "path": "workflow-reference.md", "from": "workflow_reference" }, { "path": "plans/.keep", "content": "" } ], "connections": { "success": "create-plan" }}Указанные записи реестра служат источником истины для стабильного содержимого workflow. Владелец содержательной работы по-прежнему записывает динамические контракты задачи, анализ, планы и отчёты в том же ходе, где определяет их содержание. Возвращённый путь сам по себе ничего не доказывает: completion condition первого потребителя должна требовать существования и полноты нужных файлов.
Полный контракт объявления, архива, путей, безопасности и ошибок описан в разделе Материализация файлов.
Использование пути рабочего пространства
Ссылайтесь на {{workspace_path}} в последующих директивах:
{ "directive": "Save development plan to {{workspace_path}}development-plan.md"}{ "directive": "Create step results in {{workspace_path}}step-{{current_step}}/step-results.md"}Что хранить в рабочем пространстве
Включайте:
process-id.txt— ID выполнения для восстановления workflow- Планы и спецификации (файлы
.md) - Результаты и отчёты по шагам
- Резервные копии перед редактированием
- Временные результаты анализа
Исключайте:
- Исходный код проекта
node_modulesили зависимости- Большие бинарные файлы
- Секреты и учётные данные
Настройка Git
Добавьте ./moira-ws/ в .gitignore:
# Рабочие пространства Moira workflowmoira-ws/Рабочие пространства — это временные рабочие директории, которые не следует коммитить.
Восстановление
При прерывании workflow агент может:
- Прочитать
process-id.txtиз рабочего пространства - Возобновить выполнение по сохранённому ID процесса
- Продолжить с последнего завершённого шага
{ "directive": "Check for existing workspace in ./moira-ws/\nIf found, read process-id.txt and resume workflow"}Пример Workflow Management Flow
Workflow Management Flow определяет workspace_path, материализует два стабильных файла для обеих
веток и затем выбирает создание или редактирование:
get-action-type -> materialize-workspace-bootstrap -> route-action-type | create -> gather-workflow-requirements | edit -> prepare-edit-workflowАрхив записывает process-id.txt и workflow-authoring-reference.md. Владельцы веток create и edit
затем записывают свои требования и provenance, не дублируя стабильные файлы.
Перевод ручного bootstrap
Перенесите стабильные тела workflow в default-значения строковых записей реестра и доставляйте их
одной нодой materialize. Удалите из директив агента только соответствующие инструкции записи
статических файлов. Динамические файлы оставьте ответственности, определяющей их содержание, а её
completion condition должна проверять необходимые файлы на диске.
Связанные паттерны
- Минимальный граф - что оправдывает отдельный ход агента
- Динамические файлы - Использование
{{workspace_path}}в путях файлов - Материализация файлов - Доставка стабильных файлов из реестра
- Верификация шагов - Хранение результатов верификации в рабочем пространстве