@k0t0vich/meta-agents-template 0.1.2 → 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 (31) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +54 -10
  3. package/agents.md +69 -13
  4. package/package.json +2 -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 +127 -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/publishing-agent.md +2 -1
  14. package/template/.meta-agents/prompts/reviewer-judge.md +3 -1
  15. package/template/.meta-agents/prompts/status-agent.md +27 -0
  16. package/template/.meta-agents/scripts/run-mr-review-gate.mjs +488 -0
  17. package/template/.meta-agents/scripts/run-review-gate.mjs +54 -1
  18. package/template/.meta-agents/scripts/sync-status.mjs +620 -1
  19. package/template/.meta-agents/scripts/task-branch-router.mjs +530 -0
  20. package/template/.meta-agents/scripts/tracker/provider-lock.mjs +104 -0
  21. package/template/.meta-agents/scripts/tracker-gateway.mjs +199 -0
  22. package/template/.meta-agents/scripts/verify-branch-strategy.mjs +103 -0
  23. package/template/.meta-agents/scripts/verify-commit-link.mjs +27 -13
  24. package/template/.meta-agents/scripts/verify-governance.mjs +37 -12
  25. package/template/.meta-agents/templates/agent-work-contract.md +8 -1
  26. package/template/.meta-agents/templates/task-template.md +7 -1
  27. package/template/README.md +43 -5
  28. package/template/agents.md +68 -15
  29. package/template/package.json +6 -1
  30. package/template/tracker-command-template.md +123 -28
  31. package/tracker-command-template.md +142 -14
package/CHANGELOG.md ADDED
@@ -0,0 +1,41 @@
1
+ # Changelog
2
+
3
+ All notable changes to this package are documented in this file.
4
+
5
+ ## 0.1.4 - 2026-03-20
6
+
7
+ ### Added
8
+ - `MR Review Agent` and mandatory pre-merge `RUN_MR_REVIEW_GATE` flow (`PASS_CANDIDATE -> PASS_CONFIRMED` after explicit user approval).
9
+ - New MR review tooling: `meta:mr-review`, `meta:mr-review-approve`, and TrackerGateway command `RUN_MR_REVIEW_GATE`.
10
+ - Branch-routing preflight command `meta:task-start` with route decision (`stay_on_current_branch` / `create_new_branch`).
11
+ - Context-protection warning on branch switch when `agents.md` differs between current and base branch.
12
+ - Git Flow Lite CI checks extended with e2e branch-routing scenarios (`same feature` and `different feature`).
13
+
14
+ ### Changed
15
+ - Canonical command cycle now includes `PREPARE_TASK_BRANCH` and `RUN_MR_REVIEW_GATE` before merge.
16
+ - Acceptance criteria strengthened with `branch_routing_e2e_verified` and `agents_context_consistency_verified`.
17
+ - Status snapshot now includes branch context and task/branch alignment details.
18
+ - Internal publishing guide now documents the full Git Flow Lite release path (`develop -> release/* -> main -> back-merge`).
19
+
20
+ ## 0.1.3 - 2026-03-20
21
+
22
+ ### Added
23
+ - Public `CHANGELOG.md` is now part of the npm package payload.
24
+ - Publishing Agent rules now require changelog update before release.
25
+ - Release process now explicitly requires release note + task list + post-publish status update to `PUBLISH`.
26
+
27
+ ### Changed
28
+ - Publishing guidance now includes changelog update and visibility checks for npm consumers.
29
+
30
+ ## 0.1.2 - 2026-03-20
31
+
32
+ ### Added
33
+ - Status semantics: `READY` (commit+push), `DONE` (integrated to main), `PUBLISH` (released latest).
34
+ - Large-feature policy for GitHub tracker: `feature issue` + `epic issue` + dedicated branch.
35
+ - Publishing Agent role with release-note and `PUBLISH` task updates.
36
+
37
+ ## 0.1.1 - 2026-03-20
38
+
39
+ ### Added
40
+ - Trusted Publishing release flow and local post-publish smoke routine.
41
+ - Governance and review-gate hardening with explicit user confirmation rules.
package/README.md CHANGED
@@ -33,6 +33,9 @@ npx meta-agents init my-project
33
33
  ## Структура проекта после `init`
