@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.
Files changed (30) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +52 -10
  3. package/agents.md +67 -16
  4. package/package.json +1 -1
  5. package/template/.github/workflows/gitflow-lite-verify.yml +63 -0
  6. package/template/.meta-agents/config/project-context.yaml +7 -0
  7. package/template/.meta-agents/config/roles.yaml +5 -1
  8. package/template/.meta-agents/config/system.yaml +125 -3
  9. package/template/.meta-agents/config/trackers.yaml +1 -0
  10. package/template/.meta-agents/prompts/agile-manager.md +19 -1
  11. package/template/.meta-agents/prompts/clarifier.md +2 -0
  12. package/template/.meta-agents/prompts/mr-review-agent.md +26 -0
  13. package/template/.meta-agents/prompts/reviewer-judge.md +3 -1
  14. package/template/.meta-agents/prompts/status-agent.md +27 -0
  15. package/template/.meta-agents/scripts/run-mr-review-gate.mjs +488 -0
  16. package/template/.meta-agents/scripts/run-review-gate.mjs +54 -1
  17. package/template/.meta-agents/scripts/sync-status.mjs +620 -1
  18. package/template/.meta-agents/scripts/task-branch-router.mjs +530 -0
  19. package/template/.meta-agents/scripts/tracker/provider-lock.mjs +104 -0
  20. package/template/.meta-agents/scripts/tracker-gateway.mjs +199 -0
  21. package/template/.meta-agents/scripts/verify-branch-strategy.mjs +103 -0
  22. package/template/.meta-agents/scripts/verify-commit-link.mjs +27 -13
  23. package/template/.meta-agents/scripts/verify-governance.mjs +37 -12
  24. package/template/.meta-agents/templates/agent-work-contract.md +8 -1
  25. package/template/.meta-agents/templates/task-template.md +7 -1
  26. package/template/README.md +43 -6
  27. package/template/agents.md +67 -16
  28. package/template/package.json +6 -1
  29. package/template/tracker-command-template.md +122 -28
  30. package/tracker-command-template.md +109 -15
@@ -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. `SET_STATUS`
100
- 3. `RUN_REVIEW_GATE`
101
- 4. `COMMIT_BY_NAME`
102
- 5. `ASSIGN_SPRINT`
103
- 6. `PREPARE_RELEASE_NOTE`
104
- 7. `MARK_TASKS_PUBLISH`
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
- - для single-branch режима статусный цикл задачи фиксируется как `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
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`), при этом либо в `main`, либо в отдельной ветке с открытым MR/PR.
121
- - `DONE` означает: изменения интегрированы в `main` (прямой коммит в `main` или MR/PR смержен).
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. До review gate задача переведена в статус `REVIEW`.
148
- 14. Статус `READY` выставлен только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
149
- 15. Для статуса `READY` подтверждены `commit + push` и путь интеграции (`main` или открытый MR/PR).
150
- 16. Для статуса `DONE` подтверждена интеграция в `main` (direct commit или merged MR/PR).
151
- 17. Для статуса `PUBLISH` подтверждена публикация в последней версии.
152
- 18. Для релиза обновлён публичный `CHANGELOG.md`.
153
- 19. Коммит содержит ссылку на issue/task (`TASK-ID` или `#issue`).
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
 
@@ -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:verify-link": "node .meta-agents/scripts/verify-commit-link.mjs"
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
- - для single-branch режима используется цикл `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
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`), изменения находятся либо в `main`, либо в отдельной ветке с открытым MR/PR.
63
- - `DONE`: изменения интегрированы в `main` (direct commit в `main` или MR/PR смержен).
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 github,
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 github,
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 github,
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 github,
219
+ tracker __DEFAULT_TRACKER__,
182
220
  type epic,
183
- labels "type:epic,tracker:github,sprint:SPRINT-3",
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 github,
236
+ tracker __DEFAULT_TRACKER__,
199
237
  type feature,
200
- labels "type:feature,tracker:github,sprint:SPRINT-3",
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 github,
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 github,
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 github,
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 github,
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 github,
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 github,
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. `SET_STATUS -> IN_PROGRESS`.
336
- 4. Реализация + evidence.
337
- 5. `SET_STATUS -> REVIEW`.
338
- 6. `RUN_REVIEW_GATE` (получить report + `PASS_CANDIDATE`/`FAIL`).
339
- 7. Пользователь подтверждает review (`Review Approved: yes`).
340
- 8. `RUN_REVIEW_GATE` -> `PASS_CONFIRMED`.
341
- 9. `COMMIT_BY_NAME` только после review PASS_CONFIRMED и отдельного подтверждения пользователя на коммит.
342
- 10. `SET_STATUS -> READY`.
343
- 11. `SET_STATUS -> DONE` только после подтверждения пользователя.
344
- 12. `PREPARE_RELEASE_NOTE` (какие задачи вошли в релиз).
345
- 13. Для релизных задач после публикации: `MARK_TASKS_PUBLISH` (`SET_STATUS -> PUBLISH` для всех вошедших задач).
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
- - для single-branch режима используется цикл `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
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`), изменения находятся либо в `main`, либо в отдельной ветке с открытым MR/PR.
63
- - `DONE`: изменения интегрированы в `main` (direct commit в `main` или MR/PR смержен).
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. `SET_STATUS -> IN_PROGRESS`.
336
- 4. Реализация + evidence.
337
- 5. `SET_STATUS -> REVIEW`.
338
- 6. `RUN_REVIEW_GATE` (получить report + `PASS_CANDIDATE`/`FAIL`).
339
- 7. Пользователь подтверждает review (`Review Approved: yes`).
340
- 8. `RUN_REVIEW_GATE` -> `PASS_CONFIRMED`.
341
- 9. `COMMIT_BY_NAME` только после review PASS_CONFIRMED и отдельного подтверждения пользователя на коммит.
342
- 10. `SET_STATUS -> READY`.
343
- 11. `SET_STATUS -> DONE` только после подтверждения пользователя.
344
- 12. `PREPARE_RELEASE_NOTE` (какие задачи вошли в релиз).
345
- 13. Для релизных задач после публикации: `MARK_TASKS_PUBLISH` (`SET_STATUS -> PUBLISH` для всех вошедших задач).
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` для всех вошедших задач).