workflow-ai 1.0.41 → 1.0.43

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 (55) hide show
  1. package/package.json +1 -1
  2. package/src/init.mjs +13 -8
  3. package/src/junction-manager.mjs +8 -4
  4. package/src/runner.mjs +1 -1
  5. package/src/scripts/archive-plan-tickets.js +0 -102
  6. package/src/scripts/check-anomalies.js +0 -161
  7. package/src/scripts/check-conditions.js +0 -254
  8. package/src/scripts/check-plan-decomposed.js +0 -179
  9. package/src/scripts/move-ticket.js +0 -228
  10. package/src/scripts/move-to-ready.js +0 -115
  11. package/src/scripts/move-to-review.js +0 -100
  12. package/src/scripts/pick-next-task.js +0 -723
  13. package/src/skills/analyze-report/SKILL.md +0 -110
  14. package/src/skills/check-relevance/SKILL.md +0 -236
  15. package/src/skills/coach/README.md +0 -100
  16. package/src/skills/coach/SKILL.md +0 -119
  17. package/src/skills/coach/algorithms/gap-analysis.md +0 -69
  18. package/src/skills/coach/algorithms/improvement-prioritization.md +0 -62
  19. package/src/skills/coach/algorithms/skill-scoring.md +0 -79
  20. package/src/skills/coach/knowledge/backlog-management.md +0 -71
  21. package/src/skills/coach/knowledge/common-antipatterns.md +0 -56
  22. package/src/skills/coach/knowledge/prompt-engineering.md +0 -86
  23. package/src/skills/coach/knowledge/skill-anatomy.md +0 -71
  24. package/src/skills/coach/templates/audit-report.md +0 -54
  25. package/src/skills/coach/templates/coach-backlog-init.yaml +0 -10
  26. package/src/skills/coach/templates/improvement-plan.md +0 -54
  27. package/src/skills/coach/templates/new-skill.md +0 -137
  28. package/src/skills/coach/workflows/analyze.md +0 -85
  29. package/src/skills/coach/workflows/audit.md +0 -68
  30. package/src/skills/coach/workflows/create.md +0 -66
  31. package/src/skills/coach/workflows/improve.md +0 -70
  32. package/src/skills/coach/workflows/research.md +0 -55
  33. package/src/skills/coach/workflows/review.md +0 -74
  34. package/src/skills/create-plan/SKILL.md +0 -107
  35. package/src/skills/create-report/SKILL.md +0 -156
  36. package/src/skills/decompose-gaps/SKILL.md +0 -167
  37. package/src/skills/decompose-plan/SKILL.md +0 -219
  38. package/src/skills/deep-research/README.md +0 -50
  39. package/src/skills/deep-research/SKILL.md +0 -148
  40. package/src/skills/deep-research/algorithms/source-scoring.md +0 -63
  41. package/src/skills/deep-research/algorithms/synthesis.md +0 -67
  42. package/src/skills/deep-research/knowledge/data-validation.md +0 -44
  43. package/src/skills/deep-research/knowledge/research-methodology.md +0 -54
  44. package/src/skills/deep-research/knowledge/source-evaluation.md +0 -33
  45. package/src/skills/deep-research/scripts/perplexity-research.js +0 -315
  46. package/src/skills/deep-research/templates/brief-summary.md +0 -25
  47. package/src/skills/deep-research/templates/research-report.md +0 -76
  48. package/src/skills/deep-research/workflows/benchmark.md +0 -56
  49. package/src/skills/deep-research/workflows/competitor.md +0 -63
  50. package/src/skills/deep-research/workflows/custom.md +0 -45
  51. package/src/skills/deep-research/workflows/market.md +0 -64
  52. package/src/skills/deep-research/workflows/technology.md +0 -52
  53. package/src/skills/deep-research/workflows/trend.md +0 -51
  54. package/src/skills/execute-task/SKILL.md +0 -207
  55. package/src/skills/review-result/SKILL.md +0 -329
