@k0t0vich/meta-agents-template 0.1.6 → 0.1.8
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 +19 -0
- package/README.md +46 -50
- package/package.json +12 -4
- package/src/cli.mjs +49 -1
- package/src/init.mjs +262 -30
- package/template/.meta-agents/config/project-context.yaml +2 -0
- package/template/.meta-agents/config/system.yaml +1 -1
- package/template/.meta-agents/prompts/status-agent.md +3 -0
- package/template/.meta-agents/scripts/verify-commit-link.mjs +5 -3
- package/template/README.md +5 -6
- package/template/agents.md +2 -2
- package/template/package.json +10 -10
- package/template/tracker-command-template.md +2 -2
- package/agents.md +0 -226
- package/tracker-command-template.md +0 -439
|
@@ -7,8 +7,8 @@ function readLastCommitSubject(ref = "HEAD") {
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
function validateMessage(message) {
|
|
10
|
-
const
|
|
11
|
-
return
|
|
10
|
+
const normalized = String(message || "").trim();
|
|
11
|
+
return /^#\d+\s+\S.*$/.test(normalized);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
function parseArgs(argv) {
|
|
@@ -48,7 +48,9 @@ function main() {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
if (!validateMessage(message)) {
|
|
51
|
-
console.error(
|
|
51
|
+
console.error(
|
|
52
|
+
"Commit link FAIL: message must match '#<issue-number> <summary>' and start with issue ref.",
|
|
53
|
+
);
|
|
52
54
|
console.error(`Message: ${message}`);
|
|
53
55
|
process.exit(1);
|
|
54
56
|
}
|
package/template/README.md
CHANGED
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
Проект инициализирован шаблоном `meta-agents-template`.
|
|
4
4
|
|
|
5
5
|
## Что уже подключено
|
|
6
|
-
- `agents.md`:
|
|
7
|
-
-
|
|
8
|
-
- `.meta-agents
|
|
9
|
-
-
|
|
10
|
-
- `tasks/`: backlog/sprint/status-log.
|
|
6
|
+
- `agents.md`: локальный входной файл с ссылками на canonical правила в npm-пакете;
|
|
7
|
+
- `.meta-agents/config/project-context.yaml`: project name + выбранный tracker provider;
|
|
8
|
+
- `.meta-agents/config/trackers.yaml`: lock tracker provider и доступные providers;
|
|
9
|
+
- `meta:*` npm scripts, которые запускают canonical tooling из `node_modules/@k0t0vich/meta-agents-template/template/.meta-agents/scripts/*`.
|
|
11
10
|
|
|
12
11
|
## Source of truth по tracker provider
|
|
13
12
|
- Выбранный при `init` provider фиксируется в `.meta-agents/config/project-context.yaml`.
|
|
@@ -44,7 +43,7 @@
|
|
|
44
43
|
12. Перед релизом `Publishing Agent` обязан обновить публичный `CHANGELOG.md`.
|
|
45
44
|
|
|
46
45
|
## Команды
|
|
47
|
-
Смотри `tracker-command-template.md`.
|
|
46
|
+
Смотри `node_modules/@k0t0vich/meta-agents-template/template/tracker-command-template.md`.
|
|
48
47
|
|
|
49
48
|
Дополнительно:
|
|
50
49
|
```bash
|
package/template/agents.md
CHANGED
|
@@ -148,7 +148,7 @@ Name: <agent role>
|
|
|
148
148
|
- без подтверждения пользователя максимум допустимого статуса: `REVIEW`.
|
|
149
149
|
- `SET_STATUS -> READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
|
|
150
150
|
- для задач реализации по умолчанию используется отдельная ветка `feature/*`; прямой рабочий поток на `develop`/`main` не допускается.
|
|
151
|
-
- сообщение коммита обязано
|
|
151
|
+
- сообщение коммита обязано начинаться с ссылки на задачу и summary в формате `#issue-number <summary>`.
|
|
152
152
|
- `READY` означает: коммит сделан и отправлен (`push`) в `feature/*`, `release/*` или `hotfix/*` с открытым PR по правилам ветвления.
|
|
153
153
|
- `DONE` означает: изменения интегрированы в `main`; для `release/*` и `hotfix/*` подтверждён back-merge в `develop`.
|
|
154
154
|
- `PUBLISH` означает: релиз опубликован и доступен в последней версии пакета.
|
|
@@ -199,7 +199,7 @@ Name: <agent role>
|
|
|
199
199
|
19. Для статуса `DONE` подтверждена интеграция в `main`; для `release/*` и `hotfix/*` подтверждён back-merge в `develop`.
|
|
200
200
|
20. Для статуса `PUBLISH` подтверждена публикация в последней версии.
|
|
201
201
|
21. Для релиза обновлён публичный `CHANGELOG.md`.
|
|
202
|
-
22. Коммит
|
|
202
|
+
22. Коммит следует формату `#issue-number <summary>` (issue ref в начале сообщения).
|
|
203
203
|
23. Для branch routing собран e2e evidence по двум сценариям: `same feature` и `different feature`.
|
|
204
204
|
24. Перед `--apply` подтверждена консистентность контекста `agents.md` (или явно подтверждён осознанный switch при diff).
|
|
205
205
|
|
package/template/package.json
CHANGED
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
"version": "0.1.0",
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
|
-
"meta:status": "node
|
|
7
|
-
"meta:branch": "node
|
|
8
|
-
"meta:task-start": "node
|
|
9
|
-
"meta:verify": "node
|
|
10
|
-
"meta:review": "node
|
|
11
|
-
"meta:review-approve": "node
|
|
12
|
-
"meta:mr-review": "node
|
|
13
|
-
"meta:mr-review-approve": "node
|
|
14
|
-
"meta:verify-link": "node
|
|
15
|
-
"meta:ops": "node
|
|
6
|
+
"meta:status": "node ./node_modules/@k0t0vich/meta-agents-template/template/.meta-agents/scripts/sync-status.mjs",
|
|
7
|
+
"meta:branch": "node ./node_modules/@k0t0vich/meta-agents-template/template/.meta-agents/scripts/verify-branch-strategy.mjs",
|
|
8
|
+
"meta:task-start": "node ./node_modules/@k0t0vich/meta-agents-template/template/.meta-agents/scripts/task-branch-router.mjs",
|
|
9
|
+
"meta:verify": "node ./node_modules/@k0t0vich/meta-agents-template/template/.meta-agents/scripts/verify-governance.mjs",
|
|
10
|
+
"meta:review": "node ./node_modules/@k0t0vich/meta-agents-template/template/.meta-agents/scripts/run-review-gate.mjs",
|
|
11
|
+
"meta:review-approve": "node ./node_modules/@k0t0vich/meta-agents-template/template/.meta-agents/scripts/run-review-gate.mjs --approve yes",
|
|
12
|
+
"meta:mr-review": "node ./node_modules/@k0t0vich/meta-agents-template/template/.meta-agents/scripts/run-mr-review-gate.mjs",
|
|
13
|
+
"meta:mr-review-approve": "node ./node_modules/@k0t0vich/meta-agents-template/template/.meta-agents/scripts/run-mr-review-gate.mjs --approve yes",
|
|
14
|
+
"meta:verify-link": "node ./node_modules/@k0t0vich/meta-agents-template/template/.meta-agents/scripts/verify-commit-link.mjs",
|
|
15
|
+
"meta:ops": "node ./node_modules/@k0t0vich/meta-agents-template/template/.meta-agents/scripts/tracker-gateway.mjs"
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -68,7 +68,7 @@ result PASS
|
|
|
68
68
|
- если задача атомарная и относится к текущей feature-ветке, допускается выполнение в текущей ветке после явного подтверждения пользователя;
|
|
69
69
|
- если задача не относится к текущей ветке, требуется: проверить dirty/ahead, согласовать действие с пользователем, перейти на `develop` (или `main` для hotfix), обновить и создать новую ветку;
|
|
70
70
|
- перед `--apply` обязателен контекстный check: сравнить `agents.md` текущей и базовой ветки, при diff запросить явное подтверждение пользователя;
|
|
71
|
-
- сообщение коммита обязательно
|
|
71
|
+
- сообщение коммита обязательно следует формату `#issue-number <summary>` (issue ref в начале).
|
|
72
72
|
|
|
73
73
|
Для GitHub трекера статус issue задаётся label-ом (одновременно только один статус из набора):
|
|
74
74
|
- `TODO`
|
|
@@ -257,7 +257,7 @@ Agile Manager Agent: commit by name,
|
|
|
257
257
|
tracker __DEFAULT_TRACKER__,
|
|
258
258
|
task "API редирект офферов",
|
|
259
259
|
issue 12,
|
|
260
|
-
commit message "#12
|
|
260
|
+
commit message "#12 API редирект офферов",
|
|
261
261
|
push yes,
|
|
262
262
|
branch "feature/issue-12-api-redirect",
|
|
263
263
|
open mr "optional",
|
package/agents.md
DELETED
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
# agents.md
|
|
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
|
-
|
|
10
|
-
## 1) Назначение системы
|
|
11
|
-
Система работает как мета-оркестрация разработки: сначала формализуем задачу и проверяемость, потом делаем реализацию.
|
|
12
|
-
|
|
13
|
-
Базовый поток:
|
|
14
|
-
`clarify -> PRD step -> verification design -> decomposition -> execution -> evidence -> acceptance`
|
|
15
|
-
|
|
16
|
-
Главный принцип:
|
|
17
|
-
`acceptance-first` и `verification-first`.
|
|
18
|
-
|
|
19
|
-
## 2) Обязательный PRD на каждом шаге
|
|
20
|
-
Каждый этап (уточнение, архитектура, декомпозиция, реализация, ревью) обязан иметь PRD-запись в строгом порядке:
|
|
21
|
-
|
|
22
|
-
1. `Описание`.
|
|
23
|
-
2. `Проверяемость`.
|
|
24
|
-
3. `Что сделано`.
|
|
25
|
-
|
|
26
|
-
Правило запуска этапа:
|
|
27
|
-
- если не заполнены `Описание` и `Проверяемость`, этап не стартует.
|
|
28
|
-
|
|
29
|
-
## 3) Роли агентов
|
|
30
|
-
- `Chief of Staff Agent`: оркестрация цепочки, приоритеты, блокеры, эскалации.
|
|
31
|
-
- `Status Agent`: сводный статус проекта (`tracker/sprint/task/git`) по запросам состояния.
|
|
32
|
-
- `Agile Manager Agent`: операции по задачам/спринтам/статусам/коммитам через трекер.
|
|
33
|
-
- `Governance Watchdog Agent`: обязательный контроль PRD/критериев/разрешений перед каждой командой.
|
|
34
|
-
- `Product Manager Agent`: формулирует PRD и критерии приёмки.
|
|
35
|
-
- `Solution Architect Agent`: проектирует архитектуру и контракты компонентов.
|
|
36
|
-
- `Verifier Designer Agent`: проектирует модель валидации и evidence-план.
|
|
37
|
-
- `Decomposer Agent`: режет систему на проверяемые компоненты.
|
|
38
|
-
- `Engineering Agent`: реализация по контракту.
|
|
39
|
-
- `QA Agent`: проверка выполнения критериев и качество тестового покрытия.
|
|
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`.
|
|
44
|
-
- `Documentation Agent`: поддержка и синхронизация артефактов.
|
|
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
|
-
|
|
62
|
-
## 4) Жёсткий Auto-Select и показ имени агента
|
|
63
|
-
Автовыбор агента обязателен перед каждой задачей и перед каждой командой (`CREATE_TASK`, `SET_STATUS`, `COMMIT_BY_NAME`, `ASSIGN_SPRINT`).
|
|
64
|
-
|
|
65
|
-
Обязательный префикс:
|
|
66
|
-
```text
|
|
67
|
-
[Agent Auto-Select]
|
|
68
|
-
Selected: <agent role>
|
|
69
|
-
Reason: <short reason>
|
|
70
|
-
|
|
71
|
-
[Task Agent]
|
|
72
|
-
Name: <agent role>
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Правило исполнения:
|
|
76
|
-
- если префикс не выведен, задача/команда не выполняется;
|
|
77
|
-
- если пользователь явно указал роль, она используется, но блок `Task Agent` обязателен.
|
|
78
|
-
|
|
79
|
-
## 5) Единица работы: Verified Component
|
|
80
|
-
Каждый компонент обязан иметь:
|
|
81
|
-
- цель;
|
|
82
|
-
- входы/выходы;
|
|
83
|
-
- ограничения и инварианты;
|
|
84
|
-
- критерии приёмки;
|
|
85
|
-
- стратегию проверки;
|
|
86
|
-
- required evidence;
|
|
87
|
-
- владельца компонента;
|
|
88
|
-
- ссылку на PRD-этап.
|
|
89
|
-
|
|
90
|
-
## 6) Типы валидации
|
|
91
|
-
- `strict`: схемы, типы, правила, инварианты, policy, state transitions.
|
|
92
|
-
- `statistical`: benchmark/метрики/judge score/пороговые значения.
|
|
93
|
-
- `human`: review/approval в рискованных и неоднозначных точках.
|
|
94
|
-
|
|
95
|
-
## 7) AgentWorkContract
|
|
96
|
-
Перед передачей задачи Executor-агенту фиксируется контракт:
|
|
97
|
-
- scope;
|
|
98
|
-
- допустимая свобода решений;
|
|
99
|
-
- required outputs;
|
|
100
|
-
- required evidence;
|
|
101
|
-
- acceptance criteria;
|
|
102
|
-
- failure/escalation правила;
|
|
103
|
-
- трекерная привязка (`task_id`, `tracker_provider`, `sprint`).
|
|
104
|
-
|
|
105
|
-
Без контракта делегирование запрещено.
|
|
106
|
-
|
|
107
|
-
## 8) TrackerGateway
|
|
108
|
-
Трекер выделяется в отдельный адаптерный слой, независимый от ролей агентов.
|
|
109
|
-
|
|
110
|
-
`TrackerGateway` поддерживает провайдеры:
|
|
111
|
-
- `local`;
|
|
112
|
-
- `github`;
|
|
113
|
-
- `mcp` (alias `mpc`);
|
|
114
|
-
- `custom`.
|
|
115
|
-
|
|
116
|
-
Режим по умолчанию для командной работы: `github` (или другой внешний трекер). `local` используется как fallback.
|
|
117
|
-
|
|
118
|
-
## 9) Канонические команды
|
|
119
|
-
Все рабочие операции проходят через `Agile Manager Agent` + `TrackerGateway`.
|
|
120
|
-
Операционные шаблоны команд: [tracker-command-template.md](./tracker-command-template.md).
|
|
121
|
-
|
|
122
|
-
0. `VERIFY_GOVERNANCE_GATE`
|
|
123
|
-
1. `CREATE_TASK`
|
|
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`
|
|
133
|
-
|
|
134
|
-
## 10) Коммиты и закрытие задач: только по подтверждению пользователя
|
|
135
|
-
Запрещено выполнять автоматически:
|
|
136
|
-
- `COMMIT_BY_NAME`;
|
|
137
|
-
- перевод задачи в `DONE`.
|
|
138
|
-
|
|
139
|
-
Обязательное правило:
|
|
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`;
|
|
143
|
-
- `RUN_REVIEW_GATE` сначала формирует отчёт ревьювера и рекомендацию (`PASS_CANDIDATE`/`FAIL`);
|
|
144
|
-
- финальный `RUN_REVIEW_GATE: PASS_CONFIRMED` допускается только после явного подтверждения пользователя `Review Approved: yes`;
|
|
145
|
-
- `COMMIT_BY_NAME` выполняется только после `RUN_REVIEW_GATE: PASS_CONFIRMED` и отдельного явного подтверждения пользователя в текущем диалоге;
|
|
146
|
-
- merge в целевую ветку выполняется только после `RUN_MR_REVIEW_GATE: PASS_CONFIRMED` и явного подтверждения пользователя `MR Review Approved: yes`;
|
|
147
|
-
- `SET_STATUS -> DONE` выполняется только после явного подтверждения пользователя в текущем диалоге;
|
|
148
|
-
- без подтверждения пользователя максимум допустимого статуса: `REVIEW`.
|
|
149
|
-
- `SET_STATUS -> READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
|
|
150
|
-
- для задач реализации по умолчанию используется отдельная ветка `feature/*`; прямой рабочий поток на `develop`/`main` не допускается.
|
|
151
|
-
- сообщение коммита обязано содержать ссылку на задачу (`#issue-number`).
|
|
152
|
-
- `READY` означает: коммит сделан и отправлен (`push`) в `feature/*`, `release/*` или `hotfix/*` с открытым PR по правилам ветвления.
|
|
153
|
-
- `DONE` означает: изменения интегрированы в `main`; для `release/*` и `hotfix/*` подтверждён back-merge в `develop`.
|
|
154
|
-
- `PUBLISH` означает: релиз опубликован и доступен в последней версии пакета.
|
|
155
|
-
|
|
156
|
-
## 10.1) Правило для больших фич (GitHub tracker)
|
|
157
|
-
Если задача классифицирована как большая фича, система обязана предложить:
|
|
158
|
-
- создать `feature issue` (`type:feature`);
|
|
159
|
-
- создать `epic issue` (`type:epic`);
|
|
160
|
-
- выделить отдельную ветку разработки;
|
|
161
|
-
- связать feature с epic в GitHub issue (ссылка в body/comment/task list).
|
|
162
|
-
|
|
163
|
-
Для текущего этапа (только GitHub tracker) epic реализуется как обычный issue с label `type:epic`.
|
|
164
|
-
|
|
165
|
-
## 10.2) Обязательная маршрутизация ветки для Agile Manager Agent
|
|
166
|
-
Перед началом реализации агент обязан:
|
|
167
|
-
1. Проверить веточный контекст через `meta:status`.
|
|
168
|
-
2. Запустить branch-routing preflight через `meta:task-start -- --task <#issue> --slug <slug> --kind atomic|feature|release|hotfix`.
|
|
169
|
-
3. В названии рабочей ветки использовать GitHub issue ref в формате `issue-<number>` (например, `feature/issue-21-canonical-github-issue-id`).
|
|
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
|
-
|
|
179
|
-
## 11) Жёсткие критерии приёмки (все обязательны)
|
|
180
|
-
Задача принимается только если одновременно выполнены все условия:
|
|
181
|
-
1. Заполнены все PRD-блоки этапа: `Описание`, `Проверяемость`, `Что сделано`.
|
|
182
|
-
2. Выполнен обязательный префикс `Agent Auto-Select` + `Task Agent`.
|
|
183
|
-
3. Пройдены все обязательные `strict` проверки.
|
|
184
|
-
4. `statistical` метрики не ниже зафиксированных порогов.
|
|
185
|
-
5. Пройдены обязательные `human` approvals.
|
|
186
|
-
6. Собран полный evidence-пакет (артефакты, логи, ссылки на проверки).
|
|
187
|
-
7. Синхронизированы `task/status/sprint` в трекере.
|
|
188
|
-
8. Если был коммит, есть явное подтверждение пользователя на коммит.
|
|
189
|
-
9. Если задача закрыта в `DONE`, есть явное подтверждение пользователя на закрытие.
|
|
190
|
-
10. Перед каждой командой пройден `VERIFY_GOVERNANCE_GATE` от `Governance Watchdog Agent`.
|
|
191
|
-
11. Перед коммитом пройден `RUN_REVIEW_GATE` от `Reviewer/Judge Agent`.
|
|
192
|
-
12. Есть явное подтверждение пользователя на прохождение review (`Review Approved: yes`).
|
|
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 (`#issue`).
|
|
203
|
-
23. Для branch routing собран e2e evidence по двум сценариям: `same feature` и `different feature`.
|
|
204
|
-
24. Перед `--apply` подтверждена консистентность контекста `agents.md` (или явно подтверждён осознанный switch при diff).
|
|
205
|
-
|
|
206
|
-
Если хотя бы один критерий не выполнен, задача не принимается.
|
|
207
|
-
|
|
208
|
-
## 12) Verification-first gate
|
|
209
|
-
Реализация не начинается, пока не определены:
|
|
210
|
-
- acceptance criteria;
|
|
211
|
-
- метрики и пороги;
|
|
212
|
-
- инварианты и ограничения;
|
|
213
|
-
- процедуры проверки;
|
|
214
|
-
- зоны неопределённости и правила эскалации;
|
|
215
|
-
- способ фиксации в трекере.
|
|
216
|
-
|
|
217
|
-
## 13) Реакция на провал проверки
|
|
218
|
-
Допустимые сценарии:
|
|
219
|
-
- `retry` с корректировками;
|
|
220
|
-
- пересмотр архитектуры;
|
|
221
|
-
- уточнение критериев;
|
|
222
|
-
- эскалация пользователю/founder;
|
|
223
|
-
- возврат статуса задачи в `IN_PROGRESS` или `BLOCKED`.
|
|
224
|
-
|
|
225
|
-
## 14) Главный инвариант
|
|
226
|
-
Нельзя делегировать работу и нельзя закрывать задачу без формализованных критериев приёмки, PRD-блока `Проверяемость` и требуемых доказательств в трекере.
|