@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.
- package/CHANGELOG.md +22 -0
- package/README.md +53 -10
- package/agents.md +67 -16
- package/package.json +1 -1
- package/template/.github/workflows/gitflow-lite-verify.yml +62 -0
- package/template/.meta-agents/config/project-context.yaml +7 -0
- package/template/.meta-agents/config/roles.yaml +5 -1
- package/template/.meta-agents/config/system.yaml +129 -3
- package/template/.meta-agents/config/trackers.yaml +1 -0
- package/template/.meta-agents/prompts/agile-manager.md +23 -1
- package/template/.meta-agents/prompts/clarifier.md +2 -0
- package/template/.meta-agents/prompts/mr-review-agent.md +26 -0
- package/template/.meta-agents/prompts/reviewer-judge.md +3 -1
- package/template/.meta-agents/prompts/status-agent.md +27 -0
- package/template/.meta-agents/scripts/run-mr-review-gate.mjs +494 -0
- package/template/.meta-agents/scripts/run-review-gate.mjs +54 -1
- package/template/.meta-agents/scripts/sync-status.mjs +617 -1
- package/template/.meta-agents/scripts/task-branch-router.mjs +544 -0
- package/template/.meta-agents/scripts/tracker/provider-lock.mjs +104 -0
- package/template/.meta-agents/scripts/tracker-gateway.mjs +199 -0
- package/template/.meta-agents/scripts/verify-branch-strategy.mjs +100 -0
- package/template/.meta-agents/scripts/verify-commit-link.mjs +27 -13
- package/template/.meta-agents/scripts/verify-governance.mjs +37 -12
- package/template/.meta-agents/templates/agent-work-contract.md +8 -1
- package/template/.meta-agents/templates/task-template.md +7 -1
- package/template/README.md +44 -6
- package/template/agents.md +67 -16
- package/template/package.json +6 -1
- package/template/tracker-command-template.md +122 -28
- package/tracker-command-template.md +109 -15
package/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. `
|
|
79
|
-
3. `
|
|
80
|
-
4. `
|
|
81
|
-
5. `
|
|
82
|
-
6. `
|
|
83
|
-
7. `
|
|
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.
|
|
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
|
-
- в
|
|
172
|
+
- в режиме Git Flow Lite статусный цикл: `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
|
|
134
173
|
- без подтверждения максимум статуса: `REVIEW`;
|
|
135
174
|
- `READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
|
|
136
|
-
-
|
|
137
|
-
- `
|
|
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. `
|
|
100
|
-
3. `
|
|
101
|
-
4. `
|
|
102
|
-
5. `
|
|
103
|
-
6. `
|
|
104
|
-
7. `
|
|
124
|
+
2. `PREPARE_TASK_BRANCH`
|
|
125
|
+
3. `SET_STATUS`
|
|
126
|
+
4. `RUN_REVIEW_GATE`
|
|
127
|
+
5. `COMMIT_BY_NAME`
|
|
128
|
+
6. `RUN_MR_REVIEW_GATE`
|
|
129
|
+
7. `ASSIGN_SPRINT`
|
|
130
|
+
8. `PREPARE_RELEASE_NOTE`
|
|
131
|
+
9. `MARK_TASKS_PUBLISH`
|
|
132
|
+
10. `STATUS_SNAPSHOT`
|
|
105
133
|
|
|
106
134
|
## 10) Коммиты и закрытие задач: только по подтверждению пользователя
|
|
107
135
|
Запрещено выполнять автоматически:
|
|
@@ -109,16 +137,20 @@ Name: <agent role>
|
|
|
109
137
|
- перевод задачи в `DONE`.
|
|
110
138
|
|
|
111
139
|
Обязательное правило:
|
|
112
|
-
- для
|
|
140
|
+
- для режима `git_flow_lite` статусный цикл задачи фиксируется как `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
|
|
141
|
+
- рабочие ветки: `feature/*`, `release/*`, `hotfix/*`; долгоживущие ветки: `develop`, `main`;
|
|
142
|
+
- интеграционные правила: `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`)
|
|
121
|
-
- `DONE` означает: изменения интегрированы в `main
|
|
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.
|
|
148
|
-
14.
|
|
149
|
-
15.
|
|
150
|
-
16.
|
|
151
|
-
17. Для статуса `
|
|
152
|
-
18. Для
|
|
153
|
-
19.
|
|
193
|
+
13. Перед merge пройден `RUN_MR_REVIEW_GATE` от `MR Review Agent`.
|
|
194
|
+
14. Есть явное подтверждение пользователя на MR review (`MR Review Approved: yes`).
|
|
195
|
+
15. До review gate задача переведена в статус `REVIEW`.
|
|
196
|
+
16. Статус `READY` выставлен только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
|
|
197
|
+
17. Для статуса `READY` подтверждены `commit + push` в `feature/*|release/*|hotfix/*` и открытый PR в целевую ветку (`develop` или `main`).
|
|
198
|
+
18. Для merge подтверждён `RUN_MR_REVIEW_GATE: PASS_CONFIRMED`.
|
|
199
|
+
19. Для статуса `DONE` подтверждена интеграция в `main`; для `release/*` и `hotfix/*` подтверждён back-merge в `develop`.
|
|
200
|
+
20. Для статуса `PUBLISH` подтверждена публикация в последней версии.
|
|
201
|
+
21. Для релиза обновлён публичный `CHANGELOG.md`.
|
|
202
|
+
22. Коммит содержит ссылку на issue/task (`TASK-ID` или `#issue`).
|
|
203
|
+
23. Для branch routing собран e2e evidence по двум сценариям: `same feature` и `different feature`.
|
|
204
|
+
24. Перед `--apply` подтверждена консистентность контекста `agents.md` (или явно подтверждён осознанный switch при diff).
|
|
154
205
|
|
|
155
206
|
Если хотя бы один критерий не выполнен, задача не принимается.
|
|
156
207
|
|
package/package.json
CHANGED
|
@@ -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); }'
|
|
@@ -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:
|
|
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
|
|
54
|
-
DONE: "Changes integrated to main
|
|
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,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` от пользователя.
|