34
34
  ```text
35
35
  my-project/
36
+ .github/
37
+ workflows/
38
+ gitflow-lite-verify.yml
36
39
  package.json
37
40
  README.md
38
41
  agents.md
@@ -42,6 +45,7 @@ my-project/
42
45
  system.yaml
43
46
  roles.yaml
44
47
  trackers.yaml
48
+ project-context.yaml
45
49
  templates/
46
50
  prd-step.md
47
51
  agent-work-contract.md
@@ -55,17 +59,23 @@ my-project/
55
59
  verifier-designer.md
56
60
  decomposer.md
57
61
  reviewer-judge.md
62
+ mr-review-agent.md
58
63
  agile-manager.md
59
64
  publishing-agent.md
65
+ status-agent.md
60
66
  scripts/
61
67
  init.mjs
62
68
  sync-status.mjs
69
+ verify-branch-strategy.mjs
70
+ task-branch-router.mjs
71
+ run-mr-review-gate.mjs
63
72
  generate-prd-step.mjs
64
73
  tracker/
65
74
  local.mjs
66
75
  github.mjs
67
76
  mcp.mjs
68
77
  custom.mjs
78
+ tracker-gateway.mjs
69
79
  tasks/
70
80
  backlog.md
71
81
  sprint-1.md
@@ -75,17 +85,28 @@ my-project/
75
85
  ## Канонические команды
76
86
  0. `VERIFY_GOVERNANCE_GATE`
77
87
  1. `CREATE_TASK`
78
- 2. `SET_STATUS`
79
- 3. `RUN_REVIEW_GATE`
80
- 4. `COMMIT_BY_NAME`
81
- 5. `ASSIGN_SPRINT`
82
- 6. `PREPARE_RELEASE_NOTE`
83
- 7. `MARK_TASKS_PUBLISH`
88
+ 2. `PREPARE_TASK_BRANCH`
89
+ 3. `SET_STATUS`
90
+ 4. `RUN_REVIEW_GATE`
91
+ 5. `COMMIT_BY_NAME`
92
+ 6. `RUN_MR_REVIEW_GATE`
93
+ 7. `ASSIGN_SPRINT`
94
+ 8. `PREPARE_RELEASE_NOTE`
95
+ 9. `MARK_TASKS_PUBLISH`
96
+ 10. `STATUS_SNAPSHOT`
84
97
 
85
98
  `VERIFY_GOVERNANCE_GATE` выполняет `Governance Watchdog Agent` перед любой операцией и блокирует выполнение при нарушении PRD/acceptance/user-confirmation правил.
86
99
  `RUN_REVIEW_GATE` выполняет `Reviewer/Judge Agent` перед коммитом:
87
100
  - сначала выводит summary выполненного, критические замечания, потенциальные риски и рекомендацию `PASS_CANDIDATE/FAIL`;
88
101
  - финальный `PASS_CONFIRMED` допускается только после явного `Review Approved: yes` от пользователя.
102
+ `RUN_MR_REVIEW_GATE` выполняет `MR Review Agent` перед merge:
103
+ - формирует сводный отчёт по MR/PR (task linkage, PRD evidence, риски, Git Flow target);
104
+ - финальный `PASS_CONFIRMED` допускается только после явного `MR Review Approved: yes`.
105
+
106
+ ## Source of truth по tracker provider
107
+ - Выбранный в `init` provider фиксируется в `.meta-agents/config/project-context.yaml`.
108
+ - Значение обязано совпадать с `.meta-agents/config/trackers.yaml -> tracker_gateway.default`.
109
+ - По умолчанию все операционные команды идут через этот provider, пока пользователь явно не изменит конфиг.
89
110
 
90
111
  ## Self-bootstrap (для этого репозитория)
91
112
  Чтобы сам шаблон работал по своим же правилам, запусти:
@@ -110,7 +131,9 @@ npm run self:bootstrap
110
131
  8. Перед каждой командой пройден watchdog gate (`VERIFY_GOVERNANCE_GATE`).
111
132
  9. Перед коммитом пройден review gate (`RUN_REVIEW_GATE`) с финальным `PASS_CONFIRMED`.
112
133
  10. Есть отдельное явное подтверждение пользователя на прохождение review (`Review Approved: yes`).
113
- 11. Каждый коммит связан с issue/task (`TASK-ID` и/или `#issue` в commit message).
134
+ 11. Перед merge пройден MR review gate (`RUN_MR_REVIEW_GATE`) с финальным `PASS_CONFIRMED`.
135
+ 12. Есть отдельное явное подтверждение пользователя на MR review (`MR Review Approved: yes`).
136
+ 13. Каждый коммит связан с issue/task (`TASK-ID` и/или `#issue` в commit message).
114
137
 
