code-ai-installer 1.4.0 → 1.5.1
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/skills/design_patterns_reference/SKILL.md +694 -0
- package/.agents/skills/design_patterns_reference/agents/gemini.json +19 -0
- package/.agents/skills/design_patterns_reference/agents/skill.yaml +23 -0
- package/.agents/skills/tanstack_beast_practices/SKILL.md +3 -0
- package/AGENTS.md +136 -134
- package/agents/architect.md +55 -0
- package/dist/platforms/adapters.js +3 -3
- package/locales/en/.agents/skills/design_patterns_reference/SKILL.md +694 -0
- package/locales/en/.agents/skills/tanstack_beast_practices/SKILL.md +3 -0
- package/locales/en/AGENTS.md +2 -0
- package/locales/en/agents/architect.md +56 -1
- package/locales/en/agents/senior_full_stack.md +3 -1
- package/package.json +8 -8
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "design_patterns_reference",
|
|
3
|
+
"display_name": "Справочник паттернов проектирования",
|
|
4
|
+
"description": "Справочник паттернов проектирования с DO/DON'T примерами — SOLID, DRY/KISS/YAGNI, GoF (Strategy, Observer, Factory, Adapter, Facade, Decorator, Command, State, Template Method), архитектурные (Repository, Service Layer, DI, Event-Driven, CQRS), микросервисные (Saga, Circuit Breaker). Language-agnostic псевдокод. Используй при проектировании модулей, ревью архитектуры, или при вопросах «какой паттерн применить».",
|
|
5
|
+
"default_prompt": "Используй $design_patterns_reference, когда задача относится к навыку \"Справочник паттернов проектирования\".",
|
|
6
|
+
"triggers": [
|
|
7
|
+
"design_patterns_reference",
|
|
8
|
+
"design patterns reference",
|
|
9
|
+
"Справочник паттернов проектирования",
|
|
10
|
+
"Справочник паттернов проектирования с DO/DON'T примерами — SOLID, DRY/KISS/YAGNI, GoF (Strategy, Observer, Factory, Adapter, Facade, Decorator, Command, State, Template Method), архитектурные (Repository, Service Layer, DI, Event-Driven, CQRS), микросервисные (Saga, Circuit Breaker). Language-agnostic псевдокод. Используй при проектировании модулей, ревью архитектуры, или при вопросах «какой паттерн применить»."
|
|
11
|
+
],
|
|
12
|
+
"capabilities": [
|
|
13
|
+
"architecture",
|
|
14
|
+
"design",
|
|
15
|
+
"patterns"
|
|
16
|
+
],
|
|
17
|
+
"tools": [],
|
|
18
|
+
"implicit_invocation": true
|
|
19
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
name: "design_patterns_reference"
|
|
3
|
+
display_name: "Справочник паттернов проектирования"
|
|
4
|
+
description: "Справочник паттернов проектирования с DO/DON'T примерами — SOLID, DRY/KISS/YAGNI, GoF (Strategy, Observer, Factory, Adapter, Facade, Decorator, Command, State, Template Method), архитектурные (Repository, Service Layer, DI, Event-Driven, CQRS), микросервисные (Saga, Circuit Breaker). Language-agnostic псевдокод. Используй при проектировании модулей, ревью архитектуры, или при вопросах «какой паттерн применить»."
|
|
5
|
+
default_prompt: "Используй $design_patterns_reference, когда задача относится к навыку \"Справочник паттернов проектирования\"."
|
|
6
|
+
triggers:
|
|
7
|
+
- "design_patterns_reference"
|
|
8
|
+
- "design patterns reference"
|
|
9
|
+
- "Справочник паттернов проектирования"
|
|
10
|
+
- "Справочник паттернов проектирования с DO/DON'T примерами — SOLID, DRY/KISS/YAGNI, GoF (Strategy, Observer, Factory, Adapter, Facade, Decorator, Command, State, Template Method), архитектурные (Repository, Service Layer, DI, Event-Driven, CQRS), микросервисные (Saga, Circuit Breaker). Language-agnostic псевдокод. Используй при проектировании модулей, ревью архитектуры, или при вопросах «какой паттерн применить»."
|
|
11
|
+
capabilities:
|
|
12
|
+
- "architecture"
|
|
13
|
+
- "design"
|
|
14
|
+
- "patterns"
|
|
15
|
+
tools: []
|
|
16
|
+
invocation:
|
|
17
|
+
explicit: true
|
|
18
|
+
implicit: true
|
|
19
|
+
localization:
|
|
20
|
+
default_locale: "ru"
|
|
21
|
+
available_locales:
|
|
22
|
+
- "ru"
|
|
23
|
+
- "en"
|
|
@@ -7,6 +7,9 @@ description: TanStack (Query v5, Table v8, Virtual v3): кэширование,
|
|
|
7
7
|
|
|
8
8
|
Копипаст-паттерны для предсказуемой работы с данными, таблицами и виртуализацией.
|
|
9
9
|
|
|
10
|
+
> [!IMPORTANT]
|
|
11
|
+
> **MCP-приоритет:** Если доступен MCP-сервер `tanstack-docs`, **всегда используй его инструменты** (`tanstack_doc`, `tanstack_search_docs`, `listTanStackAddOns`, `getAddOnDetails`, `createTanStackApplication`) **первыми** — они дают актуальную документацию прямо из официальных источников TanStack. Используй паттерны этого скилла как fallback или как дополнительный контекст по архитектуре (fetcher/adapter/hook, queryKey factory, оптимистичные обновления, виртуализация), когда MCP недоступен или не содержит нужной информации.
|
|
12
|
+
|
|
10
13
|
**Разделы:**
|
|
11
14
|
1. [Query: архитектура fetcher/adapter](#1-query-архитектура)
|
|
12
15
|
2. [Query: кэширование и staleTime](#2-query-кэш)
|
package/AGENTS.md
CHANGED
|
@@ -1,134 +1,136 @@
|
|
|
1
|
-
<!-- code-ai: target=gpt-codex; asset=orchestrator; normalized_hints=none -->
|
|
2
|
-
<!-- codex: reasoning=medium; note="auto-adapted default" -->
|
|
3
|
-
# AGENTS.md — Оркестр веб-разработки
|
|
4
|
-
|
|
5
|
-
## Источник правды по ролям
|
|
6
|
-
Роли описаны в:
|
|
7
|
-
- agents/conductor.md
|
|
8
|
-
- agents/product_manager.md
|
|
9
|
-
- agents/ux_ui_designer.md
|
|
10
|
-
- agents/architect.md
|
|
11
|
-
- agents/devops.md
|
|
12
|
-
- agents/senior_full_stack.md
|
|
13
|
-
- agents/reviewer.md
|
|
14
|
-
- agents/tester.md
|
|
15
|
-
|
|
16
|
-
При работе следуй этим ролям. Если нужно — открывай соответствующий файл роли и применяй.
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Skills (явно вызывай)
|
|
21
|
-
Используй skills (папки с `SKILL.md`). Полный список:
|
|
22
|
-
|
|
23
|
-
### Core / Orchestration
|
|
24
|
-
- $board
|
|
25
|
-
- $handoff
|
|
26
|
-
- $memory
|
|
27
|
-
- $gates
|
|
28
|
-
- $release_gate
|
|
29
|
-
- $release_gate_checklist_template
|
|
30
|
-
|
|
31
|
-
### Product Management
|
|
32
|
-
- $pm_interview
|
|
33
|
-
- $pm_prd
|
|
34
|
-
- $pm_backlog
|
|
35
|
-
|
|
36
|
-
### UX/UI / Design
|
|
37
|
-
- $ux_discovery
|
|
38
|
-
- $ux_spec
|
|
39
|
-
- $ui_inventory
|
|
40
|
-
- $a11y_baseline
|
|
41
|
-
- $design_intake
|
|
42
|
-
- $design_parity_review
|
|
43
|
-
- $design_systems
|
|
44
|
-
- $ui_a11y_smoke_review
|
|
45
|
-
- $google_stitch_skill
|
|
46
|
-
|
|
47
|
-
### Architecture
|
|
48
|
-
- $current_state_analysis
|
|
49
|
-
- $system_design_checklist
|
|
50
|
-
- $architecture_doc
|
|
51
|
-
- $architecture_compliance_review
|
|
52
|
-
- $
|
|
53
|
-
- $
|
|
54
|
-
- $
|
|
55
|
-
- $
|
|
56
|
-
- $
|
|
57
|
-
- $
|
|
58
|
-
- $
|
|
59
|
-
- $
|
|
60
|
-
- $
|
|
61
|
-
- $
|
|
62
|
-
- $
|
|
63
|
-
- $
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
- $
|
|
68
|
-
- $
|
|
69
|
-
- $
|
|
70
|
-
- $
|
|
71
|
-
- $
|
|
72
|
-
- $
|
|
73
|
-
- $
|
|
74
|
-
- $
|
|
75
|
-
- $
|
|
76
|
-
- $
|
|
77
|
-
- $
|
|
78
|
-
- $
|
|
79
|
-
- $
|
|
80
|
-
- $
|
|
81
|
-
- $
|
|
82
|
-
- $
|
|
83
|
-
- $
|
|
84
|
-
- $
|
|
85
|
-
- $
|
|
86
|
-
- $
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
- $
|
|
92
|
-
- $
|
|
93
|
-
- $
|
|
94
|
-
- $
|
|
95
|
-
- $
|
|
96
|
-
- $
|
|
97
|
-
- $
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
- $
|
|
103
|
-
- $
|
|
104
|
-
- $
|
|
105
|
-
- $
|
|
106
|
-
- $
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
*
|
|
123
|
-
* @
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
1
|
+
<!-- code-ai: target=gpt-codex; asset=orchestrator; normalized_hints=none -->
|
|
2
|
+
<!-- codex: reasoning=medium; note="auto-adapted default" -->
|
|
3
|
+
# AGENTS.md — Оркестр веб-разработки
|
|
4
|
+
|
|
5
|
+
## Источник правды по ролям
|
|
6
|
+
Роли описаны в:
|
|
7
|
+
- agents/conductor.md
|
|
8
|
+
- agents/product_manager.md
|
|
9
|
+
- agents/ux_ui_designer.md
|
|
10
|
+
- agents/architect.md
|
|
11
|
+
- agents/devops.md
|
|
12
|
+
- agents/senior_full_stack.md
|
|
13
|
+
- agents/reviewer.md
|
|
14
|
+
- agents/tester.md
|
|
15
|
+
|
|
16
|
+
При работе следуй этим ролям. Если нужно — открывай соответствующий файл роли и применяй.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Skills (явно вызывай)
|
|
21
|
+
Используй skills (папки с `SKILL.md`). Полный список:
|
|
22
|
+
|
|
23
|
+
### Core / Orchestration
|
|
24
|
+
- $board
|
|
25
|
+
- $handoff
|
|
26
|
+
- $memory
|
|
27
|
+
- $gates
|
|
28
|
+
- $release_gate
|
|
29
|
+
- $release_gate_checklist_template
|
|
30
|
+
|
|
31
|
+
### Product Management
|
|
32
|
+
- $pm_interview
|
|
33
|
+
- $pm_prd
|
|
34
|
+
- $pm_backlog
|
|
35
|
+
|
|
36
|
+
### UX/UI / Design
|
|
37
|
+
- $ux_discovery
|
|
38
|
+
- $ux_spec
|
|
39
|
+
- $ui_inventory
|
|
40
|
+
- $a11y_baseline
|
|
41
|
+
- $design_intake
|
|
42
|
+
- $design_parity_review
|
|
43
|
+
- $design_systems
|
|
44
|
+
- $ui_a11y_smoke_review
|
|
45
|
+
- $google_stitch_skill
|
|
46
|
+
|
|
47
|
+
### Architecture
|
|
48
|
+
- $current_state_analysis
|
|
49
|
+
- $system_design_checklist
|
|
50
|
+
- $architecture_doc
|
|
51
|
+
- $architecture_compliance_review
|
|
52
|
+
- $design_patterns_reference
|
|
53
|
+
- $adr_log
|
|
54
|
+
- $api_contracts
|
|
55
|
+
- $data_model
|
|
56
|
+
- $threat_model_baseline
|
|
57
|
+
- $observability_plan
|
|
58
|
+
- $deployment_ci_plan
|
|
59
|
+
- $docker_kubernetes_architecture
|
|
60
|
+
- $k8s_manifests_conventions
|
|
61
|
+
- $n8n_pinecone_qdrant_supabase
|
|
62
|
+
- $wix_self_hosted_embedded_script
|
|
63
|
+
- $wix_iframe_sdk
|
|
64
|
+
- $react_15_3_wix_iframe (условно, только если Wix iFrame / React 15.3)
|
|
65
|
+
|
|
66
|
+
### Development (Senior Full Stack)
|
|
67
|
+
- $tdd_workflow
|
|
68
|
+
- $testing_strategy_js
|
|
69
|
+
- $tests_quality_review
|
|
70
|
+
- $es2025_beast_practices
|
|
71
|
+
- $typescript_beast_practices
|
|
72
|
+
- $react_beast_practices
|
|
73
|
+
- $tanstack_beast_practices
|
|
74
|
+
- $state_zustand_beast_practices
|
|
75
|
+
- $state_rtk_beast_practices
|
|
76
|
+
- $styling_css_stack
|
|
77
|
+
- $tailwind_beast_practices
|
|
78
|
+
- $tooling_bun_biome
|
|
79
|
+
- $node_express_beast_practices
|
|
80
|
+
- $go_beast_practices
|
|
81
|
+
- $security_baseline_dev
|
|
82
|
+
- $observability_logging
|
|
83
|
+
- $dev_reference_snippets
|
|
84
|
+
- $mongodb_mongoose_best_practices
|
|
85
|
+
- $n8n_pinecone_qdrant_supabase
|
|
86
|
+
- $wix_self_hosted_embedded_script
|
|
87
|
+
- $wix_iframe_sdk
|
|
88
|
+
- $react_15_3_wix_iframe (условно, только если Wix iFrame / React 15.3)
|
|
89
|
+
|
|
90
|
+
### Review (Best Practices + Security)
|
|
91
|
+
- $code_review_checklist
|
|
92
|
+
- $api_contract_compliance_review
|
|
93
|
+
- $security_review
|
|
94
|
+
- $security_review_baseline
|
|
95
|
+
- $cloud_infrastructure_security
|
|
96
|
+
- $dependency_supply_chain_review
|
|
97
|
+
- $observability_review
|
|
98
|
+
- $performance_review_baseline
|
|
99
|
+
- $review_reference_snippets
|
|
100
|
+
|
|
101
|
+
### Testing (QA)
|
|
102
|
+
- $qa_test_plan
|
|
103
|
+
- $qa_manual_run
|
|
104
|
+
- $qa_api_contract_tests
|
|
105
|
+
- $qa_browser_testing
|
|
106
|
+
- $qa_security_smoke_tests
|
|
107
|
+
- $qa_ui_a11y_smoke
|
|
108
|
+
- $qa_e2e_playwright
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Гейты (Pipeline)
|
|
113
|
+
PM(PRD) → UX(UX Spec) → ARCH(Architecture/ADR/Contracts) → DEV(TDD) → REV(Security/Best) → TEST(Test plan/report) → RG(Release Gate)
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Обязательное правило документации функций
|
|
118
|
+
- Для всех функций в кодовой базе использовать JSDoc-блок в формате:
|
|
119
|
+
|
|
120
|
+
```js
|
|
121
|
+
/**
|
|
122
|
+
* Считает сумму двух чисел.
|
|
123
|
+
* @param {number} a - Первое число.
|
|
124
|
+
* @param {number} b - Второе число.
|
|
125
|
+
* @returns {number} Сумма a и b.
|
|
126
|
+
*/
|
|
127
|
+
function add(a, b) {
|
|
128
|
+
return a + b;
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
- Требование обязательное для DEV и REV этапов.
|
|
133
|
+
|
|
134
|
+
## Обязательное правило TDD
|
|
135
|
+
- Для всех задач разработки применять TDD-цикл: RED → GREEN → REFACTOR.
|
|
136
|
+
- Требование обязательное для DEV и REV этапов (наравне с JSDoc).
|
package/agents/architect.md
CHANGED
|
@@ -34,6 +34,59 @@
|
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
37
|
+
## Design Patterns & Principles (must)
|
|
38
|
+
Архитектор обязан учитывать эти паттерны при проектировании и фиксировать выбранные в ADR.
|
|
39
|
+
|
|
40
|
+
> Полные DO/DON'T примеры с псевдокодом → **$design_patterns_reference**
|
|
41
|
+
|
|
42
|
+
### SOLID
|
|
43
|
+
| Принцип | Суть |
|
|
44
|
+
|---------|------|
|
|
45
|
+
| **S** — Single Responsibility | Класс/модуль — одна причина для изменения |
|
|
46
|
+
| **O** — Open/Closed | Открыт для расширения, закрыт для модификации |
|
|
47
|
+
| **L** — Liskov Substitution | Подтипы подставляются без поломки |
|
|
48
|
+
| **I** — Interface Segregation | Много маленьких интерфейсов > одного толстого |
|
|
49
|
+
| **D** — Dependency Inversion | Зависимость от абстракций, не от конкретики |
|
|
50
|
+
|
|
51
|
+
### Общие принципы
|
|
52
|
+
- **DRY** — Don't Repeat Yourself (про знание, не про код)
|
|
53
|
+
- **KISS** — Keep It Simple, Stupid
|
|
54
|
+
- **YAGNI** — You Aren't Gonna Need It
|
|
55
|
+
- **Composition over Inheritance** — композиция вместо глубоких иерархий
|
|
56
|
+
- **Fail Fast** — проверяй входы сразу, на границе
|
|
57
|
+
- **Separation of Concerns** — разделение ответственностей по слоям
|
|
58
|
+
|
|
59
|
+
### GoF Patterns (ключевые)
|
|
60
|
+
| Паттерн | Когда |
|
|
61
|
+
|---------|-------|
|
|
62
|
+
| Strategy | Несколько вариантов алгоритма, выбор в runtime |
|
|
63
|
+
| Observer | Один источник событий, много потребителей |
|
|
64
|
+
| Factory Method | Тип объекта определяется в runtime |
|
|
65
|
+
| Adapter | Интеграция с чужим API/библиотекой |
|
|
66
|
+
| Facade | Простой интерфейс к сложной подсистеме |
|
|
67
|
+
| Decorator | Комбинации поведений без взрыва подклассов |
|
|
68
|
+
| Command | Undo/redo, очереди, отложенное выполнение |
|
|
69
|
+
| State | Множество состояний с разным поведением |
|
|
70
|
+
| Template Method | Одинаковый каркас, разные детали |
|
|
71
|
+
|
|
72
|
+
### Архитектурные паттерны
|
|
73
|
+
| Паттерн | Когда |
|
|
74
|
+
|---------|-------|
|
|
75
|
+
| Repository | Изоляция доступа к данным от бизнес-логики |
|
|
76
|
+
| Service Layer | Бизнес-логика не в контроллерах |
|
|
77
|
+
| Dependency Injection | Слабая связь, тестируемость |
|
|
78
|
+
| Event-Driven | Реакция на события без жёсткой связи |
|
|
79
|
+
| CQRS | Разные модели чтения и записи |
|
|
80
|
+
|
|
81
|
+
### Микросервисные паттерны
|
|
82
|
+
| Паттерн | Когда |
|
|
83
|
+
|---------|-------|
|
|
84
|
+
| Saga | Распределённые транзакции через компенсации |
|
|
85
|
+
| Circuit Breaker | Защита от каскадных сбоев внешних сервисов |
|
|
86
|
+
| Mediator | Центральный координатор взаимодействий |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
37
90
|
## Architecture Review Process
|
|
38
91
|
1. **Current State Analysis** (если есть код): patterns, conventions, tech debt, scaling limits
|
|
39
92
|
2. **Requirements Gathering**: functional + non-functional + integrations + data flows
|
|
@@ -223,6 +276,8 @@
|
|
|
223
276
|
- $current_state_analysis
|
|
224
277
|
- $system_design_checklist
|
|
225
278
|
- $architecture_doc
|
|
279
|
+
- $architecture_compliance_review
|
|
280
|
+
- $design_patterns_reference
|
|
226
281
|
- $adr_log
|
|
227
282
|
- $api_contracts
|
|
228
283
|
- $data_model
|
|
@@ -253,7 +253,7 @@ function planForGeminiLayout(layout, catalog, destinationDir, selectedAgents, se
|
|
|
253
253
|
}
|
|
254
254
|
operations.push({
|
|
255
255
|
sourcePath,
|
|
256
|
-
destinationPath: path.join(destinationDir, layout.skillsDir,
|
|
256
|
+
destinationPath: path.join(destinationDir, layout.skillsDir, skillName, "SKILL.md"),
|
|
257
257
|
generated: false,
|
|
258
258
|
transform: {
|
|
259
259
|
target,
|
|
@@ -262,7 +262,7 @@ function planForGeminiLayout(layout, catalog, destinationDir, selectedAgents, se
|
|
|
262
262
|
});
|
|
263
263
|
operations.push({
|
|
264
264
|
sourcePath: "<generated>",
|
|
265
|
-
destinationPath: path.join(destinationDir, layout.skillsDir, `${skillName}.py`),
|
|
265
|
+
destinationPath: path.join(destinationDir, layout.skillsDir, skillName, `${skillName}.py`),
|
|
266
266
|
generated: true,
|
|
267
267
|
content: renderGeminiSkillStub(skillName),
|
|
268
268
|
});
|
|
@@ -327,7 +327,7 @@ function renderGeminiAgentConfig(agentName) {
|
|
|
327
327
|
function renderGeminiSkillStub(skillName) {
|
|
328
328
|
return [
|
|
329
329
|
`"""Auto-generated skill stub for ${skillName}.`,
|
|
330
|
-
`See
|
|
330
|
+
`See SKILL.md for behavior details."""`,
|
|
331
331
|
"",
|
|
332
332
|
"",
|
|
333
333
|
"def run(input_text: str) -> str:",
|