@@ -1,156 +0,0 @@
1
- ---
2
- name: create-report
3
- description: Сформировать отчёт о выполненных задачах. Используй по завершении итерации для документирования прогресса. Собирает информацию из done/ тикетов и создаёт отчёт в .workflow/reports/.
4
- ---
5
-
6
- # Создание отчёта
7
-
8
- Этот skill формирует отчёт о выполненных задачах на основе завершённых тикетов.
9
-
10
- ## Когда использовать
11
-
12
- - Завершилась итерация работ
13
- - Накопились выполненные задачи в done/
14
- - Нужно зафиксировать прогресс
15
- - Перед принятием решений о следующих шагах
16
-
17
- ## Шаги выполнения
18
-
19
- ### 1. Собрать информацию
20
-
21
- Прочитать все тикеты из:
22
- - `.workflow/tickets/done/` — выполненные
23
- - `.workflow/tickets/blocked/` — заблокированные
24
- - `.workflow/tickets/in-progress/` — в работе
25
-
26
- ### 1.5. Проверка аномалий: in-progress тикеты с заполненным результатом
27
-
28
- **Важно:** Перед формированием отчёта проверить in-progress тикеты на наличие заполненных результатов.
29
-
30
- **Автоматическая проверка (рекомендуется):**
31
-
32
- Использовать скрипт `.workflow/src/scripts/check-anomalies.js`:
33
-
34
- ```bash
35
- node .workflow/src/scripts/check-anomalies.js
36
- ```
37
-
38
- Скрипт выводит результат в формате:
39
- ```
40
- ---RESULT---
41
- status: ok|anomalies_found|error
42
- anomalies_count: N
43
- anomalies: [{"id": "IMPL-001", "title": "...", "recommendation": "..."}]
44
- ---RESULT---
45
- ```
46
-
47
- **Ручная проверка (если скрипт недоступен):**
48
-
49
- Для каждого тикета в `.workflow/tickets/in-progress/`:
50
- 1. Прочитать содержимое файла
51
- 2. Найти раздел `## Результат выполнения` (или `## Result`)
52
- 3. Проверить подраздел `### Summary` (или `### Что сделано`)
53
- 4. Если подраздел содержит непустой текст (не только `<!-- ... -->` комментарии) — это аномалия
54
-
55
- **Критерии заполнения:**
56
- - Раздел содержит текст, отличный от шаблонов `<!-- ... -->`
57
- - Есть конкретное описание выполненной работы
58
- - Указаны изменённые файлы или конкретные результаты
59
-
60
- **Действия при обнаружении аномалии:**
61
- - Добавить тикет в секцию "Аномалии" отчёта
62
- - Указать рекомендацию: "Проверьте тикет и переместите в done/ или review/ если выполнен"
63
-
64
- ### 2. Определить период
65
-
66
- ```
67
- Период: от последнего отчёта до сейчас
68
-
69
- Если отчётов нет — от создания первого тикета
70
- ```
71
-
72
- ### 3. Для каждой выполненной задачи
73
-
74
- Извлечь:
75
- - ID и название
76
- - Время выполнения (created_at → completed_at)
77
- - Результат (из секции Result)
78
- - Проблемы (если были)
79
-
80
- ### 4. Сформировать статистику
81
-
82
- ```
83
- Выполнено: N задач
84
- В работе: M задач
85
- Заблокировано: K задач
86
- В очереди: L задач
87
-
88
- По типам:
89
- - IMPL: X
90
- - FIX: Y
91
- - DOCS: Z
92
- ```
93
-
94
- ### 5. Выделить проблемы и аномалии
95
-
96
- **Проблемы:**
97
-
98
- Для каждой заблокированной задачи:
99
- - Причина блокировки
100
- - Как разблокировать
101
-
102
- Для задач с problems:
103
- - Описание проблемы
104
- - Как была решена
105
-
106
- **Аномалии:**
107
-
108
- Если на шаге 1.5 найдены in-progress тикеты с заполненным результатом:
109
- - Создать подсекцию "Аномалии"
110
- - Для каждого тикета указать:
111
- - ID и название
112
- - Рекомендацию: "Проверьте тикет и переместите в done/ или review/ если выполнен"
113
-
114
- ### 6. Связать с планом
115
-
116
- Если есть активный план:
117
- - Какой процент выполнен
118
- - Какие задачи из плана закрыты
119
- - Что осталось
120
-
121
- ### 7. Сохранить отчёт
122
-
123
- 1. Прочитай шаблон: `.workflow/templates/report-template.md`
124
- 2. Определи следующий ID: найди все файлы `REPORT-*.md` в `.workflow/reports/`, возьми максимальный номер и прибавь 1. Если файлов нет — начни с `REPORT-001`.
125
- 3. Сохрани в: `.workflow/reports/REPORT-{NNN}.md`
126
-
127
- ### 8. Вывести структурированный результат
128
-
129
- После сохранения **обязательно** выведи блок результата:
130
-
131
- ```
132
- ---RESULT---
133
- status: default
134
- report_id: REPORT-001
135
- ---RESULT---
136
- ```
137
-
138
- ## Пример использования
139
-
140
- ```
141
- Создай отчёт о выполненных задачах за последнюю неделю.
142
- ```
143
-
144
- ## Результат
145
-
146
- Файл `.workflow/reports/REPORT-001.md` содержащий:
147
- - Период отчёта
148
- - Список выполненных задач с результатами
149
- - Статистику
150
- - Проблемы и их решения
151
- - Прогресс по плану
152
-
153
- ## Связанные skills
154
-
155
- - `analyze-report` — анализ отчёта
156
- - `create-plan` — создание плана на основе выводов
@@ -1,167 +0,0 @@
1
- ---
2
- name: decompose-gaps
3
- description: Декомпозировать недочёты (gaps) из анализа отчёта в новые тикеты. Используй после analyze-report когда план выполнен не полностью. Создаёт тикеты в .workflow/tickets/backlog/ на основе выявленных пробелов, а не на основе исходного плана.
4
- ---
5
-
6
- # Декомпозиция недочётов в тикеты
7
-
8
- Этот skill создаёт новые тикеты на основе **недочётов (gaps)**, выявленных при анализе отчёта. В отличие от `decompose-plan`, он работает не с исходным планом, а с конкретными пробелами — что не было сделано, что сделано некорректно, что требует доработки.
9
-
10
- ## Когда использовать
11
-
12
- - Анализ отчёта выявил пробелы (`status: has_gaps`)
13
- - Нужно создать точечные задачи на доработку
14
- - Требуется закрыть конкретные недочёты, а не декомпозировать весь план заново
15
-
16
- ## Входные данные (из context)
17
-
18
- | Параметр | Описание |
19
- |----------|----------|
20
- | `gaps` | Описание недочётов из analyze-report |
21
- | `report_id` | ID отчёта, в котором выявлены недочёты |
22
- | `plan_id` | ID исходного плана (для ссылки) |
23
-
24
- ## Шаги выполнения
25
-
26
- ### 1. Прочитать описание недочётов
27
-
28
- Из context-переменной `gaps` извлечь:
29
- - Какие задачи не были выполнены
30
- - Какие результаты не соответствуют ожиданиям
31
- - Какие доработки требуются
32
-
33
- ### 2. Прочитать отчёт для полного контекста
34
-
35
- ```
36
- Путь: .workflow/reports/REPORT-{report_id}.md
37
- ```
38
-
39
- Извлечь:
40
- - Что было выполнено (для понимания текущего состояния)
41
- - Какие проблемы возникли
42
- - Какие файлы были затронуты
43
-
44
- ### 3. Прочитать исходный план (опционально)
45
-
46
- ```
47
- Путь: .workflow/plans/current/PLAN-{plan_id}.md
48
- ```
49
-
50
- Сверить gaps с исходными требованиями плана, чтобы понять:
51
- - Задача была пропущена или выполнена некорректно?
52
- - Нужна доработка или переделка?
53
-
54
- ### 3.5. Проверить scope каждого gap
55
-
56
- **ОБЯЗАТЕЛЬНО** перед созданием тикетов выполнить три проверки:
57
-
58
- #### Проверка 1: Источник gap
59
-
60
- Gap — это исключительно то, что **не выполнено или выполнено некорректно** из явного списка задач плана. Источник gap — только эти секции отчёта:
61
- - «Выполненные задачи» — задачи со статусом failed/skipped где DoD не выполнен
62
- - «Заблокированные задачи» — задачи, заблокированные по техническим причинам (не по внешним зависимостям)
63
- - «Риски и проблемы» — только конкретные сбои в выполненных задачах
64
-
65
- **НЕ являются источником gaps следующие секции отчёта:**
66
- - «Рекомендации для Architect» — это советы, не пробелы
67
- - «План на следующий период» — это новые инициативы, не пробелы
68
- - «Потенциальные риски» — это гипотезы, не пробелы
69
- - Любые упоминания будущих задач (GML-005, стратегия, следующий этап и т.п.)
70
-
71
- #### Проверка 2: Принадлежность к scope исходного плана
72
-
73
- **Gap в scope (создавать тикет):**
74
- - Задача была в исходном плане, но не выполнена или выполнена некорректно
75
- - Доработка существующего результата, который не соответствует DoD плана
76
- - Исправление ошибки в уже сделанной работе по плану
77
-
78
- **Gap вне scope (НЕ создавать тикет):**
79
- - Новая работа, которой не было в исходном плане
80
- - Расширение scope за рамки первоначальных требований
81
- - Задачи, созданные другими тикетами как часть их DoD (например, quick win тикеты созданные GML-004 — это deliverables, не gaps)
82
- - Задачи из секций «Рекомендации», «План на следующий период», «Следующие шаги»
83
-
84
- #### Проверка 3: Статус плана
85
-
86
- Если план завершён (`status: completed`) или все его ключевые задачи выполнены — decompose-gaps **не создаёт тикеты**. Gaps в завершённом плане = новые инициативы для следующего плана.
87
-
88
- **Для gap вне scope:** НЕ создавать тикет. Вместо этого записать в секцию «Новые требования» в результате выполнения:
89
-
90
- ```markdown
91
- ### Новые требования (вне scope плана)
92
- - [описание gap] — причина: [почему это вне scope]
93
- ```
94
-
95
- Эти требования будут рассмотрены при создании следующего плана.
96
-
97
- ### 4. Для каждого gap создать тикет
98
-
99
- Каждый gap → 1 или несколько тикетов.
100
-
101
- Критерии хорошего тикета на доработку:
102
- - **Точечный** — исправляет конкретный недочёт, а не переделывает всё
103
- - **Атомарный** — одна конкретная работа
104
- - **С контекстом** — ссылается на отчёт и исходную задачу
105
- - **Выполнимый** — понятно что делать без дополнительных вопросов
106
-
107
- ### 5. Определить тип каждого тикета
108
-
109
- Прочитай актуальные типы задач из `.workflow/config/config.yaml` (секция `task_types`). Используй **только** префиксы, определённые в конфиге. Не используй типы, которых нет в конфиге.
110
-
111
- ### 6. Назначить приоритеты
112
-
113
- Приоритеты для тикетов-доработок обычно выше, чем для обычных задач:
114
-
115
- | Приоритет | Значение |
116
- |-----------|----------|
117
- | 1 | Critical — блокирует завершение плана |
118
- | 2 | High — важный пробел |
119
- | 3 | Medium — мелкий недочёт |
120
-
121
- ### 6.5. Пути для output-артефактов
122
-
123
- **⛔ ВАЖНО:** Артефакты НИКОГДА не складываются в `.workflow/`. Директория `.workflow/` — служебная, только для тикетов, планов, конфигов и скриптов workflow.
124
-
125
- Output-артефакты сохраняются в **корневой** директории. При указании `output` в тикете используй путь от корня репо, а не `.workflow/...`.
126
-
127
- ### 7. Создать тикеты
128
-
129
- 1. Прочитай шаблон: `.workflow/templates/ticket-template.md`
130
- 2. Для каждого тикета:
131
- - Определи следующий ID: найди все файлы `{TYPE}-*.md` во всех папках `.workflow/tickets/`, возьми максимальный номер для этого префикса и прибавь 1. Если файлов нет — начни с `{TYPE}-001`.
132
- - Заполни шаблон
133
- - **Если доработка относится к плану** — заполни `parent_plan: "plans/current/PLAN-{plan_id}.md"`. Это обязательно, если `plan_id` передан в context.
134
- - В описании укажи: `Доработка по результатам REPORT-{report_id}`
135
- - Сохрани в `.workflow/tickets/backlog/{TYPE}-{NNN}.md`
136
-
137
- ### 8. Вывести структурированный результат
138
-
139
- После создания тикетов **обязательно** выведи блок результата:
140
-
141
- ```
142
- ---RESULT---
143
- status: default
144
- created_tickets: IMPL-010, FIX-011
145
- ---RESULT---
146
- ```
147
-
148
- ## Пример использования
149
-
150
- ```
151
- Декомпозируй недочёты в новые тикеты.
152
-
153
- Context:
154
- gaps: Не реализована валидация входных данных; отсутствует обработка ошибок в runner.mjs
155
- report_id: REPORT-003
156
- plan_id: PLAN-006
157
- ```
158
-
159
- ## Результат
160
-
161
- - Новые тикеты в `.workflow/tickets/backlog/`
162
-
163
- ## Связанные skills
164
-
165
- - `analyze-report` — предшествующий шаг, выявляет gaps
166
- - `check-conditions` — следующий шаг, проверяет готовность новых тикетов
167
- - `decompose-plan` — похожий skill, но для декомпозиции всего плана
@@ -1,219 +0,0 @@
1
- ---
2
- name: decompose-plan
3
- description: Декомпозировать план на исполняемые тикеты. Используй после создания плана для разбиения высокоуровневых задач на конкретные тикеты с зависимостями и условиями. Создаёт тикеты в .workflow/tickets/backlog/.
4
- ---
5
-
6
- # Декомпозиция плана на тикеты
7
-
8
- Этот skill разбивает высокоуровневый план на исполняемые тикеты для канбан-доски.
9
-
10
- ## Когда использовать
11
-
12
- - Создан новый план
13
- - Нужно разбить крупную задачу на подзадачи
14
- - Требуется детальная декомпозиция
15
-
16
- ## ⛔ Какой план декомпозировать
17
-
18
- Декомпозируй план, указанный в секции Instructions твоего промпта. Открой этот файл и сразу переходи к шагу 1. Не сканируй папку plans/current/. Не проверяй статус плана. Не читай другие планы.
19
-
20
- ## Шаги выполнения
21
-
22
- ### 1. Прочитать план
23
-
24
- ```
25
- Путь: .workflow/plans/current/PLAN-{NNN}.md
26
- ```
27
-
28
- Извлечь:
29
- - Список высокоуровневых задач
30
- - Зависимости между ними
31
- - Приоритеты
32
- - Контекст проекта
33
-
34
- ### 2. Для каждой задачи определить тикеты
35
-
36
- Каждая задача из плана может превратиться в 1+ тикетов.
37
-
38
- Критерии хорошего тикета:
39
- - Атомарный (одна конкретная работа)
40
- - Выполнимый за 1-4 часа
41
- - Имеет чёткие критерии готовности
42
- - Понятно что делать без дополнительных вопросов
43
-
44
- ### 2.5. Оценить автономность каждой задачи
45
-
46
- Для каждой задачи из плана определи: **может ли агент выполнить её полностью автономно?**
47
-
48
- | Категория | Критерий | Действие |
49
- |-----------|----------|----------|
50
- | **Полностью автономная** | Агент может выполнить все шаги без участия человека (написание кода, документации, анализ данных через WebSearch/WebFetch) | Создать 1 тикет с `executor_type: agent` |
51
- | **Полностью ручная** | Требует действий, недоступных агенту (доступ к приватным аккаунтам, физические действия, аутентифицированные сервисы) | Создать 1 тикет `type: human` с `executor_type: human` и явными инструкциями для человека |
52
- | **Гибридная** | Часть работы может сделать агент, часть — только человек | Разбить на 2 тикета: (a) агентский тикет с `executor_type: agent` и (b) HUMAN-тикет с `executor_type: human`, с зависимостью между ними |
53
-
54
- **Для HUMAN-тикетов обязательно:**
55
- - Явные пошаговые инструкции что именно должен сделать человек
56
- - DoD-критерий: «Результаты внесены непосредственно в файл тикета»
57
- - Указание в каком формате ожидается результат
58
-
59
- **⛔ НЕ создавать conditional/fallback HUMAN-тикеты заранее.**
60
- Если HUMAN-тикет нужен только при провале агентского тикета (например, «выполнить вручную, если агент не смог пройти auth») — **не создавай его на этапе декомпозиции**. Такие тикеты создаёт `decompose-gaps` когда проблема реально возникла. Иначе они висят в backlog вечно и засоряют доску.
61
-
62
- **Пример разбиения гибридной задачи:**
63
-
64
- Задача из плана: «Провести конкурентный анализ и настроить трекинг конкурентов в аналитике»
65
-
66
- → Тикет 1 (agent): `PMA-005` — Провести конкурентный анализ через публичные источники (WebSearch: цены, позиционирование, отзывы, ASO). `executor_type: agent`
67
-
68
- → Тикет 2 (human): `HUMAN-010` — Настроить трекинг конкурентов в SimilarWeb Pro (требует auth). `executor_type: human`, `dependencies: [PMA-005]`. Инструкции: «1. Войти в SimilarWeb Pro. 2. Добавить домены конкурентов из PMA-005. 3. Настроить еженедельный отчёт. 4. Вставить ссылку на дашборд в результат тикета.»
69
-
70
- ### 3. Определить тип каждого тикета
71
-
72
- Прочитай актуальные типы задач из `.workflow/config/config.yaml` (секция `task_types`). Используй **только** префиксы, определённые в конфиге. Не используй типы, которых нет в конфиге.
73
-
74
- ### 4. Определить зависимости
75
-
76
- Для каждого тикета:
77
- - От каких тикетов зависит (`dependencies`)
78
- - Какие условия должны быть выполнены (`conditions`)
79
-
80
- Типы условий:
81
- - `tasks_completed: [IMPL-001, IMPL-002]` — задачи должны быть выполнены
82
- - `date_after: "2024-01-15"` — не раньше даты
83
- - `file_exists: "src/config.py"` — файл должен существовать
84
- - `manual_approval: true` — требуется одобрение человека
85
-
86
- ### 4.5. Scope-guard: проверка принадлежности к плану
87
-
88
- **ОБЯЗАТЕЛЬНО** перед созданием каждого тикета выполнить проверку scope.
89
-
90
- #### Правило: тикеты создаются ТОЛЬКО на работу внутри scope плана
91
-
92
- Прочитай секции плана «Scope (Границы)» → «Включено в scope» и «Исключено из scope». Каждый создаваемый тикет **должен** относиться к работе из «Включено в scope».
93
-
94
- **Тикет в scope (создавать):**
95
- - Задача явно описана в высокоуровневых задачах плана
96
- - Задача является декомпозицией конкретного пункта плана
97
- - Задача необходима для достижения критериев успеха плана
98
-
99
- **Тикет вне scope (НЕ создавать):**
100
- - Задача относится к работе из «Исключено из scope»
101
- - Задача является follow-up после завершения плана (стратегия, запуск кампаний и т.д.)
102
- - Задача появляется из DoD другого тикета как «создать тикеты для команды» — это рекомендация для следующего плана, а не тикет текущего
103
- - Задача с условием `date_after` за пределами горизонта текущего плана
104
-
105
- **Для работы вне scope:** НЕ создавать тикет. Вместо этого записать в секцию «Рекомендации для следующего плана» в результате выполнения:
106
-
107
- ```markdown
108
- ### Рекомендации для следующего плана (вне scope)
109
- - [описание задачи] — причина: [почему это следующий этап]
110
- ```
111
-
112
- Эти рекомендации будут учтены при создании следующего плана.
113
-
114
- #### Чеклист самопроверки перед созданием тикета
115
-
116
- - [ ] Задача входит в «Включено в scope» плана?
117
- - [ ] Задача НЕ входит в «Исключено из scope»?
118
- - [ ] `parent_plan` заполнен и указывает на текущий план?
119
- - [ ] Задача необходима для критериев успеха текущего плана?
120
-
121
- ### 4.6. Дедупликация: проверка на существующие тикеты
122
-
123
- **ОБЯЗАТЕЛЬНО** перед созданием каждого тикета выполнить проверку на дубли.
124
-
125
- #### Алгоритм
126
-
127
- 1. Перед созданием каждого тикета — сканировать **ВСЕ** папки `tickets/` (`backlog/`, `ready/`, `in-progress/`, `blocked/`, `review/`, `done/`)
128
- 2. Найти тикеты с тем же префиксом типа (например, все `PMA-*.md` если создаёшь PMA-тикет)
129
- 3. Сравнить `title` и scope создаваемого тикета с существующими
130
- 4. Если совпадение >70% по title/scope → **НЕ создавать** тикет
131
-
132
- #### Чеклист самопроверки перед созданием
133
-
134
- - [ ] Нет тикета с таким же или очень похожим title?
135
- - [ ] Нет тикета с пересекающимся scope работы?
136
- - [ ] Если тикет в `done/` — нужна ли реально повторная работа или результат уже есть?
137
-
138
- #### Override: когда дубль допустим
139
-
140
- Если дедупликация блокирует создание тикета, но работа реально нужна (например, предыдущий тикет failed или результат устарел) — создать с пометкой:
141
-
142
- ```yaml
143
- notes: "Повторная работа, предыдущий: {ID} — причина: {причина}"
144
- ```
145
-
146
- ### 5. Назначить приоритеты
147
-
148
- | Приоритет | Значение |
149
- |-----------|----------|
150
- | 1 | Critical — блокирует всё |
151
- | 2 | High — важно для прогресса |
152
- | 3 | Medium — стандартная работа |
153
- | 4 | Low — можно отложить |
154
- | 5 | Someday — когда-нибудь |
155
-
156
- ### 5.5. Пути для output-артефактов
157
-
158
- **⛔ ВАЖНО:** Артефакты (отчёты, аналитика, спеки, исследования) НИКОГДА не складываются в `.workflow/`. Директория `.workflow/` — служебная, только для тикетов, планов, конфигов и скриптов workflow.
159
-
160
- Output-артефакты тикетов сохраняются в **корневой** директории.
161
-
162
- При указании `output` в тикете используй путь от корня репо, а не `.workflow/...`.
163
-
164
- ### 5.6. Соответствие ID тикетов плану
165
-
166
- **Если план явно указывает ID тикетов** (например `Тикет: PMA-015`) — **используй именно эти ID**. Не назначай автоинкрементные номера, если план уже задал конкретные. Расхождение ID между планом и тикетами создаёт путаницу при отслеживании прогресса.
167
-
168
- **Если план НЕ указывает ID** — используй автоинкремент (шаг 6).
169
-
170
- ### 5.8. Не указывай инструменты исполнителя в тикете
171
-
172
- **⛔ ВАЖНО:** Тикет описывает **что** нужно сделать и **какой результат** ожидается. Тикет **НЕ указывает** конкретные инструменты или методы сбора данных (WebSearch, WebFetch, Playwright и т.д.) — это зона ответственности SKILL.md исполнителя.
173
-
174
- Каждый скил имеет свои предписанные инструменты (например, RSH использует `perplexity-research.js`, PMA — Playwright MCP-browser). Если тикет явно указывает другой инструмент — агент следует тикету и нарушает свой workflow.
175
-
176
- **Исключение:** `required_capabilities` в frontmatter (например `browser_automation`, `web_research`) — это допустимо, так как описывает **возможность**, а не конкретный инструмент.
177
-
178
- ### 5.7. Создание ВСЕХ тикетов плана
179
-
180
- **ОБЯЗАТЕЛЬНО** создай тикеты для **ВСЕХ** задач плана, включая отложенные фазы (с `date_after` или сложными `conditions`). Если задача запланирована — тикет должен быть создан в `backlog/` с соответствующими условиями. Непокрытые задачи будут забыты.
181
-
182
- ### 6. Создать тикеты
183
-
184
- 1. Прочитай шаблон: `.workflow/templates/ticket-template.md`
185
- 2. Для каждого тикета:
186
- - Определи ID: если план указал конкретный ID → используй его. Иначе → найди все файлы `{TYPE}-*.md` во всех папках `.workflow/tickets/`, возьми максимальный номер для этого префикса и прибавь 1. Если файлов нет — начни с `{TYPE}-001`.
187
- - Заполни шаблон
188
- - **Обязательно** заполни `parent_plan: "plans/current/PLAN-{NNN}.md"` — путь к плану, из которого создан тикет
189
- - Сохрани в `.workflow/tickets/backlog/{TYPE}-{NNN}.md`
190
-
191
- ### 7. Обновить план
192
-
193
- Добавь в план ссылки на созданные тикеты.
194
-
195
- ### 8. Вывести структурированный результат
196
-
197
- После создания тикетов **обязательно** выведи блок результата:
198
-
199
- ```
200
- ---RESULT---
201
- status: default
202
- ---RESULT---
203
- ```
204
-
205
- ## Пример использования
206
-
207
- ```
208
- Декомпозируй план .workflow/plans/current/PLAN-001.md на тикеты.
209
- ```
210
-
211
- ## Результат
212
-
213
- - Тикеты в `.workflow/tickets/backlog/`
214
- - Обновлённый план с ссылками на тикеты
215
-
216
- ## Связанные skills
217
-
218
- - `create-plan` — создание плана для декомпозиции
219
- - `check-conditions` — проверка готовности тикетов
@@ -1,50 +0,0 @@
1
- # Deep Research — Agent Skill
2
-
3
- Агент-исследователь для глубокого анализа тем. Получает задачи на исследование от других скилов и формирует структурированные текстовые отчёты с данными, источниками и выводами.
4
-
5
- ## Структура
6
-
7
- ```
8
- deep-research/
9
- ├── SKILL.md # Ядро: роль, маршрутизация, принципы
10
- ├── README.md # Документация
11
- ├── workflows/
12
- │ ├── market.md # Исследование рынка
13
- │ ├── competitor.md # Анализ конкурентов
14
- │ ├── trend.md # Исследование трендов
15
- │ ├── benchmark.md # Сбор бенчмарков
16
- │ ├── technology.md # Обзор технологий
17
- │ └── custom.md # Кастомное исследование
18
- ├── knowledge/
19
- │ ├── research-methodology.md # Методология исследований
20
- │ ├── source-evaluation.md # Оценка надёжности источников
21
- │ └── data-validation.md # Валидация данных
22
- ├── algorithms/
23
- │ ├── source-scoring.md # Скоринг источников (1-10)
24
- │ └── synthesis.md # Синтез выводов
25
- └── templates/
26
- ├── research-report.md # Полный исследовательский отчёт
27
- └── brief-summary.md # Краткая справка
28
- ```
29
-
30
- ## Как это работает
31
-
32
- 1. Другой скил (GML, PMA, Coach, etc.) создаёт тикет `RSH-*` с исследовательским вопросом
33
- 2. Deep Research определяет тип (MARKET/COMPETITOR/TREND/BENCHMARK/TECHNOLOGY/CUSTOM)
34
- 3. Загружает соответствующий workflow
35
- 4. Проводит исследование: поиск → фильтрация → анализ → синтез
36
- 5. Формирует отчёт с источниками, уровнями уверенности, выводами
37
-
38
- ## Как расширять
39
-
40
- ### Новый тип исследования
41
- 1. Создай файл в `workflows/{type}.md`
42
- 2. Добавь запись в таблицу маршрутизации в `SKILL.md`
43
-
44
- ### Новый knowledge-модуль
45
- 1. Создай файл в `knowledge/{module}.md`
46
- 2. Добавь запись в таблицу загрузки знаний в `SKILL.md`
47
-
48
- ### Новый шаблон вывода
49
- 1. Создай файл в `templates/{template}.md`
50
- 2. Добавь запись в таблицу шаблонов в `SKILL.md`