115
138
  Если хотя бы один пункт не выполнен, задача не принимается.
116
139
 
@@ -119,25 +142,46 @@ npm run self:bootstrap
119
142
 
120
143
  ```bash
121
144
  npm run meta:verify
145
+ npm run meta:branch
146
+ npm run meta:task-start -- --task 12 --slug api-redirect
122
147
  npm run meta:review
123
148
  npm run meta:review-approve
149
+ npm run meta:mr-review
150
+ npm run meta:mr-review-approve
124
151
  npm run meta:verify-link
152
+ npm run meta:ops -- --command SET_STATUS --payload '{"task":"DEV-12","status":"IN_PROGRESS"}'
153
+ npm run meta:ops -- --command PREPARE_TASK_BRANCH --payload '{"task":"12","slug":"api-redirect"}'
154
+ npm run meta:status
125
155
  ```
126
156
 
157
+ `meta:ops` принудительно проверяет tracker provider lock и блокирует выполнение, если переданный `--tracker` не совпадает с зафиксированным provider проекта.
158
+ `meta:branch` валидирует ветку по Git Flow Lite (`main`, `develop`, `feature/*`, `release/*`, `hotfix/*`).
159
+ `meta:task-start` делает branch-routing preflight: сравнивает задачу с текущей веткой, показывает dirty/ahead блокеры и готовит маршрут (`stay_on_current_branch` или `create_new_branch`).
160
+ `meta:task-start` также делает context-protection check для `agents.md` между текущей и базовой веткой и требует явного подтверждения при diff.
161
+ `meta:mr-review` формирует сводный pre-merge отчёт по MR/PR, `meta:mr-review-approve` фиксирует финальный PASS после подтверждения пользователя.
162
+ `meta:status` отдаёт единый статус-срез: trackers used, current sprint, current task, current branch context, git uncommitted и summary.
163
+ В `github` режиме локальные `tasks/*` по умолчанию считаются cache/legacy и не являются источником истины.
164
+
127
165
  Она проверяет наличие обязательных PRD-блоков в задачах (`Описание`, `Проверяемость`, `Что сделано`) и валидирует базовую процессную дисциплину.
128
166
 
129
167
  ## Правило диалога пользователя
130
168
  Коммиты и закрытие задач выполняются только по явному подтверждению пользователя в текущем диалоге:
131
169
  - `COMMIT_BY_NAME` — только после подтверждения пользователя;
132
170
  - перевод задачи в `DONE` — только после подтверждения пользователя;
133
- - в single-branch режиме статусный цикл: `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
171
+ - в режиме Git Flow Lite статусный цикл: `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
134
172
  - без подтверждения максимум статуса: `REVIEW`;
