kodu 2.1.2 → 2.2.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/AGENTS.md +23 -1
- package/__tests__/core/registry/registry.service.test.ts +82 -0
- package/__tests__/shared/runbook/runbook.service.test.ts +104 -0
- package/dist/package.json +1 -1
- package/dist/src/app.module.js +6 -0
- package/dist/src/app.module.js.map +1 -1
- package/dist/src/commands/init/init.command.d.ts +1 -0
- package/dist/src/commands/init/init.command.js +34 -1
- package/dist/src/commands/init/init.command.js.map +1 -1
- package/dist/src/commands/ops/ops-add.command.d.ts +18 -0
- package/dist/src/commands/ops/ops-add.command.js +102 -0
- package/dist/src/commands/ops/ops-add.command.js.map +1 -0
- package/dist/src/commands/ops/ops-init.command.d.ts +22 -0
- package/dist/src/commands/ops/ops-init.command.js +130 -0
- package/dist/src/commands/ops/ops-init.command.js.map +1 -0
- package/dist/src/commands/ops/ops-list.command.d.ts +12 -0
- package/dist/src/commands/ops/ops-list.command.js +73 -0
- package/dist/src/commands/ops/ops-list.command.js.map +1 -0
- package/dist/src/commands/ops/ops-path.command.d.ts +9 -0
- package/dist/src/commands/ops/ops-path.command.js +52 -0
- package/dist/src/commands/ops/ops-path.command.js.map +1 -0
- package/dist/src/commands/ops/ops-runbook.command.d.ts +12 -0
- package/dist/src/commands/ops/ops-runbook.command.js +81 -0
- package/dist/src/commands/ops/ops-runbook.command.js.map +1 -0
- package/dist/src/commands/ops/ops-status.command.d.ts +11 -0
- package/dist/src/commands/ops/ops-status.command.js +62 -0
- package/dist/src/commands/ops/ops-status.command.js.map +1 -0
- package/dist/src/commands/ops/ops-use.command.d.ts +12 -0
- package/dist/src/commands/ops/ops-use.command.js +76 -0
- package/dist/src/commands/ops/ops-use.command.js.map +1 -0
- package/dist/src/commands/ops/ops.command.d.ts +7 -0
- package/dist/src/commands/ops/ops.command.js +56 -0
- package/dist/src/commands/ops/ops.command.js.map +1 -0
- package/dist/src/commands/ops/ops.helpers.d.ts +2 -0
- package/dist/src/commands/ops/ops.helpers.js +11 -0
- package/dist/src/commands/ops/ops.helpers.js.map +1 -0
- package/dist/src/commands/ops/ops.module.d.ts +2 -0
- package/dist/src/commands/ops/ops.module.js +36 -0
- package/dist/src/commands/ops/ops.module.js.map +1 -0
- package/dist/src/core/registry/registry.module.d.ts +2 -0
- package/dist/src/core/registry/registry.module.js +22 -0
- package/dist/src/core/registry/registry.module.js.map +1 -0
- package/dist/src/core/registry/registry.schema.d.ts +24 -0
- package/dist/src/core/registry/registry.schema.js +21 -0
- package/dist/src/core/registry/registry.schema.js.map +1 -0
- package/dist/src/core/registry/registry.service.d.ts +16 -0
- package/dist/src/core/registry/registry.service.js +91 -0
- package/dist/src/core/registry/registry.service.js.map +1 -0
- package/dist/src/shared/runbook/runbook.module.d.ts +2 -0
- package/dist/src/shared/runbook/runbook.module.js +22 -0
- package/dist/src/shared/runbook/runbook.module.js.map +1 -0
- package/dist/src/shared/runbook/runbook.service.d.ts +20 -0
- package/dist/src/shared/runbook/runbook.service.js +118 -0
- package/dist/src/shared/runbook/runbook.service.js.map +1 -0
- package/dist/src/shared/runbook/runbook.templates.d.ts +6 -0
- package/dist/src/shared/runbook/runbook.templates.js +49 -0
- package/dist/src/shared/runbook/runbook.templates.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/registry.schema.json +39 -0
- package/scripts/generate-json-schema.ts +14 -5
- package/skills/ac/SKILL.md +239 -0
- package/skills/al/SKILL.md +98 -0
- package/skills/audit/SKILL.md +205 -0
- package/skills/audit/audit-baseline-template.yml +188 -0
- package/skills/audit/runtime-detect.md +64 -0
- package/skills/audit/stacks/_generic.md +41 -0
- package/skills/audit/stacks/_registry.md +47 -0
- package/skills/audit/stacks/go.md +66 -0
- package/skills/audit/stacks/java.md +44 -0
- package/skills/audit/stacks/node.md +57 -0
- package/skills/audit/stacks/python.md +45 -0
- package/skills/audit/stacks/rust.md +44 -0
- package/skills/audit-api-contracts/SKILL.md +201 -0
- package/skills/audit-architecture/SKILL.md +200 -0
- package/skills/audit-bugs/SKILL.md +226 -0
- package/skills/audit-concurrency/SKILL.md +197 -0
- package/skills/audit-deployment/SKILL.md +218 -0
- package/skills/audit-docs/SKILL.md +209 -0
- package/skills/audit-errors/SKILL.md +216 -0
- package/skills/audit-logging/SKILL.md +197 -0
- package/skills/audit-matrix/SKILL.md +245 -0
- package/skills/audit-meta/SKILL.md +120 -0
- package/skills/audit-naming/SKILL.md +200 -0
- package/skills/audit-owasp/SKILL.md +223 -0
- package/skills/audit-performance/SKILL.md +199 -0
- package/skills/audit-reinvention/SKILL.md +214 -0
- package/skills/audit-secrets/SKILL.md +198 -0
- package/skills/audit-tests/SKILL.md +210 -0
- package/skills/audit-validation/SKILL.md +206 -0
- package/skills/audit-verify/SKILL.md +139 -0
- package/skills/audit-yagni/SKILL.md +188 -0
- package/skills/doc-gen/SKILL.md +490 -0
- package/skills/doc-gen/scripts/doc_gen.py +911 -0
- package/skills/generate-project-docs/SKILL.md +380 -0
- package/skills/implement-project/SKILL.md +409 -0
- package/skills/litefront-prototype/SKILL.md +484 -0
- package/skills/ops/SKILL.md +94 -0
- package/skills/post-call-task-builder/SKILL.md +419 -0
- package/skills/skills-best-practices/SKILL.md +415 -0
- package/skills/start/SKILL.md +319 -0
- package/skills/tech-blueprint/SKILL.md +890 -0
- package/skills/tech-blueprint/scripts/blueprint_validator.py +417 -0
- package/src/app.module.ts +6 -0
- package/src/commands/init/init.command.ts +43 -1
- package/src/commands/ops/ops-add.command.ts +83 -0
- package/src/commands/ops/ops-init.command.ts +125 -0
- package/src/commands/ops/ops-list.command.ts +57 -0
- package/src/commands/ops/ops-path.command.ts +38 -0
- package/src/commands/ops/ops-runbook.command.ts +74 -0
- package/src/commands/ops/ops-status.command.ts +47 -0
- package/src/commands/ops/ops-use.command.ts +76 -0
- package/src/commands/ops/ops.command.ts +42 -0
- package/src/commands/ops/ops.helpers.ts +20 -0
- package/src/commands/ops/ops.module.ts +23 -0
- package/src/core/registry/registry.module.ts +9 -0
- package/src/core/registry/registry.schema.ts +46 -0
- package/src/core/registry/registry.service.ts +128 -0
- package/src/shared/runbook/runbook.module.ts +9 -0
- package/src/shared/runbook/runbook.service.ts +164 -0
- package/src/shared/runbook/runbook.templates.ts +66 -0
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: post-call-task-builder
|
|
3
|
+
description: Create structured technical specifications and development tasks from meeting transcripts OR refine and organize user-provided task lists (optionally enriched with transcript context). Use after team meetings, planning sessions, architecture discussions, or when user provides a raw task list that needs structuring, prioritization, and validation against the codebase.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SKILL: Создание и доработка задач
|
|
7
|
+
|
|
8
|
+
## PURPOSE
|
|
9
|
+
|
|
10
|
+
Этот скилл работает в двух режимах:
|
|
11
|
+
|
|
12
|
+
**Режим A — Из созвона:**
|
|
13
|
+
|
|
14
|
+
- прочитать транскрипцию разговора;
|
|
15
|
+
- понять решения, проблемы и договорённости;
|
|
16
|
+
- изучить кодовую базу текущего проекта;
|
|
17
|
+
- задать уточняющие вопросы;
|
|
18
|
+
- предложить Парето-оптимальное решение;
|
|
19
|
+
- подготовить понятное ТЗ и список задач.
|
|
20
|
+
|
|
21
|
+
**Режим B — Из готового списка (с возможным контекстом из созвона):**
|
|
22
|
+
|
|
23
|
+
- принять список задач от пользователя;
|
|
24
|
+
- если пользователь также дал транскрипцию — извлечь из неё контекст, причины, приоритеты;
|
|
25
|
+
- изучить кодовую базу;
|
|
26
|
+
- проверить реалистичность, полноту и связность задач;
|
|
27
|
+
- доработать: добавить контекст, критерии готовности, порядок выполнения;
|
|
28
|
+
- указать риски, зависимости и скрытую сложность.
|
|
29
|
+
|
|
30
|
+
Главная цель — превратить входные данные (разговор или список) в практичный план работ, написанный простым языком, как
|
|
31
|
+
для джуна.
|
|
32
|
+
|
|
33
|
+
## CRITICAL CONSTRAINTS (НАРУШИТЬ НЕЛЬЗЯ)
|
|
34
|
+
|
|
35
|
+
**1. Полное исследование кодовой базы — ОБЯЗАТЕЛЬНО перед любыми формулировками задач.**
|
|
36
|
+
|
|
37
|
+
- Прежде чем писать хоть одну задачу, ТЗ или пункт плана — ты ОБЯЗАН провести полное исследование текущего проекта.
|
|
38
|
+
- Исследование включает: структуру проекта, стек, архитектуру, ключевые модули, точки входа, зависимости, тесты, конфиги, README.
|
|
39
|
+
- Никаких исключений. Нет исследования → нет задач.
|
|
40
|
+
|
|
41
|
+
**2. НЕ СПРАШИВАЙ у пользователя «что анализировать?» или «какие модули смотреть?».**
|
|
42
|
+
|
|
43
|
+
- Ты сам определяешь область исследования и проводишь его автоматически.
|
|
44
|
+
- Твоя задача — изучить весь проект досконально. Пользователь не должен подсказывать, куда смотреть.
|
|
45
|
+
- Если проект большой — начинай с корня (package.json, tsconfig, README, структура src/), затем углубляйся в модули, связанные с темой задач.
|
|
46
|
+
|
|
47
|
+
**3. Формулировка задач — ТОЛЬКО после завершения исследования.**
|
|
48
|
+
|
|
49
|
+
- Начинай формулировать задачи только когда у тебя есть полная картина проекта.
|
|
50
|
+
- Каждая задача должна опираться на конкретные файлы, модули и архитектурные решения, которые ты видел в коде.
|
|
51
|
+
- Если ты не изучил проект — вернись к исследованию, а не придумывай задачи «от балды».
|
|
52
|
+
|
|
53
|
+
## ACTIVATION
|
|
54
|
+
|
|
55
|
+
Используй этот скилл, если пользователь:
|
|
56
|
+
|
|
57
|
+
- прислал транскрипцию созвона или указал файл с ней;
|
|
58
|
+
- просит разобрать итоги созвона;
|
|
59
|
+
- просит составить задачи, ТЗ, план реализации или backlog по результатам обсуждения;
|
|
60
|
+
- предоставил свой список задач и просит его доработать, структурировать или проверить;
|
|
61
|
+
- предоставил и список задач, и транскрипцию — чтобы задачи были составлены с учётом контекста разговора;
|
|
62
|
+
- хочет, чтобы ты сначала изучил кодовую базу проекта, а потом оформил задачи.
|
|
63
|
+
|
|
64
|
+
## DO NOT USE WHEN
|
|
65
|
+
|
|
66
|
+
Не используй этот скилл, если:
|
|
67
|
+
|
|
68
|
+
- пользователь не хочет задач или ТЗ;
|
|
69
|
+
- нужно просто кратко пересказать созвон без анализа проекта;
|
|
70
|
+
- пользователь просит игнорировать кодовую базу;
|
|
71
|
+
- пользователь уже дал готовое ТЗ, и нужно только отредактировать текст (без проверки по коду).
|
|
72
|
+
|
|
73
|
+
## INPUTS
|
|
74
|
+
|
|
75
|
+
**Обязательные (без них не начинай):**
|
|
76
|
+
|
|
77
|
+
- **доступ к кодовой базе проекта** — ты должен исследовать проект ПЕРЕД формулировкой задач. Если путь не указан — определи его по контексту рабочей директории. Если проект недоступен — скажи об этом и не продолжай.
|
|
78
|
+
- место, куда нужно записать результат.
|
|
79
|
+
|
|
80
|
+
**Для режима A дополнительно:**
|
|
81
|
+
|
|
82
|
+
- путь к файлу с транскрипцией или её текст.
|
|
83
|
+
|
|
84
|
+
**Для режима B дополнительно:**
|
|
85
|
+
|
|
86
|
+
- список задач от пользователя (текст, файл, сообщение);
|
|
87
|
+
- опционально: транскрипция или ссылка на созвон для контекста (помогает понять причины, приоритеты, скрытые требования).
|
|
88
|
+
|
|
89
|
+
**Чего НЕ НУЖНО спрашивать у пользователя:**
|
|
90
|
+
|
|
91
|
+
- «Какие модули мне посмотреть?» — сам определи по структуре проекта.
|
|
92
|
+
- «Какие файлы важны для этой задачи?» — сам найди через исследование.
|
|
93
|
+
- «Где находится нужный функционал?» — сам отследи по кодовой базе.
|
|
94
|
+
- «Что именно анализировать?» — анализируй ВСЁ, что относится к теме задач.
|
|
95
|
+
|
|
96
|
+
Если не хватает только транскрипции (режим A) или списка задач (режим B) — задай короткий уточняющий вопрос. Но кодовую базу исследуй в любом случае.
|
|
97
|
+
|
|
98
|
+
## PROCESS
|
|
99
|
+
|
|
100
|
+
### Шаг 0. Определи режим работы и исследуй проект
|
|
101
|
+
|
|
102
|
+
**Этот шаг ОБЯЗАТЕЛЕН. Без него не переходи к формулировке задач.**
|
|
103
|
+
|
|
104
|
+
#### 0.1. Определи режим
|
|
105
|
+
|
|
106
|
+
- Если пользователь дал только транскрипцию (без списка задач) → режим A.
|
|
107
|
+
- Если пользователь дал готовый список задач (с транскрипцией или без) → режим B.
|
|
108
|
+
- Транскрипция в режиме B используется как дополнительный контекст — чтобы точнее понять причины задач, приоритеты и ожидания.
|
|
109
|
+
- Если дана только транскрипция, но пользователь явно просит «составь задачи» → режим A.
|
|
110
|
+
|
|
111
|
+
#### 0.2. Проведи полное исследование кодовой базы (ОБЯЗАТЕЛЬНО)
|
|
112
|
+
|
|
113
|
+
**Не спрашивай у пользователя «что анализировать?» — исследуй проект сам.**
|
|
114
|
+
|
|
115
|
+
Порядок исследования:
|
|
116
|
+
|
|
117
|
+
1. **Корень проекта** — прочитай package.json (или аналог), README, конфиги (tsconfig, biome, eslint, etc.), .env.example.
|
|
118
|
+
2. **Структура** — определи организацию src/ (или другую основную директорию), ключевые директории и их назначение.
|
|
119
|
+
3. **Точка входа** — найди main entry point, пойми как приложение запускается.
|
|
120
|
+
4. **Архитектура** — определи паттерн (MVC, модульный, сервисный слой, etc.), зависимости между частями.
|
|
121
|
+
5. **Ключевые модули** — изучи основные модули/сервисы, их ответственность и связи.
|
|
122
|
+
6. **Зависимости** — посмотри какие библиотеки используются и зачем.
|
|
123
|
+
7. **Тесты** — есть ли тесты, какой фреймворк, какого покрытия не хватает.
|
|
124
|
+
8. **Связь с темой** — углубись в те части кода, которые напрямую связаны с задачами из транскрипции или списка пользователя.
|
|
125
|
+
|
|
126
|
+
Если проект большой — начинай с наиболее вероятных точек изменения, затем расширяй обзор. Но в итоге ты должен получить полную картину.
|
|
127
|
+
|
|
128
|
+
**Результат исследования** — ты должен ответить себе на вопросы:
|
|
129
|
+
- Как устроен проект в целом?
|
|
130
|
+
- Какие модули/сервисы relevant к задачам?
|
|
131
|
+
- Какие ограничения есть в текущей архитектуре?
|
|
132
|
+
- Где уже есть нужный функционал, а чего не хватает?
|
|
133
|
+
- Что может сломаться при изменениях?
|
|
134
|
+
|
|
135
|
+
Только после этого переходи к формулировке задач.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### Режим A: Из созвона
|
|
140
|
+
|
|
141
|
+
#### A1. Прочитай транскрипцию
|
|
142
|
+
|
|
143
|
+
Извлеки из неё:
|
|
144
|
+
|
|
145
|
+
- цели созвона;
|
|
146
|
+
- проблемы;
|
|
147
|
+
- решения;
|
|
148
|
+
- спорные моменты;
|
|
149
|
+
- зависимости;
|
|
150
|
+
- риски;
|
|
151
|
+
- упомянутые файлы, модули, сервисы, эндпоинты, таблицы, очереди, интеграции.
|
|
152
|
+
|
|
153
|
+
#### A2. Сопоставь транскрипцию с результатами исследования
|
|
154
|
+
|
|
155
|
+
Ты уже исследовал проект на шаге 0.2. Теперь сопоставь увиденное в коде с тем, что обсуждалось на созвоне:
|
|
156
|
+
|
|
157
|
+
- что именно уже есть в проекте по теме созвона;
|
|
158
|
+
- чего не хватает;
|
|
159
|
+
- какие пункты из созвона реально внедрить быстро;
|
|
160
|
+
- какие требуют более крупной переработки;
|
|
161
|
+
- где есть технические риски или скрытая сложность.
|
|
162
|
+
|
|
163
|
+
#### A3. Предложи Парето-оптимальное решение
|
|
164
|
+
|
|
165
|
+
Перед уточняющими вопросами обязательно покажи рекомендованный вариант.
|
|
166
|
+
|
|
167
|
+
Парето-оптимальное решение — это решение, которое:
|
|
168
|
+
|
|
169
|
+
- даёт максимальную пользу при минимальной сложности;
|
|
170
|
+
- закрывает большую часть ценности задачи;
|
|
171
|
+
- не требует лишней архитектурной перестройки;
|
|
172
|
+
- может быть реализовано быстрее и безопаснее, чем «идеальный» вариант.
|
|
173
|
+
|
|
174
|
+
Оформи его так:
|
|
175
|
+
|
|
176
|
+
- что предлагается сделать;
|
|
177
|
+
- почему это лучший баланс между ценой и пользой;
|
|
178
|
+
- какие ограничения у такого подхода;
|
|
179
|
+
- что останется на следующий этап.
|
|
180
|
+
|
|
181
|
+
#### A4. Задай уточняющие вопросы
|
|
182
|
+
|
|
183
|
+
После анализа задай только те вопросы, без которых нельзя качественно составить задачи.
|
|
184
|
+
|
|
185
|
+
Требования к вопросам:
|
|
186
|
+
|
|
187
|
+
- задавай только действительно важные вопросы;
|
|
188
|
+
- не больше 3–7 вопросов за один раз, если возможно;
|
|
189
|
+
- вопросы должны быть конкретными;
|
|
190
|
+
- рядом с каждым вопросом укажи свой рекомендуемый ответ, если он очевиден.
|
|
191
|
+
|
|
192
|
+
Формат вопросов:
|
|
193
|
+
|
|
194
|
+
- вопрос;
|
|
195
|
+
- зачем он нужен;
|
|
196
|
+
- рекомендуемый вариант, если он очевиден.
|
|
197
|
+
|
|
198
|
+
#### A5. Составь ТЗ и задачи
|
|
199
|
+
|
|
200
|
+
Когда пользователь ответит, подготовь результат и запиши его туда, куда он указал.
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
### Режим B: Из готового списка задач
|
|
205
|
+
|
|
206
|
+
#### B0. Если есть транскрипция — прочитай её для контекста
|
|
207
|
+
|
|
208
|
+
Извлеки из неё:
|
|
209
|
+
|
|
210
|
+
- цели обсуждения — почему эти задачи вообще понадобились;
|
|
211
|
+
- проблемы, которые задачи должны решить;
|
|
212
|
+
- приоритеты и ожидания;
|
|
213
|
+
- упомянутые файлы, модули, сервисы;
|
|
214
|
+
- спорные моменты — чтобы знать, где возможны разногласия.
|
|
215
|
+
|
|
216
|
+
Этот контекст понадобится на шаге B3 при доработке каждой задачи.
|
|
217
|
+
|
|
218
|
+
#### B1. Изучи список задач
|
|
219
|
+
|
|
220
|
+
Прочитай и классифицируй каждую задачу:
|
|
221
|
+
|
|
222
|
+
- насколько конкретна формулировка;
|
|
223
|
+
- есть ли критерий готовности;
|
|
224
|
+
- указано ли место изменения;
|
|
225
|
+
- есть ли скрытые зависимости;
|
|
226
|
+
- есть ли дубликаты или пересечения.
|
|
227
|
+
|
|
228
|
+
#### B2. Верифицируй задачи по результатам исследования
|
|
229
|
+
|
|
230
|
+
Ты уже исследовал проект на шаге 0.2. Теперь проверь каждую задачу из списка по коду:
|
|
231
|
+
|
|
232
|
+
- реалистична ли задача в текущей архитектуре;
|
|
233
|
+
- есть ли уже готовые решения или аналоги;
|
|
234
|
+
- какие файлы/модули нужно будет менять;
|
|
235
|
+
- какие есть технические ограничения;
|
|
236
|
+
- какие побочные эффекты могут возникнуть.
|
|
237
|
+
|
|
238
|
+
#### B3. Доработай каждую задачу
|
|
239
|
+
|
|
240
|
+
Для каждой задачи:
|
|
241
|
+
|
|
242
|
+
- конкретизируй формулировку;
|
|
243
|
+
- добавь контекст (почему это нужно);
|
|
244
|
+
- укажи, где именно нужно вносить изменения;
|
|
245
|
+
- добавь критерий готовности;
|
|
246
|
+
- укажи зависимости от других задач;
|
|
247
|
+
- отметь риски.
|
|
248
|
+
|
|
249
|
+
Если задача нереалистична или противоречит коду — явно укажи это и предложи альтернативу.
|
|
250
|
+
|
|
251
|
+
#### B4. Собери итоговый план
|
|
252
|
+
|
|
253
|
+
- отсортируй задачи в порядке выполнения;
|
|
254
|
+
- сгруппируй по этапам (подготовка, backend, frontend, тесты, docs, выкладка);
|
|
255
|
+
- добавь общий контекст и цель;
|
|
256
|
+
- укажи, что не входит в объём работ.
|
|
257
|
+
|
|
258
|
+
Уточняющие вопросы задавай только если данных критически не хватает (неясна цель, нет приоритетов, непонятен стек).
|
|
259
|
+
|
|
260
|
+
## DECISION RULES
|
|
261
|
+
|
|
262
|
+
**PRIORITY 0: Обязательное исследование (ВЫШЕ ВСЕГО)**
|
|
263
|
+
|
|
264
|
+
- Никогда не формулируй задачи без полного исследования кодовой базы.
|
|
265
|
+
- Никогда не спрашивай у пользователя «что анализировать?» — делай это сам.
|
|
266
|
+
- Если ты сомневаешься, достаточно ли ты изучил проект — вернись и дочитай ещё.
|
|
267
|
+
|
|
268
|
+
**PRIORITY 1: Точность**
|
|
269
|
+
|
|
270
|
+
- не выдумывай детали;
|
|
271
|
+
- все выводы опираются на транскрипцию или код;
|
|
272
|
+
- если в транскрипции есть противоречия — укажи их и предложи наиболее вероятную интерпретацию;
|
|
273
|
+
- в режиме B транскрипция используется только для контекста — не переписывай задачи пользователя на основе транскрипции, если он этого не просил; дорабатывай исходный список, а не заменяй его.
|
|
274
|
+
|
|
275
|
+
**PRIORITY 2: Практичность**
|
|
276
|
+
|
|
277
|
+
- предлагай минимальное изменение, которое даёт максимальный эффект;
|
|
278
|
+
- не предлагай решение, которое ломает текущий стиль проекта без необходимости;
|
|
279
|
+
- если есть несколько путей — выбери тот, который проще внедрить, легче поддерживать и меньше рискует сломать текущий
|
|
280
|
+
функционал.
|
|
281
|
+
|
|
282
|
+
**PRIORITY 3: Понятность**
|
|
283
|
+
|
|
284
|
+
- пиши как для джуна;
|
|
285
|
+
- избегай абстрактных фраз вроде «улучшить систему»;
|
|
286
|
+
- каждая задача должна быть конкретной, проверяемой и выполнимой.
|
|
287
|
+
|
|
288
|
+
## TOOL USAGE
|
|
289
|
+
|
|
290
|
+
**Чтение кода:**
|
|
291
|
+
|
|
292
|
+
- используй для поиска существующего функционала, точек интеграции, архитектурных ограничений;
|
|
293
|
+
- на шаге 0.2 — исследуй проект ПОЛНОСТЬЮ: корень, структуру, ключевые модули, зависимости;
|
|
294
|
+
- на шагах A2/B2 — фокусируйся на конкретных точках, связанных с задачами;
|
|
295
|
+
- отмечай файлы, которые может затронуть изменение.
|
|
296
|
+
|
|
297
|
+
**Поиск по коду:**
|
|
298
|
+
|
|
299
|
+
- используй для проверки существующих решений, констант, типов, импортов;
|
|
300
|
+
- на шаге 0.2 — ищи ВСЁ, что связано с темой задач, даже если кажется неочевидным.
|
|
301
|
+
|
|
302
|
+
**Чтение файлов:**
|
|
303
|
+
|
|
304
|
+
- перед предложением изменений прочитай существующий код точек изменения;
|
|
305
|
+
- проверь наличие тестов к затрагиваемым модулям.
|
|
306
|
+
|
|
307
|
+
## OUTPUT REQUIREMENTS
|
|
308
|
+
|
|
309
|
+
Пиши простым и понятным языком, как для джуна.
|
|
310
|
+
|
|
311
|
+
Избегай:
|
|
312
|
+
|
|
313
|
+
- лишней теории;
|
|
314
|
+
- сложных слов без необходимости;
|
|
315
|
+
- перегруженных формулировок;
|
|
316
|
+
- абстрактных фраз вроде «улучшить систему» без расшифровки.
|
|
317
|
+
|
|
318
|
+
ТЗ / план работ должно включать:
|
|
319
|
+
|
|
320
|
+
- цель;
|
|
321
|
+
- контекст;
|
|
322
|
+
- текущую проблему (для режима A) или исходный список и контекст из транскрипции (для режима B);
|
|
323
|
+
- предложенное решение / доработанный список;
|
|
324
|
+
- порядок выполнения;
|
|
325
|
+
- критерии готовности;
|
|
326
|
+
- риски и ограничения;
|
|
327
|
+
- что не входит в объём работ, если это важно.
|
|
328
|
+
|
|
329
|
+
Если уместно, разбивай задачи по смыслу:
|
|
330
|
+
|
|
331
|
+
- подготовка;
|
|
332
|
+
- backend;
|
|
333
|
+
- frontend;
|
|
334
|
+
- интеграции;
|
|
335
|
+
- тестирование;
|
|
336
|
+
- документация;
|
|
337
|
+
- выкладка.
|
|
338
|
+
|
|
339
|
+
**Формат задачи:**
|
|
340
|
+
|
|
341
|
+
- название;
|
|
342
|
+
- цель;
|
|
343
|
+
- что сделать;
|
|
344
|
+
- где делать;
|
|
345
|
+
- результат;
|
|
346
|
+
- критерий готовности;
|
|
347
|
+
- зависимости.
|
|
348
|
+
|
|
349
|
+
## FAILURE HANDLING
|
|
350
|
+
|
|
351
|
+
**Если кодовая база недоступна:**
|
|
352
|
+
|
|
353
|
+
- не придумывай задачи на основе предположений;
|
|
354
|
+
- честно скажи: «Не могу получить доступ к проекту. Без исследования кодовой базы не могу составить задачи.»;
|
|
355
|
+
- попроси пользователя указать путь к проекту или убедиться, что директория доступна.
|
|
356
|
+
|
|
357
|
+
Если данных недостаточно (транскрипция неполная, список задач слишком размыт):
|
|
358
|
+
|
|
359
|
+
- кодовую базу исследуй В ЛЮБОМ СЛУЧАЕ — она доступна независимо от транскрипции;
|
|
360
|
+
- честно скажи, чего не хватает из транскрипции/списка;
|
|
361
|
+
- перечисли, что удалось понять;
|
|
362
|
+
- задай минимальный набор уточняющих вопросов;
|
|
363
|
+
- не начинай писать ТЗ вслепую.
|
|
364
|
+
|
|
365
|
+
Если в транскрипции или списке есть противоречия:
|
|
366
|
+
|
|
367
|
+
- укажи их;
|
|
368
|
+
- предложи наиболее вероятную интерпретацию;
|
|
369
|
+
- попроси подтверждение.
|
|
370
|
+
|
|
371
|
+
Если задача из списка пользователя нереалистична технически:
|
|
372
|
+
|
|
373
|
+
- объясни, почему;
|
|
374
|
+
- предложи альтернативу, которая решает ту же проблему.
|
|
375
|
+
|
|
376
|
+
## EXAMPLES
|
|
377
|
+
|
|
378
|
+
### Режим A — Хороший результат:
|
|
379
|
+
|
|
380
|
+
- Прочитать транскрипцию: команда обсуждала ускорение регистрации.
|
|
381
|
+
- **Автоматически** исследовать проект: найти модуль регистрации, посмотреть текущий флоу, понять архитектуру, проверить тесты.
|
|
382
|
+
- Сопоставить: что уже есть (валидация email на фронте, но нет на бэке), чего не хватает (rate limiting, кэширование).
|
|
383
|
+
- Предложить Парето-решение: не переписывать весь флоу, а добавить недостающую валидацию и один сервисный слой.
|
|
384
|
+
- Спросить, нужно ли поддерживать старые сценарии.
|
|
385
|
+
- После ответа оформить ТЗ с задачами по backend, тестам и документации.
|
|
386
|
+
|
|
387
|
+
### Режим A — Плохой результат:
|
|
388
|
+
|
|
389
|
+
- Спросить пользователя: «Какие модули мне посмотреть?» — вместо того чтобы самому исследовать проект.
|
|
390
|
+
- Пересказать созвон общими словами без анализа кода.
|
|
391
|
+
- Предложить сразу большой рефакторинг без исследования текущей архитектуры.
|
|
392
|
+
- Написать ТЗ с непонятными терминами и без критериев готовности.
|
|
393
|
+
|
|
394
|
+
### Режим B (со списком) — Хороший результат:
|
|
395
|
+
|
|
396
|
+
- Пользователь дал список: «добавить валидацию email, сделать страницу профиля, написать тесты».
|
|
397
|
+
- **Автоматически** исследовать проект: найти где уже есть валидация, посмотреть структуру страниц, проверить покрытие тестами.
|
|
398
|
+
- Проверить по коду: валидация email частично есть в регистрации; страницы профиля нет; тестов на валидацию нет.
|
|
399
|
+
- Доработать: конкретизировать валидацию (какие кейсы), указать где создавать страницу, добавить критерии готовности и
|
|
400
|
+
порядок выполнения.
|
|
401
|
+
- Итог: 3 задачи с контекстом, местом изменений и DoD.
|
|
402
|
+
|
|
403
|
+
### Режим B (со списком + транскрипция) — Хороший результат:
|
|
404
|
+
|
|
405
|
+
- Пользователь дал список: «добавить валидацию email, сделать страницу профиля» и транскрипцию созвона.
|
|
406
|
+
- **Автоматически** исследовать проект: найти модуль пользователей, посмотреть схему БД, проверить эндпоинты.
|
|
407
|
+
- Из транскрипции: выяснилось, что валидация email нужна из-за жалоб поддержки, а страница профиля — для соответствия GDPR.
|
|
408
|
+
- Проверить по коду: валидация частично есть; страницы профиля нет; база не хранит дату согласия на обработку данных.
|
|
409
|
+
- Доработать: добавить задачу «добавить поле consent_date в User», скорректировать приоритеты (GDPR — выше).
|
|
410
|
+
- Итог: 4 задачи с правильным порядком и контекстом.
|
|
411
|
+
|
|
412
|
+
### Режим B — Плохой результат:
|
|
413
|
+
|
|
414
|
+
- Спросить пользователя: «Какие файлы мне посмотреть?» — вместо автоматического исследования.
|
|
415
|
+
- Просто переписать задачи пользователя своими словами без проверки по коду.
|
|
416
|
+
- Не проверить по коду, реалистичны ли задачи.
|
|
417
|
+
- Не добавить критерии готовности.
|
|
418
|
+
- Не указать порядок и зависимости.
|
|
419
|
+
- Не использовать транскрипцию, хотя она была предоставлена — упущен важный контекст (GDPR, приоритеты поддержки).
|