workflow-ai 1.0.40 → 1.0.42

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.
Files changed (43) hide show
  1. package/agent-templates/CLAUDE.md.tpl +10 -1
  2. package/agent-templates/QWEN.md.tpl +18 -1
  3. package/package.json +3 -1
  4. package/src/cli.mjs +79 -1
  5. package/src/global-dir.mjs +90 -0
  6. package/src/init.mjs +23 -36
  7. package/src/junction-manager.mjs +188 -0
  8. package/src/runner.mjs +26 -7
  9. package/src/scripts/archive-plan-tickets.js +0 -102
  10. package/src/scripts/check-anomalies.js +0 -161
  11. package/src/scripts/check-conditions.js +0 -254
  12. package/src/scripts/check-plan-decomposed.js +0 -179
  13. package/src/scripts/move-ticket.js +0 -228
  14. package/src/scripts/move-to-ready.js +0 -115
  15. package/src/scripts/move-to-review.js +0 -96
  16. package/src/scripts/pick-next-task.js +0 -723
  17. package/src/skills/analyze-report/SKILL.md +0 -110
  18. package/src/skills/check-relevance/SKILL.md +0 -236
  19. package/src/skills/coach/README.md +0 -100
  20. package/src/skills/coach/SKILL.md +0 -109
  21. package/src/skills/coach/algorithms/gap-analysis.md +0 -69
  22. package/src/skills/coach/algorithms/improvement-prioritization.md +0 -62
  23. package/src/skills/coach/algorithms/skill-scoring.md +0 -79
  24. package/src/skills/coach/knowledge/backlog-management.md +0 -71
  25. package/src/skills/coach/knowledge/common-antipatterns.md +0 -56
  26. package/src/skills/coach/knowledge/prompt-engineering.md +0 -86
  27. package/src/skills/coach/knowledge/skill-anatomy.md +0 -71
  28. package/src/skills/coach/templates/audit-report.md +0 -54
  29. package/src/skills/coach/templates/coach-backlog-init.yaml +0 -10
  30. package/src/skills/coach/templates/improvement-plan.md +0 -54
  31. package/src/skills/coach/templates/new-skill.md +0 -137
  32. package/src/skills/coach/workflows/analyze.md +0 -73
  33. package/src/skills/coach/workflows/audit.md +0 -68
  34. package/src/skills/coach/workflows/create.md +0 -66
  35. package/src/skills/coach/workflows/improve.md +0 -70
  36. package/src/skills/coach/workflows/research.md +0 -55
  37. package/src/skills/coach/workflows/review.md +0 -74
  38. package/src/skills/create-plan/SKILL.md +0 -98
  39. package/src/skills/create-report/SKILL.md +0 -156
  40. package/src/skills/decompose-gaps/SKILL.md +0 -161
  41. package/src/skills/decompose-plan/SKILL.md +0 -168
  42. package/src/skills/execute-task/SKILL.md +0 -161
  43. package/src/skills/review-result/SKILL.md +0 -285
