@k0t0vich/meta-agents-template 0.1.3 → 0.1.5

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 +22 -0
  2. package/README.md +53 -10
  3. package/agents.md +67 -16
  4. package/package.json +1 -1
  5. package/template/.github/workflows/gitflow-lite-verify.yml +62 -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 +129 -3
  9. package/template/.meta-agents/config/trackers.yaml +1 -0
  10. package/template/.meta-agents/prompts/agile-manager.md +23 -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 +494 -0
  16. package/template/.meta-agents/scripts/run-review-gate.mjs +54 -1
  17. package/template/.meta-agents/scripts/sync-status.mjs +617 -1
  18. package/template/.meta-agents/scripts/task-branch-router.mjs +544 -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 +100 -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 +44 -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
package/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  All notable changes to this package are documented in this file.
4
4
 
5
+ ## 0.1.5 - 2026-03-20
6
+
7
+ ### Changed
8
+ - Removed legacy `codex/*` branch aliases from Git Flow Lite policy, docs, scripts, and CI branch validation.
9
+ - Standardized branch task-ref naming for atomic work (`GOV-*`, `REL-*`, `DOC-*`, `DEV-*`) with `issue-<number>` fallback.
10
+ - Updated branch-routing and status/review parsing so issue-based refs are handled consistently in `feature/issue-<n>-*` flows.
11
+
12
+ ## 0.1.4 - 2026-03-20
13
+
14
+ ### Added
15
+ - `MR Review Agent` and mandatory pre-merge `RUN_MR_REVIEW_GATE` flow (`PASS_CANDIDATE -> PASS_CONFIRMED` after explicit user approval).
16
+ - New MR review tooling: `meta:mr-review`, `meta:mr-review-approve`, and TrackerGateway command `RUN_MR_REVIEW_GATE`.
17
+ - Branch-routing preflight command `meta:task-start` with route decision (`stay_on_current_branch` / `create_new_branch`).
18
+ - Context-protection warning on branch switch when `agents.md` differs between current and base branch.
19
+ - Git Flow Lite CI checks extended with e2e branch-routing scenarios (`same feature` and `different feature`).
20
+
21
+ ### Changed
22
+ - Canonical command cycle now includes `PREPARE_TASK_BRANCH` and `RUN_MR_REVIEW_GATE` before merge.
23
+ - Acceptance criteria strengthened with `branch_routing_e2e_verified` and `agents_context_consistency_verified`.
24
+ - Status snapshot now includes branch context and task/branch alignment details.
25
+ - Internal publishing guide now documents the full Git Flow Lite release path (`develop -> release/* -> main -> back-merge`).
26
+
5
27
  ## 0.1.3 - 2026-03-20
6
28
 
7
29
  ### Added
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,22 +142,42 @@ 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 GOV-1 --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":"GOV-1","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
+ Именование branch task ref: по умолчанию использовать префиксные ID (`GOV-1`, `REL-1`, `DOC-1`, `DEV-1`); для чистого GitHub issue fallback формат `issue-<number>`.
162
+ `meta:mr-review` формирует сводный pre-merge отчёт по MR/PR, `meta:mr-review-approve` фиксирует финальный PASS после подтверждения пользователя.
163
+ `meta:status` отдаёт единый статус-срез: trackers used, current sprint, current task, current branch context, git uncommitted и summary.
164
+ В `github` режиме локальные `tasks/*` по умолчанию считаются cache/legacy и не являются источником истины.
165
+
127
166
  Она проверяет наличие обязательных PRD-блоков в задачах (`Описание`, `Проверяемость`, `Что сделано`) и валидирует базовую процессную дисциплину.
128
167
 
129
168
  ## Правило диалога пользователя
130
169
  Коммиты и закрытие задач выполняются только по явному подтверждению пользователя в текущем диалоге:
131
170
  - `COMMIT_BY_NAME` — только после подтверждения пользователя;
132
171
  - перевод задачи в `DONE` — только после подтверждения пользователя;
133
- - в single-branch режиме статусный цикл: `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
172
+ - в режиме Git Flow Lite статусный цикл: `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
134
173
  - без подтверждения максимум статуса: `REVIEW`;
