@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.
- package/CHANGELOG.md +41 -0
- package/README.md +54 -10
- package/agents.md +69 -13
- package/package.json +2 -1
- package/template/.github/workflows/gitflow-lite-verify.yml +63 -0
- package/template/.meta-agents/config/project-context.yaml +7 -0
- package/template/.meta-agents/config/roles.yaml +5 -1
- package/template/.meta-agents/config/system.yaml +127 -3
- package/template/.meta-agents/config/trackers.yaml +1 -0
- package/template/.meta-agents/prompts/agile-manager.md +19 -1
- package/template/.meta-agents/prompts/clarifier.md +2 -0
- package/template/.meta-agents/prompts/mr-review-agent.md +26 -0
- package/template/.meta-agents/prompts/publishing-agent.md +2 -1
- package/template/.meta-agents/prompts/reviewer-judge.md +3 -1
- package/template/.meta-agents/prompts/status-agent.md +27 -0
- package/template/.meta-agents/scripts/run-mr-review-gate.mjs +488 -0
- package/template/.meta-agents/scripts/run-review-gate.mjs +54 -1
- package/template/.meta-agents/scripts/sync-status.mjs +620 -1
- package/template/.meta-agents/scripts/task-branch-router.mjs +530 -0
- package/template/.meta-agents/scripts/tracker/provider-lock.mjs +104 -0
- package/template/.meta-agents/scripts/tracker-gateway.mjs +199 -0
- package/template/.meta-agents/scripts/verify-branch-strategy.mjs +103 -0
- package/template/.meta-agents/scripts/verify-commit-link.mjs +27 -13
- package/template/.meta-agents/scripts/verify-governance.mjs +37 -12
- package/template/.meta-agents/templates/agent-work-contract.md +8 -1
- package/template/.meta-agents/templates/task-template.md +7 -1
- package/template/README.md +43 -5
- package/template/agents.md +68 -15
- package/template/package.json +6 -1
- package/template/tracker-command-template.md +123 -28
- 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. `
|
|
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,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
|
-
- в
|
|
171
|
+
- в режиме Git Flow Lite статусный цикл: `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
|
|
134
172
|
- без подтверждения максимум статуса: `REVIEW`;
|
|
135
173
|
- `READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
|
|
136
|
-
-
|
|
137
|
-
- `
|
|
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. `
|
|
98
|
-
3. `
|
|
99
|
-
4. `
|
|
100
|
-
5. `
|
|
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
|
-
- для
|
|
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`)
|
|
117
|
-
- `DONE` означает: изменения интегрированы в `main
|
|
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.
|
|
144
|
-
14.
|
|
145
|
-
15.
|
|
146
|
-
16.
|
|
147
|
-
17. Для статуса `
|
|
148
|
-
18.
|
|
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.
|
|
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); }'
|
|
@@ -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,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
|
|
54
|
-
DONE: "Changes integrated to main
|
|
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
|