workflow-ai 1.0.61 → 1.0.63
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/README.md +61 -0
- package/agent-templates/CLAUDE.md.tpl +60 -58
- package/agent-templates/QWEN.md.tpl +60 -58
- package/package.json +2 -1
- package/src/init.mjs +438 -437
- package/src/lib/agent-spawner.mjs +338 -0
- package/src/runner.mjs +16 -14
- package/src/scripts/archive-plan-tickets.js +102 -0
- package/src/scripts/check-anomalies.js +161 -0
- package/src/scripts/check-conditions.js +258 -0
- package/src/scripts/check-mcp.js +277 -0
- package/src/scripts/check-plan-decomposed.js +217 -0
- package/src/scripts/check-plan-templates.js +297 -0
- package/src/scripts/check-relevance.js +311 -0
- package/src/scripts/complete-plan.js +106 -0
- package/src/scripts/get-next-id.js +214 -0
- package/src/scripts/get-next-test-id.js +94 -0
- package/src/scripts/migrate-backlog-to-tests.js +406 -0
- package/src/scripts/move-ticket.js +260 -0
- package/src/scripts/move-to-ready.js +115 -0
- package/src/scripts/move-to-review.js +151 -0
- package/src/scripts/pick-next-task.js +791 -0
- package/src/scripts/run-skill-tests.js +1491 -0
- package/src/scripts/scan-fixtures-for-secrets.js +248 -0
- package/src/scripts/tests/timeout-cascade.test.js +28 -0
- package/templates/plan-template.md +1 -0
package/README.md
CHANGED
|
@@ -121,6 +121,67 @@ Skills are stored globally in `~/.workflow/skills/` and linked into projects via
|
|
|
121
121
|
|
|
122
122
|
Use `workflow eject <skill>` to copy a skill into the project for customization.
|
|
123
123
|
|
|
124
|
+
## Skill regression tests
|
|
125
|
+
|
|
126
|
+
Трёхуровневая система тестирования скилов для проверки качества AI-агентов.
|
|
127
|
+
|
|
128
|
+
### Три слоя тестирования
|
|
129
|
+
|
|
130
|
+
| Level | Name | Description |
|
|
131
|
+
|-------|------|-------------|
|
|
132
|
+
| L0 | Static | Базовая проверка синтаксиса и структуры: YAML-валидация, проверка обязательных полей, линтер |
|
|
133
|
+
| L1 | Deterministic | Детерминированные тесты: эталонные входные данные → ожидаемый результат (strict match) |
|
|
134
|
+
| L2 | Rubric | Гибкая оценка по критериям: scorer выставляет баллы на основе качества результата |
|
|
135
|
+
|
|
136
|
+
### Структура директорий
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
src/skills/<name>/tests/
|
|
140
|
+
├── index.yaml # Метаданные тестов, список test cases
|
|
141
|
+
├── cases/ # Входные данные для тестов
|
|
142
|
+
│ └── <case-id>/
|
|
143
|
+
│ └── input.yaml
|
|
144
|
+
├── fixtures/ # Ожидаемые выходные данные (для L1)
|
|
145
|
+
│ └── <case-id>/
|
|
146
|
+
│ └── expected.yaml
|
|
147
|
+
└── rubrics/ # Критерии оценки (для L2)
|
|
148
|
+
└── <case-id>/
|
|
149
|
+
└── rubric.yaml
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Запуск тестов
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
npm run test:skills
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### CLI-флаги
|
|
159
|
+
|
|
160
|
+
| Flag | Description |
|
|
161
|
+
|------|-------------|
|
|
162
|
+
| `--skill <name>` | Запустить тесты только для указанного скила |
|
|
163
|
+
| `--relevant` | Запустить только тесты, соответствующие изменённым файлам |
|
|
164
|
+
| `--establish-baseline` | Запустить тесты и сохранить результаты как baseline |
|
|
165
|
+
| `--baseline-ref <ref>` | Использовать конкретный baseline (коммит, тег) |
|
|
166
|
+
| `--yes` | Автоматически подтверждать все действия |
|
|
167
|
+
|
|
168
|
+
### Verdict-режимы
|
|
169
|
+
|
|
170
|
+
| Mode | Description |
|
|
171
|
+
|------|-------------|
|
|
172
|
+
| `no-baseline` | Первый запуск — результаты сохраняются как baseline без сравнения |
|
|
173
|
+
| `no-regression` | Сравнение с baseline — тест считается пройденным, если результат не хуже baseline |
|
|
174
|
+
|
|
175
|
+
### Принцип git write
|
|
176
|
+
|
|
177
|
+
Runner и коуч **не выполняют git write-операций**. Все изменения в кодовой базе делает исключительно пользователь. Runner только анализирует и рекомендует, но не коммитит.
|
|
178
|
+
|
|
179
|
+
### First run on a new project
|
|
180
|
+
|
|
181
|
+
1. Запустить тесты с флагом `--establish-baseline`
|
|
182
|
+
2. Проверить результаты: красные тесты — ожидаемы для нового проекта
|
|
183
|
+
3. Зафиксировать baseline: `git commit current/` как baseline-коммит
|
|
184
|
+
|
|
124
185
|
## Scripts
|
|
125
186
|
|
|
126
187
|
Scripts are stored globally in `~/.workflow/scripts/` and linked as a single junction into `.workflow/src/scripts/`.
|
|
@@ -1,59 +1,61 @@
|
|
|
1
|
-
# Инструкции для Claude Code
|
|
2
|
-
|
|
3
|
-
Этот проект использует систему координации AI-агентов через файловую канбан-доску.
|
|
4
|
-
|
|
5
|
-
## Структура проекта
|
|
6
|
-
|
|
7
|
-
- `.workflow/` — канбан-доска с тикетами
|
|
8
|
-
- `.workflow/src/skills/` — инструкции для выполнения задач
|
|
9
|
-
|
|
10
|
-
## Доступные Skills
|
|
11
|
-
|
|
12
|
-
При выполнении задач используй соответствующие инструкции:
|
|
13
|
-
|
|
14
|
-
{{SKILLS_TABLE}}
|
|
15
|
-
|
|
16
|
-
### Скрипты (перемещение и выбор тикетов)
|
|
17
|
-
|
|
18
|
-
| Действие | Скрипт |
|
|
19
|
-
|----------|--------|
|
|
20
|
-
| Перемещение тикета | `node .workflow/src/scripts/move-ticket.js <id> <target>` |
|
|
21
|
-
| Выбор следующей задачи | `node .workflow/src/scripts/pick-next-task.js` |
|
|
22
|
-
| Перемещение готовых в ready | `node .workflow/src/scripts/move-to-ready.js` |
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
|
29
|
-
|
|
30
|
-
| Eject
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
- `.workflow/templates/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
# Инструкции для Claude Code
|
|
2
|
+
|
|
3
|
+
Этот проект использует систему координации AI-агентов через файловую канбан-доску.
|
|
4
|
+
|
|
5
|
+
## Структура проекта
|
|
6
|
+
|
|
7
|
+
- `.workflow/` — канбан-доска с тикетами
|
|
8
|
+
- `.workflow/src/skills/` — инструкции для выполнения задач
|
|
9
|
+
|
|
10
|
+
## Доступные Skills
|
|
11
|
+
|
|
12
|
+
При выполнении задач используй соответствующие инструкции:
|
|
13
|
+
|
|
14
|
+
{{SKILLS_TABLE}}
|
|
15
|
+
|
|
16
|
+
### Скрипты (перемещение и выбор тикетов)
|
|
17
|
+
|
|
18
|
+
| Действие | Скрипт |
|
|
19
|
+
|----------|--------|
|
|
20
|
+
| Перемещение тикета | `node .workflow/src/scripts/move-ticket.js <id> <target>` |
|
|
21
|
+
| Выбор следующей задачи | `node .workflow/src/scripts/pick-next-task.js` |
|
|
22
|
+
| Перемещение готовых в ready | `node .workflow/src/scripts/move-to-ready.js` |
|
|
23
|
+
|
|
24
|
+
**Регрессионное тестирование скилов:** `node .workflow/src/scripts/run-skill-tests.js --skill <name>`. Подробности — в `.workflow/src/skills/<name>/tests/index.yaml`.
|
|
25
|
+
|
|
26
|
+
### Кастомизация (eject)
|
|
27
|
+
|
|
28
|
+
| Действие | Команда |
|
|
29
|
+
|----------|---------|
|
|
30
|
+
| Eject скила | `workflow eject <skill-name>` |
|
|
31
|
+
| Eject скриптов | `workflow eject-scripts` |
|
|
32
|
+
| Eject конфигов | `workflow eject-configs` |
|
|
33
|
+
|
|
34
|
+
## Workflow
|
|
35
|
+
|
|
36
|
+
1. **Планирование**: Создай план в `.workflow/plans/current/`
|
|
37
|
+
2. **Декомпозиция**: Разбей план на тикеты в `.workflow/tickets/backlog/`
|
|
38
|
+
3. **Выполнение**: Бери задачи из `ready/`, выполняй, перемещай в `done/`
|
|
39
|
+
4. **Отчётность**: Создавай отчёты в `.workflow/reports/`
|
|
40
|
+
|
|
41
|
+
> **ВАЖНО:** В этой сессии только составляй планы. НЕ выполняй и НЕ декомпозируй их — выполнение и декомпозиция будут происходить позже через workflow автоматически.
|
|
42
|
+
|
|
43
|
+
## Шаблоны
|
|
44
|
+
|
|
45
|
+
- `.workflow/templates/ticket-template.md` — шаблон тикета
|
|
46
|
+
- `.workflow/templates/plan-template.md` — шаблон плана
|
|
47
|
+
- `.workflow/templates/report-template.md` — шаблон отчёта
|
|
48
|
+
|
|
49
|
+
## Конфигурация
|
|
50
|
+
|
|
51
|
+
Настройки в `.workflow/config/config.yaml`
|
|
52
|
+
|
|
53
|
+
## Правила работы со скилами
|
|
54
|
+
|
|
55
|
+
> **⛔ ВАЖНО:** Любые изменения в скилах (создание, правка, аудит, улучшение) выполняются ТОЛЬКО через скил коуча (`.workflow/src/skills/coach/SKILL.md`). Не правь скилы напрямую — загрузи коуча и действуй по его воркфлоу.
|
|
56
|
+
|
|
57
|
+
## Правила написания кода
|
|
58
|
+
При написании кода использовать методологии TDD, SOLID, DRY
|
|
59
|
+
|
|
60
|
+
## Общие инструкции
|
|
59
61
|
Отвечай всегда на Русском языке
|
|
@@ -1,59 +1,61 @@
|
|
|
1
|
-
# Инструкции для qwen Code
|
|
2
|
-
|
|
3
|
-
Этот проект использует систему координации AI-агентов через файловую канбан-доску.
|
|
4
|
-
|
|
5
|
-
## Структура проекта
|
|
6
|
-
|
|
7
|
-
- `.workflow/` — канбан-доска с тикетами
|
|
8
|
-
- `.workflow/src/skills/` — инструкции для выполнения задач
|
|
9
|
-
|
|
10
|
-
## Доступные Skills
|
|
11
|
-
|
|
12
|
-
При выполнении задач используй соответствующие инструкции:
|
|
13
|
-
|
|
14
|
-
{{SKILLS_TABLE}}
|
|
15
|
-
|
|
16
|
-
### Скрипты (перемещение и выбор тикетов)
|
|
17
|
-
|
|
18
|
-
| Действие | Скрипт |
|
|
19
|
-
|----------|--------|
|
|
20
|
-
| Перемещение тикета | `node .workflow/src/scripts/move-ticket.js <id> <target>` |
|
|
21
|
-
| Выбор следующей задачи | `node .workflow/src/scripts/pick-next-task.js` |
|
|
22
|
-
| Перемещение готовых в ready | `node .workflow/src/scripts/move-to-ready.js` |
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
|
29
|
-
|
|
30
|
-
| Eject
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
- `.workflow/templates/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
# Инструкции для qwen Code
|
|
2
|
+
|
|
3
|
+
Этот проект использует систему координации AI-агентов через файловую канбан-доску.
|
|
4
|
+
|
|
5
|
+
## Структура проекта
|
|
6
|
+
|
|
7
|
+
- `.workflow/` — канбан-доска с тикетами
|
|
8
|
+
- `.workflow/src/skills/` — инструкции для выполнения задач
|
|
9
|
+
|
|
10
|
+
## Доступные Skills
|
|
11
|
+
|
|
12
|
+
При выполнении задач используй соответствующие инструкции:
|
|
13
|
+
|
|
14
|
+
{{SKILLS_TABLE}}
|
|
15
|
+
|
|
16
|
+
### Скрипты (перемещение и выбор тикетов)
|
|
17
|
+
|
|
18
|
+
| Действие | Скрипт |
|
|
19
|
+
|----------|--------|
|
|
20
|
+
| Перемещение тикета | `node .workflow/src/scripts/move-ticket.js <id> <target>` |
|
|
21
|
+
| Выбор следующей задачи | `node .workflow/src/scripts/pick-next-task.js` |
|
|
22
|
+
| Перемещение готовых в ready | `node .workflow/src/scripts/move-to-ready.js` |
|
|
23
|
+
|
|
24
|
+
**Регрессионное тестирование скилов:** `node .workflow/src/scripts/run-skill-tests.js --skill <name>`. Подробности — в `.workflow/src/skills/<name>/tests/index.yaml`.
|
|
25
|
+
|
|
26
|
+
### Кастомизация (eject)
|
|
27
|
+
|
|
28
|
+
| Действие | Команда |
|
|
29
|
+
|----------|---------|
|
|
30
|
+
| Eject скила | `workflow eject <skill-name>` |
|
|
31
|
+
| Eject скриптов | `workflow eject-scripts` |
|
|
32
|
+
| Eject конфигов | `workflow eject-configs` |
|
|
33
|
+
|
|
34
|
+
## Workflow
|
|
35
|
+
|
|
36
|
+
1. **Планирование**: Создай план в `.workflow/plans/current/`
|
|
37
|
+
2. **Декомпозиция**: Разбей план на тикеты в `.workflow/tickets/backlog/`
|
|
38
|
+
3. **Выполнение**: Бери задачи из `ready/`, выполняй, перемещай в `done/`
|
|
39
|
+
4. **Отчётность**: Создавай отчёты в `.workflow/reports/`
|
|
40
|
+
|
|
41
|
+
> **ВАЖНО:** В этой сессии только составляй планы. НЕ выполняй и НЕ декомпозируй их — выполнение и декомпозиция будут происходить позже через workflow автоматически.
|
|
42
|
+
|
|
43
|
+
## Шаблоны
|
|
44
|
+
|
|
45
|
+
- `.workflow/templates/ticket-template.md` — шаблон тикета
|
|
46
|
+
- `.workflow/templates/plan-template.md` — шаблон плана
|
|
47
|
+
- `.workflow/templates/report-template.md` — шаблон отчёта
|
|
48
|
+
|
|
49
|
+
## Конфигурация
|
|
50
|
+
|
|
51
|
+
Настройки в `.workflow/config/config.yaml`
|
|
52
|
+
|
|
53
|
+
## Правила работы со скилами
|
|
54
|
+
|
|
55
|
+
> **⛔ ВАЖНО:** Любые изменения в скилах (создание, правка, аудит, улучшение) выполняются ТОЛЬКО через скил коуча (`.workflow/src/skills/coach/SKILL.md`). Не правь скилы напрямую — загрузи коуча и действуй по его воркфлоу.
|
|
56
|
+
|
|
57
|
+
## Правила написания кода
|
|
58
|
+
При написании кода использовать методологии TDD, SOLID, DRY
|
|
59
|
+
|
|
60
|
+
## Общие инструкции
|
|
59
61
|
Отвечай всегда на Русском языке
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "workflow-ai",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.63",
|
|
4
4
|
"description": "AI Agent Workflow Coordinator — kanban-based pipeline for AI coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"scripts": {
|
|
34
34
|
"test": "node --test src/tests/*.test.mjs",
|
|
35
|
+
"test:skills": "node src/scripts/run-skill-tests.js --all",
|
|
35
36
|
"release": "npm version patch && npm publish"
|
|
36
37
|
},
|
|
37
38
|
"dependencies": {
|