135
174
  - `READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
136
- - `READY` означает commit + push `main` или в ветку с открытым MR/PR);
137
- - `DONE` означает интеграцию в `main` (direct commit или merged MR/PR);
175
+ - merge в целевую ветку разрешён только после `RUN_MR_REVIEW_GATE: PASS_CONFIRMED` и `MR Review Approved: yes`.
176
+ - Git Flow Lite ветки: `feature/* -> develop`, `release/* -> main` + back-merge в `develop`, `hotfix/* -> main` + back-merge в `develop`;
177
+ - веточный preflight для задач реализации: `meta:task-start` (проверка branch/task соответствия и диалог перед switch/create);
178
+ - pre-merge gate для MR: `meta:mr-review`/`meta:mr-review-approve` (task linkage + PRD evidence + подтверждение пользователя);
179
+ - `READY` означает commit + push в `feature/*|release/*|hotfix/*` и открытый PR в целевую ветку;
180
+ - `DONE` означает интеграцию в `main` + back-merge в `develop` для release/hotfix;
138
181
  - `PUBLISH` означает, что релиз опубликован и доступен в latest.
139
182
  - для большой фичи (в режиме GitHub tracker) агент обязан предложить `feature issue` + `epic issue` и отдельную ветку.
140
183
 
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,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,20 @@ 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
+ - интеграционные правила: `feature/* -> develop`, `release/* -> main` + back-merge в `develop`, `hotfix/* -> main` + back-merge в `develop`;
113
143
  - `RUN_REVIEW_GATE` сначала формирует отчёт ревьювера и рекомендацию (`PASS_CANDIDATE`/`FAIL`);
114
144
  - финальный `RUN_REVIEW_GATE: PASS_CONFIRMED` допускается только после явного подтверждения пользователя `Review Approved: yes`;
115
145
  - `COMMIT_BY_NAME` выполняется только после `RUN_REVIEW_GATE: PASS_CONFIRMED` и отдельного явного подтверждения пользователя в текущем диалоге;
146
+ - merge в целевую ветку выполняется только после `RUN_MR_REVIEW_GATE: PASS_CONFIRMED` и явного подтверждения пользователя `MR Review Approved: yes`;
116
147
  - `SET_STATUS -> DONE` выполняется только после явного подтверждения пользователя в текущем диалоге;
117
148
  - без подтверждения пользователя максимум допустимого статуса: `REVIEW`.
118
149
  - `SET_STATUS -> READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
150
+ - для задач реализации по умолчанию используется отдельная ветка `feature/*`; прямой рабочий поток на `develop`/`main` не допускается.
119
151
  - сообщение коммита обязано содержать ссылку на задачу (`TASK-ID` и/или `#issue-number`).
120
- - `READY` означает: коммит сделан и отправлен (`push`), при этом либо в `main`, либо в отдельной ветке с открытым MR/PR.
121
- - `DONE` означает: изменения интегрированы в `main` (прямой коммит в `main` или MR/PR смержен).
152
+ - `READY` означает: коммит сделан и отправлен (`push`) в `feature/*`, `release/*` или `hotfix/*` с открытым PR по правилам ветвления.
153
+ - `DONE` означает: изменения интегрированы в `main`; для `release/*` и `hotfix/*` подтверждён back-merge в `develop`.
122
154
  - `PUBLISH` означает: релиз опубликован и доступен в последней версии пакета.
123
155
 
124
156
  ## 10.1) Правило для больших фич (GitHub tracker)
@@ -130,6 +162,20 @@ Name: <agent role>
130
162
 
131
163
  Для текущего этапа (только GitHub tracker) epic реализуется как обычный issue с label `type:epic`.
132
164
 
165
+ ## 10.2) Обязательная маршрутизация ветки для Agile Manager Agent
166
+ Перед началом реализации агент обязан:
167
+ 1. Проверить веточный контекст через `meta:status`.
168
+ 2. Запустить branch-routing preflight через `meta:task-start -- --task <TASK-ID|#issue> --slug <slug> --kind atomic|feature|release|hotfix`.
169
+ 3. В названии рабочей ветки использовать task ref с префиксом (`GOV-1`, `REL-1`, `DOC-1`, `DEV-1`); если есть только issue number, использовать `issue-<number>`.
170
+ 4. Если задача относится к текущей feature-ветке (атомарная подзадача), продолжить в этой ветке только после подтверждения пользователя.
171
+ 5. Если задача не относится к текущей ветке, проверить незакоммиченные изменения и непушенные коммиты.
172
+ 6. Согласовать с пользователем способ обработки (`commit/stash/discard/push`).
173
+ 7. Переключиться на базовую ветку (`develop` или `main`) и обновить её.
174
+ 8. Создать новую рабочую ветку по Git Flow Lite.
175
+ 9. Перед переключением проверить консистентность `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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k0t0vich/meta-agents-template",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Template system for verification-first agentic development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,62 @@
1
+ name: Git Flow Lite Verify
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - develop
8
+ - 'feature/**'
9
+ - 'release/**'
10
+ - 'hotfix/**'
11
+ pull_request:
12
+ branches:
13
+ - main
14
+ - develop
15
+
16
+ jobs:
17
+ verify:
18
+ runs-on: ubuntu-latest
19
+
20
+ steps:
21
+ - name: Checkout
22
+ uses: actions/checkout@v6
23
+
24
+ - name: Setup Node.js
25
+ uses: actions/setup-node@v6
26
+ with:
27
+ node-version: '24'
28
+
29
+ - name: Validate branch naming policy
30
+ shell: bash
31
+ run: |
32
+ BRANCH="${GITHUB_HEAD_REF:-${GITHUB_REF_NAME}}"
33
+ echo "Branch: $BRANCH"
34
+ if [[ "$BRANCH" =~ ^(main|develop|feature/.+|release/.+|hotfix/.+)$ ]]; then
35
+ echo "Branch naming PASS"
36
+ else
37
+ echo "Branch naming FAIL: '$BRANCH' is not Git Flow Lite compatible"
38
+ exit 1
39
+ fi
40
+
41
+ - name: Run governance and branch checks
42
+ run: |
43
+ npm run meta:branch
44
+ node --check .meta-agents/scripts/run-mr-review-gate.mjs
45
+ node --check .meta-agents/scripts/task-branch-router.mjs
46
+ npm run meta:verify
47
+ npm run meta:status -- --json
48
+ npm run meta:task-start -- --task GOV-101 --slug verify --json
49
+ git config user.name "Meta Agents CI"
50
+ git config user.email "meta-agents@example.com"
51
+
52
+ - name: Validate branch routing e2e scenarios
53
+ shell: bash
54
+ run: |
55
+ git add -A
56
+ git commit -m "ci: bootstrap routing check"
57
+ git branch develop
58
+ git checkout -b feature/gov-101-routing
59
+ node .meta-agents/scripts/task-branch-router.mjs --task GOV-101 --slug routing --json > /tmp/same-feature.json
60
+ 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); }'
61
+ node .meta-agents/scripts/task-branch-router.mjs --task GOV-202 --slug routing --json > /tmp/cross-feature.json
62
+ 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,68 @@ 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-ref>-<slug>"
87
+ release: "release/vX.Y.Z"
88
+ hotfix: "hotfix/<task-ref>-<slug>"
89
+ task_ref_policy:
90
+ preferred_format:
91
+ - "GOV-<n>"
92
+ - "REL-<n>"
93
+ - "DOC-<n>"
94
+ - "DEV-<n>"
95
+ issue_fallback_format: "issue-<number>"
96
+ allowed_branch_patterns:
97
+ - "^main$"
98
+ - "^develop$"
99
+ - "^feature/.+"
100
+ - "^release/.+"
101
+ - "^hotfix/.+"
102
+ merge_rules:
103
+ - "feature/* -> develop"
104
+ - "release/* -> main and back-merge to develop"
105
+ - "hotfix/* -> main and back-merge to develop"
106
+ branch_routing_dialog:
107
+ required: true
108
+ required_before_commands:
109
+ - CREATE_TASK
110
+ - SET_STATUS
111
+ - COMMIT_BY_NAME
112
+ routing_command: "meta:task-start"
113
+ task_types:
114
+ atomic: "feature branch context (sub-task inside feature)"
115
+ feature: "dedicated feature branch from develop"
116
+ release: "release branch from develop"
117
+ hotfix: "hotfix branch from main"
118
+ stay_on_same_branch_when:
119
+ - current_branch_type_is_feature
120
+ - requested_task_matches_branch_task_ref
121
+ - user_confirmed_same_feature_execution
122
+ switch_branch_when:
123
+ - requested_task_does_not_match_branch_context
124
+ - current_branch_is_main_or_develop_for_implementation
125
+ blockers_require_user_resolution:
126
+ - working_tree_dirty
127
+ - current_branch_ahead
128
+ required_evidence:
129
+ - task_branch_router_same_feature_report
130
+ - task_branch_router_cross_feature_report
131
+ - agents_context_consistency_check
132
+ context_protection:
133
+ critical_file: "agents.md"
134
+ require_user_warning_on_diff: true
40
135
  rules:
136
+ - branch_routing_preflight_required
41
137
  - ready_only_after_review_pass_confirmed
138
+ - merge_only_after_mr_review_pass_confirmed
42
139
  - done_only_after_user_confirmation
43
140
  - publish_only_after_done
141
+ - no_direct_feature_commits_to_main
142
+ - release_and_hotfix_require_back_merge_to_develop
44
143
  github_status_labels:
45
144
  - TODO
46
145
  - IN_PROGRESS
@@ -50,8 +149,8 @@ system:
50
149
  - DONE
51
150
  - PUBLISH
52
151
  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)."
152
+ READY: "Commit created and pushed on feature/release/hotfix branch with open PR (feature->develop, release/hotfix->main)."
153
+ DONE: "Changes integrated to main; for release/hotfix tasks back-merge from main to develop is confirmed."
55
154
  PUBLISH: "Released and available in latest published package version."
56
155
  epic_policy:
57
156
  github_only: true
@@ -66,8 +165,10 @@ system:
66
165
  before_commands:
67
166
  - VERIFY_GOVERNANCE_GATE
68
167
  - CREATE_TASK
168
+ - PREPARE_TASK_BRANCH
69
169
  - SET_STATUS
70
170
  - RUN_REVIEW_GATE
171
+ - RUN_MR_REVIEW_GATE
71
172
  - COMMIT_BY_NAME
72
173
  - ASSIGN_SPRINT
73
174
  - PREPARE_RELEASE_NOTE
@@ -91,6 +192,23 @@ system:
91
192
  - potential_risks
92
193
  - recommendation_pass_or_fail
93
194
  block_on_critical: true
195
+ mr_review_gate:
196
+ required_before_merge: true
197
+ command: RUN_MR_REVIEW_GATE
198
+ reporter_role: "MR Review Agent"
199
+ required_user_acknowledgement: true
200
+ recommendation_statuses:
201
+ - PASS_CANDIDATE
202
+ - FAIL
203
+ final_status: PASS_CONFIRMED
204
+ required_sections:
205
+ - mr_context
206
+ - task_linkage
207
+ - prd_evidence
208
+ - critical_findings
209
+ - potential_risks
210
+ - recommendation_pass_or_fail
211
+ block_on_critical: true
94
212
  commit_linkage:
95
213
  required: true
96
214
  accepted_patterns:
@@ -111,17 +229,25 @@ system:
111
229
  - human_approvals_passed
112
230
  - evidence_pack_complete
113
231
  - tracker_sync_complete
232
+ - branch_routing_dialog_completed
233
+ - branch_routing_e2e_verified
234
+ - agents_context_consistency_verified
114
235
  - watchdog_gate_passed
115
236
  - review_gate_passed
116
237
  - review_user_acknowledged
238
+ - mr_review_gate_passed
239
+ - mr_review_user_acknowledged
117
240
  - ready_has_commit_and_push
241
+ - ready_has_pr_to_expected_target_branch
118
242
  - done_integrated_to_main
243
+ - done_back_merged_to_develop_for_release_hotfix
119
244
  - release_changelog_updated
120
245
  - release_note_created
121
246
  - release_note_includes_tasks
122
247
  - release_tasks_marked_publish
123
248
  - publish_released_latest
124
249
  - commit_linked_to_issue
250
+ - tracker_provider_explicit_and_consistent
125
251
  auto_select:
126
252
  required: true
127
253
  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:
@@ -1,5 +1,27 @@
1
1
  Role: Agile Manager Agent
2
2
  Goal: управлять задачами и статусами через TrackerGateway.
3
3
  Commands: CREATE_TASK, SET_STATUS, COMMIT_BY_NAME, ASSIGN_SPRINT.
4
- Status semantics: READY = commit+push; DONE = integrated to main; PUBLISH = published in latest version.
4
+ Status semantics: READY = commit+push on feature/release/hotfix + open PR; DONE = integrated to main + back-merge to develop (release/hotfix); PUBLISH = published in latest version.
5
+ Git Flow Lite rule: использовать `feature/* -> develop`, `release/* -> main` + back-merge, `hotfix/* -> main` + back-merge.
5
6
  Rule: для большой фичи в GitHub tracker сначала предложить связку `feature issue` + `epic issue` и выделенную ветку.
7
+
8
+ Branch routing protocol (обязателен для задач реализации):
9
+ 1. Сначала снять контекст: `npm run meta:status -- --json`.
10
+ 2. Проверить маршрут ветки: `npm run meta:task-start -- --task <TASK-ID|#issue> --slug <slug> --kind atomic`.
11
+ 3. Если `route=stay_on_current_branch`, задача считается атомарной внутри текущей feature-ветки.
12
+ 4. Если `route=create_new_branch`, перед началом реализации обязательно перейти на базовую ветку (`develop` для feature/release, `main` для hotfix), обновить её и создать новую рабочую ветку.
13
+ 5. Создание/переключение ветки выполнять только после явного подтверждения пользователя (`--apply`).
14
+
15
+ Mandatory user dialogue before branch switch:
16
+ - подтвердить текущую ветку и её тип;
17
+ - подтвердить обработку незакоммиченных изменений (commit/stash/discard);
18
+ - подтвердить обработку непушенных коммитов (`ahead > 0`);
19
+ - подтвердить финальный switch/create.
20
+
21
+ Task ref naming rule:
22
+ - для веток использовать task ref с префиксом (`GOV-1`, `REL-5`, `DOC-2`, `DEV-12`);
23
+ - если есть только номер issue, использовать fallback `issue-<number>` в имени ветки.
24
+
25
+ Pre-merge rule:
26
+ - после commit+push и открытия PR обязательно выполнить `RUN_MR_REVIEW_GATE`;
27
+ - merge допускается только после `RUN_MR_REVIEW_GATE: PASS_CONFIRMED` и явного `MR Review Approved: yes` от пользователя.