@k0t0vich/meta-agents-template 0.1.1 → 0.1.2

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/README.md CHANGED
@@ -56,6 +56,7 @@ my-project/
56
56
  decomposer.md
57
57
  reviewer-judge.md
58
58
  agile-manager.md
59
+ publishing-agent.md
59
60
  scripts/
60
61
  init.mjs
61
62
  sync-status.mjs
@@ -78,9 +79,13 @@ my-project/
78
79
  3. `RUN_REVIEW_GATE`
79
80
  4. `COMMIT_BY_NAME`
80
81
  5. `ASSIGN_SPRINT`
82
+ 6. `PREPARE_RELEASE_NOTE`
83
+ 7. `MARK_TASKS_PUBLISH`
81
84
 
82
85
  `VERIFY_GOVERNANCE_GATE` выполняет `Governance Watchdog Agent` перед любой операцией и блокирует выполнение при нарушении PRD/acceptance/user-confirmation правил.
83
- `RUN_REVIEW_GATE` выполняет `Reviewer/Judge Agent` перед коммитом: выводит summary выполненного, критические замечания, потенциальные риски и итог `PASS/FAIL`.
86
+ `RUN_REVIEW_GATE` выполняет `Reviewer/Judge Agent` перед коммитом:
87
+ - сначала выводит summary выполненного, критические замечания, потенциальные риски и рекомендацию `PASS_CANDIDATE/FAIL`;
88
+ - финальный `PASS_CONFIRMED` допускается только после явного `Review Approved: yes` от пользователя.
84
89
 
85
90
  ## Self-bootstrap (для этого репозитория)
86
91
  Чтобы сам шаблон работал по своим же правилам, запусти:
@@ -103,8 +108,9 @@ npm run self:bootstrap
103
108
  6. Собран полный evidence-пакет.
104
109
  7. Синхронизированы `task/status/sprint` в трекере.
105
110
  8. Перед каждой командой пройден watchdog gate (`VERIFY_GOVERNANCE_GATE`).
106
- 9. Перед коммитом пройден review gate (`RUN_REVIEW_GATE`).
107
- 10. Каждый коммит связан с issue/task (`TASK-ID` и/или `#issue` в commit message).
111
+ 9. Перед коммитом пройден review gate (`RUN_REVIEW_GATE`) с финальным `PASS_CONFIRMED`.
112
+ 10. Есть отдельное явное подтверждение пользователя на прохождение review (`Review Approved: yes`).
113
+ 11. Каждый коммит связан с issue/task (`TASK-ID` и/или `#issue` в commit message).
108
114
 
109
115
  Если хотя бы один пункт не выполнен, задача не принимается.
110
116
 
@@ -114,6 +120,7 @@ npm run self:bootstrap
114
120
  ```bash
115
121
  npm run meta:verify
116
122
  npm run meta:review
123
+ npm run meta:review-approve
117
124
  npm run meta:verify-link
118
125
  ```
119
126
 
@@ -123,7 +130,13 @@ npm run meta:verify-link
123
130
  Коммиты и закрытие задач выполняются только по явному подтверждению пользователя в текущем диалоге:
124
131
  - `COMMIT_BY_NAME` — только после подтверждения пользователя;
125
132
  - перевод задачи в `DONE` — только после подтверждения пользователя;
126
- - без подтверждения максимум статуса: `READY`.
133
+ - в single-branch режиме статусный цикл: `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
134
+ - без подтверждения максимум статуса: `REVIEW`;
135
+ - `READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
136
+ - `READY` означает commit + push (в `main` или в ветку с открытым MR/PR);
137
+ - `DONE` означает интеграцию в `main` (direct commit или merged MR/PR);
138
+ - `PUBLISH` означает, что релиз опубликован и доступен в latest.
139
+ - для большой фичи (в режиме GitHub tracker) агент обязан предложить `feature issue` + `epic issue` и отдельную ветку.
127
140
 
128
141
  ## Основные документы шаблона
129
142
  - [agents.md](./agents.md)
package/agents.md CHANGED
@@ -105,10 +105,26 @@ Name: <agent role>
105
105
  - перевод задачи в `DONE`.
106
106
 
107
107
  Обязательное правило:
108
- - `COMMIT_BY_NAME` выполняется только после `RUN_REVIEW_GATE: PASS` и явного подтверждения пользователя в текущем диалоге;
108
+ - для single-branch режима статусный цикл задачи фиксируется как `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
109
+ - `RUN_REVIEW_GATE` сначала формирует отчёт ревьювера и рекомендацию (`PASS_CANDIDATE`/`FAIL`);
110
+ - финальный `RUN_REVIEW_GATE: PASS_CONFIRMED` допускается только после явного подтверждения пользователя `Review Approved: yes`;
111
+ - `COMMIT_BY_NAME` выполняется только после `RUN_REVIEW_GATE: PASS_CONFIRMED` и отдельного явного подтверждения пользователя в текущем диалоге;
109
112
  - `SET_STATUS -> DONE` выполняется только после явного подтверждения пользователя в текущем диалоге;
110
- - без подтверждения пользователя максимум допустимого статуса: `READY`.
113
+ - без подтверждения пользователя максимум допустимого статуса: `REVIEW`.
114
+ - `SET_STATUS -> READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
111
115
  - сообщение коммита обязано содержать ссылку на задачу (`TASK-ID` и/или `#issue-number`).
116
+ - `READY` означает: коммит сделан и отправлен (`push`), при этом либо в `main`, либо в отдельной ветке с открытым MR/PR.
117
+ - `DONE` означает: изменения интегрированы в `main` (прямой коммит в `main` или MR/PR смержен).
118
+ - `PUBLISH` означает: релиз опубликован и доступен в последней версии пакета.
119
+
120
+ ## 10.1) Правило для больших фич (GitHub tracker)
121
+ Если задача классифицирована как большая фича, система обязана предложить:
122
+ - создать `feature issue` (`type:feature`);
123
+ - создать `epic issue` (`type:epic`);
124
+ - выделить отдельную ветку разработки;
125
+ - связать feature с epic в GitHub issue (ссылка в body/comment/task list).
126
+
127
+ Для текущего этапа (только GitHub tracker) epic реализуется как обычный issue с label `type:epic`.
112
128
 
113
129
  ## 11) Жёсткие критерии приёмки (все обязательны)
114
130
  Задача принимается только если одновременно выполнены все условия:
@@ -123,7 +139,13 @@ Name: <agent role>
123
139
  9. Если задача закрыта в `DONE`, есть явное подтверждение пользователя на закрытие.
124
140
  10. Перед каждой командой пройден `VERIFY_GOVERNANCE_GATE` от `Governance Watchdog Agent`.
125
141
  11. Перед коммитом пройден `RUN_REVIEW_GATE` от `Reviewer/Judge Agent`.
126
- 12. Коммит содержит ссылку на issue/task (`TASK-ID` или `#issue`).
142
+ 12. Есть явное подтверждение пользователя на прохождение review (`Review Approved: yes`).
143
+ 13. До review gate задача переведена в статус `REVIEW`.
144
+ 14. Статус `READY` выставлен только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
145
+ 15. Для статуса `READY` подтверждены `commit + push` и путь интеграции (`main` или открытый MR/PR).
146
+ 16. Для статуса `DONE` подтверждена интеграция в `main` (direct commit или merged MR/PR).
147
+ 17. Для статуса `PUBLISH` подтверждена публикация в последней версии.
148
+ 18. Коммит содержит ссылку на issue/task (`TASK-ID` или `#issue`).
127
149
 
128
150
  Если хотя бы один критерий не выполнен, задача не принимается.
129
151
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k0t0vich/meta-agents-template",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Template system for verification-first agentic development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -9,7 +9,8 @@
9
9
  "scripts": {
10
10
  "start": "node bin/meta-agents.js --help",
11
11
  "self:sync": "node bin/meta-agents.js sync . --force",
12
- "self:bootstrap": "npm run self:sync && node scripts/self-bootstrap.mjs"
12
+ "self:bootstrap": "npm run self:sync && node scripts/self-bootstrap.mjs",
13
+ "release:smoke-local": "node scripts/post-publish-local-smoke.mjs"
13
14
  },
14
15
  "files": [
15
16
  "README.md",
@@ -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"
5
+ responsibility: "CREATE_TASK/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,5 +19,7 @@ roles:
19
19
  responsibility: "Верификация и тестирование"
20
20
  - name: "Reviewer/Judge Agent"
21
21
  responsibility: "Независимая приёмка + обязательный pre-commit review gate"
22
+ - name: "Publishing Agent"
23
+ responsibility: "Подготовка release notes, публикация релиза, перевод вошедших задач в PUBLISH"
22
24
  - name: "Documentation Agent"
23
25
  responsibility: "Синхронизация документации"
@@ -23,9 +23,44 @@ system:
23
23
  offer_create_github_repo: true
24
24
  governance:
25
25
  user_confirmation_required_for:
26
+ - review_gate_pass
26
27
  - commit
27
28
  - task_close_done
28
- max_status_without_user_confirmation: READY
29
+ - release_publish
30
+ max_status_without_user_confirmation: REVIEW
31
+ status_lifecycle:
32
+ mode: single_branch
33
+ sequence:
34
+ - TODO
35
+ - IN_PROGRESS
36
+ - REVIEW
37
+ - READY
38
+ - DONE
39
+ - PUBLISH
40
+ rules:
41
+ - ready_only_after_review_pass_confirmed
42
+ - done_only_after_user_confirmation
43
+ - publish_only_after_done
44
+ github_status_labels:
45
+ - TODO
46
+ - IN_PROGRESS
47
+ - REVIEW
48
+ - READY
49
+ - BLOCKED
50
+ - DONE
51
+ - PUBLISH
52
+ 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)."
55
+ PUBLISH: "Released and available in latest published package version."
56
+ epic_policy:
57
+ github_only: true
58
+ large_feature_requires_epic: true
59
+ required_actions:
60
+ - propose_feature_issue
61
+ - propose_epic_issue
62
+ - create_dedicated_branch
63
+ - link_feature_to_epic
29
64
  watchdog:
30
65
  required: true
31
66
  before_commands:
@@ -35,6 +70,8 @@ system:
35
70
  - RUN_REVIEW_GATE
36
71
  - COMMIT_BY_NAME
37
72
  - ASSIGN_SPRINT
73
+ - PREPARE_RELEASE_NOTE
74
+ - MARK_TASKS_PUBLISH
38
75
  minimum_checks:
39
76
  - prd_sections_complete
40
77
  - acceptance_criteria_defined
@@ -43,6 +80,11 @@ system:
43
80
  required_before_commit: true
44
81
  command: RUN_REVIEW_GATE
45
82
  reporter_role: "Reviewer/Judge Agent"
83
+ required_user_acknowledgement: true
84
+ recommendation_statuses:
85
+ - PASS_CANDIDATE
86
+ - FAIL
87
+ final_status: PASS_CONFIRMED
46
88
  required_sections:
47
89
  - what_done_summary
48
90
  - critical_findings
@@ -54,6 +96,11 @@ system:
54
96
  accepted_patterns:
55
97
  - "TASK-ID"
56
98
  - "#issue"
99
+ publish_flow:
100
+ release_note_required: true
101
+ release_note_must_include_tasks: true
102
+ mark_included_tasks_publish: true
103
+ publish_status_label: PUBLISH
57
104
  acceptance:
58
105
  hard_criteria:
59
106
  - prd_sections_complete
@@ -65,6 +112,13 @@ system:
65
112
  - tracker_sync_complete
66
113
  - watchdog_gate_passed
67
114
  - review_gate_passed
115
+ - review_user_acknowledged
116
+ - ready_has_commit_and_push
117
+ - done_integrated_to_main
118
+ - release_note_created
119
+ - release_note_includes_tasks
120
+ - release_tasks_marked_publish
121
+ - publish_released_latest
68
122
  - commit_linked_to_issue
69
123
  auto_select:
70
124
  required: true
@@ -4,6 +4,17 @@ tracker_gateway:
4
4
  github:
5
5
  mode: "issues_projects"
6
6
  enabled: true
7
+ status_labels:
8
+ - TODO
9
+ - IN_PROGRESS
10
+ - REVIEW
11
+ - READY
12
+ - BLOCKED
13
+ - DONE
14
+ - PUBLISH
15
+ hierarchy_labels:
16
+ epic: "type:epic"
17
+ feature: "type:feature"
7
18
  mcp:
8
19
  mode: "external_tracker_via_mcp"
9
20
  enabled: true
@@ -1,3 +1,5 @@
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.
5
+ Rule: для большой фичи в GitHub tracker сначала предложить связку `feature issue` + `epic issue` и выделенную ветку.
@@ -1,3 +1,4 @@
1
1
  Role: Clarifier Agent
2
2
  Goal: выявить цель, ограничения, неоднозначности и критерии успеха.
3
+ Rule: если задача классифицируется как большая фича, обязательно предложить создать `feature issue` и `epic issue` в GitHub tracker, а также отдельную ветку.
3
4
  Output: PRD Step с заполненными "Описание" и "Проверяемость".
@@ -0,0 +1,7 @@
1
+ Role: Publishing Agent
2
+ Goal: подготовить релиз, зафиксировать release notes и перевести вошедшие задачи в статус PUBLISH.
3
+ Rule:
4
+ - перед публикацией создать release note со списком issue/tasks, вошедших в релиз;
5
+ - после подтверждённой публикации обновить статусы всех вошедших задач на `PUBLISH` в GitHub tracker;
6
+ - для каждого релиза оставлять ссылку на release note и версию.
7
+ Output: release note path + список задач + подтверждение обновления статусов.
@@ -1,4 +1,7 @@
1
1
  Role: Reviewer/Judge Agent
2
2
  Goal: независимая приёмка по критериям и обязательный pre-commit review gate.
3
- Output format: что сделано, критические замечания, потенциальные риски, итог PASS/FAIL.
3
+ Output format: что сделано, критические замечания, потенциальные риски, рекомендация PASS_CANDIDATE/FAIL.
4
+ Rule: финальный PASS_CONFIRMED только после явного `Review Approved: yes` от пользователя.
5
+ Status rule: перед review gate задача должна быть в статусе `REVIEW`; статус `READY` выставляется только после `PASS_CONFIRMED`.
6
+ Delivery rule: `READY` требует commit+push; `DONE` требует интеграцию в `main`; `PUBLISH` только после фактической публикации.
4
7
  Output: accepted/rejected + findings.
@@ -2,6 +2,23 @@ import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { execFileSync } from "node:child_process";
4
4
 
5
+ function parseArgs(argv) {
6
+ const options = {
7
+ approve: false,
8
+ };
9
+
10
+ for (let index = 0; index < argv.length; index += 1) {
11
+ const arg = argv[index];
12
+ if (arg === "--approve") {
13
+ const value = (argv[index + 1] || "").trim().toLowerCase();
14
+ options.approve = value === "yes" || value === "true" || value === "1";
15
+ index += 1;
16
+ }
17
+ }
18
+
19
+ return options;
20
+ }
21
+
5
22
  function git(args, allowFailure = false) {
6
23
  try {
7
24
  const output = execFileSync("git", args, { encoding: "utf8" });
@@ -30,7 +47,8 @@ function matchTestFile(filePath) {
30
47
 
31
48
  async function scanMarkers(files) {
32
49
  const markers = [];
33
- const pattern = /\b(TODO|FIXME|XXX|HACK)\b\s*[:\-]/g;
50
+ // Match common marker formats while ignoring status arrows in workflow lines.
51
+ const pattern = /\b(TODO|FIXME|XXX|HACK)\b\s*(?::|-(?!>))/;
34
52
 
35
53
  for (const file of files) {
36
54
  try {
@@ -51,6 +69,7 @@ async function scanMarkers(files) {
51
69
  }
52
70
 
53
71
  async function main() {
72
+ const options = parseArgs(process.argv.slice(2));
54
73
  const stagedFiles = splitLines(git(["diff", "--cached", "--name-only"], true));
55
74
  const recentFiles = splitLines(git(["show", "--name-only", "--pretty=", "HEAD"], true));
56
75
  const files = stagedFiles.length > 0 ? stagedFiles : recentFiles;
@@ -103,15 +122,27 @@ async function main() {
103
122
  }
104
123
 
105
124
  console.log("");
106
- if (critical.length === 0) {
125
+ console.log("## Рекомендация ревьювера");
126
+ console.log(critical.length === 0 ? "- PASS_CANDIDATE" : "- FAIL");
127
+
128
+ if (critical.length > 0) {
129
+ console.log("");
107
130
  console.log("## Решение");
108
- console.log("- PASS");
109
- process.exit(0);
131
+ console.log("- FAIL");
132
+ process.exit(1);
133
+ }
134
+
135
+ console.log("");
136
+ if (!options.approve) {
137
+ console.log("## Решение");
138
+ console.log("- PENDING_USER_CONFIRMATION");
139
+ console.log("- Требуется явное подтверждение пользователя: Review Approved = yes");
140
+ process.exit(2);
110
141
  }
111
142
 
112
143
  console.log("## Решение");
113
- console.log("- FAIL");
114
- process.exit(1);
144
+ console.log("- PASS_CONFIRMED");
145
+ process.exit(0);
115
146
  }
116
147
 
117
148
  main().catch((error) => {
@@ -10,3 +10,5 @@
10
10
  - Acceptance Criteria:
11
11
  - Failure/Escalation Rules:
12
12
  - Tracker Binding (task/status/sprint):
13
+ - Git Strategy (main or feature branch + MR/PR):
14
+ - Epic/Feature Linkage (for large features in GitHub tracker):
@@ -3,8 +3,10 @@
3
3
  - Task ID:
4
4
  - Short Name:
5
5
  - Owner Role:
6
- - Status: TODO
6
+ - Status: TODO (TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE -> PUBLISH for release tasks)
7
7
  - Sprint:
8
+ - Parent Epic (optional):
9
+ - Git Strategy (main or feature branch + MR/PR):
8
10
 
9
11
  ## PRD Step
10
12
  ### Описание
@@ -11,7 +11,9 @@
11
11
  Отдельно включён `Governance Watchdog Agent`:
12
12
  - обязательный gate перед каждой командой;
13
13
  - техническая проверка PRD-структуры через `npm run meta:verify`.
14
- - обязательный review gate перед коммитом через `npm run meta:review`.
14
+ - обязательный review gate перед коммитом:
15
+ - `npm run meta:review` (отчёт + рекомендация);
16
+ - `npm run meta:review-approve` (финальный PASS только после подтверждения пользователя).
15
17
 
16
18
  ## Что спросит init
17
19
  1. Git режим: `github`, `local` или `skip`.
@@ -22,7 +24,12 @@
22
24
  1. Каждый шаг содержит: `Описание -> Проверяемость -> Что сделано`.
23
25
  2. Перед каждой задачей обязателен вывод `[Agent Auto-Select]` и `[Task Agent]`.
24
26
  3. Коммиты и закрытие задачи в `DONE` только после явного подтверждения пользователя.
25
- 4. Без подтверждения пользователя максимум статуса: `READY`.
27
+ 4. В single-branch режиме используется статусный цикл: `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`).
28
+ 5. Без подтверждения пользователя максимум статуса: `REVIEW`; `READY` только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
29
+ 6. `READY` = коммит + push (в `main` или в ветку с открытым MR/PR); `DONE` = интеграция в `main`; `PUBLISH` = опубликовано в latest.
30
+ 7. Для больших фич (GitHub tracker) агент обязан предложить `feature issue` + `epic issue` и отдельную ветку.
31
+ 8. В GitHub epic оформляется как issue с label `type:epic`, а feature связывается с ним ссылкой (`type:feature`).
32
+ 9. Для релиза используется `Publishing Agent`: он создаёт release note с вошедшими задачами и переводит эти задачи в `PUBLISH`.
26
33
 
27
34
  ## Команды
28
35
  Смотри `tracker-command-template.md`.
@@ -31,5 +38,6 @@
31
38
  ```bash
32
39
  npm run meta:verify
33
40
  npm run meta:review
41
+ npm run meta:review-approve
34
42
  npm run meta:verify-link
35
43
  ```
@@ -30,6 +30,7 @@
30
30
  - `Engineering Agent`: реализация по контракту.
31
31
  - `QA Agent`: проверка выполнения критериев и качество тестового покрытия.
32
32
  - `Reviewer/Judge Agent`: независимая приёмка по заранее согласованным правилам.
33
+ - `Publishing Agent`: готовит release notes, фиксирует вошедшие задачи и переводит их в `PUBLISH`.
33
34
  - `Documentation Agent`: поддержка и синхронизация артефактов.
34
35
 
35
36
  ## 4) Жёсткий Auto-Select и показ имени агента
@@ -98,6 +99,8 @@ Name: <agent role>
98
99
  3. `RUN_REVIEW_GATE`
99
100
  4. `COMMIT_BY_NAME`
100
101
  5. `ASSIGN_SPRINT`
102
+ 6. `PREPARE_RELEASE_NOTE`
103
+ 7. `MARK_TASKS_PUBLISH`
101
104
 
102
105
  ## 10) Коммиты и закрытие задач: только по подтверждению пользователя
103
106
  Запрещено выполнять автоматически:
@@ -105,10 +108,26 @@ Name: <agent role>
105
108
  - перевод задачи в `DONE`.
106
109
 
107
110
  Обязательное правило:
108
- - `COMMIT_BY_NAME` выполняется только после `RUN_REVIEW_GATE: PASS` и явного подтверждения пользователя в текущем диалоге;
111
+ - для single-branch режима статусный цикл задачи фиксируется как `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
112
+ - `RUN_REVIEW_GATE` сначала формирует отчёт ревьювера и рекомендацию (`PASS_CANDIDATE`/`FAIL`);
113
+ - финальный `RUN_REVIEW_GATE: PASS_CONFIRMED` допускается только после явного подтверждения пользователя `Review Approved: yes`;
114
+ - `COMMIT_BY_NAME` выполняется только после `RUN_REVIEW_GATE: PASS_CONFIRMED` и отдельного явного подтверждения пользователя в текущем диалоге;
109
115
  - `SET_STATUS -> DONE` выполняется только после явного подтверждения пользователя в текущем диалоге;
110
- - без подтверждения пользователя максимум допустимого статуса: `READY`.
116
+ - без подтверждения пользователя максимум допустимого статуса: `REVIEW`.
117
+ - `SET_STATUS -> READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
111
118
  - сообщение коммита обязано содержать ссылку на задачу (`TASK-ID` и/или `#issue-number`).
119
+ - `READY` означает: коммит сделан и отправлен (`push`), при этом либо в `main`, либо в отдельной ветке с открытым MR/PR.
120
+ - `DONE` означает: изменения интегрированы в `main` (прямой коммит в `main` или MR/PR смержен).
121
+ - `PUBLISH` означает: релиз опубликован и доступен в последней версии пакета.
122
+
123
+ ## 10.1) Правило для больших фич (GitHub tracker)
124
+ Если задача классифицирована как большая фича, система обязана предложить:
125
+ - создать `feature issue` (`type:feature`);
126
+ - создать `epic issue` (`type:epic`);
127
+ - выделить отдельную ветку разработки;
128
+ - связать feature с epic в GitHub issue (ссылка в body/comment/task list).
129
+
130
+ Для текущего этапа (только GitHub tracker) epic реализуется как обычный issue с label `type:epic`.
112
131
 
113
132
  ## 11) Жёсткие критерии приёмки (все обязательны)
114
133
  Задача принимается только если одновременно выполнены все условия:
@@ -123,7 +142,13 @@ Name: <agent role>
123
142
  9. Если задача закрыта в `DONE`, есть явное подтверждение пользователя на закрытие.
124
143
  10. Перед каждой командой пройден `VERIFY_GOVERNANCE_GATE` от `Governance Watchdog Agent`.
125
144
  11. Перед коммитом пройден `RUN_REVIEW_GATE` от `Reviewer/Judge Agent`.
126
- 12. Коммит содержит ссылку на issue/task (`TASK-ID` или `#issue`).
145
+ 12. Есть явное подтверждение пользователя на прохождение review (`Review Approved: yes`).
146
+ 13. До review gate задача переведена в статус `REVIEW`.
147
+ 14. Статус `READY` выставлен только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
148
+ 15. Для статуса `READY` подтверждены `commit + push` и путь интеграции (`main` или открытый MR/PR).
149
+ 16. Для статуса `DONE` подтверждена интеграция в `main` (direct commit или merged MR/PR).
150
+ 17. Для статуса `PUBLISH` подтверждена публикация в последней версии.
151
+ 18. Коммит содержит ссылку на issue/task (`TASK-ID` или `#issue`).
127
152
 
128
153
  Если хотя бы один критерий не выполнен, задача не принимается.
129
154
 
@@ -6,6 +6,7 @@
6
6
  "meta:status": "node .meta-agents/scripts/sync-status.mjs",
7
7
  "meta:verify": "node .meta-agents/scripts/verify-governance.mjs",
8
8
  "meta:review": "node .meta-agents/scripts/run-review-gate.mjs",
9
+ "meta:review-approve": "node .meta-agents/scripts/run-review-gate.mjs --approve yes",
9
10
  "meta:verify-link": "node .meta-agents/scripts/verify-commit-link.mjs"
10
11
  }
11
12
  }
@@ -38,13 +38,37 @@ result PASS
38
38
  - `COMMIT_BY_NAME`;
39
39
  - перевод задачи в `DONE`.
40
40
 
41
- Без подтверждения пользователя можно переводить задачу максимум в `READY`.
41
+ Без подтверждения пользователя можно переводить задачу максимум в `REVIEW`.
42
+ `SET_STATUS -> READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
42
43
 
43
44
  Дополнительно для коммита:
44
- - `COMMIT_BY_NAME` разрешён только после `RUN_REVIEW_GATE` с результатом `PASS`;
45
+ - для single-branch режима используется цикл `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
46
+ - `RUN_REVIEW_GATE` работает в два этапа:
47
+ - сначала отчёт и рекомендация (`PASS_CANDIDATE`/`FAIL`);
48
+ - после явного подтверждения пользователя (`Review Approved: yes`) — финальный `PASS_CONFIRMED`;
49
+ - `COMMIT_BY_NAME` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`;
45
50
  - сообщение коммита обязательно содержит `TASK-ID` и/или `#issue-number`.
46
51
 
47
- ## 2) Канонические команды (через Agile Manager Agent)
52
+ Для GitHub трекера статус issue задаётся label-ом (одновременно только один статус из набора):
53
+ - `TODO`
54
+ - `IN_PROGRESS`
55
+ - `REVIEW`
56
+ - `READY`
57
+ - `BLOCKED`
58
+ - `DONE`
59
+ - `PUBLISH`
60
+
61
+ Семантика статусов:
62
+ - `READY`: коммит сделан и отправлен (`push`), изменения находятся либо в `main`, либо в отдельной ветке с открытым MR/PR.
63
+ - `DONE`: изменения интегрированы в `main` (direct commit в `main` или MR/PR смержен).
64
+ - `PUBLISH`: релиз опубликован и доступен в последней версии пакета.
65
+
66
+ Правило больших фич (GitHub tracker):
67
+ - если фича крупная, агент обязан предложить `feature issue` + `epic issue` и отдельную ветку;
68
+ - epic в GitHub оформляется как issue с label `type:epic`;
69
+ - feature оформляется как issue с label `type:feature` и ссылкой на epic.
70
+
71
+ ## 2) Канонические команды (через Agile Manager Agent / Publishing Agent)
48
72
  ### VERIFY_GOVERNANCE_GATE
49
73
  ```text
50
74
  [Agent Auto-Select]
@@ -72,10 +96,27 @@ Name: Reviewer/Judge Agent
72
96
  Reviewer/Judge Agent: run review gate,
73
97
  task DEV-12,
74
98
  checklist "what_done_summary, critical_findings, potential_risks, issue_link_presence",
75
- result PASS,
99
+ result PASS_CANDIDATE,
76
100
  report "posted to issue #12"
77
101
  ```
78
102
 
103
+ ```text
104
+ [User Confirmation]
105
+ Review Approved: yes
106
+
107
+ [Agent Auto-Select]
108
+ Selected: Reviewer/Judge Agent
109
+ Reason: Подтверждение review пользователем получено, фиксируем финальный результат.
110
+
111
+ [Task Agent]
112
+ Name: Reviewer/Judge Agent
113
+
114
+ Reviewer/Judge Agent: run review gate,
115
+ task DEV-12,
116
+ approve yes,
117
+ result PASS_CONFIRMED
118
+ ```
119
+
79
120
  ### CREATE_TASK
80
121
  ```text
81
122
  [Agent Auto-Select]
@@ -111,6 +152,57 @@ status IN_PROGRESS,
111
152
  reason "начата реализация"
112
153
  ```
113
154
 
155
+ ### SET_STATUS -> REVIEW (обязателен перед review gate)
156
+ ```text
157
+ [Agent Auto-Select]
158
+ Selected: Agile Manager Agent
159
+ Reason: Реализация завершена, задача передаётся в review.
160
+
161
+ [Task Agent]
162
+ Name: Agile Manager Agent
163
+
164
+ Agile Manager Agent: set status,
165
+ tracker github,
166
+ task DEV-12,
167
+ status REVIEW,
168
+ reason "готово к review gate"
169
+ ```
170
+
171
+ ### CREATE_EPIC (для большой фичи)
172
+ ```text
173
+ [Agent Auto-Select]
174
+ Selected: Agile Manager Agent
175
+ Reason: Большая фича требует эпик в GitHub-трекере.
176
+
177
+ [Task Agent]
178
+ Name: Agile Manager Agent
179
+
180
+ Agile Manager Agent: create task,
181
+ tracker github,
182
+ type epic,
183
+ labels "type:epic,tracker:github,sprint:SPRINT-3",
184
+ short name "EPIC: новый подбор офферов",
185
+ description "Родительская задача для крупной фичи"
186
+ ```
187
+
188
+ ### CREATE_FEATURE_AND_LINK_TO_EPIC
189
+ ```text
190
+ [Agent Auto-Select]
191
+ Selected: Agile Manager Agent
192
+ Reason: Нужна отдельная feature-задача, связанная с epic.
193
+
194
+ [Task Agent]
195
+ Name: Agile Manager Agent
196
+
197
+ Agile Manager Agent: create task,
198
+ tracker github,
199
+ type feature,
200
+ labels "type:feature,tracker:github,sprint:SPRINT-3",
201
+ short name "FEATURE: scoring pipeline v2",
202
+ description "Дочерняя feature в рамках epic #42",
203
+ link to epic "#42"
204
+ ```
205
+
114
206
  ### COMMIT_BY_NAME (только после подтверждения пользователя)
115
207
  ```text
116
208
  [Agent Auto-Select]
@@ -128,10 +220,29 @@ tracker github,
128
220
  task "API редирект офферов",
129
221
  issue 12,
130
222
  commit message "DEV-12 | API редирект офферов (#12)",
223
+ push yes,
224
+ branch "feature/DEV-12-api-redirect",
225
+ open mr "optional",
131
226
  target status READY,
132
227
  what done "добавлен endpoint, тесты, обработка ошибок"
133
228
  ```
134
229
 
230
+ ### SET_STATUS -> PUBLISH (после фактической публикации)
231
+ ```text
232
+ [Agent Auto-Select]
233
+ Selected: Agile Manager Agent
234
+ Reason: Публикация релиза завершена, фиксируем статус поставки.
235
+
236
+ [Task Agent]
237
+ Name: Agile Manager Agent
238
+
239
+ Agile Manager Agent: set status,
240
+ tracker github,
241
+ task DEV-12,
242
+ status PUBLISH,
243
+ reason "релиз опубликован в latest"
244
+ ```
245
+
135
246
  ### SET_STATUS -> DONE (только после подтверждения пользователя)
136
247
  ```text
137
248
  [Agent Auto-Select]
@@ -166,6 +277,38 @@ task DEV-12,
166
277
  sprint SPRINT-3
167
278
  ```
168
279
 
280
+ ### PREPARE_RELEASE_NOTE
281
+ ```text
282
+ [Agent Auto-Select]
283
+ Selected: Publishing Agent
284
+ Reason: Нужно зафиксировать состав релиза и задачи, вошедшие в поставку.
285
+
286
+ [Task Agent]
287
+ Name: Publishing Agent
288
+
289
+ Publishing Agent: prepare release note,
290
+ tracker github,
291
+ version v0.1.2,
292
+ included tasks "#2,#3,#4,#5,#6,#7,#8",
293
+ output "docs/internal/release-notes/v0.1.2.md"
294
+ ```
295
+
296
+ ### MARK_TASKS_PUBLISH
297
+ ```text
298
+ [Agent Auto-Select]
299
+ Selected: Publishing Agent
300
+ Reason: После релиза нужно перевести вошедшие задачи в статус PUBLISH.
301
+
302
+ [Task Agent]
303
+ Name: Publishing Agent
304
+
305
+ Publishing Agent: mark tasks publish,
306
+ tracker github,
307
+ tasks "#2,#3,#4,#5,#6,#7,#8",
308
+ status PUBLISH,
309
+ reason "вошло в релиз v0.1.2"
310
+ ```
311
+
169
312
  ## 3) PRD-блок для каждого шага (обязателен)
170
313
  ```markdown
171
314
  ## PRD Step: <stage-name>
@@ -190,7 +333,12 @@ sprint SPRINT-3
190
333
  2. `CREATE_TASK`.
191
334
  3. `SET_STATUS -> IN_PROGRESS`.
192
335
  4. Реализация + evidence.
193
- 5. `RUN_REVIEW_GATE` (`PASS` обязателен).
194
- 6. `COMMIT_BY_NAME` только после review PASS и подтверждения пользователя.
195
- 7. `SET_STATUS -> READY`.
196
- 8. `SET_STATUS -> DONE` только после подтверждения пользователя.
336
+ 5. `SET_STATUS -> REVIEW`.
337
+ 6. `RUN_REVIEW_GATE` (получить report + `PASS_CANDIDATE`/`FAIL`).
338
+ 7. Пользователь подтверждает review (`Review Approved: yes`).
339
+ 8. `RUN_REVIEW_GATE` -> `PASS_CONFIRMED`.
340
+ 9. `COMMIT_BY_NAME` только после review PASS_CONFIRMED и отдельного подтверждения пользователя на коммит.
341
+ 10. `SET_STATUS -> READY`.
342
+ 11. `SET_STATUS -> DONE` только после подтверждения пользователя.
343
+ 12. `PREPARE_RELEASE_NOTE` (какие задачи вошли в релиз).
344
+ 13. Для релизных задач после публикации: `MARK_TASKS_PUBLISH` (`SET_STATUS -> PUBLISH` для всех вошедших задач).
@@ -38,12 +38,36 @@ result PASS
38
38
  - `COMMIT_BY_NAME`;
39
39
  - перевод задачи в `DONE`.
40
40
 
41
- Без подтверждения пользователя можно переводить задачу максимум в `READY`.
41
+ Без подтверждения пользователя можно переводить задачу максимум в `REVIEW`.
42
+ `SET_STATUS -> READY` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`.
42
43
 
43
44
  Дополнительно для коммита:
44
- - `COMMIT_BY_NAME` разрешён только после `RUN_REVIEW_GATE` с результатом `PASS`;
45
+ - для single-branch режима используется цикл `TODO -> IN_PROGRESS -> REVIEW -> READY -> DONE` (для релизных задач дополнительно `-> PUBLISH`);
46
+ - `RUN_REVIEW_GATE` работает в два этапа:
47
+ - сначала отчёт и рекомендация (`PASS_CANDIDATE`/`FAIL`);
48
+ - после явного подтверждения пользователя (`Review Approved: yes`) — финальный `PASS_CONFIRMED`;
49
+ - `COMMIT_BY_NAME` разрешён только после `RUN_REVIEW_GATE: PASS_CONFIRMED`;
45
50
  - сообщение коммита обязательно содержит `TASK-ID` и/или `#issue-number`.
46
51
 
52
+ Для GitHub трекера статус issue задаётся label-ом (одновременно только один статус из набора):
53
+ - `TODO`
54
+ - `IN_PROGRESS`
55
+ - `REVIEW`
56
+ - `READY`
57
+ - `BLOCKED`
58
+ - `DONE`
59
+ - `PUBLISH`
60
+
61
+ Семантика статусов:
62
+ - `READY`: коммит сделан и отправлен (`push`), изменения находятся либо в `main`, либо в отдельной ветке с открытым MR/PR.
63
+ - `DONE`: изменения интегрированы в `main` (direct commit в `main` или MR/PR смержен).
64
+ - `PUBLISH`: релиз опубликован и доступен в последней версии пакета.
65
+
66
+ Правило больших фич (GitHub tracker):
67
+ - если фича крупная, агент обязан предложить `feature issue` + `epic issue` и отдельную ветку;
68
+ - epic в GitHub оформляется как issue с label `type:epic`;
69
+ - feature оформляется как issue с label `type:feature` и ссылкой на epic.
70
+
47
71
  ## 2) Канонические команды (через Agile Manager Agent)
48
72
  ### VERIFY_GOVERNANCE_GATE
49
73
  ```text
@@ -72,10 +96,27 @@ Name: Reviewer/Judge Agent
72
96
  Reviewer/Judge Agent: run review gate,
73
97
  task DEV-12,
74
98
  checklist "what_done_summary, critical_findings, potential_risks, issue_link_presence",
75
- result PASS,
99
+ result PASS_CANDIDATE,
76
100
  report "posted to issue #12"
77
101
  ```
78
102
 
103
+ ```text
104
+ [User Confirmation]
105
+ Review Approved: yes
106
+
107
+ [Agent Auto-Select]
108
+ Selected: Reviewer/Judge Agent
109
+ Reason: Подтверждение review пользователем получено, фиксируем финальный результат.
110
+
111
+ [Task Agent]
112
+ Name: Reviewer/Judge Agent
113
+
114
+ Reviewer/Judge Agent: run review gate,
115
+ task DEV-12,
116
+ approve yes,
117
+ result PASS_CONFIRMED
118
+ ```
119
+
79
120
  ### CREATE_TASK
80
121
  ```text
81
122
  [Agent Auto-Select]
@@ -111,6 +152,57 @@ status IN_PROGRESS,
111
152
  reason "начата реализация"
112
153
  ```
113
154
 
155
+ ### SET_STATUS -> REVIEW (обязателен перед review gate)
156
+ ```text
157
+ [Agent Auto-Select]
158
+ Selected: Agile Manager Agent
159
+ Reason: Реализация завершена, задача передаётся в review.
160
+
161
+ [Task Agent]
162
+ Name: Agile Manager Agent
163
+
164
+ Agile Manager Agent: set status,
165
+ tracker github,
166
+ task DEV-12,
167
+ status REVIEW,
168
+ reason "готово к review gate"
169
+ ```
170
+
171
+ ### CREATE_EPIC (для большой фичи)
172
+ ```text
173
+ [Agent Auto-Select]
174
+ Selected: Agile Manager Agent
175
+ Reason: Большая фича требует эпик в GitHub-трекере.
176
+
177
+ [Task Agent]
178
+ Name: Agile Manager Agent
179
+
180
+ Agile Manager Agent: create task,
181
+ tracker github,
182
+ type epic,
183
+ labels "type:epic,tracker:github,sprint:SPRINT-3",
184
+ short name "EPIC: новый подбор офферов",
185
+ description "Родительская задача для крупной фичи"
186
+ ```
187
+
188
+ ### CREATE_FEATURE_AND_LINK_TO_EPIC
189
+ ```text
190
+ [Agent Auto-Select]
191
+ Selected: Agile Manager Agent
192
+ Reason: Нужна отдельная feature-задача, связанная с epic.
193
+
194
+ [Task Agent]
195
+ Name: Agile Manager Agent
196
+
197
+ Agile Manager Agent: create task,
198
+ tracker github,
199
+ type feature,
200
+ labels "type:feature,tracker:github,sprint:SPRINT-3",
201
+ short name "FEATURE: scoring pipeline v2",
202
+ description "Дочерняя feature в рамках epic #42",
203
+ link to epic "#42"
204
+ ```
205
+
114
206
  ### COMMIT_BY_NAME (только после подтверждения пользователя)
115
207
  ```text
116
208
  [Agent Auto-Select]
@@ -128,10 +220,29 @@ tracker github,
128
220
  task "API редирект офферов",
129
221
  issue 12,
130
222
  commit message "DEV-12 | API редирект офферов (#12)",
223
+ push yes,
224
+ branch "feature/DEV-12-api-redirect",
225
+ open mr "optional",
131
226
  target status READY,
132
227
  what done "добавлен endpoint, тесты, обработка ошибок"
133
228
  ```
134
229
 
230
+ ### SET_STATUS -> PUBLISH (после фактической публикации)
231
+ ```text
232
+ [Agent Auto-Select]
233
+ Selected: Agile Manager Agent
234
+ Reason: Публикация релиза завершена, фиксируем статус поставки.
235
+
236
+ [Task Agent]
237
+ Name: Agile Manager Agent
238
+
239
+ Agile Manager Agent: set status,
240
+ tracker github,
241
+ task DEV-12,
242
+ status PUBLISH,
243
+ reason "релиз опубликован в latest"
244
+ ```
245
+
135
246
  ### SET_STATUS -> DONE (только после подтверждения пользователя)
136
247
  ```text
137
248
  [Agent Auto-Select]
@@ -190,7 +301,11 @@ sprint SPRINT-3
190
301
  2. `CREATE_TASK`.
191
302
  3. `SET_STATUS -> IN_PROGRESS`.
192
303
  4. Реализация + evidence.
193
- 5. `RUN_REVIEW_GATE` (`PASS` обязателен).
194
- 6. `COMMIT_BY_NAME` только после review PASS и подтверждения пользователя.
195
- 7. `SET_STATUS -> READY`.
196
- 8. `SET_STATUS -> DONE` только после подтверждения пользователя.
304
+ 5. `SET_STATUS -> REVIEW`.
305
+ 6. `RUN_REVIEW_GATE` (получить report + `PASS_CANDIDATE`/`FAIL`).
306
+ 7. Пользователь подтверждает review (`Review Approved: yes`).
307
+ 8. `RUN_REVIEW_GATE` -> `PASS_CONFIRMED`.
308
+ 9. `COMMIT_BY_NAME` только после review PASS_CONFIRMED и отдельного подтверждения пользователя на коммит.
309
+ 10. `SET_STATUS -> READY`.
310
+ 11. `SET_STATUS -> DONE` только после подтверждения пользователя.
311
+ 12. Для релизных задач после публикации: `SET_STATUS -> PUBLISH`.