Паттерн рабочего пространства
Назначение
Заголовок раздела «Назначение»Создание выделенной директории рабочего пространства для выполнения 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}/Соглашение об именовании
Заголовок раздела «Соглашение об именовании»Формат: {short-name}-{YYYYMMDD}-{HHMM}
short-name: Краткое описание задачи (макс. 20 символов, kebab-case)- Дата и время создания
Примеры:
wmf-edit-20251211-2145auth-fix-20251212-0930api-refactor-20251215-1400
Реализация
Заголовок раздела «Реализация»Нода инициализации
Заголовок раздела «Нода инициализации»Сбор пути рабочего пространства при запуске workflow:
{ "type": "agent-directive", "id": "create-workspace", "directive": "Create workspace for this workflow execution.\n\n1. Generate workspace name: {task-short-name}-{YYYYMMDD}-{HHMM}\n2. Create directory: ./moira-ws/{workspace-name}/\n3. Create process-id.txt with execution ID: {{executionId}}\n4. Return workspace path", "inputSchema": { "type": "object", "properties": { "workspace_path": { "type": "string", "pattern": "^\\./moira-ws/[a-z0-9-]+-\\d{8}-\\d{4}/$", "description": "Path to created workspace" } }, "required": ["workspace_path"] }, "connections": { "success": "next-step" }}Использование пути рабочего пространства
Заголовок раздела «Использование пути рабочего пространства»Ссылайтесь на {{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
Заголовок раздела «Настройка 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:
{ "type": "agent-directive", "id": "setup-workspace", "directive": "Create workspace for workflow editing.\n\nFormat: ./moira-ws/{{workflow_id}}-edit-{YYYYMMDD}-{HHMM}/\nExample: ./moira-ws/development-flow-edit-20251211-2200/\n\n1. Create the directory\n2. Save process-id.txt with: {{executionId}}\n3. Return the workspace path", "inputSchema": { "properties": { "workspace_path": { "type": "string" } }, "required": ["workspace_path"] }}Связанные паттерны
Заголовок раздела «Связанные паттерны»- Сбор информации - Сбор пути рабочего пространства при инициализации
- Динамические файлы - Использование
{{workspace_path}}в путях файлов - Верификация шагов - Хранение результатов верификации в рабочем пространстве