@jakerdy/agentica 0.0.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.
Files changed (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +291 -0
  3. package/dist/cli.js +64 -0
  4. package/dist/cli.js.map +27 -0
  5. package/globals/anti-spaghetti.md +65 -0
  6. package/globals/lang-python.md +105 -0
  7. package/globals/lang-typescript.md +61 -0
  8. package/globals/use-agentica.md +127 -0
  9. package/package.json +55 -0
  10. package/prompts/architect.prompt.md +302 -0
  11. package/prompts/change.prompt.md +915 -0
  12. package/prompts/create.prompt.md +953 -0
  13. package/prompts/implement.prompt.md +389 -0
  14. package/prompts/init.prompt.md +123 -0
  15. package/prompts/readme.prompt.md +355 -0
  16. package/prompts/refactor.prompt.md +712 -0
  17. package/prompts/reverse.prompt.md +777 -0
  18. package/prompts/tasks.prompt.md +1041 -0
  19. package/prompts/validate.prompt.md +480 -0
  20. package/stacks/python/cli/product.md +41 -0
  21. package/stacks/python/cli/structure.md +40 -0
  22. package/stacks/python/cli/tech.md +29 -0
  23. package/stacks/python/gui/product.md +41 -0
  24. package/stacks/python/gui/structure.md +41 -0
  25. package/stacks/python/gui/tech.md +29 -0
  26. package/stacks/python/lib/product.md +41 -0
  27. package/stacks/python/lib/structure.md +34 -0
  28. package/stacks/python/lib/tech.md +30 -0
  29. package/stacks/python/monorepo/product.md +41 -0
  30. package/stacks/python/monorepo/structure.md +29 -0
  31. package/stacks/python/monorepo/tech.md +30 -0
  32. package/stacks/typescript/cli/product.md +41 -0
  33. package/stacks/typescript/cli/structure.md +34 -0
  34. package/stacks/typescript/cli/tech.md +31 -0
  35. package/stacks/typescript/lib/product.md +41 -0
  36. package/stacks/typescript/lib/structure.md +33 -0
  37. package/stacks/typescript/lib/tech.md +31 -0
  38. package/stacks/typescript/monorepo/product.md +41 -0
  39. package/stacks/typescript/monorepo/structure.md +34 -0
  40. package/stacks/typescript/monorepo/tech.md +47 -0
  41. package/stacks/typescript/server/product.md +41 -0
  42. package/stacks/typescript/server/structure.md +35 -0
  43. package/stacks/typescript/server/tech.md +30 -0
  44. package/stacks/typescript/spa/product.md +41 -0
  45. package/stacks/typescript/spa/structure.md +36 -0
  46. package/stacks/typescript/spa/tech.md +29 -0
  47. package/templates/architecture/AR-0000 - /320/220/321/200/321/205/320/270/321/202/320/265/320/272/321/202/321/203/321/200/320/260 /321/204/320/270/321/207/320/270 /320/270/320/273/320/270 /320/274/320/276/320/264/321/203/320/273/321/217 XXX.md" +136 -0
  48. package/templates/change/CH-0000 - /320/230/320/267/320/274/320/265/320/275/320/265/320/275/320/270/320/265 /320/262 /321/204/320/270/321/207/320/265 /320/270/320/273/320/270 /320/274/320/276/320/264/321/203/320/273/320/265 XXX.md" +33 -0
  49. package/templates/feature/FT-0000 - /320/235/320/260/320/267/320/262/320/260/320/275/320/270/320/265 /321/204/320/270/321/207/320/270 /320/270/320/273/320/270 /320/274/320/276/320/264/321/203/320/273/321/217 XXX/product.md" +121 -0
  50. package/templates/feature/FT-0000 - /320/235/320/260/320/267/320/262/320/260/320/275/320/270/320/265 /321/204/320/270/321/207/320/270 /320/270/320/273/320/270 /320/274/320/276/320/264/321/203/320/273/321/217 XXX/tasks.md" +38 -0
  51. package/templates/feature/FT-0000 - /320/235/320/260/320/267/320/262/320/260/320/275/320/270/320/265 /321/204/320/270/321/207/320/270 /320/270/320/273/320/270 /320/274/320/276/320/264/321/203/320/273/321/217 XXX/tech.md" +155 -0
  52. package/templates/feature/FT-0000 - /320/235/320/260/320/267/320/262/320/260/320/275/320/270/320/265 /321/204/320/270/321/207/320/270 /320/270/320/273/320/270 /320/274/320/276/320/264/321/203/320/273/321/217 XXX/validation.md" +31 -0
@@ -0,0 +1,480 @@
1
+ ---
2
+ name: agentica.validate
3
+ description: Семантическая и инструментальная валидация реализации спецификации
4
+ ---
5
+
6
+ ## Ввод пользователя
7
+
8
+ ```text
9
+ $ARGUMENTS
10
+ ```
11
+
12
+ Ты **ОБЯЗАН** учесть ввод пользователя (аргументы и контекст) перед тем как продолжить.
13
+
14
+ ## Цель и принципы работы
15
+
16
+ Твоя задача — проверить что реализация фичи (FT-XXXX) **соответствует спецификации** на продуктовом и техническом уровне.
17
+ Работай линейно: **Валидация контекста → Чтение критериев → Семантическая проверка → Инструментальная проверка → Отчёт**.
18
+
19
+ Хорошая валидация — это не формальная "галочка", а **детальный анализ** соответствия кода требованиям с конкретными примерами и рекомендациями.
20
+
21
+ **Ключевые принципы:**
22
+ 1. **Два уровня проверки:** Семантическая (соответствие спеке) + Инструментальная (тесты, линтер, типы).
23
+ 2. **Memory как контекст:** Используй факты из `memory`, собранные на этапах `create`, `tasks`, `implement`.
24
+ 3. **Конкретика:** Указывай файлы, строки, примеры — не общие фразы.
25
+ 4. **Конструктивность:** Если есть проблемы — предлагай конкретные шаги для исправления.
26
+ 5. **Полнота:** Проверяй все критерии из `validation.md`, не пропускай.
27
+
28
+ ### Глобальные запреты (Safety Guards)
29
+
30
+ Останови выполнение и не продолжай работу, если:
31
+ 1. Спецификация FT-XXXX **не существует** (остановись и предложи пользователю воспользоваться агентом: `agentica.create`).
32
+ 2. Файл `validation.md` **пустой или отсутствует** (остановись и предложи пользователю воспользоваться агентом: `agentica.tasks`).
33
+ 3. Файл `tasks.md` **пустой** — непонятно что должно быть реализовано (остановись и предложи пользователю воспользоваться агентом: `agentica.tasks`).
34
+ 4. Реализация **не завершена** — есть незакрытые задачи в `tasks.md` (остановись и предложи пользователю воспользоваться агентом: `agentica.implement`).
35
+ 5. Запрос требует **изменения кода** (это валидация, а не реализация).
36
+
37
+ В случае остановки: объясни причину и предложи корректную команду.
38
+
39
+ ## Топология и размещение файлов
40
+
41
+ **Структура спецификации:**
42
+ ```
43
+ FT-XXXX - <Название фичи>/
44
+ ├── product.md # Продуктовое описание (ЧТО и ЗАЧЕМ)
45
+ ├── tech.md # Техническое решение (КАК)
46
+ ├── research.md # Исследование библиотек (опционально)
47
+ ├── tasks.md # Задачи для реализации (статус выполнения)
48
+ └── validation.md # Критерии приемки — ОСНОВА ДЛЯ ПРОВЕРКИ
49
+ ```
50
+
51
+ **Отчёт валидации:**
52
+ После проверки создай файл:
53
+ ```
54
+ FT-XXXX - <Название фичи>/
55
+ └── validation-report.md # Итоговый отчёт валидации
56
+ ```
57
+
58
+ ## Фаза 1: Валидация контекста
59
+
60
+ ### Шаг 1.1: Поиск спецификации FT-XXXX
61
+
62
+ Определи номер целевой спецификации:
63
+
64
+ **Вариант A: Явное указание**
65
+ ```text
66
+ /agentica.validate --id FT-0012
67
+ ```
68
+
69
+ **Вариант B: Из контекста git ветки**
70
+ ```bash
71
+ git branch --show-current
72
+ # Извлеки FT-XXXX из паттерна: <scope-id>/FT-XXXX-<slug>
73
+ ```
74
+
75
+ **Вариант C: Из открытого файла**
76
+ Проверь путь открытого файла — если содержит `.agentica/features/FT-XXXX`, извлеки номер.
77
+
78
+ **Вариант D: Интерактивный выбор**
79
+ Если контекста недостаточно — просканируй `.agentica/features/` и задай вопрос через интсрумент `ask_questions`.
80
+
81
+ ### Шаг 1.2: Проверка готовности к валидации
82
+
83
+ Проверь наличие обязательных файлов:
84
+ 1. `product.md` — **ОБЯЗАТЕЛЬНО**. Если пустой → STOP.
85
+ 2. `tech.md` — **ОБЯЗАТЕЛЬНО**. Если пустой → STOP.
86
+ 3. `tasks.md` — **ОБЯЗАТЕЛЬНО**. Если пустой → STOP.
87
+ 4. `validation.md` — **ОБЯЗАТЕЛЬНО**. Если пустой → STOP.
88
+
89
+ ### Шаг 1.3: Проверка статуса реализации
90
+
91
+ Прочитай `tasks.md` и проверь:
92
+ - Все ли фазы отмечены как завершённые?
93
+ - Есть ли незакрытые задачи ([ ] вместо [x])?
94
+
95
+ Если реализация не завершена — сообщи об этом и предложи сначала завершить `agentica.implement`.
96
+
97
+ ## Фаза 2: Чтение критериев валидации
98
+
99
+ ### Шаг 2.1: Чтение спецификации
100
+
101
+ Прочитай полностью (используй параллельное чтение):
102
+ 1. `product.md` — продуктовый контекст, user stories
103
+ 2. `tech.md` — техническое решение, архитектурные решения
104
+ 3. `tasks.md` — план реализации и статус задач
105
+ 4. `validation.md` — **ОСНОВНОЙ ДОКУМЕНТ** с критериями приемки
106
+
107
+ ### Шаг 2.2: Извлечение контекста из Memory
108
+
109
+ IDE автоматически предоставит доступ к релевантным фактам из `memory`, собранным на этапах `create`, `tasks`, `implement`.
110
+
111
+ Используй эти факты для понимания архитектурного контекста и интеграционных точек.
112
+
113
+ ### Шаг 2.3: Структура validation.md
114
+
115
+ Документ `validation.md` обычно содержит следующие секции:
116
+
117
+ **1. Продуктовые критерии:**
118
+ - User Stories: Выполнены ли все пользовательские сценарии?
119
+ - Use Cases: Покрыты ли все случаи использования?
120
+ - Edge Cases: Обработаны ли граничные случаи?
121
+
122
+ **2. Технические критерии:**
123
+ - Архитектура: Соответствует ли код архитектурным решениям из `tech.md`?
124
+ - Интеграция: Корректна ли интеграция с существующими модулями?
125
+ - Code Quality: Соблюдены ли стандарты качества?
126
+
127
+ **3. Критерии качества:**
128
+ - Тесты: Покрытие, проходимость
129
+ - Документация: Наличие комментариев, примеров
130
+ - Производительность: Соответствие нефункциональным требованиям
131
+
132
+ Извлеки все критерии в структурированный список для проверки.
133
+
134
+ ## Фаза 3: Семантическая валидация
135
+
136
+ Для каждого критерия из `validation.md` выполни проверку.
137
+
138
+ ### Тип проверки 1: User Story / Use Case
139
+
140
+ **Для каждого сценария:**
141
+ 1. Найди реализацию в коде через `semantic_search` или `grep_search`
142
+ 2. Прочитай релевантные файлы через `read_file`
143
+ 3. Проверь что все шаги сценария реализованы
144
+ 4. Проверь что есть тесты для этого сценария
145
+
146
+ **Пример:**
147
+ ```
148
+ Критерий: "Пользователь может загрузить CSV файл до 100MB"
149
+ Проверка:
150
+ - ✓ Найден FileValidator.validateSize() в src/upload/validators/file-validator.ts:45
151
+ - ✓ Проверка размера: maxSize = 100 * 1024 * 1024
152
+ - ✓ Есть тест: tests/upload/validators/file-validator.test.ts:23 "should reject file larger than 100MB"
153
+ Статус: PASS
154
+ ```
155
+
156
+ ### Тип проверки 2: Архитектурное решение
157
+
158
+ **Для каждого архитектурного требования из `tech.md`:**
159
+ 1. Найди реализацию компонента
160
+ 2. Проверь что структура соответствует описанию
161
+ 3. Проверь что использованы правильные паттерны
162
+ 4. Проверь что интеграция выполнена корректно
163
+
164
+ **Пример:**
165
+ ```
166
+ Критерий: "BatchUploadService должен использовать Factory pattern"
167
+ Проверка:
168
+ - ✓ ServiceFactory создаёт экземпляры: src/factories/service-factory.ts:67
169
+ - ✓ BatchUploadService регистрирован в фабрике
170
+ - ✓ Dependency Injection через конструктор
171
+ Статус: PASS
172
+ ```
173
+
174
+ ### Тип проверки 3: Edge Case
175
+
176
+ **Для каждого граничного случая:**
177
+ 1. Найди обработку в коде
178
+ 2. Проверь что есть соответствующий тест
179
+ 3. Проверь что поведение соответствует спецификации
180
+
181
+ **Пример:**
182
+ ```
183
+ Критерий: "При ошибке парсинга CSV показывать номер строки и описание ошибки"
184
+ Проверка:
185
+ - ✓ CSVParser.parse() возвращает ParseError с lineNumber: src/parsers/csv-parser.ts:89
186
+ - ✓ Ошибка содержит message и context
187
+ - ✓ Есть тест: tests/parsers/csv-parser.test.ts:56 "should return error with line number on malformed CSV"
188
+ Статус: PASS
189
+ ```
190
+
191
+ ### Тип проверки 4: Интеграция
192
+
193
+ **Для каждой точки интеграции:**
194
+ 1. Проверь что модули правильно подключены
195
+ 2. Проверь что контракты соблюдены
196
+ 3. Проверь что есть integration-тесты
197
+
198
+ ### Формат результата проверки
199
+
200
+ Для каждого критерия формируй структурированную запись:
201
+
202
+ ```markdown
203
+ #### [ID] <Название критерия>
204
+
205
+ **Описание:** <Что должно быть реализовано>
206
+
207
+ **Проверка:**
208
+ - <Пункт 1>: <Статус> <Ссылка на код>
209
+ - <Пункт 2>: <Статус> <Ссылка на код>
210
+ ...
211
+
212
+ **Статус:** PASS | FAIL | PARTIAL
213
+
214
+ **Комментарий:** <Дополнительные замечания, если есть>
215
+ ```
216
+
217
+ Статусы:
218
+ - **PASS** — критерий полностью выполнен
219
+ - **FAIL** — критерий не выполнен
220
+ - **PARTIAL** — критерий выполнен частично
221
+
222
+ ## Фаза 4: Инструментальная валидация
223
+
224
+ ### Шаг 4.1: Запуск тестов
225
+
226
+ ```bash
227
+ bun test
228
+ ```
229
+
230
+ Проверь:
231
+ - Все ли тесты проходят?
232
+ - Какое покрытие кода (coverage)?
233
+ - Есть ли тесты для всех новых компонентов?
234
+
235
+ ### Шаг 4.2: Линтер
236
+
237
+ ```bash
238
+ bun lint
239
+ ```
240
+
241
+ Проверь:
242
+ - Нет ли ошибок линтера?
243
+ - Нет ли warnings, которые нужно исправить?
244
+
245
+ ### Шаг 4.3: Проверка типов (если TypeScript)
246
+
247
+ ```bash
248
+ bun typecheck
249
+ bun typecheck:tests
250
+ # или
251
+ tsc --noEmit
252
+ ```
253
+
254
+ Проверь отсутствие ошибок типизации.
255
+
256
+ ### Шаг 4.4: Сборка проекта
257
+
258
+ ```bash
259
+ bun run build
260
+ ```
261
+
262
+ Проверь что проект собирается без ошибок.
263
+
264
+ ### Шаг 4.5: Анализ кодовой базы
265
+
266
+ Используй `get_errors` для проверки текущих проблем в IDE.
267
+
268
+ ## Фаза 5: Генерация отчёта
269
+
270
+ ### Шаг 5.1: Структура отчёта
271
+
272
+ Создай файл `validation-report.md` в директории спецификации:
273
+
274
+ ````markdown
275
+ # Validation Report: FT-XXXX - <Название фичи>
276
+
277
+ **Дата проверки:** <YYYY-MM-DD>
278
+ **Проверяющий:** GitHub Copilot (agentica.validate)
279
+
280
+ ---
281
+
282
+ ## 📊 Сводка
283
+
284
+ | Категория | Всего | ✓ Pass | ⚠ Partial | ✗ Fail |
285
+ |:----------|:------|:-------|:----------|:-------|
286
+ | Продуктовые критерии | X | Y | Z | W |
287
+ | Технические критерии | X | Y | Z | W |
288
+ | Критерии качества | X | Y | Z | W |
289
+ | **ИТОГО** | **X** | **Y** | **Z** | **W** |
290
+
291
+ **Общий статус:** PASS | PARTIAL | FAIL
292
+
293
+ ---
294
+
295
+ ## ✓ Продуктовые критерии
296
+
297
+ ### User Stories
298
+
299
+ #### [US-01] <Название>
300
+ **Описание:** ...
301
+ **Проверка:**
302
+ - ✓ ...
303
+ **Статус:** PASS
304
+
305
+ ### Use Cases
306
+
307
+ #### [UC-01] <Название>
308
+ ...
309
+
310
+ ### Edge Cases
311
+
312
+ #### [EC-01] <Название>
313
+ ...
314
+
315
+ ---
316
+
317
+ ## ✓ Технические критерии
318
+
319
+ ### Архитектура
320
+
321
+ #### [ARCH-01] <Название>
322
+ ...
323
+
324
+ ### Интеграция
325
+
326
+ #### [INT-01] <Название>
327
+ ...
328
+
329
+ ### Code Quality
330
+
331
+ #### [CQ-01] <Название>
332
+ ...
333
+
334
+ ---
335
+
336
+ ## ✓ Критерии качества
337
+
338
+ ### Тесты
339
+
340
+ **Результаты:**
341
+ - Unit тесты: X passed, Y total
342
+ - Integration тесты: X passed, Y total
343
+ - E2E тесты: X passed, Y total (если есть)
344
+ - Coverage: X%
345
+
346
+ **Статус:** PASS | FAIL
347
+
348
+ ### Линтер
349
+
350
+ **Результаты:**
351
+ - Errors: X
352
+ - Warnings: Y
353
+
354
+ **Статус:** PASS | FAIL
355
+
356
+ ### typecheck
357
+
358
+ **Результаты:**
359
+ - Type errors: X
360
+
361
+ **Статус:** PASS | FAIL
362
+
363
+ ### Build
364
+
365
+ **Результаты:**
366
+ - Build: SUCCESS | FAIL
367
+
368
+ **Статус:** PASS | FAIL
369
+
370
+ ---
371
+
372
+ ## 🎯 Итоговая оценка
373
+
374
+ <Общий вывод: выполнена ли спецификация полностью, частично или есть критические проблемы>
375
+
376
+ ---
377
+
378
+ ## 🔧 Рекомендации
379
+
380
+ ### Критичные (требуют исправления)
381
+
382
+ - [ ] <Проблема>: <Описание> → <Что делать>
383
+
384
+ ### Некритичные (рекомендуется исправить)
385
+
386
+ - [ ] <Проблема>: <Описание> → <Что делать>
387
+
388
+ ### Улучшения (optional)
389
+
390
+ - [ ] <Идея для улучшения>
391
+
392
+ ---
393
+
394
+ ## 📁 Проверенные файлы
395
+
396
+ <Список основных файлов, которые были проверены>
397
+
398
+ ---
399
+
400
+ ## 🔄 Следующие шаги
401
+
402
+ <Рекомендации что делать дальше>
403
+ ````
404
+
405
+ ### Шаг 5.2: Определение итогового статуса
406
+
407
+ **PASS** — Спецификация полностью реализована:
408
+ - Все критерии PASS
409
+ - Все тесты проходят
410
+ - Линтер и typecheck без ошибок
411
+ - Нет критичных проблем
412
+
413
+ **PARTIAL** — Спецификация реализована с замечаниями:
414
+ - Большинство критериев PASS, но есть PARTIAL или несколько FAIL
415
+ - Есть некритичные проблемы, которые нужно исправить
416
+ - Основной функционал работает
417
+
418
+ **FAIL** — Спецификация не реализована:
419
+ - Множество критериев FAIL
420
+ - Критичные функции не работают
421
+ - Тесты падают
422
+ - Есть ошибки сборки
423
+
424
+ ### Шаг 5.3: Формирование рекомендаций
425
+
426
+ **Если статус PASS:**
427
+ ```
428
+ ✅ Спецификация FT-XXXX полностью реализована и валидирована!
429
+
430
+ Реализация соответствует всем продуктовым и техническим требованиям.
431
+ Рекомендуется:
432
+ - Создать Pull Request для ревью
433
+ - Обновить документацию (если требуется) через /agentica.readme
434
+ - Закрыть feature-ветку после мёржа
435
+ ```
436
+
437
+ **Если статус PARTIAL:**
438
+ ```
439
+ ⚠️ Спецификация FT-XXXX реализована с замечаниями.
440
+
441
+ Основной функционал работает, но есть проблемы:
442
+ <Список критичных проблем>
443
+
444
+ Рекомендуется:
445
+ - Исправить критичные проблемы
446
+ - Запустить валидацию повторно: /agentica.validate --id FT-XXXX
447
+ - После исправления создать PR
448
+ ```
449
+
450
+ **Если статус FAIL:**
451
+ ```
452
+ ❌ Спецификация FT-XXXX не прошла валидацию.
453
+
454
+ Критичные проблемы:
455
+ <Список критичных проблем>
456
+
457
+ Рекомендуется:
458
+ - Вернуться к реализации: /agentica.implement --id FT-XXXX
459
+ - Сфокусироваться на критичных критериях
460
+ - Исправить проблемы с тестами и сборкой
461
+ ```
462
+
463
+ ## Дополнительные рекомендации
464
+
465
+ ### Как проводить семантическую проверку
466
+
467
+ 1. **Не полагайся только на названия:** Прочитай реализацию, убедись что логика соответствует требованиям.
468
+ 2. **Проверяй edge cases:** Именно там обычно скрываются баги.
469
+ 3. **Смотри на тесты:** Наличие теста не гарантирует его качество. Проверь что тест действительно проверяет критерий.
470
+ 4. **Сравнивай с tech.md:** Архитектурные решения должны быть реализованы как описано.
471
+
472
+ ### Как формулировать рекомендации
473
+
474
+ - **Будь конкретным:** Не "улучшить тесты", а "добавить тест для случая пустого CSV файла"
475
+ - **Указывай приоритет:** Критичное / Некритичное / Улучшение
476
+ - **Предлагай решение:** Не только "что не так", но и "как исправить"
477
+
478
+ ---
479
+
480
+ **Помни:** Твоя задача — объективно оценить качество реализации и помочь довести её до продакшн-ready состояния. Не будь слишком строгим, но и не пропускай реальные проблемы.
@@ -0,0 +1,41 @@
1
+ # Project Name
2
+
3
+ Консольное приложение на Python для ...
4
+
5
+ ## Цели проекта
6
+
7
+ - Цель 1: ...
8
+ - Цель 2: ...
9
+ - Цель 3: ...
10
+
11
+ ## Портрет целевого пользователя
12
+
13
+ Идеальный пользователь — это:
14
+
15
+ - Профиль 1: ...
16
+ - Профиль 2: ...
17
+ - Профиль 3: ...
18
+
19
+ ## Проблемы, которые решает проект
20
+
21
+ - Проблема 1: ...
22
+ - Проблема 2: ...
23
+ - Проблема 3: ...
24
+
25
+ ## Ключевые функции
26
+
27
+ - Функция 1: ...
28
+ - Функция 2: ...
29
+ - Функция 3: ...
30
+
31
+ ## Конкуренты и аналоги
32
+
33
+ - Конкурент 1: ...
34
+ - Конкурент 2: ...
35
+ - Конкурент 3: ...
36
+
37
+ ## Ресурсы и ссылки
38
+
39
+ - Ресурс 1: ...
40
+ - Ресурс 2: ...
41
+ - Ресурс 3: ...
@@ -0,0 +1,40 @@
1
+ # Структура проекта
2
+
3
+ Проект организован следующим образом:
4
+
5
+ ```
6
+ .
7
+ ├── .agentica/ # Документы и артефакты Agentica для этого проекта
8
+ │ ├── templates/ # Шаблоны для фич/изменений/архитектурных решений
9
+ │ ├── features/ # Описания фич (требования, UX, acceptance)
10
+ │ ├── changes/ # Журнал изменений, миграции, заметки по релизам
11
+ │ ├── architecture/ # Архитектурные решения (ADR), схемы, компромиссы
12
+ │ ├── product.md # Описание проекта с продуктовой точки зрения
13
+ │ ├── structure.md # Этот файл: структура репозитория
14
+ │ └── tech.md # Технический стек, принципы и инструменты
15
+ ├── .vscode/ # Настройки VS Code (tasks, launch, settings)
16
+ ├── src/ # Исходный код
17
+ │ ├── <package_name>/ # Основной Python пакет
18
+ │ │ ├── __init__.py # Точка входа пакета (public API)
19
+ │ │ ├── __main__.py # Точка входа для `python -m <package_name>` (рекомендуется)
20
+ │ │ ├── cli.py # Точка входа CLI (main)
21
+ │ │ ├── commands/ # Подкоманды и их обработчики
22
+ │ │ │ ├── __init__.py # Экспорт подкоманд (опционально)
23
+ │ │ │ └── ... # Реализация подкоманд
24
+ │ │ ├── lib/ # Переиспользуемая логика (без I/O по возможности)
25
+ │ │ │ ├── __init__.py # Экспорт lib-слоя (опционально)
26
+ │ │ │ └── ... # Общие утилиты, доменная логика
27
+ │ │ ├── module1.py # Пример модуля
28
+ │ │ └── ... # Другие модули
29
+ │ └── main.py # Пример использования рядом с пакетом (может вызывать `<package_name>.cli`)
30
+ ├── tests/ # Тесты (unit/integration)
31
+ ├── README.md # Документация по запуску и использованию
32
+ └── pyproject.toml # Зависимости, скрипты и конфигурация инструментов
33
+ ```
34
+
35
+ ## Правила структуры
36
+
37
+ - CLI должен запускаться и как entrypoint пакета, и через `python -m <package_name>`.
38
+ - Бизнес-логика не должна жить в `commands/`: там только парсинг аргументов и вызов функций из `lib/`.
39
+ - `src/main.py` — минимальный пример запуска, без дублирования CLI.
40
+ - Архитектурные решения фиксируются в `.agentica/architecture/`.
@@ -0,0 +1,29 @@
1
+ # Technology Stack
2
+
3
+ В этом разделе описывается технологический стек, используемый в этом проекте, и принципы по подбору библиотек и инструментов.
4
+
5
+ ## Базовые технологии
6
+ - Python 3.13+
7
+ - `pyproject.toml` + hatchling (или совместимый backend)
8
+ - Ruff — линтинг/форматирование
9
+ - MyPy — типизация
10
+ - Pytest — тестирование
11
+
12
+ ## CLI
13
+ - Typer (или Click) — аргументы, help, подкоманды
14
+ - Rich — форматированный вывод и прогресс (опционально)
15
+ - Стандартизированные exit codes
16
+
17
+ ## Non-goals
18
+ - Не строим полноценный TUI, если это не ключевая ценность.
19
+ - Не дублируем бизнес-логику в обработчиках команд.
20
+
21
+ ## Качество и проверки
22
+ - Format: `ruff format .`
23
+ - Lint: `ruff check .`
24
+ - Typecheck: `mypy .`
25
+ - Tests: `pytest`
26
+
27
+ ## Зависимости
28
+ - CLI-фреймворк выбираем один (Typer *или* Click), без смеси.
29
+ - Вывод в терминал должен быть стабилен (для скриптов/CI) при необходимости.
@@ -0,0 +1,41 @@
1
+ # Project Name
2
+
3
+ GUI приложение на Python для ...
4
+
5
+ ## Цели проекта
6
+
7
+ - Цель 1: ...
8
+ - Цель 2: ...
9
+ - Цель 3: ...
10
+
11
+ ## Портрет целевого пользователя
12
+
13
+ Идеальный пользователь — это:
14
+
15
+ - Профиль 1: ...
16
+ - Профиль 2: ...
17
+ - Профиль 3: ...
18
+
19
+ ## Проблемы, которые решает проект
20
+
21
+ - Проблема 1: ...
22
+ - Проблема 2: ...
23
+ - Проблема 3: ...
24
+
25
+ ## Ключевые функции
26
+
27
+ - Функция 1: ...
28
+ - Функция 2: ...
29
+ - Функция 3: ...
30
+
31
+ ## Конкуренты и аналоги
32
+
33
+ - Конкурент 1: ...
34
+ - Конкурент 2: ...
35
+ - Конкурент 3: ...
36
+
37
+ ## Ресурсы и ссылки
38
+
39
+ - Ресурс 1: ...
40
+ - Ресурс 2: ...
41
+ - Ресурс 3: ...
@@ -0,0 +1,41 @@
1
+ # Структура проекта
2
+
3
+ Проект организован следующим образом:
4
+
5
+ ```
6
+ .
7
+ ├── .agentica/ # Документы и артефакты Agentica для этого проекта
8
+ │ ├── templates/ # Шаблоны для фич/изменений/архитектурных решений
9
+ │ ├── features/ # Описания фич и UX сценариев
10
+ │ ├── changes/ # Журнал изменений и миграции
11
+ │ ├── architecture/ # Архитектурные решения (ADR)
12
+ │ ├── product.md # Описание проекта с продуктовой точки зрения
13
+ │ ├── structure.md # Этот файл: структура репозитория
14
+ │ └── tech.md # Технический стек, принципы и инструменты
15
+ ├── .vscode/ # Настройки VS Code
16
+ ├── src/ # Исходный код
17
+ │ ├── <package_name>/ # Основной Python пакет приложения
18
+ │ │ ├── __init__.py # Точка входа пакета (public API)
19
+ │ │ ├── ui/ # UI компоненты/виджеты
20
+ │ │ │ ├── __init__.py # Экспорт UI-частей (опционально)
21
+ │ │ │ └── ... # Компоненты/виджеты
22
+ │ │ ├── app/ # Композиция приложения, bootstrap, wiring
23
+ │ │ │ ├── __init__.py # Экспорт app-слоя (опционально)
24
+ │ │ │ └── ... # Точка сборки приложения, DI, запуск
25
+ │ │ ├── core/ # Бизнес-логика и доменная модель
26
+ │ │ │ ├── __init__.py # Экспорт core-слоя (опционально)
27
+ │ │ │ └── ... # Доменные модели, use-cases
28
+ │ │ ├── module1.py # Пример модуля
29
+ │ │ └── ... # Другие модули
30
+ │ └── main.py # Пример запуска/использования рядом с пакетом
31
+ ├── tests/ # Тесты (unit/integration)
32
+ ├── assets/ # Иконки и прочие ресурсы
33
+ ├── README.md # Документация по запуску и разработке
34
+ └── pyproject.toml # Зависимости и конфигурация инструментов
35
+ ```
36
+
37
+ ## Правила структуры
38
+
39
+ - `src/main.py` отвечает за bootstrap приложения и запуск UI.
40
+ - UI (слой `ui/`) не должен содержать бизнес-правил: они живут в `core/`.
41
+ - Архитектурные решения фиксируются в `.agentica/architecture/`.