@k0t0vich/meta-agents-template 0.1.3 → 0.1.4
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/CHANGELOG.md +15 -0
- package/README.md +52 -10
- package/agents.md +67 -16
- package/package.json +1 -1
- package/template/.github/workflows/gitflow-lite-verify.yml +63 -0
- package/template/.meta-agents/config/project-context.yaml +7 -0
- package/template/.meta-agents/config/roles.yaml +5 -1
- package/template/.meta-agents/config/system.yaml +125 -3
- package/template/.meta-agents/config/trackers.yaml +1 -0
- package/template/.meta-agents/prompts/agile-manager.md +19 -1
- package/template/.meta-agents/prompts/clarifier.md +2 -0
- package/template/.meta-agents/prompts/mr-review-agent.md +26 -0
- package/template/.meta-agents/prompts/reviewer-judge.md +3 -1
- package/template/.meta-agents/prompts/status-agent.md +27 -0
- package/template/.meta-agents/scripts/run-mr-review-gate.mjs +488 -0
- package/template/.meta-agents/scripts/run-review-gate.mjs +54 -1
- package/template/.meta-agents/scripts/sync-status.mjs +620 -1
- package/template/.meta-agents/scripts/task-branch-router.mjs +530 -0
- package/template/.meta-agents/scripts/tracker/provider-lock.mjs +104 -0
- package/template/.meta-agents/scripts/tracker-gateway.mjs +199 -0
- package/template/.meta-agents/scripts/verify-branch-strategy.mjs +103 -0
- package/template/.meta-agents/scripts/verify-commit-link.mjs +27 -13
- package/template/.meta-agents/scripts/verify-governance.mjs +37 -12
- package/template/.meta-agents/templates/agent-work-contract.md +8 -1
- package/template/.meta-agents/templates/task-template.md +7 -1
- package/template/README.md +43 -6
- package/template/agents.md +67 -16
- package/template/package.json +6 -1
- package/template/tracker-command-template.md +122 -28
- package/tracker-command-template.md +109 -15
package/template/agents.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# agents.md
|
|
2
2
|
|
|
3
|
+
## 0) Профиль развернутого проекта (source of truth)
|
|
4
|
+
- Project: `__PROJECT_NAME__`
|
|
5
|
+
- Tracker provider (обязательный): `__DEFAULT_TRACKER__`
|
|
6
|
+
- Файл-источник: `.meta-agents/config/project-context.yaml`
|
|
7
|
+
- Консистентность: значение обязано совпадать с `.meta-agents/config/trackers.yaml -> tracker_gateway.default`.
|
|
8
|
+
- Операционное правило: если пользователь явно не изменил конфиг, все команды (`CREATE_TASK`, `SET_STATUS`, `ASSIGN_SPRINT`, `COMMIT_BY_NAME`, `PREPARE_RELEASE_NOTE`, `MARK_TASKS_PUBLISH`) выполняются только через выбранный tracker provider.
|
|
9
|
+
|
|
3
10
|
## 1) Назначение системы
|
|
4
11
|
Система работает как мета-оркестрация разработки: сначала формализуем задачу и проверяемость, потом делаем реализацию.
|
|
5
12
|
|
|
@@ -21,6 +28,7 @@
|
|
|
21
28
|
|
|
22
29
|
## 3) Роли агентов
|
|
23
30
|
- `Chief of Staff Agent`: оркестрация цепочки, приоритеты, блокеры, эскалации.
|
|
31
|
+
- `Status Agent`: сводный статус проекта (`tracker/sprint/task/git`) по запросам состояния.
|
|
24
32
|
- `Agile Manager Agent`: операции по задачам/спринтам/статусам/коммитам через трекер.
|
|
25
33
|
- `Governance Watchdog Agent`: обязательный контроль PRD/критериев/разрешений перед каждой командой.
|
|
26
34
|
- `Product Manager Agent`: формулирует PRD и критерии приёмки.
|
|
@@ -30,10 +38,27 @@
|
|
|
30
38
|
- `Engineering Agent`: реализация по контракту.
|
|
31
39
|
- `QA Agent`: проверка выполнения критериев и качество тестового покрытия.
|
|
32
40
|
- `Reviewer/Judge Agent`: независимая приёмка по заранее согласованным правилам.
|
|
41
|
+
- `MR Review Agent`: обязательный pre-merge review для MR/PR (task linkage + PRD evidence + Git Flow target).
|
|
33
42
|
- `Publishing Agent`: готовит release notes, фиксирует вошедшие задачи и переводит их в `PUBLISH`.
|
|
34
43
|
- `Publishing Agent`: обновляет публичный `CHANGELOG.md`, готовит release notes, фиксирует вошедшие задачи и переводит их в `PUBLISH`.
|
|
35
44
|
- `Documentation Agent`: поддержка и синхронизация артефактов.
|
|
36
45
|
|
|
46
|
+
## 3.1) Маршрутизация статус-запросов
|
|
47
|
+
Если пользовательский запрос содержит intent `статус`, `что в процессе`, `процесс`, `где мы`, по умолчанию выбирается `Status Agent`.
|
|
48
|
+
|
|
49
|
+
Формат ответа `Status Agent` (обязательный):
|
|
50
|
+
1. Какие трекеры используются (locked provider + доступные providers).
|
|
51
|
+
2. Какой текущий спринт.
|
|
52
|
+
3. Какая задача сейчас в работе.
|
|
53
|
+
4. Текущий веточный контекст (branch, branch type, branch task ref, alignment с текущей задачей).
|
|
54
|
+
5. Что не закоммичено (modified/staged + untracked + ahead/behind).
|
|
55
|
+
6. Короткая сводка.
|
|
56
|
+
|
|
57
|
+
Приоритет источника данных:
|
|
58
|
+
- `github`: GitHub tracker — источник истины; локальные `tasks/*` только cache/legacy.
|
|
59
|
+
- `local`: локальные `tasks/*` — источник истины.
|
|
60
|
+
- `mcp/custom`: внешний трекер — источник истины; локальные `tasks/*` только cache.
|
|
61
|
+
|
|
37
62
|
## 4) Жёсткий Auto-Select и показ имени агента
|
|
38
63
|
Автовыбор агента обязателен перед каждой задачей и перед каждой командой (`CREATE_TASK`, `SET_STATUS`, `COMMIT_BY_NAME`, `ASSIGN_SPRINT`).
|
|
39
64
|
|
|
@@ -96,12 +121,15 @@ Name: <agent role>
|
|
|
96
121
|
|
|
97
122
|
0. `VERIFY_GOVERNANCE_GATE`
|
|
98
123
|
1. `CREATE_TASK`
|
|
99
|
-
2. `
|
|
100
|
-
3. `
|
|
101
|
-
4. `
|
|
102
|
-
5. `
|
|
103
|
-
6. `
|
|
104
|
-
7. `
|
|
124
|
+
2. `PREPARE_TASK_BRANCH`
|
|
125
|
+
3. `SET_STATUS`
|
|
126
|
+
4. `RUN_REVIEW_GATE`
|
|
127
|
+
5. `COMMIT_BY_NAME`
|
|
128
|
+
6. `RUN_MR_REVIEW_GATE`
|
|
129
|
+
7. `ASSIGN_SPRINT`
|
|
130
|
+
8. `PREPARE_RELEASE_NOTE`
|
|
131
|
+
9. `MARK_TASKS_PUBLISH`
|
|
132
|
+
10. `STATUS_SNAPSHOT`
|
|
105
133
|
|
|
106
134
|
## 10) Коммиты и закрытие задач: только по подтверждению пользователя
|
|
107
135
|
Запрещено выполнять автоматически:
|
|
@@ -109,16 +137,21 @@ Name: <agent role>
|
|
|
109
137
|
- перевод задачи в `DONE`.
|
|
110
138
|
|
|
111
139
|
Обязательное правило:
|
|
112
|
-
- для
|
|
140
|
+
- для режима `git_flow_lite` статусный цикл задачи фиксируется как `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
|
|
141
|
+
- рабочие ветки: `feature/*`, `release/*`, `hotfix/*`; долгоживущие ветки: `develop`, `main`;
|
|
142
|
+
- для агентных веток также допускаются `codex/feature/*`, `codex/release/*`, `codex/hotfix/*`;
|
|
143
|
+
- интеграционные правила: `feature/* -> develop`, `release/* -> main` + back-merge в `develop`, `hotfix/* -> main` + back-merge в `develop`;
|
|
113
144
|
- `RUN_REVIEW_GATE` сначала формирует отчёт ревьювера и рекомендацию (`PASS_CANDIDATE`/`FAIL`);
|
|
114
145
|
- финальный `RUN_REVIEW_GATE: PASS_CONFIRMED` допускается только после явного подтверждения пользователя `Review Approved: yes`;
|
|
115
146
|
- `COMMIT_BY_NAME` выполняется только после `RUN_REVIEW_GATE: PASS_CONFIRMED` и отдельного явного подтверждения пользователя в текущем диалоге;
|
|
147
|
+
- merge в целевую ветку выполняется только после `RUN_MR_REVIEW_GATE: PASS_CONFIRMED` и явного подтверждения пользователя `MR Review Approved: yes`;
|
|
116
148
|
- `SET_STATUS -> DONE` выполняется только после явного подтверждения пользователя в текущем диалоге;
|
|
117
149
|
- без подтверждения пользователя максимум допустимого статуса: `REVIEW`.
|
|
118
150
|
- `SET_STATUS -> READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
|
|
151
|
+
- для задач реализации по умолчанию используется отдельная ветка `feature/*`; прямой рабочий поток на `develop`/`main` не допускается.
|
|
119
152
|
- сообщение коммита обязано содержать ссылку на задачу (`TASK-ID` и/или `#issue-number`).
|
|
120
|
-
- `READY` означает: коммит сделан и отправлен (`push`)
|
|
121
|
-
- `DONE` означает: изменения интегрированы в `main
|
|
153
|
+
- `READY` означает: коммит сделан и отправлен (`push`) в `feature/*`, `release/*` или `hotfix/*` с открытым PR по правилам ветвления.
|
|
154
|
+
- `DONE` означает: изменения интегрированы в `main`; для `release/*` и `hotfix/*` подтверждён back-merge в `develop`.
|
|
122
155
|
- `PUBLISH` означает: релиз опубликован и доступен в последней версии пакета.
|
|
123
156
|
|
|
124
157
|
## 10.1) Правило для больших фич (GitHub tracker)
|
|
@@ -130,6 +163,19 @@ Name: <agent role>
|
|
|
130
163
|
|
|
131
164
|
Для текущего этапа (только GitHub tracker) epic реализуется как обычный issue с label `type:epic`.
|
|
132
165
|
|
|
166
|
+
## 10.2) Обязательная маршрутизация ветки для Agile Manager Agent
|
|
167
|
+
Перед началом реализации агент обязан:
|
|
168
|
+
1. Проверить веточный контекст через `meta:status`.
|
|
169
|
+
2. Запустить branch-routing preflight через `meta:task-start -- --task <TASK-ID|#issue> --slug <slug> --kind atomic|feature|release|hotfix`.
|
|
170
|
+
3. Если задача относится к текущей feature-ветке (атомарная подзадача), продолжить в этой ветке только после подтверждения пользователя.
|
|
171
|
+
4. Если задача не относится к текущей ветке, проверить незакоммиченные изменения и непушенные коммиты.
|
|
172
|
+
5. Согласовать с пользователем способ обработки (`commit/stash/discard/push`).
|
|
173
|
+
6. Переключиться на базовую ветку (`develop` или `main`) и обновить её.
|
|
174
|
+
7. Создать новую рабочую ветку по Git Flow Lite.
|
|
175
|
+
8. Перед переключением проверить консистентность `agents.md` между текущей и базовой веткой; при отличиях показать явное предупреждение и запросить подтверждение пользователя.
|
|
176
|
+
|
|
177
|
+
Без этого preflight выполнение реализации запрещено.
|
|
178
|
+
|
|
133
179
|
## 11) Жёсткие критерии приёмки (все обязательны)
|
|
134
180
|
Задача принимается только если одновременно выполнены все условия:
|
|
135
181
|
1. Заполнены все PRD-блоки этапа: `Описание`, `Проверяемость`, `Что сделано`.
|
|
@@ -144,13 +190,18 @@ Name: <agent role>
|
|
|
144
190
|
10. Перед каждой командой пройден `VERIFY_GOVERNANCE_GATE` от `Governance Watchdog Agent`.
|
|
145
191
|
11. Перед коммитом пройден `RUN_REVIEW_GATE` от `Reviewer/Judge Agent`.
|
|
146
192
|
12. Есть явное подтверждение пользователя на прохождение review (`Review Approved: yes`).
|
|
147
|
-
13.
|
|
148
|
-
14.
|
|
149
|
-
15.
|
|
150
|
-
16.
|
|
151
|
-
17. Для статуса `
|
|
152
|
-
18. Для
|
|
153
|
-
19.
|
|
193
|
+
13. Перед merge пройден `RUN_MR_REVIEW_GATE` от `MR Review Agent`.
|
|
194
|
+
14. Есть явное подтверждение пользователя на MR review (`MR Review Approved: yes`).
|
|
195
|
+
15. До review gate задача переведена в статус `REVIEW`.
|
|
196
|
+
16. Статус `READY` выставлен только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
|
|
197
|
+
17. Для статуса `READY` подтверждены `commit + push` в `feature/*|release/*|hotfix/*` и открытый PR в целевую ветку (`develop` или `main`).
|
|
198
|
+
18. Для merge подтверждён `RUN_MR_REVIEW_GATE: PASS_CONFIRMED`.
|
|
199
|
+
19. Для статуса `DONE` подтверждена интеграция в `main`; для `release/*` и `hotfix/*` подтверждён back-merge в `develop`.
|
|
200
|
+
20. Для статуса `PUBLISH` подтверждена публикация в последней версии.
|
|
201
|
+
21. Для релиза обновлён публичный `CHANGELOG.md`.
|
|
202
|
+
22. Коммит содержит ссылку на issue/task (`TASK-ID` или `#issue`).
|
|
203
|
+
23. Для branch routing собран e2e evidence по двум сценариям: `same feature` и `different feature`.
|
|
204
|
+
24. Перед `--apply` подтверждена консистентность контекста `agents.md` (или явно подтверждён осознанный switch при diff).
|
|
154
205
|
|
|
155
206
|
Если хотя бы один критерий не выполнен, задача не принимается.
|
|
156
207
|
|
package/template/package.json
CHANGED
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"meta:status": "node .meta-agents/scripts/sync-status.mjs",
|
|
7
|
+
"meta:branch": "node .meta-agents/scripts/verify-branch-strategy.mjs",
|
|
8
|
+
"meta:task-start": "node .meta-agents/scripts/task-branch-router.mjs",
|
|
7
9
|
"meta:verify": "node .meta-agents/scripts/verify-governance.mjs",
|
|
8
10
|
"meta:review": "node .meta-agents/scripts/run-review-gate.mjs",
|
|
9
11
|
"meta:review-approve": "node .meta-agents/scripts/run-review-gate.mjs --approve yes",
|
|
10
|
-
"meta:
|
|
12
|
+
"meta:mr-review": "node .meta-agents/scripts/run-mr-review-gate.mjs",
|
|
13
|
+
"meta:mr-review-approve": "node .meta-agents/scripts/run-mr-review-gate.mjs --approve yes",
|
|
14
|
+
"meta:verify-link": "node .meta-agents/scripts/verify-commit-link.mjs",
|
|
15
|
+
"meta:ops": "node .meta-agents/scripts/tracker-gateway.mjs"
|
|
11
16
|
}
|
|
12
17
|
}
|
|
@@ -33,20 +33,41 @@ result PASS
|
|
|
33
33
|
|
|
34
34
|
Если `result != PASS`, команда не выполняется.
|
|
35
35
|
|
|
36
|
+
## 0.2) Зафиксированный tracker provider проекта
|
|
37
|
+
- Текущий provider: `__DEFAULT_TRACKER__`.
|
|
38
|
+
- Source of truth:
|
|
39
|
+
- `.meta-agents/config/project-context.yaml -> project_context.tracker_provider.selected`
|
|
40
|
+
- `.meta-agents/config/trackers.yaml -> tracker_gateway.default`
|
|
41
|
+
- Если пользователь явно не запросил смену provider и конфиг не обновлён, команды выполняются только через `__DEFAULT_TRACKER__`.
|
|
42
|
+
- CLI enforcement: `npm run meta:ops -- --command <COMMAND> [--tracker ...]` блокирует выполнение при mismatch provider.
|
|
43
|
+
|
|
36
44
|
## 1) Ключевое правило подтверждения пользователя
|
|
37
45
|
Только по явному подтверждению пользователя в текущем диалоге разрешены:
|
|
38
46
|
- `COMMIT_BY_NAME`;
|
|
47
|
+
- merge после `RUN_MR_REVIEW_GATE`;
|
|
39
48
|
- перевод задачи в `DONE`.
|
|
40
49
|
|
|
41
50
|
Без подтверждения пользователя можно переводить задачу максимум в `REVIEW`.
|
|
42
51
|
`SET_STATUS -> READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
|
|
43
52
|
|
|
44
53
|
Дополнительно для коммита:
|
|
45
|
-
- для
|
|
54
|
+
- для `git_flow_lite` используется цикл `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
|
|
55
|
+
- рабочие ветки: `feature/*`, `release/*`, `hotfix/*`; долгоживущие ветки: `develop`, `main`;
|
|
56
|
+
- для агентных веток допускаются `codex/feature/*`, `codex/release/*`, `codex/hotfix/*`;
|
|
57
|
+
- правила merge: `feature/* -> develop`, `release/* -> main` + back-merge в `develop`, `hotfix/* -> main` + back-merge в `develop`;
|
|
46
58
|
- `RUN_REVIEW_GATE` работает в два этапа:
|
|
47
59
|
- сначала отчёт и рекомендация (`PASS_CANDIDATE`/`FAIL`);
|
|
48
60
|
- после явного подтверждения пользователя (`Review Approved: yes`) — финальный `PASS_CONFIRMED`;
|
|
61
|
+
- `RUN_MR_REVIEW_GATE` работает в два этапа:
|
|
62
|
+
- сначала сводный MR-отчёт и рекомендация (`PASS_CANDIDATE`/`FAIL`);
|
|
63
|
+
- после явного подтверждения пользователя (`MR Review Approved: yes`) — финальный `PASS_CONFIRMED`;
|
|
49
64
|
- `COMMIT_BY_NAME` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`;
|
|
65
|
+
- merge разрешён только после `RUN_MR_REVIEW_GATE: PASS_CONFIRMED`;
|
|
66
|
+
- для задач реализации по умолчанию используется отдельная ветка `feature/*`; прямой поток на `develop`/`main` запрещён;
|
|
67
|
+
- перед началом реализации обязателен `PREPARE_TASK_BRANCH` (веточный preflight и user dialogue);
|
|
68
|
+
- если задача атомарная и относится к текущей feature-ветке, допускается выполнение в текущей ветке после явного подтверждения пользователя;
|
|
69
|
+
- если задача не относится к текущей ветке, требуется: проверить dirty/ahead, согласовать действие с пользователем, перейти на `develop` (или `main` для hotfix), обновить и создать новую ветку;
|
|
70
|
+
- перед `--apply` обязателен контекстный check: сравнить `agents.md` текущей и базовой ветки, при diff запросить явное подтверждение пользователя;
|
|
50
71
|
- сообщение коммита обязательно содержит `TASK-ID` и/или `#issue-number`.
|
|
51
72
|
|
|
52
73
|
Для GitHub трекера статус issue задаётся label-ом (одновременно только один статус из набора):
|
|
@@ -59,8 +80,8 @@ result PASS
|
|
|
59
80
|
- `PUBLISH`
|
|
60
81
|
|
|
61
82
|
Семантика статусов:
|
|
62
|
-
- `READY`: коммит сделан и отправлен (`push`)
|
|
63
|
-
- `DONE`: изменения интегрированы в `main
|
|
83
|
+
- `READY`: коммит сделан и отправлен (`push`) в `feature/*|release/*|hotfix/*` (или `codex/*` эквиваленты); открыт PR в `develop` или `main` согласно правилам ветвления.
|
|
84
|
+
- `DONE`: изменения интегрированы в `main`; для `release/*` и `hotfix/*` подтверждён back-merge в `develop`.
|
|
64
85
|
- `PUBLISH`: релиз опубликован и доступен в последней версии пакета.
|
|
65
86
|
|
|
66
87
|
Правило больших фич (GitHub tracker):
|
|
@@ -68,7 +89,7 @@ result PASS
|
|
|
68
89
|
- epic в GitHub оформляется как issue с label `type:epic`;
|
|
69
90
|
- feature оформляется как issue с label `type:feature` и ссылкой на epic.
|
|
70
91
|
|
|
71
|
-
## 2) Канонические команды (через Agile Manager Agent / Publishing Agent)
|
|
92
|
+
## 2) Канонические команды (через Agile Manager Agent / Reviewer/Judge Agent / MR Review Agent / Publishing Agent / Status Agent)
|
|
72
93
|
### VERIFY_GOVERNANCE_GATE
|
|
73
94
|
```text
|
|
74
95
|
[Agent Auto-Select]
|
|
@@ -127,7 +148,7 @@ Reason: Нужна операция создания задачи в треке
|
|
|
127
148
|
Name: Agile Manager Agent
|
|
128
149
|
|
|
129
150
|
Agile Manager Agent: create task,
|
|
130
|
-
tracker
|
|
151
|
+
tracker __DEFAULT_TRACKER__,
|
|
131
152
|
repo your-org/your-repo,
|
|
132
153
|
short name "API редирект офферов",
|
|
133
154
|
owner "Engineering Agent",
|
|
@@ -146,12 +167,29 @@ Reason: Нужна операция смены статуса задачи.
|
|
|
146
167
|
Name: Agile Manager Agent
|
|
147
168
|
|
|
148
169
|
Agile Manager Agent: set status,
|
|
149
|
-
tracker
|
|
170
|
+
tracker __DEFAULT_TRACKER__,
|
|
150
171
|
task DEV-12,
|
|
151
172
|
status IN_PROGRESS,
|
|
152
173
|
reason "начата реализация"
|
|
153
174
|
```
|
|
154
175
|
|
|
176
|
+
### PREPARE_TASK_BRANCH (обязателен перед реализацией)
|
|
177
|
+
```text
|
|
178
|
+
[Agent Auto-Select]
|
|
179
|
+
Selected: Agile Manager Agent
|
|
180
|
+
Reason: Нужно проверить соответствие задачи текущей ветке и выбрать корректный Git Flow маршрут.
|
|
181
|
+
|
|
182
|
+
[Task Agent]
|
|
183
|
+
Name: Agile Manager Agent
|
|
184
|
+
|
|
185
|
+
Agile Manager Agent: prepare task branch,
|
|
186
|
+
tracker __DEFAULT_TRACKER__,
|
|
187
|
+
task "#12",
|
|
188
|
+
task kind "atomic",
|
|
189
|
+
command "npm run meta:task-start -- --task 12 --slug api-redirect",
|
|
190
|
+
user dialogue "confirm branch context + dirty/ahead handling + agents.md context warning + switch decision"
|
|
191
|
+
```
|
|
192
|
+
|
|
155
193
|
### SET_STATUS -> REVIEW (обязателен перед review gate)
|
|
156
194
|
```text
|
|
157
195
|
[Agent Auto-Select]
|
|
@@ -162,7 +200,7 @@ Reason: Реализация завершена, задача передаётс
|
|
|
162
200
|
Name: Agile Manager Agent
|
|
163
201
|
|
|
164
202
|
Agile Manager Agent: set status,
|
|
165
|
-
tracker
|
|
203
|
+
tracker __DEFAULT_TRACKER__,
|
|
166
204
|
task DEV-12,
|
|
167
205
|
status REVIEW,
|
|
168
206
|
reason "готово к review gate"
|
|
@@ -178,9 +216,9 @@ Reason: Большая фича требует эпик в GitHub-трекере
|
|
|
178
216
|
Name: Agile Manager Agent
|
|
179
217
|
|
|
180
218
|
Agile Manager Agent: create task,
|
|
181
|
-
tracker
|
|
219
|
+
tracker __DEFAULT_TRACKER__,
|
|
182
220
|
type epic,
|
|
183
|
-
labels "type:epic,tracker:
|
|
221
|
+
labels "type:epic,tracker:__DEFAULT_TRACKER__,sprint:SPRINT-3",
|
|
184
222
|
short name "EPIC: новый подбор офферов",
|
|
185
223
|
description "Родительская задача для крупной фичи"
|
|
186
224
|
```
|
|
@@ -195,9 +233,9 @@ Reason: Нужна отдельная feature-задача, связанная
|
|
|
195
233
|
Name: Agile Manager Agent
|
|
196
234
|
|
|
197
235
|
Agile Manager Agent: create task,
|
|
198
|
-
tracker
|
|
236
|
+
tracker __DEFAULT_TRACKER__,
|
|
199
237
|
type feature,
|
|
200
|
-
labels "type:feature,tracker:
|
|
238
|
+
labels "type:feature,tracker:__DEFAULT_TRACKER__,sprint:SPRINT-3",
|
|
201
239
|
short name "FEATURE: scoring pipeline v2",
|
|
202
240
|
description "Дочерняя feature в рамках epic #42",
|
|
203
241
|
link to epic "#42"
|
|
@@ -216,7 +254,7 @@ Name: Agile Manager Agent
|
|
|
216
254
|
Commit Approved: yes
|
|
217
255
|
|
|
218
256
|
Agile Manager Agent: commit by name,
|
|
219
|
-
tracker
|
|
257
|
+
tracker __DEFAULT_TRACKER__,
|
|
220
258
|
task "API редирект офферов",
|
|
221
259
|
issue 12,
|
|
222
260
|
commit message "DEV-12 | API редирект офферов (#12)",
|
|
@@ -227,6 +265,40 @@ target status READY,
|
|
|
227
265
|
what done "добавлен endpoint, тесты, обработка ошибок"
|
|
228
266
|
```
|
|
229
267
|
|
|
268
|
+
### RUN_MR_REVIEW_GATE (обязателен перед merge)
|
|
269
|
+
```text
|
|
270
|
+
[Agent Auto-Select]
|
|
271
|
+
Selected: MR Review Agent
|
|
272
|
+
Reason: Нужен обязательный pre-merge review по MR/PR с проверкой task linkage и PRD evidence.
|
|
273
|
+
|
|
274
|
+
[Task Agent]
|
|
275
|
+
Name: MR Review Agent
|
|
276
|
+
|
|
277
|
+
MR Review Agent: run MR review gate,
|
|
278
|
+
task DEV-12,
|
|
279
|
+
pr 34,
|
|
280
|
+
checklist "mr_context, task_linkage, prd_evidence, critical_findings, potential_risks",
|
|
281
|
+
result PASS_CANDIDATE
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
```text
|
|
285
|
+
[User Confirmation]
|
|
286
|
+
MR Review Approved: yes
|
|
287
|
+
|
|
288
|
+
[Agent Auto-Select]
|
|
289
|
+
Selected: MR Review Agent
|
|
290
|
+
Reason: Подтверждение MR review пользователем получено, фиксируем финальный результат.
|
|
291
|
+
|
|
292
|
+
[Task Agent]
|
|
293
|
+
Name: MR Review Agent
|
|
294
|
+
|
|
295
|
+
MR Review Agent: run MR review gate,
|
|
296
|
+
task DEV-12,
|
|
297
|
+
pr 34,
|
|
298
|
+
approve yes,
|
|
299
|
+
result PASS_CONFIRMED
|
|
300
|
+
```
|
|
301
|
+
|
|
230
302
|
### SET_STATUS -> PUBLISH (после фактической публикации)
|
|
231
303
|
```text
|
|
232
304
|
[Agent Auto-Select]
|
|
@@ -237,7 +309,7 @@ Reason: Публикация релиза завершена, фиксируем
|
|
|
237
309
|
Name: Agile Manager Agent
|
|
238
310
|
|
|
239
311
|
Agile Manager Agent: set status,
|
|
240
|
-
tracker
|
|
312
|
+
tracker __DEFAULT_TRACKER__,
|
|
241
313
|
task DEV-12,
|
|
242
314
|
status PUBLISH,
|
|
243
315
|
reason "релиз опубликован в latest"
|
|
@@ -256,7 +328,7 @@ Name: Agile Manager Agent
|
|
|
256
328
|
Close Task Approved: yes
|
|
257
329
|
|
|
258
330
|
Agile Manager Agent: set status,
|
|
259
|
-
tracker
|
|
331
|
+
tracker __DEFAULT_TRACKER__,
|
|
260
332
|
task DEV-12,
|
|
261
333
|
status DONE,
|
|
262
334
|
reason "пользователь подтвердил закрытие"
|
|
@@ -272,11 +344,27 @@ Reason: Нужна операция назначения задачи в спр
|
|
|
272
344
|
Name: Agile Manager Agent
|
|
273
345
|
|
|
274
346
|
Agile Manager Agent: assign sprint,
|
|
275
|
-
tracker
|
|
347
|
+
tracker __DEFAULT_TRACKER__,
|
|
276
348
|
task DEV-12,
|
|
277
349
|
sprint SPRINT-3
|
|
278
350
|
```
|
|
279
351
|
|
|
352
|
+
### STATUS_SNAPSHOT
|
|
353
|
+
```text
|
|
354
|
+
[Agent Auto-Select]
|
|
355
|
+
Selected: Status Agent
|
|
356
|
+
Reason: Пользователь запросил текущий статус проекта/процесса.
|
|
357
|
+
|
|
358
|
+
[Task Agent]
|
|
359
|
+
Name: Status Agent
|
|
360
|
+
|
|
361
|
+
Status Agent: status snapshot,
|
|
362
|
+
tracker __DEFAULT_TRACKER__,
|
|
363
|
+
source policy "github/mcp/custom -> external tracker first, local -> tasks first",
|
|
364
|
+
include "trackers_used,current_sprint,current_task,current_branch_context,git_uncommitted,summary",
|
|
365
|
+
command "npm run meta:status"
|
|
366
|
+
```
|
|
367
|
+
|
|
280
368
|
### PREPARE_RELEASE_NOTE
|
|
281
369
|
```text
|
|
282
370
|
[Agent Auto-Select]
|
|
@@ -287,7 +375,7 @@ Reason: Нужно зафиксировать состав релиза и за
|
|
|
287
375
|
Name: Publishing Agent
|
|
288
376
|
|
|
289
377
|
Publishing Agent: prepare release note,
|
|
290
|
-
tracker
|
|
378
|
+
tracker __DEFAULT_TRACKER__,
|
|
291
379
|
version v0.1.2,
|
|
292
380
|
included tasks "#2,#3,#4,#5,#6,#7,#8",
|
|
293
381
|
changelog "CHANGELOG.md updated for v0.1.2",
|
|
@@ -304,7 +392,7 @@ Reason: После релиза нужно перевести вошедшие
|
|
|
304
392
|
Name: Publishing Agent
|
|
305
393
|
|
|
306
394
|
Publishing Agent: mark tasks publish,
|
|
307
|
-
tracker
|
|
395
|
+
tracker __DEFAULT_TRACKER__,
|
|
308
396
|
tasks "#2,#3,#4,#5,#6,#7,#8",
|
|
309
397
|
status PUBLISH,
|
|
310
398
|
reason "вошло в релиз v0.1.2"
|
|
@@ -332,14 +420,20 @@ reason "вошло в релиз v0.1.2"
|
|
|
332
420
|
## 4) Минимальный операционный цикл
|
|
333
421
|
1. `VERIFY_GOVERNANCE_GATE`.
|
|
334
422
|
2. `CREATE_TASK`.
|
|
335
|
-
3. `
|
|
336
|
-
4.
|
|
337
|
-
5.
|
|
338
|
-
6. `
|
|
339
|
-
7.
|
|
340
|
-
8. `
|
|
341
|
-
9. `
|
|
342
|
-
10. `
|
|
343
|
-
11.
|
|
344
|
-
12. `
|
|
345
|
-
13.
|
|
423
|
+
3. `PREPARE_TASK_BRANCH`.
|
|
424
|
+
4. `SET_STATUS -> IN_PROGRESS`.
|
|
425
|
+
5. Реализация + evidence.
|
|
426
|
+
6. `SET_STATUS -> REVIEW`.
|
|
427
|
+
7. `RUN_REVIEW_GATE` (получить report + `PASS_CANDIDATE`/`FAIL`).
|
|
428
|
+
8. Пользователь подтверждает review (`Review Approved: yes`).
|
|
429
|
+
9. `RUN_REVIEW_GATE` -> `PASS_CONFIRMED`.
|
|
430
|
+
10. `COMMIT_BY_NAME` только после review PASS_CONFIRMED и отдельного подтверждения пользователя на коммит.
|
|
431
|
+
11. Push + open PR в целевую ветку по Git Flow Lite.
|
|
432
|
+
12. `RUN_MR_REVIEW_GATE` (получить report + `PASS_CANDIDATE`/`FAIL`).
|
|
433
|
+
13. Пользователь подтверждает MR review (`MR Review Approved: yes`).
|
|
434
|
+
14. `RUN_MR_REVIEW_GATE` -> `PASS_CONFIRMED`.
|
|
435
|
+
15. Merge PR по Git Flow Lite.
|
|
436
|
+
16. `SET_STATUS -> READY`.
|
|
437
|
+
17. `SET_STATUS -> DONE` только после подтверждения пользователя.
|
|
438
|
+
18. `PREPARE_RELEASE_NOTE` (какие задачи вошли в релиз).
|
|
439
|
+
19. Для релизных задач после публикации: `MARK_TASKS_PUBLISH` (`SET_STATUS -> PUBLISH` для всех вошедших задач).
|
|
@@ -33,20 +33,41 @@ result PASS
|
|
|
33
33
|
|
|
34
34
|
Если `result != PASS`, команда не выполняется.
|
|
35
35
|
|
|
36
|
+
## 0.2) Зафиксированный tracker provider проекта
|
|
37
|
+
- Текущий provider: `github`.
|
|
38
|
+
- Source of truth:
|
|
39
|
+
- `.meta-agents/config/project-context.yaml -> project_context.tracker_provider.selected`
|
|
40
|
+
- `.meta-agents/config/trackers.yaml -> tracker_gateway.default`
|
|
41
|
+
- Если пользователь явно не запросил смену provider и конфиг не обновлён, команды выполняются только через `github`.
|
|
42
|
+
- CLI enforcement: `npm run meta:ops -- --command <COMMAND> [--tracker ...]` блокирует выполнение при mismatch provider.
|
|
43
|
+
|
|
36
44
|
## 1) Ключевое правило подтверждения пользователя
|
|
37
45
|
Только по явному подтверждению пользователя в текущем диалоге разрешены:
|
|
38
46
|
- `COMMIT_BY_NAME`;
|
|
47
|
+
- merge после `RUN_MR_REVIEW_GATE`;
|
|
39
48
|
- перевод задачи в `DONE`.
|
|
40
49
|
|
|
41
50
|
Без подтверждения пользователя можно переводить задачу максимум в `REVIEW`.
|
|
42
51
|
`SET_STATUS -> READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
|
|
43
52
|
|
|
44
53
|
Дополнительно для коммита:
|
|
45
|
-
- для
|
|
54
|
+
- для `git_flow_lite` используется цикл `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
|
|
55
|
+
- рабочие ветки: `feature/*`, `release/*`, `hotfix/*`; долгоживущие ветки: `develop`, `main`;
|
|
56
|
+
- для агентных веток допускаются `codex/feature/*`, `codex/release/*`, `codex/hotfix/*`;
|
|
57
|
+
- правила merge: `feature/* -> develop`, `release/* -> main` + back-merge в `develop`, `hotfix/* -> main` + back-merge в `develop`;
|
|
46
58
|
- `RUN_REVIEW_GATE` работает в два этапа:
|
|
47
59
|
- сначала отчёт и рекомендация (`PASS_CANDIDATE`/`FAIL`);
|
|
48
60
|
- после явного подтверждения пользователя (`Review Approved: yes`) — финальный `PASS_CONFIRMED`;
|
|
61
|
+
- `RUN_MR_REVIEW_GATE` работает в два этапа:
|
|
62
|
+
- сначала сводный MR-отчёт и рекомендация (`PASS_CANDIDATE`/`FAIL`);
|
|
63
|
+
- после явного подтверждения пользователя (`MR Review Approved: yes`) — финальный `PASS_CONFIRMED`;
|
|
49
64
|
- `COMMIT_BY_NAME` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`;
|
|
65
|
+
- merge разрешён только после `RUN_MR_REVIEW_GATE: PASS_CONFIRMED`;
|
|
66
|
+
- для задач реализации по умолчанию используется отдельная ветка `feature/*`; прямой поток на `develop`/`main` запрещён;
|
|
67
|
+
- перед началом реализации обязателен `PREPARE_TASK_BRANCH` (веточный preflight и user dialogue);
|
|
68
|
+
- если задача атомарная и относится к текущей feature-ветке, допускается выполнение в текущей ветке после явного подтверждения пользователя;
|
|
69
|
+
- если задача не относится к текущей ветке, требуется: проверить dirty/ahead, согласовать действие с пользователем, перейти на `develop` (или `main` для hotfix), обновить и создать новую ветку;
|
|
70
|
+
- перед `--apply` обязателен контекстный check: сравнить `agents.md` текущей и базовой ветки, при diff запросить явное подтверждение пользователя;
|
|
50
71
|
- сообщение коммита обязательно содержит `TASK-ID` и/или `#issue-number`.
|
|
51
72
|
|
|
52
73
|
Для GitHub трекера статус issue задаётся label-ом (одновременно только один статус из набора):
|
|
@@ -59,8 +80,8 @@ result PASS
|
|
|
59
80
|
- `PUBLISH`
|
|
60
81
|
|
|
61
82
|
Семантика статусов:
|
|
62
|
-
- `READY`: коммит сделан и отправлен (`push`)
|
|
63
|
-
- `DONE`: изменения интегрированы в `main
|
|
83
|
+
- `READY`: коммит сделан и отправлен (`push`) в `feature/*|release/*|hotfix/*` (или `codex/*` эквиваленты); открыт PR в `develop` или `main` согласно правилам ветвления.
|
|
84
|
+
- `DONE`: изменения интегрированы в `main`; для `release/*` и `hotfix/*` подтверждён back-merge в `develop`.
|
|
64
85
|
- `PUBLISH`: релиз опубликован и доступен в последней версии пакета.
|
|
65
86
|
|
|
66
87
|
Правило больших фич (GitHub tracker):
|
|
@@ -68,7 +89,7 @@ result PASS
|
|
|
68
89
|
- epic в GitHub оформляется как issue с label `type:epic`;
|
|
69
90
|
- feature оформляется как issue с label `type:feature` и ссылкой на epic.
|
|
70
91
|
|
|
71
|
-
## 2) Канонические команды (через Agile Manager Agent / Publishing Agent)
|
|
92
|
+
## 2) Канонические команды (через Agile Manager Agent / Reviewer/Judge Agent / MR Review Agent / Publishing Agent / Status Agent)
|
|
72
93
|
### VERIFY_GOVERNANCE_GATE
|
|
73
94
|
```text
|
|
74
95
|
[Agent Auto-Select]
|
|
@@ -152,6 +173,23 @@ status IN_PROGRESS,
|
|
|
152
173
|
reason "начата реализация"
|
|
153
174
|
```
|
|
154
175
|
|
|
176
|
+
### PREPARE_TASK_BRANCH (обязателен перед реализацией)
|
|
177
|
+
```text
|
|
178
|
+
[Agent Auto-Select]
|
|
179
|
+
Selected: Agile Manager Agent
|
|
180
|
+
Reason: Нужно проверить соответствие задачи текущей ветке и выбрать корректный Git Flow маршрут.
|
|
181
|
+
|
|
182
|
+
[Task Agent]
|
|
183
|
+
Name: Agile Manager Agent
|
|
184
|
+
|
|
185
|
+
Agile Manager Agent: prepare task branch,
|
|
186
|
+
tracker github,
|
|
187
|
+
task "#12",
|
|
188
|
+
task kind "atomic",
|
|
189
|
+
command "npm run meta:task-start -- --task 12 --slug api-redirect",
|
|
190
|
+
user dialogue "confirm branch context + dirty/ahead handling + agents.md context warning + switch decision"
|
|
191
|
+
```
|
|
192
|
+
|
|
155
193
|
### SET_STATUS -> REVIEW (обязателен перед review gate)
|
|
156
194
|
```text
|
|
157
195
|
[Agent Auto-Select]
|
|
@@ -227,6 +265,40 @@ target status READY,
|
|
|
227
265
|
what done "добавлен endpoint, тесты, обработка ошибок"
|
|
228
266
|
```
|
|
229
267
|
|
|
268
|
+
### RUN_MR_REVIEW_GATE (обязателен перед merge)
|
|
269
|
+
```text
|
|
270
|
+
[Agent Auto-Select]
|
|
271
|
+
Selected: MR Review Agent
|
|
272
|
+
Reason: Нужен обязательный pre-merge review по MR/PR с проверкой task linkage и PRD evidence.
|
|
273
|
+
|
|
274
|
+
[Task Agent]
|
|
275
|
+
Name: MR Review Agent
|
|
276
|
+
|
|
277
|
+
MR Review Agent: run MR review gate,
|
|
278
|
+
task DEV-12,
|
|
279
|
+
pr 34,
|
|
280
|
+
checklist "mr_context, task_linkage, prd_evidence, critical_findings, potential_risks",
|
|
281
|
+
result PASS_CANDIDATE
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
```text
|
|
285
|
+
[User Confirmation]
|
|
286
|
+
MR Review Approved: yes
|
|
287
|
+
|
|
288
|
+
[Agent Auto-Select]
|
|
289
|
+
Selected: MR Review Agent
|
|
290
|
+
Reason: Подтверждение MR review пользователем получено, фиксируем финальный результат.
|
|
291
|
+
|
|
292
|
+
[Task Agent]
|
|
293
|
+
Name: MR Review Agent
|
|
294
|
+
|
|
295
|
+
MR Review Agent: run MR review gate,
|
|
296
|
+
task DEV-12,
|
|
297
|
+
pr 34,
|
|
298
|
+
approve yes,
|
|
299
|
+
result PASS_CONFIRMED
|
|
300
|
+
```
|
|
301
|
+
|
|
230
302
|
### SET_STATUS -> PUBLISH (после фактической публикации)
|
|
231
303
|
```text
|
|
232
304
|
[Agent Auto-Select]
|
|
@@ -277,6 +349,22 @@ task DEV-12,
|
|
|
277
349
|
sprint SPRINT-3
|
|
278
350
|
```
|
|
279
351
|
|
|
352
|
+
### STATUS_SNAPSHOT
|
|
353
|
+
```text
|
|
354
|
+
[Agent Auto-Select]
|
|
355
|
+
Selected: Status Agent
|
|
356
|
+
Reason: Пользователь запросил текущий статус проекта/процесса.
|
|
357
|
+
|
|
358
|
+
[Task Agent]
|
|
359
|
+
Name: Status Agent
|
|
360
|
+
|
|
361
|
+
Status Agent: status snapshot,
|
|
362
|
+
tracker github,
|
|
363
|
+
source policy "github/mcp/custom -> external tracker first, local -> tasks first",
|
|
364
|
+
include "trackers_used,current_sprint,current_task,current_branch_context,git_uncommitted,summary",
|
|
365
|
+
command "node .meta-agents/scripts/sync-status.mjs"
|
|
366
|
+
```
|
|
367
|
+
|
|
280
368
|
### PREPARE_RELEASE_NOTE
|
|
281
369
|
```text
|
|
282
370
|
[Agent Auto-Select]
|
|
@@ -332,14 +420,20 @@ reason "вошло в релиз v0.1.2"
|
|
|
332
420
|
## 4) Минимальный операционный цикл
|
|
333
421
|
1. `VERIFY_GOVERNANCE_GATE`.
|
|
334
422
|
2. `CREATE_TASK`.
|
|
335
|
-
3. `
|
|
336
|
-
4.
|
|
337
|
-
5.
|
|
338
|
-
6. `
|
|
339
|
-
7.
|
|
340
|
-
8. `
|
|
341
|
-
9. `
|
|
342
|
-
10. `
|
|
343
|
-
11.
|
|
344
|
-
12. `
|
|
345
|
-
13.
|
|
423
|
+
3. `PREPARE_TASK_BRANCH`.
|
|
424
|
+
4. `SET_STATUS -> IN_PROGRESS`.
|
|
425
|
+
5. Реализация + evidence.
|
|
426
|
+
6. `SET_STATUS -> REVIEW`.
|
|
427
|
+
7. `RUN_REVIEW_GATE` (получить report + `PASS_CANDIDATE`/`FAIL`).
|
|
428
|
+
8. Пользователь подтверждает review (`Review Approved: yes`).
|
|
429
|
+
9. `RUN_REVIEW_GATE` -> `PASS_CONFIRMED`.
|
|
430
|
+
10. `COMMIT_BY_NAME` только после review PASS_CONFIRMED и отдельного подтверждения пользователя на коммит.
|
|
431
|
+
11. Push + open PR в целевую ветку по Git Flow Lite.
|
|
432
|
+
12. `RUN_MR_REVIEW_GATE` (получить report + `PASS_CANDIDATE`/`FAIL`).
|
|
433
|
+
13. Пользователь подтверждает MR review (`MR Review Approved: yes`).
|
|
434
|
+
14. `RUN_MR_REVIEW_GATE` -> `PASS_CONFIRMED`.
|
|
435
|
+
15. Merge PR по Git Flow Lite.
|
|
436
|
+
16. `SET_STATUS -> READY`.
|
|
437
|
+
17. `SET_STATUS -> DONE` только после подтверждения пользователя.
|
|
438
|
+
18. `PREPARE_RELEASE_NOTE` (какие задачи вошли в релиз).
|
|
439
|
+
19. Для релизных задач после публикации: `MARK_TASKS_PUBLISH` (`SET_STATUS -> PUBLISH` для всех вошедших задач).
|