@@ -1,285 +0,0 @@
1
- ---
2
- name: review-result
3
- description: Проверить результат выполнения задачи на соответствие Definition of Done. Используется после execute-task для валидации качества работы.
4
- ---
5
-
6
- # Проверка результата (Review Result)
7
-
8
- > **ОБЯЗАТЕЛЬНО:** Последние строки твоего ответа ВСЕГДА должны быть блоком `---RESULT---`.
9
- > Без этого блока пайплайн не распознает статус и тикет попадёт в `blocked`.
10
- > Даже если ревью очевидно — всё равно заверши ответ блоком результата.
11
-
12
- Этот skill проверяет результат выполнения задачи на соответствие критериям готовности (Definition of Done) из тикета.
13
-
14
- ## Когда использовать
15
-
16
- - Задача выполнена и тикет перемещён в `review/`
17
- - Требуется валидация качества перед перемещением в `done/`
18
- - Retry-логика пайплайна: определить status для goto-перехода
19
-
20
- ## Шаги проверки
21
-
22
- ### 0. Проверить последний статус ревью
23
-
24
- **До любых проверок** найди в тикете секцию `## Ревью`.
25
-
26
- Если секция существует и содержит записи — посмотри на **последнюю запись** (последняя строка таблицы или последний элемент списка):
27
-
28
- - Если последняя запись имеет статус `passed` — ревью уже пройдено. Немедленно верни результат:
29
-
30
- ```
31
- ---RESULT---
32
- status: passed
33
- issues: []
34
- ---RESULT---
35
- ```
36
-
37
- - Если последняя запись имеет статус `⏭ skipped` — тикет пропущен check-relevance. Ревью проводить **НЕ НАДО**. Немедленно верни результат:
38
-
39
- ```
40
- ---RESULT---
41
- status: passed
42
- issues: []
43
- ---RESULT---
44
- ```
45
-
46
- - Если последняя запись имеет статус `failed` — **необходима повторная проверка**. Переходи к шагу 1.
47
-
48
- > **ВАЖНО:** Проверяй именно ПОСЛЕДНЮЮ запись, а не любую. Если после `passed`/`skipped` появилась `failed` — задача требует повторной проверки. Только если последний статус `passed` или `skipped` — можно пропустить.
49
-
50
- ### 1. Прочитать тикет
51
-
52
- ID тикета передаётся в промпте как `ticket_id` в секции Context.
53
-
54
- ```
55
- Путь: .workflow/tickets/review/{TICKET-ID}.md
56
- ```
57
-
58
- **Важно:** НЕ перемещай тикет — перемещение выполняется отдельным stage пайплайна по результату этого skill.
59
-
60
- Извлечь:
61
- - Definition of Done (DoD) — чеклист критериев готовности
62
- - Детали задачи — требования к реализации
63
- - Результат выполнения (секция Result) — что сделано
64
-
65
- ### 2. Проверить каждый пункт DoD
66
-
67
- Для каждого критерия из Definition of Done:
68
-
69
- | Тип проверки | Описание |
70
- |--------------|----------|
71
- | `file_exists` | Файл существует по указанному пути |
72
- | `compilation` | Код компилируется / линтер проходит |
73
- | `tests` | Тесты проходят |
74
- | `text` | Текстовый критерий выполнен (содержимое, структура) |
75
- | `structure` | Структура соответствует шаблону |
76
-
77
- ### 3. Сверить результат с требованиями
78
-
79
- Сравнить секцию «Результат выполнения» с «Деталями задачи»:
80
- - Все ли требования учтены
81
- - Соответствует ли реализация описанию
82
- - Нет ли расхождений
83
-
84
- ### 4. Сформировать вердикт
85
-
86
- > **ВАЖНО:** Review-result НИКОГДА не пишет статус `skipped`. Допустимы только `passed` или `failed`. Статус `skipped` — прерогатива check-relevance.
87
-
88
- Возвращать структурированный результат строго в одном из двух форматов:
89
-
90
- > **КРИТИЧНО**: `status` принимает ТОЛЬКО два значения: `passed` или `failed`.
91
- > Любой другой вывод (`default`, `ok`, `done`, `complete`, `yes`, и т.д.) — **ОШИБКА**.
92
- > Пайплайн не продолжится корректно, если статус не распознан.
93
-
94
- Если **все** пункты DoD выполнены:
95
-
96
- ```
97
- ---RESULT---
98
- status: passed
99
- issues: []
100
- ---RESULT---
101
- ```
102
-
103
- Если **хотя бы один** пункт DoD не выполнен:
104
-
105
- ```
106
- ---RESULT---
107
- status: failed
108
- issues:
109
- - "Пункт DoD X не выполнен: ожидалось Y, получено Z"
110
- - "Файл X не создан"
111
- - "Тест Y не прошёл"
112
- ---RESULT---
113
- ```
114
-
115
- > Блок `---RESULT---` должен быть в выводе **ровно один раз**, в самом конце ответа.
116
-
117
- ### 5. При `failed`: детализировать замечания
118
-
119
- Для каждого невыполненного пункта:
120
- - Описать что ожидалось
121
- - Описать что получено
122
- - Указать файл/строку если применимо
123
-
124
- ## Алгоритм проверки
125
-
126
- ```
127
- 0. Быстрый выход:
128
- - Прочитать тикет
129
- - Найти секцию "## Ревью"
130
- - Если последняя запись "passed" или "skipped" → вернуть status: passed, остановиться
131
- - Если последняя запись "failed" → перейти к шагу 1 (повторная проверка)
132
-
133
- 1. Парсинг тикета:
134
- - Извлечь DoD (список критериев)
135
- - Извлечь Result (что сделано)
136
- - Извлечь Детали задачи (требования)
137
-
138
- 2. Для каждого пункта DoD:
139
- - Определить тип проверки (file/compilation/tests/text)
140
- - Выполнить проверку
141
- - Записать результат (pass/fail + комментарий)
142
-
143
- 3. Сверка Result ↔ Детали задачи:
144
- - Все ли файлы созданы
145
- - Соответствует ли структура
146
- - Нет ли расхождений
147
-
148
- 4. Формирование вердикта:
149
- - Если все пункты pass → status: passed
150
- - Если есть fail → status: failed + список issues
151
-
152
- 5. Вывод результата в формате ---RESULT---
153
-
154
- 6. Пометка тикета о результате ревью:
155
- - Добавить секцию `## Ревью` в тикете (если её нет — создать с заголовком таблицы)
156
- - **ВАЖНО: новую запись добавлять В КОНЕЦ таблицы** (последней строкой). Не вставлять перед существующими записями!
157
- - Указать:
158
- - Дата ревью
159
- - Статус: passed/failed
160
- - Краткий самари (если failed — что не так)
161
- - Сохранить тикет в той же директории
162
- ```
163
-
164
- ## Типы проверок
165
-
166
- ### file_exists
167
-
168
- Проверка существования файла:
169
-
170
- ```
171
- Критерий: "[ ] Файл `src/logger.py` создан"
172
- Проверка: os.path.exists("src/logger.py")
173
- Результат: pass/fail
174
- ```
175
-
176
- ### compilation
177
-
178
- Проверка компиляции / линта:
179
-
180
- ```
181
- Критерий: "[ ] Код проходит линтер"
182
- Проверка: npm run lint / ruff check / etc.
183
- Результат: pass/fail + вывод
184
- ```
185
-
186
- ### tests
187
-
188
- Проверка тестов:
189
-
190
- ```
191
- Критерий: "[ ] Тесты проходят"
192
- Проверка: npm test / pytest / etc.
193
- Результат: pass/fail + вывод
194
- ```
195
-
196
- ### text
197
-
198
- Текстовая проверка:
199
-
200
- ```
201
- Критерий: "[ ] Описан алгоритм проверки DoD"
202
- Проверка: Поиск раздела "Алгоритм" в файле
203
- Результат: pass/fail
204
- ```
205
-
206
- ### structure
207
-
208
- Проверка структуры:
209
-
210
- ```
211
- Критерий: "[ ] Структура аналогична существующим skills"
212
- Проверка: Сравнение с шаблоном
213
- Результат: pass/fail + замечания
214
- ```
215
-
216
- ## Пример использования
217
-
218
- ```
219
- Проверь результат IMPL-006 на соответствие DoD.
220
- ```
221
-
222
- ```
223
- review-result .workflow/tickets/in-progress/IMPL-006.md
224
- ```
225
-
226
- ## Пример вывода
227
-
228
- ### Успешная проверка
229
-
230
- ```markdown
231
- ---RESULT---
232
- status: passed
233
- issues: []
234
- ---RESULT---
235
- ```
236
-
237
- ### Неуспешная проверка
238
-
239
- ```markdown
240
- ---RESULT---
241
- status: failed
242
- issues:
243
- - "Пункт DoD 'Файл .workflow/src/skills/review-result/SKILL.md создан' не выполнен: файл не найден"
244
- - "Пункт DoD 'Описан алгоритм проверки DoD' не выполнен: раздел 'Алгоритм' отсутствует"
245
- - "Тесты не прошли: 2 failed, 5 passed"
246
- ---RESULT---
247
- ```
248
-
249
- ## Формат секции ревью в тикете
250
-
251
- После проверки skill добавляет в тикет секцию. **Новые записи всегда добавляются В КОНЕЦ таблицы** (хронологический порядок: старые сверху, новые снизу):
252
-
253
- ```markdown
254
- ## Ревью
255
-
256
- | Дата | Статус | Самари |
257
- |------|--------|--------|
258
- | 2026-03-03 14:30 | ❌ failed | Не пройдены тесты, отсутствует файл logger.py |
259
- | 2026-03-03 15:45 | ✅ passed | Все критерии DoD выполнены после исправления |
260
- ```
261
-
262
- > **Порядок записей:** хронологический сверху вниз. Последняя строка = последнее ревью. Код `getLastReviewStatus()` определяет статус по последней строке.
263
-
264
- ## Интеграция с пайплайном
265
-
266
- В retry-логике пайплайна:
267
-
268
- 1. `execute-task` выполняет задачу
269
- 2. `review-result` проверяет результат
270
- 3. По `status` определяется goto-переход:
271
- - `passed` → следующий stage
272
- - `failed` → retry или blocked
273
-
274
- ## Результат
275
-
276
- - Структурированный вердикт (passed/failed)
277
- - Список замечаний (если есть)
278
- - **Тикет помечен секцией `## Ревью`** с датой, статусом и кратким самари
279
- - Готово для использования в goto-логике
280
-
281
- ## Связанные skills
282
-
283
- - `execute-task` — выполнение задачи перед проверкой
284
- - `move-ticket` — перемещение по результатам проверки
285
- - `check-conditions` — проверка условий для зависимых задач