workflow-ai 1.0.36 → 1.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "workflow-ai",
3
- "version": "1.0.36",
3
+ "version": "1.0.37",
4
4
  "description": "AI Agent Workflow Coordinator — kanban-based pipeline for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
package/src/runner.mjs CHANGED
@@ -840,11 +840,14 @@ class StageExecutor {
840
840
  // Если args содержит -p с ролью — объединяем роль и промпт в один аргумент
841
841
  // Иначе Claude CLI интерпретирует роль как промпт, а реальный промпт игнорирует
842
842
  const lastPIdx = args.lastIndexOf('-p');
843
+ let stdinPrompt = null;
843
844
  if (lastPIdx !== -1 && lastPIdx < args.length - 1) {
844
845
  const role = args[lastPIdx + 1];
845
846
  args[lastPIdx + 1] = `${prompt}\n\nТвоя роль: ${role}`;
846
847
  } else {
847
- args.push(prompt);
848
+ // Передаём промпт через stdin вместо аргумента,
849
+ // т.к. shell: true на Windows обрезает многострочные аргументы
850
+ stdinPrompt = prompt;
848
851
  }
849
852
 
850
853
  // Логгируем команду перед запуском (вместо промпта — имя skill)
@@ -867,7 +870,10 @@ class StageExecutor {
867
870
  shell: process.platform === 'win32' && agent.command !== 'node'
868
871
  });
869
872
 
870
- // Закрываем stdin чтобы агент не ждал дополнительного ввода
873
+ // Передаём промпт через stdin или закрываем если промпт в аргументах
874
+ if (stdinPrompt) {
875
+ child.stdin.write(stdinPrompt);
876
+ }
871
877
  child.stdin.end();
872
878
 
873
879
  let stdout = '';
@@ -13,14 +13,18 @@ description: Декомпозировать план на исполняемые
13
13
  - Нужно разбить крупную задачу на подзадачи
14
14
  - Требуется детальная декомпозиция
15
15
 
16
- ## ⛔ ПЕРВЫЙ ШАГ: определи какой план декомпозировать
16
+ ## ⛔ ЗАПРЕЩЕНО сканировать все планы если указан конкретный план
17
17
 
18
- Прочитай свой промпт. Если в нём указан `plan_id` или `plan_file` (например `plan_id: PLAN-005` или `plan_file: plans/current/PLAN-005.md`) — ты ОБЯЗАН декомпозировать именно этот план.
18
+ Ты получаешь промпт с секциями Context и Instructions.
19
19
 
20
- **Правила:**
21
- 1. Если указан `plan_file` — открой `.workflow/{plan_file}` и декомпозируй его. Не читай другие планы. Не проверяй статус. Сразу переходи к шагу 1.
22
- 2. Если указан `plan_id` но нет `plan_file` — найди план `plans/current/{plan_id}.md` и декомпозируй его. Не проверяй статус.
23
- 3. Если ни `plan_id`, ни `plan_file` не указанысканируй все планы в `plans/current/` и декомпозируй только те, у которых `status: approved`.
20
+ **Если в Context или Instructions есть `plan_id` или `plan_file` или путь к конкретному плану (например `PLAN-005.md`):**
21
+ - Декомпозируй ТОЛЬКО этот план
22
+ - НЕ сканируй `plans/current/` это ЗАПРЕЩЕНО
23
+ - НЕ проверяй статус плана (`draft`, `active` неважно)это ЗАПРЕЩЕНО
24
+ - НЕ читай и не упоминай другие планы — это ЗАПРЕЩЕНО
25
+ - Открой файл плана и сразу переходи к шагу 1
26
+
27
+ **Только если нигде в промпте нет указания на конкретный план** — тогда сканируй `plans/current/` и декомпозируй только планы со статусом `approved`.
24
28
 
25
29
  ## Шаги выполнения
26
30