135
173
  - `READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
136
- - `READY` означает commit + push `main` или в ветку с открытым MR/PR);
137
- - `DONE` означает интеграцию в `main` (direct commit или merged MR/PR);
174
+ - merge в целевую ветку разрешён только после `RUN_MR_REVIEW_GATE: PASS_CONFIRMED` и `MR Review Approved: yes`.
175
+ - Git Flow Lite ветки: `feature/* -> develop`, `release/* -> main` + back-merge в `develop`, `hotfix/* -> main` + back-merge в `develop`;
176
+ - веточный preflight для задач реализации: `meta:task-start` (проверка branch/task соответствия и диалог перед switch/create);
177
+ - pre-merge gate для MR: `meta:mr-review`/`meta:mr-review-approve` (task linkage + PRD evidence + подтверждение пользователя);
178
+ - `READY` означает commit + push в `feature/*|release/*|hotfix/*` и открытый PR в целевую ветку;
179
+ - `DONE` означает интеграцию в `main` + back-merge в `develop` для release/hotfix;
138
180
  - `PUBLISH` означает, что релиз опубликован и доступен в latest.
139
181
  - для большой фичи (в режиме GitHub tracker) агент обязан предложить `feature issue` + `epic issue` и отдельную ветку.
140
182
 
141
183
  ## Основные документы шаблона
142
184
  - [agents.md](./agents.md)
143
185
  - [tracker-command-template.md](./tracker-command-template.md)
186
+ - [CHANGELOG.md](./CHANGELOG.md)
187
+ - [GitHub Releases](https://github.com/k0t0vich/meta-agents-template/releases)
package/agents.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # agents.md
2
2
 
3
+ ## 0) Профиль развернутого проекта (source of truth)
4
+ - Project: `meta-agents-template`
5
+ - Tracker provider (обязательный): `github`
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,8 +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).
42
+ - `Publishing Agent`: готовит release notes, фиксирует вошедшие задачи и переводит их в `PUBLISH`.
43
+ - `Publishing Agent`: обновляет публичный `CHANGELOG.md`, готовит release notes, фиксирует вошедшие задачи и переводит их в `PUBLISH`.
33
44
  - `Documentation Agent`: поддержка и синхронизация артефактов.
34
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
+
35
62
  ## 4) Жёсткий Auto-Select и показ имени агента
36
63
  Автовыбор агента обязателен перед каждой задачей и перед каждой командой (`CREATE_TASK`, `SET_STATUS`, `COMMIT_BY_NAME`, `ASSIGN_SPRINT`).
37
64
 
@@ -94,10 +121,15 @@ Name: <agent role>
94
121
 
95
122
  0. `VERIFY_GOVERNANCE_GATE`
96
123
  1. `CREATE_TASK`
97
- 2. `SET_STATUS`
98
- 3. `RUN_REVIEW_GATE`
99
- 4. `COMMIT_BY_NAME`
100
- 5. `ASSIGN_SPRINT`
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`
101
133
 
102
134
  ## 10) Коммиты и закрытие задач: только по подтверждению пользователя
103
135
  Запрещено выполнять автоматически:
@@ -105,16 +137,21 @@ Name: <agent role>
105
137
  - перевод задачи в `DONE`.
106
138
 
107
139
  Обязательное правило:
108
- - для 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`;
109
144
  - `RUN_REVIEW_GATE` сначала формирует отчёт ревьювера и рекомендацию (`PASS_CANDIDATE`/`FAIL`);
110
145
  - финальный `RUN_REVIEW_GATE: PASS_CONFIRMED` допускается только после явного подтверждения пользователя `Review Approved: yes`;
111
146
  - `COMMIT_BY_NAME` выполняется только после `RUN_REVIEW_GATE: PASS_CONFIRMED` и отдельного явного подтверждения пользователя в текущем диалоге;
147
+ - merge в целевую ветку выполняется только после `RUN_MR_REVIEW_GATE: PASS_CONFIRMED` и явного подтверждения пользователя `MR Review Approved: yes`;
112
148
  - `SET_STATUS -> DONE` выполняется только после явного подтверждения пользователя в текущем диалоге;
113
149
  - без подтверждения пользователя максимум допустимого статуса: `REVIEW`.
114
150
  - `SET_STATUS -> READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
151
+ - для задач реализации по умолчанию используется отдельная ветка `feature/*`; прямой рабочий поток на `develop`/`main` не допускается.
115
152
  - сообщение коммита обязано содержать ссылку на задачу (`TASK-ID` и/или `#issue-number`).
116
- - `READY` означает: коммит сделан и отправлен (`push`), при этом либо в `main`, либо в отдельной ветке с открытым MR/PR.
117
- - `DONE` означает: изменения интегрированы в `main` (прямой коммит в `main` или MR/PR смержен).
153
+ - `READY` означает: коммит сделан и отправлен (`push`) в `feature/*`, `release/*` или `hotfix/*` с открытым PR по правилам ветвления.
154
+ - `DONE` означает: изменения интегрированы в `main`; для `release/*` и `hotfix/*` подтверждён back-merge в `develop`.
118
155
  - `PUBLISH` означает: релиз опубликован и доступен в последней версии пакета.
119
156
 
120
157
  ## 10.1) Правило для больших фич (GitHub tracker)
@@ -126,6 +163,19 @@ Name: <agent role>
126
163
 
127
164
  Для текущего этапа (только GitHub tracker) epic реализуется как обычный issue с label `type:epic`.
128
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
+
129
179
  ## 11) Жёсткие критерии приёмки (все обязательны)
130
180
  Задача принимается только если одновременно выполнены все условия:
131
181
  1. Заполнены все PRD-блоки этапа: `Описание`, `Проверяемость`, `Что сделано`.
@@ -140,12 +190,18 @@ Name: <agent role>
140
190
  10. Перед каждой командой пройден `VERIFY_GOVERNANCE_GATE` от `Governance Watchdog Agent`.
141
191
  11. Перед коммитом пройден `RUN_REVIEW_GATE` от `Reviewer/Judge Agent`.
142
192
  12. Есть явное подтверждение пользователя на прохождение review (`Review Approved: yes`).
143
- 13. До review gate задача переведена в статус `REVIEW`.
144
- 14. Статус `READY` выставлен только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
145
- 15. Для статуса `READY` подтверждены `commit + push` и путь интеграции (`main` или открытый MR/PR).
146
- 16. Для статуса `DONE` подтверждена интеграция в `main` (direct commit или merged MR/PR).
147
- 17. Для статуса `PUBLISH` подтверждена публикация в последней версии.
148
- 18. Коммит содержит ссылку на 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).
149
205
 
150
206
  Если хотя бы один критерий не выполнен, задача не принимается.
151
207
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k0t0vich/meta-agents-template",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Template system for verification-first agentic development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -14,6 +14,7 @@
14
14
  },
15
15
  "files": [
16
16
  "README.md",
17
+ "CHANGELOG.md",
17
18
  "agents.md",
18
19
  "tracker-command-template.md",
19
20
  "bin",
@@ -0,0 +1,63 @@
1
+ name: Git Flow Lite Verify
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - develop
8
+ - 'feature/**'
9
+ - 'release/**'
10
+ - 'hotfix/**'
11
+ - 'codex/feature/**'
12
+ - 'codex/release/**'
13
+ - 'codex/hotfix/**'
14
+ pull_request:
15
+ branches:
16
+ - main
17
+ - develop
18
+
19
+ jobs:
20
+ verify:
21
+ runs-on: ubuntu-latest
22
+
23
+ steps:
24
+ - name: Checkout
25
+ uses: actions/checkout@v6
26
+
27
+ - name: Setup Node.js
28
+ uses: actions/setup-node@v6
29
+ with:
30
+ node-version: '24'
31
+
32
+ - name: Validate branch naming policy
33
+ shell: bash
34
+ run: |
35
+ BRANCH="${GITHUB_HEAD_REF:-${GITHUB_REF_NAME}}"
36
+ echo "Branch: $BRANCH"
37
+ if [[ "$BRANCH" =~ ^(main|develop|feature/.+|release/.+|hotfix/.+|codex/feature/.+|codex/release/.+|codex/hotfix/.+)$ ]]; then
38
+ echo "Branch naming PASS"
39
+ else
40
+ echo "Branch naming FAIL: '$BRANCH' is not Git Flow Lite compatible"
41
+ exit 1
42
+ fi
43
+
44
+ - name: Run governance and branch checks
45
+ run: |
46
+ npm run meta:branch
47
+ node --check .meta-agents/scripts/run-mr-review-gate.mjs
48
+ node --check .meta-agents/scripts/task-branch-router.mjs
49
+ npm run meta:verify
50
+ npm run meta:status -- --json
51
+ npm run meta:task-start -- --task 101 --slug verify --json
52
+
53
+ - name: Validate branch routing e2e scenarios
54
+ shell: bash
55
+ run: |
56
+ git add -A
57
+ git commit -m "ci: bootstrap routing check"
58
+ git branch develop
59
+ git checkout -b codex/feature/101-routing
60
+ node .meta-agents/scripts/task-branch-router.mjs --task 101 --slug routing --json > /tmp/same-feature.json
61
+ node -e 'const fs=require("fs"); const d=JSON.parse(fs.readFileSync("/tmp/same-feature.json","utf8")); if (d.decision !== "stay_on_current_branch") { console.error("Expected stay_on_current_branch"); process.exit(1); }'
62
+ node .meta-agents/scripts/task-branch-router.mjs --task 202 --slug routing --json > /tmp/cross-feature.json
63
+ node -e 'const fs=require("fs"); const d=JSON.parse(fs.readFileSync("/tmp/cross-feature.json","utf8")); if (d.decision !== "create_new_branch") { console.error("Expected create_new_branch"); process.exit(1); }'
@@ -0,0 +1,7 @@
1
+ project_context:
2
+ tracker_provider:
3
+ selected: "__DEFAULT_TRACKER__"
4
+ locked: true
5
+ required_for_all_commands: true
6
+ source_of_truth: true
7
+ change_policy: "update both project-context.yaml and trackers.yaml default in same change"
@@ -2,7 +2,7 @@ roles:
2
2
  - name: "Chief of Staff Agent"
3
3
  responsibility: "Оркестрация, блокеры, эскалации"
4
4
  - name: "Agile Manager Agent"
5
- responsibility: "CREATE_TASK/SET_STATUS/COMMIT_BY_NAME/ASSIGN_SPRINT + epic/feature orchestration in GitHub tracker"
5
+ responsibility: "CREATE_TASK/PREPARE_TASK_BRANCH/SET_STATUS/COMMIT_BY_NAME/ASSIGN_SPRINT + epic/feature orchestration in GitHub tracker"
6
6
  - name: "Governance Watchdog Agent"
7
7
  responsibility: "Обязательный preflight-gate: PRD/acceptance/user confirmation policy"
8
8
  - name: "Product Manager Agent"
@@ -19,7 +19,11 @@ roles:
19
19
  responsibility: "Верификация и тестирование"
20
20
  - name: "Reviewer/Judge Agent"
21
21
  responsibility: "Независимая приёмка + обязательный pre-commit review gate"
22
+ - name: "MR Review Agent"
23
+ responsibility: "Обязательный pre-merge review gate: task linkage + PRD evidence + Git Flow target validation"
22
24
  - name: "Publishing Agent"
23
25
  responsibility: "Подготовка release notes, публикация релиза, перевод вошедших задач в PUBLISH"
24
26
  - name: "Documentation Agent"
25
27
  responsibility: "Синхронизация документации"
28
+ - name: "Status Agent"
29
+ responsibility: "Сводный статус по tracker/sprint/task/git + branch context (type/task-ref/alignment) с приоритетом источника по tracker provider"
@@ -22,14 +22,55 @@ system:
22
22
  - skip
23
23
  offer_create_github_repo: true
24
24
  governance:
25
+ status_intent_router:
26
+ enabled: true
27
+ intent_keywords:
28
+ - "status"
29
+ - "статус"
30
+ - "что в процессе"
31
+ - "что в работе"
32
+ - "процесс"
33
+ - "где мы"
34
+ selected_agent: "Status Agent"
35
+ required_output_sections:
36
+ - trackers_used
37
+ - current_sprint
38
+ - current_task
39
+ - current_branch_context
40
+ - git_uncommitted
41
+ - summary
42
+ source_priority:
43
+ github:
44
+ - github_tracker
45
+ - local_tasks_cache
46
+ local:
47
+ - local_tasks
48
+ mcp:
49
+ - external_tracker
50
+ - local_tasks_cache
51
+ custom:
52
+ - external_tracker
53
+ - local_tasks_cache
54
+ tracker_selection:
55
+ explicit_provider_required: true
56
+ source_of_truth:
57
+ - ".meta-agents/config/project-context.yaml"
58
+ - ".meta-agents/config/trackers.yaml"
59
+ providers_allowed:
60
+ - github
61
+ - mcp
62
+ - local
63
+ - custom
64
+ require_provider_consistency: true
25
65
  user_confirmation_required_for:
26
66
  - review_gate_pass
67
+ - mr_review_gate_pass
27
68
  - commit
28
69
  - task_close_done
29
70
  - release_publish
30
71
  max_status_without_user_confirmation: REVIEW
31
72
  status_lifecycle:
32
- mode: single_branch
73
+ mode: git_flow_lite
33
74
  sequence:
34
75
  - TODO
35
76
  - IN_PROGRESS
@@ -37,10 +78,64 @@ system:
37
78
  - READY
38
79
  - DONE
39
80
  - PUBLISH
81
+ git_flow_lite:
82
+ long_lived_branches:
83
+ - main
84
+ - develop
85
+ working_branches:
86
+ feature: "feature/<task-or-issue-id>-<slug>"
87
+ release: "release/vX.Y.Z"
88
+ hotfix: "hotfix/<task-or-issue-id>-<slug>"
89
+ allowed_branch_patterns:
90
+ - "^main$"
91
+ - "^develop$"
92
+ - "^feature/.+"
93
+ - "^release/.+"
94
+ - "^hotfix/.+"
95
+ - "^codex/feature/.+"
96
+ - "^codex/release/.+"
97
+ - "^codex/hotfix/.+"
98
+ merge_rules:
99
+ - "feature/* -> develop"
100
+ - "release/* -> main and back-merge to develop"
101
+ - "hotfix/* -> main and back-merge to develop"
102
+ branch_routing_dialog:
103
+ required: true
104
+ required_before_commands:
105
+ - CREATE_TASK
106
+ - SET_STATUS
107
+ - COMMIT_BY_NAME
108
+ routing_command: "meta:task-start"
109
+ task_types:
110
+ atomic: "feature branch context (sub-task inside feature)"
111
+ feature: "dedicated feature branch from develop"
112
+ release: "release branch from develop"
113
+ hotfix: "hotfix branch from main"
114
+ stay_on_same_branch_when:
115
+ - current_branch_type_is_feature
116
+ - requested_task_matches_branch_task_ref
117
+ - user_confirmed_same_feature_execution
118
+ switch_branch_when:
119
+ - requested_task_does_not_match_branch_context
120
+ - current_branch_is_main_or_develop_for_implementation
121
+ blockers_require_user_resolution:
122
+ - working_tree_dirty
123
+ - current_branch_ahead
124
+ required_evidence:
125
+ - task_branch_router_same_feature_report
126
+ - task_branch_router_cross_feature_report
127
+ - agents_context_consistency_check
128
+ context_protection:
129
+ critical_file: "agents.md"
130
+ require_user_warning_on_diff: true
40
131
  rules:
132
+ - branch_routing_preflight_required
41
133
  - ready_only_after_review_pass_confirmed
134
+ - merge_only_after_mr_review_pass_confirmed
42
135
  - done_only_after_user_confirmation
43
136
  - publish_only_after_done
137
+ - no_direct_feature_commits_to_main
138
+ - release_and_hotfix_require_back_merge_to_develop
44
139
  github_status_labels:
45
140
  - TODO
46
141
  - IN_PROGRESS
@@ -50,8 +145,8 @@ system:
50
145
  - DONE
51
146
  - PUBLISH
52
147
  semantics:
53
- READY: "Commit created and pushed; either main branch commit or feature branch with open MR/PR."
54
- DONE: "Changes integrated to main (direct commit on main or MR/PR merged)."
148
+ READY: "Commit created and pushed on feature/release/hotfix branch with open PR (feature->develop, release/hotfix->main)."
149
+ DONE: "Changes integrated to main; for release/hotfix tasks back-merge from main to develop is confirmed."
55
150
  PUBLISH: "Released and available in latest published package version."
56
151
  epic_policy:
57
152
  github_only: true
@@ -66,8 +161,10 @@ system:
66
161
  before_commands:
67
162
  - VERIFY_GOVERNANCE_GATE
68
163
  - CREATE_TASK
164
+ - PREPARE_TASK_BRANCH
69
165
  - SET_STATUS
70
166
  - RUN_REVIEW_GATE
167
+ - RUN_MR_REVIEW_GATE
71
168
  - COMMIT_BY_NAME
72
169
  - ASSIGN_SPRINT
73
170
  - PREPARE_RELEASE_NOTE
@@ -91,12 +188,30 @@ system:
91
188
  - potential_risks
92
189
  - recommendation_pass_or_fail
93
190
  block_on_critical: true
191
+ mr_review_gate:
192
+ required_before_merge: true
193
+ command: RUN_MR_REVIEW_GATE
194
+ reporter_role: "MR Review Agent"
195
+ required_user_acknowledgement: true
196
+ recommendation_statuses:
197
+ - PASS_CANDIDATE
198
+ - FAIL
199
+ final_status: PASS_CONFIRMED
200
+ required_sections:
201
+ - mr_context
202
+ - task_linkage
203
+ - prd_evidence
204
+ - critical_findings
205
+ - potential_risks
206
+ - recommendation_pass_or_fail
207
+ block_on_critical: true
94
208
  commit_linkage:
95
209
  required: true
96
210
  accepted_patterns:
97
211
  - "TASK-ID"
98
212
  - "#issue"
99
213
  publish_flow:
214
+ changelog_required: true
100
215
  release_note_required: true
101
216
  release_note_must_include_tasks: true
102
217
  mark_included_tasks_publish: true
@@ -110,16 +225,25 @@ system:
110
225
  - human_approvals_passed
111
226
  - evidence_pack_complete
112
227
  - tracker_sync_complete
228
+ - branch_routing_dialog_completed
229
+ - branch_routing_e2e_verified
230
+ - agents_context_consistency_verified
113
231
  - watchdog_gate_passed
114
232
  - review_gate_passed
115
233
  - review_user_acknowledged
234
+ - mr_review_gate_passed
235
+ - mr_review_user_acknowledged
116
236
  - ready_has_commit_and_push
237
+ - ready_has_pr_to_expected_target_branch
117
238
  - done_integrated_to_main
239
+ - done_back_merged_to_develop_for_release_hotfix
240
+ - release_changelog_updated
118
241
  - release_note_created
119
242
  - release_note_includes_tasks
120
243
  - release_tasks_marked_publish
121
244
  - publish_released_latest
122
245
  - commit_linked_to_issue
246
+ - tracker_provider_explicit_and_consistent
123
247
  auto_select:
124
248
  required: true
125
249
  before_each_task: true
@@ -1,4 +1,5 @@
1
1
  tracker_gateway:
2
+ # Must match .meta-agents/config/project-context.yaml -> project_context.tracker_provider.selected
2
3
  default: "__DEFAULT_TRACKER__"
3
4
  providers:
4
5
  github: