@alxyrgin/agent-forge 1.0.0 → 3.0.0
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 +104 -51
- package/dist/index.js +194 -51
- package/dist/index.js.map +1 -1
- package/package.json +12 -2
- package/templates/agents/documentation/gatekeeper.md.ejs +83 -0
- package/templates/agents/documentation/librarian.md.ejs +80 -0
- package/templates/agents/documentation/verifier.md.ejs +92 -0
- package/templates/agents/documentation/writer.md.ejs +189 -0
- package/templates/agents/pipeline/analyst.md.ejs +65 -0
- package/templates/agents/{core → pipeline}/architect.md.ejs +38 -1
- package/templates/agents/pipeline/developer.md.ejs +75 -0
- package/templates/agents/pipeline/inspector.md.ejs +123 -0
- package/templates/agents/pipeline/planner.md.ejs +211 -0
- package/templates/agents/pipeline/reviewer.md.ejs +158 -0
- package/templates/agents/pipeline/skeptic.md.ejs +105 -0
- package/templates/agents/pipeline/tester.md.ejs +134 -0
- package/templates/agents/planning/decomposer.md.ejs +103 -0
- package/templates/agents/planning/interviewer.md.ejs +104 -0
- package/templates/agents/planning/researcher.md.ejs +96 -0
- package/templates/agents/planning/validator.md.ejs +97 -0
- package/templates/agents/security/auditor.md.ejs +105 -0
- package/templates/agents/security/deployer.md.ejs +81 -0
- package/templates/agents/security/prompter.md.ejs +87 -0
- package/templates/agents/security/scaffolder.md.ejs +75 -0
- package/templates/hooks/protect-docs.sh.ejs +25 -0
- package/templates/memory/checkpoint.yml.ejs +21 -0
- package/templates/memory/tech-debt.md.ejs +9 -1
- package/templates/root/CLAUDE.md.ejs +228 -30
- package/templates/root/settings.json.ejs +15 -1
- package/templates/rules/agent-output-format.md.ejs +80 -0
- package/templates/rules/context-loading.md.ejs +70 -0
- package/templates/rules/development-cycle.md.ejs +163 -29
- package/templates/rules/quality-gates.md.ejs +80 -0
- package/templates/rules/rollback-protocol.md.ejs +60 -0
- package/templates/rules/shared-resources.md.ejs +73 -0
- package/templates/skills/core/code/SKILL.md.ejs +85 -0
- package/templates/skills/core/complete-task/SKILL.md.ejs +22 -9
- package/templates/skills/core/done/SKILL.md.ejs +66 -0
- package/templates/skills/core/end-session/SKILL.md.ejs +14 -6
- package/templates/skills/core/review/SKILL.md.ejs +1 -1
- package/templates/skills/core/start-session/SKILL.md.ejs +73 -10
- package/templates/skills/core/take-task/SKILL.md.ejs +279 -30
- package/templates/skills/core/test/SKILL.md.ejs +200 -0
- package/templates/skills/extra/audit-wave/SKILL.md.ejs +58 -0
- package/templates/skills/extra/dashboard/SKILL.md.ejs +64 -0
- package/templates/skills/extra/decompose/SKILL.md.ejs +72 -0
- package/templates/skills/extra/feature/SKILL.md.ejs +83 -0
- package/templates/skills/extra/interview/SKILL.md.ejs +66 -0
- package/templates/skills/extra/prompts/SKILL.md.ejs +65 -0
- package/templates/skills/extra/security/SKILL.md.ejs +77 -0
- package/templates/skills/extra/skill-master/SKILL.md.ejs +51 -0
- package/templates/skills/extra/spec/SKILL.md.ejs +111 -0
- package/templates/skills/extra/techspec/SKILL.md.ejs +97 -0
- package/templates/skills/extra/write-report/SKILL.md.ejs +26 -0
- package/templates/agents/core/analyst.md.ejs +0 -56
- package/templates/agents/core/developer.md.ejs +0 -54
- package/templates/agents/core/doc-writer.md.ejs +0 -50
- package/templates/agents/core/progress-tracker.md.ejs +0 -56
- package/templates/agents/core/reviewer.md.ejs +0 -52
- package/templates/agents/core/security-auditor.md.ejs +0 -51
- package/templates/agents/core/unit-tester.md.ejs +0 -56
- package/templates/agents/extra/acceptance-tester.md.ejs +0 -48
- package/templates/agents/extra/integration-tester.md.ejs +0 -49
- package/templates/agents/extra/planner.md.ejs +0 -89
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test
|
|
3
|
+
description: |
|
|
4
|
+
Standalone тестирование: unit, integration, regression, acceptance, TDD.
|
|
5
|
+
Запускает tester + inspector, анализирует покрытие.
|
|
6
|
+
|
|
7
|
+
Use when: «протестируй», «тесты», «regression», «запусти тесты», «test», «покрытие», «coverage»
|
|
8
|
+
user-invocable: true
|
|
9
|
+
argument-hint: "[scope] [--level unit|integration|regression|acceptance|tdd] [--coverage]"
|
|
10
|
+
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, Agent
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Standalone тестирование
|
|
14
|
+
|
|
15
|
+
Аргументы: `$ARGUMENTS`
|
|
16
|
+
- scope — путь к модулю/директории (по умолчанию <%= srcDir %>)
|
|
17
|
+
- --level — уровень тестов (по умолчанию unit)
|
|
18
|
+
- --coverage — анализ покрытия
|
|
19
|
+
|
|
20
|
+
## Определение режима
|
|
21
|
+
|
|
22
|
+
| Аргумент | Режим | Описание |
|
|
23
|
+
|----------|-------|----------|
|
|
24
|
+
| `--level unit` | Unit | tester(unit) -> inspector -> fix cycle |
|
|
25
|
+
| `--level integration` | Integration | tester(integration) -> report |
|
|
26
|
+
| `--level regression` | Regression | полный прогон -> сравнение с предыдущими результатами |
|
|
27
|
+
| `--level acceptance` | Acceptance | tester(acceptance) -> протокол -> results/ |
|
|
28
|
+
| `--level tdd` | TDD | tester(tdd) -> failing тесты -> ready for dev |
|
|
29
|
+
| `--coverage` | Coverage | полный прогон -> gap analysis -> модули ниже 80% |
|
|
30
|
+
| _(пусто)_ | Unit | по умолчанию — unit |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Mode A. Unit (default)
|
|
35
|
+
|
|
36
|
+
### Фаза 1. Тестирование
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Agent(subagent_type="tester", prompt="
|
|
40
|
+
level: unit
|
|
41
|
+
Напиши/обнови unit-тесты для [scope].
|
|
42
|
+
Директория тестов: <%= testDir %>
|
|
43
|
+
Фреймворк: <%= testFramework %>
|
|
44
|
+
Покрытие >=80%.
|
|
45
|
+
Edge cases, обработка ошибок, граничные значения.
|
|
46
|
+
")
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Checkpoint:** тесты написаны.
|
|
50
|
+
|
|
51
|
+
### Фаза 2. Инспекция
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
Agent(subagent_type="inspector", prompt="
|
|
55
|
+
Проверь качество тестов: [файлы от tester].
|
|
56
|
+
7 критериев: покрытие, naming, assertions, mocking, isolation, flaky, контроль доступа.
|
|
57
|
+
")
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Обработка verdict:**
|
|
61
|
+
- APPROVE -> готово
|
|
62
|
+
- REQUEST_CHANGES -> tester исправляет -> inspector повторяет (макс. 2 раунда)
|
|
63
|
+
|
|
64
|
+
**Checkpoint:** инспекция пройдена.
|
|
65
|
+
|
|
66
|
+
### Фаза 3. Результат
|
|
67
|
+
|
|
68
|
+
Покажи итог: файлы, passed/failed, покрытие, inspector findings.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Mode B. Regression
|
|
73
|
+
|
|
74
|
+
### Фаза 1. Прогон всех тестов
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
<%= testCommand %>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Фаза 2. Сравнение
|
|
81
|
+
|
|
82
|
+
Прочитай предыдущие результаты из `dev-infra/tests/results/` (последний файл).
|
|
83
|
+
Сравни: новые failures, исправленные failures, стабильные тесты.
|
|
84
|
+
|
|
85
|
+
### Фаза 3. Отчёт
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
## Regression Report
|
|
89
|
+
|
|
90
|
+
| Метрика | Предыдущий | Текущий | Delta |
|
|
91
|
+
|---------|-----------|---------|-------|
|
|
92
|
+
| Passed | N | M | +K |
|
|
93
|
+
| Failed | N | M | -K |
|
|
94
|
+
| Total | N | M | +K |
|
|
95
|
+
|
|
96
|
+
### Новые failures
|
|
97
|
+
- test_name: причина
|
|
98
|
+
|
|
99
|
+
### Исправленные
|
|
100
|
+
- test_name: был fail, теперь pass
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Mode C. Coverage
|
|
106
|
+
|
|
107
|
+
### Фаза 1. Полный прогон
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
<%= testCommand %> --coverage
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Фаза 2. Gap Analysis
|
|
114
|
+
|
|
115
|
+
Для каждого модуля с покрытием <80%:
|
|
116
|
+
- Какие функции не покрыты?
|
|
117
|
+
- Какие ветки пропущены?
|
|
118
|
+
- Рекомендации: что тестировать первым
|
|
119
|
+
|
|
120
|
+
### Фаза 3. Отчёт
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
## Coverage Report
|
|
124
|
+
|
|
125
|
+
| Модуль | Покрытие | Цель | Статус |
|
|
126
|
+
|--------|---------|------|--------|
|
|
127
|
+
| module_a | 92% | >=80% | PASS |
|
|
128
|
+
| module_b | 67% | >=80% | FAIL — gap |
|
|
129
|
+
|
|
130
|
+
### Gaps
|
|
131
|
+
- module_b: функции X, Y не покрыты
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Mode D. TDD
|
|
137
|
+
|
|
138
|
+
### Фаза 1. Генерация failing тестов
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
Agent(subagent_type="tester", prompt="
|
|
142
|
+
mode: tdd
|
|
143
|
+
Создай failing тесты для [scope].
|
|
144
|
+
Директория тестов: <%= testDir %>
|
|
145
|
+
Фреймворк: <%= testFramework %>
|
|
146
|
+
TDD-якоря: [tdd_anchors из tasks.json, если есть]
|
|
147
|
+
Описание ожидаемого поведения: [от пользователя]
|
|
148
|
+
Тесты должны FAIL (код ещё не написан).
|
|
149
|
+
")
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Фаза 2. Верификация RED
|
|
153
|
+
|
|
154
|
+
Запусти тесты — убедись, что они fail. Если pass — якоря некорректны.
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
<%= testCommand %>
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Фаза 3. Результат
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
## TDD — Failing Tests (RED)
|
|
164
|
+
|
|
165
|
+
Создано N failing тестов:
|
|
166
|
+
- test_X: ожидает [поведение]
|
|
167
|
+
- test_Y: ожидает [поведение]
|
|
168
|
+
|
|
169
|
+
Следующий шаг: developer реализует код -> тесты станут GREEN.
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Mode E. Acceptance
|
|
175
|
+
|
|
176
|
+
### Фаза 1. Приёмочные тесты
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
Agent(subagent_type="tester", prompt="
|
|
180
|
+
level: acceptance
|
|
181
|
+
Milestone: [текущий из active-context.md]
|
|
182
|
+
Критерии: dev-infra/tests/acceptance/milestone-X.X.md
|
|
183
|
+
ПМИ: dev-infra/tests/pmi/
|
|
184
|
+
")
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Фаза 2. Протокол
|
|
188
|
+
|
|
189
|
+
Сохрани результат в `dev-infra/tests/results/acceptance-YYYY-MM-DD.md`.
|
|
190
|
+
|
|
191
|
+
### Фаза 3. Итог
|
|
192
|
+
|
|
193
|
+
Таблица: критерий -> метрика -> цель -> факт -> статус.
|
|
194
|
+
|
|
195
|
+
## Final Check
|
|
196
|
+
|
|
197
|
+
- [ ] Тесты написаны/обновлены
|
|
198
|
+
- [ ] Inspector проверил качество (для unit)
|
|
199
|
+
- [ ] Результаты сохранены
|
|
200
|
+
- [ ] Покрытие >=80% (для unit/coverage)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audit-wave
|
|
3
|
+
description: Комплексный аудит перед milestone — 3 параллельных проверки с вердиктом GO/NO-GO.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: Read, Glob, Grep, Bash, Agent
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Комплексный аудит перед milestone
|
|
10
|
+
|
|
11
|
+
Запускает 3 параллельных проверки и выносит вердикт GO/NO-GO.
|
|
12
|
+
|
|
13
|
+
## Шаг 1. Запустить 3 проверки параллельно
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Agent(subagent_type="planner", prompt="Режим: completeness. Проверь полноту реализации для текущего milestone. Требования: [из tasks.json].")
|
|
17
|
+
|
|
18
|
+
Agent(subagent_type="reviewer", prompt="Фокус: безопасность. Проведи аудит безопасности для текущего milestone. Проверь: авторизацию, валидацию, SQL-инъекции, XSS.")
|
|
19
|
+
|
|
20
|
+
Agent(subagent_type="tester", prompt="Level: acceptance. Проверь критерии приёмки для текущего milestone. Файлы: dev-infra/tests/acceptance/.")
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Шаг 2. Собрать результаты
|
|
24
|
+
|
|
25
|
+
Дождись завершения всех 3 агентов. Собери вердикты:
|
|
26
|
+
|
|
27
|
+
| Проверка | Агент | Вердикт |
|
|
28
|
+
|----------|-------|---------|
|
|
29
|
+
| Полнота | planner (completeness) | COMPLETE / GAPS_FOUND / CRITICAL_GAPS |
|
|
30
|
+
| Безопасность | reviewer (security) | PASS / WARN / FAIL |
|
|
31
|
+
| Приёмка | tester (acceptance) | PASS / PARTIAL / FAIL |
|
|
32
|
+
|
|
33
|
+
## Шаг 3. Вынести вердикт
|
|
34
|
+
|
|
35
|
+
### GO — можно релизить
|
|
36
|
+
- Все 3 проверки: PASS/COMPLETE
|
|
37
|
+
- Или: максимум 1 WARN/GAPS_FOUND без CRITICAL
|
|
38
|
+
|
|
39
|
+
### NO-GO — нужна доработка
|
|
40
|
+
- Любой FAIL или CRITICAL_GAPS
|
|
41
|
+
- 2+ проверки с WARN/GAPS_FOUND
|
|
42
|
+
|
|
43
|
+
## Шаг 4. Показать отчёт
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
## Аудит milestone: [название]
|
|
47
|
+
**Дата:** YYYY-MM-DD
|
|
48
|
+
**Вердикт:** GO / NO-GO
|
|
49
|
+
|
|
50
|
+
### Результаты проверок
|
|
51
|
+
[таблица из шага 2]
|
|
52
|
+
|
|
53
|
+
### Блокеры (если NO-GO)
|
|
54
|
+
- [список конкретных проблем]
|
|
55
|
+
|
|
56
|
+
### Рекомендации
|
|
57
|
+
- [что нужно исправить]
|
|
58
|
+
```
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dashboard
|
|
3
|
+
description: Показать дашборд проекта — прогресс, метрики, здоровье кодовой базы.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: Read, Glob, Grep, Bash
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Дашборд проекта
|
|
10
|
+
|
|
11
|
+
Собери и покажи компактный дашборд.
|
|
12
|
+
|
|
13
|
+
## 1. Прогресс по milestone
|
|
14
|
+
|
|
15
|
+
Прочитай `dev-infra/tasks/tasks.json` и `dev-infra/memory/progress.md`.
|
|
16
|
+
|
|
17
|
+
Покажи:
|
|
18
|
+
```
|
|
19
|
+
Milestone: [название]
|
|
20
|
+
Прогресс: ████████░░ 80% (16/20 задач)
|
|
21
|
+
Дедлайн: YYYY-MM-DD (X дней)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 2. Статусы задач
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
done: ██████████ 12
|
|
28
|
+
in_progress: ████ 4
|
|
29
|
+
todo: ████ 4
|
|
30
|
+
blocked: █ 1
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 3. Здоровье кодовой базы
|
|
34
|
+
|
|
35
|
+
<% if (stack === 'typescript') { %>
|
|
36
|
+
Запусти:
|
|
37
|
+
```bash
|
|
38
|
+
npx tsc --noEmit 2>&1 | tail -5
|
|
39
|
+
<%= testCommand %> 2>&1 | tail -10
|
|
40
|
+
```
|
|
41
|
+
<% } else if (stack === 'python') { %>
|
|
42
|
+
Запусти:
|
|
43
|
+
```bash
|
|
44
|
+
<%= testCommand %> 2>&1 | tail -10
|
|
45
|
+
```
|
|
46
|
+
<% } else { %>
|
|
47
|
+
Запусти:
|
|
48
|
+
```bash
|
|
49
|
+
<%= testCommand %> 2>&1 | tail -10
|
|
50
|
+
```
|
|
51
|
+
<% } %>
|
|
52
|
+
|
|
53
|
+
Покажи:
|
|
54
|
+
- Ошибки компиляции (если есть)
|
|
55
|
+
- Тесты: passed / failed / skipped
|
|
56
|
+
- Покрытие (если доступно)
|
|
57
|
+
|
|
58
|
+
## 4. Технический долг
|
|
59
|
+
|
|
60
|
+
Прочитай `dev-infra/memory/tech-debt.md`. Покажи количество open записей по категориям.
|
|
61
|
+
|
|
62
|
+
## 5. Последняя активность
|
|
63
|
+
|
|
64
|
+
Покажи последние 3 сессии из `dev-infra/sessions/`.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: decompose
|
|
3
|
+
description: |
|
|
4
|
+
Декомпозиция tech-spec на атомарные задачи с TDD-якорями, wave, verify steps.
|
|
5
|
+
|
|
6
|
+
Use when: «декомпозируй», «разбей на задачи», «decompose», «создай задачи из спеки»
|
|
7
|
+
user-invocable: true
|
|
8
|
+
argument-hint: "[tech-spec path]"
|
|
9
|
+
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, Agent
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Декомпозиция на задачи
|
|
13
|
+
|
|
14
|
+
Аргумент: `$ARGUMENTS` — путь к tech-spec (опционально, по умолчанию — последний созданный).
|
|
15
|
+
|
|
16
|
+
## Фаза 1. Генерация задач
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Agent(subagent_type="decomposer", prompt="
|
|
20
|
+
Tech-spec: [содержание tech-spec]
|
|
21
|
+
Code research: [если есть]
|
|
22
|
+
Существующие задачи: [tasks.json — для определения ID и избежания дублирования]
|
|
23
|
+
|
|
24
|
+
Для каждой функциональной единицы создай задачу:
|
|
25
|
+
- TDD-якоря, AC, dependencies, wave, context_files, verify_steps
|
|
26
|
+
- Атомарность: 1 задача = 1 сессия
|
|
27
|
+
")
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Checkpoint:** задачи сгенерированы.
|
|
31
|
+
|
|
32
|
+
## Фаза 2. Валидация (параллельно)
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
# Validator проверяет задачи
|
|
36
|
+
Agent(subagent_type="validator", prompt="mode: task. Проверь задачи: [список задач]. Атомарность, AC, TDD-якоря, dependencies.")
|
|
37
|
+
|
|
38
|
+
# Skeptic проверяет на миражи
|
|
39
|
+
Agent(subagent_type="skeptic", prompt="Проверь задачи на миражи: context_files существуют? Dependencies корректны? [список задач]")
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Если есть findings — исправить (макс. 3 итерации).
|
|
43
|
+
|
|
44
|
+
**Checkpoint:** валидация пройдена.
|
|
45
|
+
|
|
46
|
+
## Фаза 3. Запись
|
|
47
|
+
|
|
48
|
+
Покажи пользователю:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
## Задачи из tech-spec
|
|
52
|
+
|
|
53
|
+
| Wave | ID | Название | Priority | Dependencies | TDD-якоря |
|
|
54
|
+
|------|----|-----------|---------|--------------|-----------|
|
|
55
|
+
| 1 | M1.2-001 | ... | high | - | 2 |
|
|
56
|
+
| 1 | M1.2-002 | ... | high | - | 3 |
|
|
57
|
+
| 2 | M1.2-003 | ... | medium | M1.2-001 | 2 |
|
|
58
|
+
|
|
59
|
+
Всего: N задач, K волн.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Спроси: «Записать в tasks.json?»
|
|
63
|
+
|
|
64
|
+
При подтверждении — обновить tasks.json (добавить новые задачи).
|
|
65
|
+
|
|
66
|
+
## Final Check
|
|
67
|
+
|
|
68
|
+
- [ ] Задачи сгенерированы из tech-spec
|
|
69
|
+
- [ ] Validator проверил
|
|
70
|
+
- [ ] Skeptic проверил
|
|
71
|
+
- [ ] Пользователь утвердил
|
|
72
|
+
- [ ] tasks.json обновлён
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: feature
|
|
3
|
+
description: |
|
|
4
|
+
Wave-execution: оркестрация нескольких задач из milestone по волнам.
|
|
5
|
+
Последовательно выполняет задачи через take-task pipeline.
|
|
6
|
+
|
|
7
|
+
Use when: «запусти фичу», «выполни волну», «feature», «wave execution», «запусти wave»
|
|
8
|
+
user-invocable: true
|
|
9
|
+
argument-hint: "[milestone] [--wave N]"
|
|
10
|
+
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, Agent
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Wave Execution — оркестрация волны задач
|
|
14
|
+
|
|
15
|
+
Аргументы: `$ARGUMENTS`
|
|
16
|
+
- milestone — ID milestone (например: 1.2)
|
|
17
|
+
- --wave N — номер волны (по умолчанию — следующая невыполненная)
|
|
18
|
+
|
|
19
|
+
## Фаза 1. Выбор задач
|
|
20
|
+
|
|
21
|
+
1. Прочитай `dev-infra/tasks/tasks.json`
|
|
22
|
+
2. Если --wave указан — выбери задачи с `wave: N` и `status: todo`
|
|
23
|
+
3. Если нет — определи следующую невыполненную волну:
|
|
24
|
+
- Wave 1 done? -> Wave 2
|
|
25
|
+
- Wave 2 done? -> Wave 3
|
|
26
|
+
4. Покажи задачи волны:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
## Wave [N] — Milestone [X.X]
|
|
30
|
+
|
|
31
|
+
| # | ID | Название | Priority | Dependencies | Status |
|
|
32
|
+
|---|----|-----------|---------|--------------| -------|
|
|
33
|
+
| 1 | M1.2-001 | ... | high | - | todo |
|
|
34
|
+
| 2 | M1.2-002 | ... | high | - | todo |
|
|
35
|
+
|
|
36
|
+
Задач: N. Запустить выполнение?
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Checkpoint:** волна определена.
|
|
40
|
+
|
|
41
|
+
## Фаза 2. Последовательное выполнение
|
|
42
|
+
|
|
43
|
+
Для каждой задачи в волне (по порядку ID):
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
# Эквивалент /take-task pipeline
|
|
47
|
+
1. Определить размер задачи (S/M/L)
|
|
48
|
+
2. Запустить соответствующий пайплайн (см. take-task)
|
|
49
|
+
3. Дождаться завершения
|
|
50
|
+
4. Обновить checkpoint
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Между задачами показывай прогресс:
|
|
54
|
+
```
|
|
55
|
+
Wave [N]: [completed]/[total] задач выполнено.
|
|
56
|
+
Следующая: [ID] — [название]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Checkpoint:** обновляется после каждой задачи.
|
|
60
|
+
|
|
61
|
+
## Фаза 3. Финализация волны
|
|
62
|
+
|
|
63
|
+
После завершения всех задач:
|
|
64
|
+
|
|
65
|
+
1. Smoke test: `<%= testCommand %>`
|
|
66
|
+
2. Обнови progress.md
|
|
67
|
+
3. Покажи итог:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
## Wave [N] Complete
|
|
71
|
+
|
|
72
|
+
- Задач выполнено: N/N
|
|
73
|
+
- Тесты: X passed, Y failed
|
|
74
|
+
- Следующая волна: Wave [N+1] (K задач)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
4. Предложи коммит
|
|
78
|
+
|
|
79
|
+
## Final Check
|
|
80
|
+
|
|
81
|
+
- [ ] Все задачи волны в статусе done
|
|
82
|
+
- [ ] Smoke test проходит
|
|
83
|
+
- [ ] Progress обновлён
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: interview
|
|
3
|
+
description: Discovery-интервью с пользователем для сбора требований. 3 цикла уточнений до completeness >= 85%.
|
|
4
|
+
user-invocable: true
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Discovery-интервью
|
|
10
|
+
|
|
11
|
+
Проведи структурированное интервью с пользователем для сбора требований.
|
|
12
|
+
|
|
13
|
+
## Алгоритм
|
|
14
|
+
|
|
15
|
+
### Цикл 1. Общее понимание
|
|
16
|
+
|
|
17
|
+
Задай вопросы:
|
|
18
|
+
1. **Пользователи:** кто будет использовать? Какие роли?
|
|
19
|
+
2. **Основная цель:** какую проблему решаем?
|
|
20
|
+
3. **Данные:** какие данные обрабатываем? Откуда берутся?
|
|
21
|
+
4. **Интеграции:** с какими системами нужна интеграция?
|
|
22
|
+
5. **Ограничения:** дедлайны, бюджет, технические ограничения?
|
|
23
|
+
|
|
24
|
+
После ответов — оцени completeness score (0-100%).
|
|
25
|
+
|
|
26
|
+
### Цикл 2. Уточнение
|
|
27
|
+
|
|
28
|
+
На основе ответов из цикла 1 задай уточняющие вопросы:
|
|
29
|
+
- Что неясно или противоречиво?
|
|
30
|
+
- Какие edge cases не покрыты?
|
|
31
|
+
- Какие нефункциональные требования (нагрузка, безопасность, доступность)?
|
|
32
|
+
|
|
33
|
+
Обнови completeness score.
|
|
34
|
+
|
|
35
|
+
### Цикл 3. Валидация
|
|
36
|
+
|
|
37
|
+
Покажи пользователю собранные требования в структурированном виде:
|
|
38
|
+
- Функциональные требования (список)
|
|
39
|
+
- Нефункциональные требования
|
|
40
|
+
- Ограничения и допущения
|
|
41
|
+
- Открытые вопросы
|
|
42
|
+
|
|
43
|
+
Спроси: «Всё верно? Что-то пропущено?»
|
|
44
|
+
|
|
45
|
+
## Критерий завершения
|
|
46
|
+
|
|
47
|
+
Completeness score >= 85%. Если после 3 циклов score < 85% — зафиксируй открытые вопросы и предупреди о рисках.
|
|
48
|
+
|
|
49
|
+
## Результат
|
|
50
|
+
|
|
51
|
+
Запиши итог в `dev-infra/memory/decisions.md` в формате:
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
## Discovery: [название задачи/фичи]
|
|
55
|
+
**Дата:** YYYY-MM-DD
|
|
56
|
+
**Completeness:** XX%
|
|
57
|
+
|
|
58
|
+
### Требования
|
|
59
|
+
- [список]
|
|
60
|
+
|
|
61
|
+
### Ограничения
|
|
62
|
+
- [список]
|
|
63
|
+
|
|
64
|
+
### Открытые вопросы
|
|
65
|
+
- [если есть]
|
|
66
|
+
```
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prompts
|
|
3
|
+
description: |
|
|
4
|
+
Standalone ревью LLM-промптов: ясность, few-shot, output format, injection safety, token efficiency.
|
|
5
|
+
|
|
6
|
+
Use when: «проверь промпты», «review prompts», «промпты», «prompts», «ревью промптов»
|
|
7
|
+
user-invocable: true
|
|
8
|
+
argument-hint: "[scope path]"
|
|
9
|
+
allowed-tools: Read, Glob, Grep, Bash, Agent
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Ревью LLM-промптов
|
|
13
|
+
|
|
14
|
+
Аргумент: `$ARGUMENTS` — путь к файлам с промптами (по умолчанию — поиск по проекту).
|
|
15
|
+
|
|
16
|
+
## Фаза 1. Поиск промптов
|
|
17
|
+
|
|
18
|
+
Если путь не указан — найди файлы с промптами:
|
|
19
|
+
```
|
|
20
|
+
Grep: pattern="prompt|system_message|user_message|few_shot" в <%= srcDir %>/**/*
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Покажи найденные файлы, спроси: «Проверить все или выбрать?»
|
|
24
|
+
|
|
25
|
+
**Checkpoint:** промпты найдены.
|
|
26
|
+
|
|
27
|
+
## Фаза 2. Ревью
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Agent(subagent_type="prompter", prompt="
|
|
31
|
+
Проверь LLM-промпты в файлах: [список файлов]
|
|
32
|
+
|
|
33
|
+
5 критериев:
|
|
34
|
+
1. Ясность — инструкция однозначная?
|
|
35
|
+
2. Few-shot — примеры есть и корректны?
|
|
36
|
+
3. Output format — формат определён, валидируем?
|
|
37
|
+
4. Injection safety — input экранирован?
|
|
38
|
+
5. Token efficiency — промпт не избыточен?
|
|
39
|
+
")
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Checkpoint:** ревью завершено.
|
|
43
|
+
|
|
44
|
+
## Фаза 3. Отчёт
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
## Prompt Review Report
|
|
48
|
+
|
|
49
|
+
**Verdict:** [GOOD / NEEDS_IMPROVEMENT]
|
|
50
|
+
|
|
51
|
+
### Промпты проверены
|
|
52
|
+
| Файл | Промпт | Verdict |
|
|
53
|
+
|------|--------|---------|
|
|
54
|
+
| src/llm/prompts.ts | classify_report | GOOD |
|
|
55
|
+
| src/llm/prompts.ts | extract_params | NEEDS_IMPROVEMENT |
|
|
56
|
+
|
|
57
|
+
### Findings
|
|
58
|
+
1. [file:prompt_name] — [description] -> [recommendation]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Final Check
|
|
62
|
+
|
|
63
|
+
- [ ] Все промпты в scope проверены
|
|
64
|
+
- [ ] Injection safety проверена
|
|
65
|
+
- [ ] Рекомендации даны
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security
|
|
3
|
+
description: |
|
|
4
|
+
Standalone security audit: OWASP Top 10, контроль доступа, hardcoded secrets, threat modeling.
|
|
5
|
+
|
|
6
|
+
Use when: «проверь безопасность», «security audit», «security», «аудит безопасности», «OWASP»
|
|
7
|
+
user-invocable: true
|
|
8
|
+
argument-hint: "[scope path]"
|
|
9
|
+
allowed-tools: Read, Glob, Grep, Bash, Agent
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Security Audit
|
|
13
|
+
|
|
14
|
+
Аргумент: `$ARGUMENTS` — путь к директории/файлам для аудита (по умолчанию <%= srcDir %>).
|
|
15
|
+
|
|
16
|
+
## Фаза 1. Подготовка
|
|
17
|
+
|
|
18
|
+
1. Определи scope:
|
|
19
|
+
- Если указан путь — использовать его
|
|
20
|
+
- Иначе — `<%= srcDir %>`
|
|
21
|
+
2. Найди файлы для аудита: `Glob: [scope]/**/*`
|
|
22
|
+
3. Прочитай `docs/` — контекст рисков проекта (если есть)
|
|
23
|
+
|
|
24
|
+
**Checkpoint:** scope определён, файлы найдены.
|
|
25
|
+
|
|
26
|
+
## Фаза 2. Аудит
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Agent(subagent_type="auditor", prompt="
|
|
30
|
+
Проведи security audit.
|
|
31
|
+
Scope: [список файлов]
|
|
32
|
+
Риски проекта: [ключевые из документации]
|
|
33
|
+
|
|
34
|
+
Проверь:
|
|
35
|
+
1. OWASP Top 10 (A01-A10)
|
|
36
|
+
2. Hardcoded secrets (API keys, tokens, passwords)
|
|
37
|
+
3. Контроль доступа (каждый запрос к данным проходит проверку прав?)
|
|
38
|
+
4. Threat modeling (точки входа, чувствительные данные, возможные атаки)
|
|
39
|
+
")
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Checkpoint:** аудит завершён.
|
|
43
|
+
|
|
44
|
+
## Фаза 3. Отчёт
|
|
45
|
+
|
|
46
|
+
Покажи результаты:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
## Security Audit Report
|
|
50
|
+
|
|
51
|
+
**Scope:** [path]
|
|
52
|
+
**Verdict:** [SECURE / VULNERABLE]
|
|
53
|
+
|
|
54
|
+
### Summary
|
|
55
|
+
- Files checked: N
|
|
56
|
+
- Findings: X (C critical, H high, M medium, L low)
|
|
57
|
+
|
|
58
|
+
### Critical / High Findings
|
|
59
|
+
1. [file:line] — [description] -> [fix]
|
|
60
|
+
|
|
61
|
+
### Access Control Audit
|
|
62
|
+
- Data access points: N
|
|
63
|
+
- Protected: M
|
|
64
|
+
- Unprotected: K (list)
|
|
65
|
+
|
|
66
|
+
### Recommendations
|
|
67
|
+
1. [recommendation]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Если есть critical/high — предложить создать задачи для исправления.
|
|
71
|
+
|
|
72
|
+
## Final Check
|
|
73
|
+
|
|
74
|
+
- [ ] Все файлы в scope проверены
|
|
75
|
+
- [ ] OWASP Top 10 проверен
|
|
76
|
+
- [ ] Контроль доступа проверен
|
|
77
|
+
- [ ] Secrets не найдены (или замаскированы)
|