code-ai-installer 2.3.0 → 2.4.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.
Files changed (126) hide show
  1. package/.agents/skills/karpathy-guidelines/SKILL.md +326 -0
  2. package/.agents/skills/karpathy-guidelines/agents/claude.json +21 -0
  3. package/.agents/skills/karpathy-guidelines/agents/copilot.json +21 -0
  4. package/.agents/skills/karpathy-guidelines/agents/gemini.json +21 -0
  5. package/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  6. package/.agents/skills/karpathy-guidelines/agents/qwen.json +21 -0
  7. package/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  8. package/AGENTS.md +13 -0
  9. package/CONTEXT.md +14 -8
  10. package/agents/architect.md +1 -0
  11. package/agents/conductor.md +1 -0
  12. package/agents/devops.md +1 -0
  13. package/agents/product_manager.md +1 -0
  14. package/agents/reviewer.md +1 -0
  15. package/agents/senior_full_stack.md +1 -0
  16. package/agents/tester.md +1 -0
  17. package/agents/ux_ui_designer.md +1 -0
  18. package/dist/installer.d.ts +2 -0
  19. package/dist/installer.js +48 -0
  20. package/dist/platforms/adapters.js +2 -2
  21. package/domains/analytics/.agents/skills/karpathy-guidelines/SKILL.md +326 -0
  22. package/domains/analytics/.agents/skills/karpathy-guidelines/agents/claude.json +21 -0
  23. package/domains/analytics/.agents/skills/karpathy-guidelines/agents/copilot.json +21 -0
  24. package/domains/analytics/.agents/skills/karpathy-guidelines/agents/gemini.json +21 -0
  25. package/domains/analytics/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  26. package/domains/analytics/.agents/skills/karpathy-guidelines/agents/qwen.json +21 -0
  27. package/domains/analytics/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  28. package/domains/analytics/AGENTS.md +3 -0
  29. package/domains/analytics/agents/conductor.md +1 -0
  30. package/domains/analytics/agents/data_analyst.md +2 -1
  31. package/domains/analytics/agents/designer.md +1 -0
  32. package/domains/analytics/agents/interviewer.md +1 -0
  33. package/domains/analytics/agents/layouter.md +1 -0
  34. package/domains/analytics/agents/mediator.md +1 -0
  35. package/domains/analytics/agents/researcher.md +1 -0
  36. package/domains/analytics/agents/strategist.md +1 -0
  37. package/domains/analytics/locales/en/.agents/skills/karpathy-guidelines/SKILL.md +325 -0
  38. package/domains/analytics/locales/en/.agents/skills/karpathy-guidelines/agents/claude.json +22 -0
  39. package/domains/analytics/locales/en/.agents/skills/karpathy-guidelines/agents/copilot.json +22 -0
  40. package/domains/analytics/locales/en/.agents/skills/karpathy-guidelines/agents/gemini.json +22 -0
  41. package/domains/analytics/locales/en/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  42. package/domains/analytics/locales/en/.agents/skills/karpathy-guidelines/agents/qwen.json +22 -0
  43. package/domains/analytics/locales/en/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  44. package/domains/analytics/locales/en/AGENTS.md +3 -0
  45. package/domains/analytics/locales/en/agents/data_analyst.md +1 -1
  46. package/domains/content/.agents/skills/karpathy-guidelines/SKILL.md +326 -0
  47. package/domains/content/.agents/skills/karpathy-guidelines/agents/claude.json +21 -0
  48. package/domains/content/.agents/skills/karpathy-guidelines/agents/copilot.json +21 -0
  49. package/domains/content/.agents/skills/karpathy-guidelines/agents/gemini.json +21 -0
  50. package/domains/content/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  51. package/domains/content/.agents/skills/karpathy-guidelines/agents/qwen.json +21 -0
  52. package/domains/content/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  53. package/domains/content/AGENTS.md +3 -0
  54. package/domains/content/agents/conductor.md +1 -0
  55. package/domains/content/agents/copywriter.md +1 -0
  56. package/domains/content/agents/researcher.md +1 -0
  57. package/domains/content/agents/reviewer.md +1 -0
  58. package/domains/content/agents/strategist.md +1 -0
  59. package/domains/content/agents/visual_concept.md +1 -0
  60. package/domains/content/locales/en/.agents/skills/karpathy-guidelines/SKILL.md +325 -0
  61. package/domains/content/locales/en/.agents/skills/karpathy-guidelines/agents/claude.json +22 -0
  62. package/domains/content/locales/en/.agents/skills/karpathy-guidelines/agents/copilot.json +22 -0
  63. package/domains/content/locales/en/.agents/skills/karpathy-guidelines/agents/gemini.json +22 -0
  64. package/domains/content/locales/en/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  65. package/domains/content/locales/en/.agents/skills/karpathy-guidelines/agents/qwen.json +22 -0
  66. package/domains/content/locales/en/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  67. package/domains/content/locales/en/AGENTS.md +3 -0
  68. package/domains/development/.agents/skills/karpathy-guidelines/SKILL.md +326 -0
  69. package/domains/development/.agents/skills/karpathy-guidelines/agents/claude.json +21 -0
  70. package/domains/development/.agents/skills/karpathy-guidelines/agents/copilot.json +21 -0
  71. package/domains/development/.agents/skills/karpathy-guidelines/agents/gemini.json +21 -0
  72. package/domains/development/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  73. package/domains/development/.agents/skills/karpathy-guidelines/agents/qwen.json +21 -0
  74. package/domains/development/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  75. package/domains/development/AGENTS.md +3 -0
  76. package/domains/development/agents/architect.md +1 -0
  77. package/domains/development/agents/conductor.md +1 -0
  78. package/domains/development/agents/devops.md +1 -0
  79. package/domains/development/agents/product_manager.md +1 -0
  80. package/domains/development/agents/reviewer.md +1 -0
  81. package/domains/development/agents/senior_full_stack.md +1 -0
  82. package/domains/development/agents/tester.md +1 -0
  83. package/domains/development/agents/ux_ui_designer.md +2 -1
  84. package/domains/development/locales/en/.agents/skills/karpathy-guidelines/SKILL.md +325 -0
  85. package/domains/development/locales/en/.agents/skills/karpathy-guidelines/agents/claude.json +22 -0
  86. package/domains/development/locales/en/.agents/skills/karpathy-guidelines/agents/copilot.json +22 -0
  87. package/domains/development/locales/en/.agents/skills/karpathy-guidelines/agents/gemini.json +22 -0
  88. package/domains/development/locales/en/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  89. package/domains/development/locales/en/.agents/skills/karpathy-guidelines/agents/qwen.json +22 -0
  90. package/domains/development/locales/en/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  91. package/domains/development/locales/en/AGENTS.md +3 -0
  92. package/domains/development/locales/en/agents/ux_ui_designer.md +1 -1
  93. package/domains/product/.agents/skills/karpathy-guidelines/SKILL.md +326 -0
  94. package/domains/product/.agents/skills/karpathy-guidelines/agents/claude.json +21 -0
  95. package/domains/product/.agents/skills/karpathy-guidelines/agents/copilot.json +21 -0
  96. package/domains/product/.agents/skills/karpathy-guidelines/agents/gemini.json +21 -0
  97. package/domains/product/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  98. package/domains/product/.agents/skills/karpathy-guidelines/agents/qwen.json +21 -0
  99. package/domains/product/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  100. package/domains/product/AGENTS.md +3 -0
  101. package/domains/product/agents/conductor.md +1 -0
  102. package/domains/product/agents/data_analyst.md +1 -0
  103. package/domains/product/agents/designer.md +1 -0
  104. package/domains/product/agents/discovery.md +1 -0
  105. package/domains/product/agents/layouter.md +1 -0
  106. package/domains/product/agents/mediator.md +1 -0
  107. package/domains/product/agents/pm.md +1 -0
  108. package/domains/product/agents/product_strategist.md +1 -0
  109. package/domains/product/agents/tech_lead.md +1 -0
  110. package/domains/product/agents/ux_designer.md +1 -0
  111. package/domains/product/locales/en/.agents/skills/karpathy-guidelines/SKILL.md +325 -0
  112. package/domains/product/locales/en/.agents/skills/karpathy-guidelines/agents/claude.json +22 -0
  113. package/domains/product/locales/en/.agents/skills/karpathy-guidelines/agents/copilot.json +22 -0
  114. package/domains/product/locales/en/.agents/skills/karpathy-guidelines/agents/gemini.json +22 -0
  115. package/domains/product/locales/en/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  116. package/domains/product/locales/en/.agents/skills/karpathy-guidelines/agents/qwen.json +22 -0
  117. package/domains/product/locales/en/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  118. package/domains/product/locales/en/AGENTS.md +3 -0
  119. package/locales/en/.agents/skills/karpathy-guidelines/SKILL.md +325 -0
  120. package/locales/en/.agents/skills/karpathy-guidelines/agents/claude.json +22 -0
  121. package/locales/en/.agents/skills/karpathy-guidelines/agents/copilot.json +22 -0
  122. package/locales/en/.agents/skills/karpathy-guidelines/agents/gemini.json +22 -0
  123. package/locales/en/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
  124. package/locales/en/.agents/skills/karpathy-guidelines/agents/qwen.json +22 -0
  125. package/locales/en/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
  126. package/package.json +1 -1
@@ -0,0 +1,326 @@
1
+ ---
2
+ name: karpathy-guidelines
3
+ description: Правила работы для предотвращения типичных ошибок LLM — сначала думай, делай только нужное, правь точечно, работай от результата.
4
+ license: MIT
5
+ source: https://x.com/karpathy/status/2015883857489522876
6
+ ---
7
+
8
+ # Karpathy Guidelines
9
+
10
+ Правила работы, основанные на наблюдениях Андрея Карпати о типичных ошибках LLM.
11
+
12
+ > Эти правила ставят аккуратность выше скорости. Для совсем тривиальных задач используй здравый смысл.
13
+
14
+ ---
15
+
16
+ ## 1. Сначала думай, потом делай
17
+
18
+ **Не предполагай молча. Не скрывай неопределённость. Называй альтернативы.**
19
+
20
+ Перед тем как приступить:
21
+ - Явно назови свои предположения. Если не уверен — спроси.
22
+ - Если задачу можно понять по-разному — перечисли варианты, не выбирай сам.
23
+ - Если есть более простой путь — скажи об этом. Возражай, когда это уместно.
24
+ - Если что-то непонятно — остановись, назови конкретно что, и спроси.
25
+
26
+ ### Пример: скрытые предположения
27
+
28
+ **Запрос:** "Добавь экспорт пользовательских данных"
29
+
30
+ ❌ **Что делают LLM** — молча предполагают формат, поля и объём:
31
+
32
+ ```python
33
+ def export_users(format='json'):
34
+ users = User.query.all()
35
+ with open('users.json', 'w') as f:
36
+ json.dump([u.to_dict() for u in users], f)
37
+ return f"Exported {len(users)} users"
38
+ ```
39
+
40
+ ✅ **Как надо** — сначала назвать предположения и уточнить:
41
+
42
+ ```
43
+ Прежде чем делать, нужно прояснить:
44
+
45
+ 1. Кого экспортировать: всех пользователей или отфильтрованных? (вопрос приватности)
46
+ 2. Что значит "экспорт": скачать файл, фоновая задача с уведомлением или API endpoint?
47
+ 3. Какие поля включать? (часть данных может быть чувствительной)
48
+ 4. Сколько пользователей обычно? (влияет на архитектуру)
49
+
50
+ Что из этого важнее всего?
51
+ ```
52
+
53
+ ### Пример: несколько трактовок
54
+
55
+ **Запрос:** "Ускорь поиск"
56
+
57
+ ❌ **Что делают LLM** — выбирают одну трактовку и пишут 200 строк оптимизации.
58
+
59
+ ✅ **Как надо:**
60
+
61
+ ```
62
+ "Ускорить поиск" — это может быть разное:
63
+
64
+ 1. Уменьшить время ответа (< 100 мс вместо 500 мс)
65
+ → индексы в БД, кеш частых запросов | ~2 часа
66
+
67
+ 2. Выдерживать больше одновременных запросов
68
+ → async/await, connection pooling | ~4 часа
69
+
70
+ 3. Субъективно казаться быстрее (UX)
71
+ → показывать частичные результаты сразу | ~3 часа
72
+
73
+ Сейчас поиск занимает ~500 мс. Что важнее?
74
+ ```
75
+
76
+ ---
77
+
78
+ ## 2. Делай только то, что просили
79
+
80
+ **Минимум, решающий задачу. Ничего лишнего.**
81
+
82
+ - Не добавляй возможности сверх того, что просили.
83
+ - Не создавай абстракции, если код используется один раз.
84
+ - Не делай код "гибким" и "настраиваемым" без запроса.
85
+ - Не обрабатывай ошибки, которые не могут случиться.
86
+ - Написал 200 строк, а можно 50 — перепиши.
87
+
88
+ Спроси себя: "Сказал бы опытный коллега, что это переусложнено?" Если да — упрости.
89
+
90
+ ### Пример: лишние абстракции
91
+
92
+ **Запрос:** "Добавь функцию расчёта скидки"
93
+
94
+ ❌ **Что делают LLM** — Strategy pattern, ABC, dataclass, конфигуратор:
95
+
96
+ ```python
97
+ class DiscountStrategy(ABC):
98
+ @abstractmethod
99
+ def calculate(self, amount: float) -> float: pass
100
+
101
+ class PercentageDiscount(DiscountStrategy):
102
+ def __init__(self, percentage: float):
103
+ self.percentage = percentage
104
+ def calculate(self, amount: float) -> float:
105
+ return amount * (self.percentage / 100)
106
+
107
+ @dataclass
108
+ class DiscountConfig:
109
+ strategy: DiscountStrategy
110
+ min_purchase: float = 0.0
111
+ max_discount: float = float('inf')
112
+
113
+ # Ещё 40 строк ради одной формулы
114
+ ```
115
+
116
+ ✅ **Как надо:**
117
+
118
+ ```python
119
+ def calculate_discount(amount: float, percent: float) -> float:
120
+ """Calculate discount amount. percent should be 0-100."""
121
+ return amount * (percent / 100)
122
+ ```
123
+
124
+ Усложнять — только когда реально появится несколько типов скидок.
125
+
126
+ ### Пример: возможности "на будущее"
127
+
128
+ **Запрос:** "Сохрани пользовательские настройки в БД"
129
+
130
+ ❌ **Что делают LLM** — кеш, валидатор, флаг merge, уведомления:
131
+
132
+ ```python
133
+ class PreferenceManager:
134
+ def __init__(self, db, cache=None, validator=None):
135
+ ...
136
+ def save(self, user_id, prefs, merge=True, validate=True, notify=False):
137
+ # 50 строк вместо трёх
138
+ ```
139
+
140
+ ✅ **Как надо:**
141
+
142
+ ```python
143
+ def save_preferences(db, user_id: int, preferences: dict):
144
+ db.execute(
145
+ "UPDATE users SET preferences = ? WHERE id = ?",
146
+ (json.dumps(preferences), user_id)
147
+ )
148
+ ```
149
+
150
+ Кеш, валидацию, merge — добавить тогда, когда это реально понадобится.
151
+
152
+ ---
153
+
154
+ ## 3. Трогай только то, что нужно
155
+
156
+ **Правь минимум. Чисти только за собой.**
157
+
158
+ При редактировании существующего кода:
159
+ - Не "улучшай" соседний код, комментарии или форматирование.
160
+ - Не рефактори то, что работает.
161
+ - Сохраняй существующий стиль, даже если ты сделал бы иначе.
162
+ - Заметил лишний код рядом — упомяни, но не трогай.
163
+
164
+ Если после твоих правок что-то стало неиспользуемым:
165
+ - Удали то, что стало ненужным из-за твоих изменений.
166
+ - Не трогай уже существующий мёртвый код без запроса.
167
+
168
+ **Проверка:** каждая изменённая строка должна напрямую относиться к запросу.
169
+
170
+ ### Пример: попутный рефакторинг
171
+
172
+ **Запрос:** "Исправь баг — пустой email вызывает падение валидатора"
173
+
174
+ ❌ **Что делают LLM** — заодно улучшают валидацию email, добавляют валидацию username, меняют комментарии, пишут docstring.
175
+
176
+ ✅ **Как надо — только строки, связанные с пустым email:**
177
+
178
+ ```diff
179
+ def validate_user(user_data):
180
+ # Check email format
181
+ - if not user_data.get('email'):
182
+ + email = user_data.get('email', '')
183
+ + if not email or not email.strip():
184
+ raise ValueError("Email required")
185
+
186
+ # Basic email validation
187
+ - if '@' not in user_data['email']:
188
+ + if '@' not in email:
189
+ raise ValueError("Invalid email")
190
+
191
+ # Check username ← не трогаем, это не в задаче
192
+ if not user_data.get('username'):
193
+ raise ValueError("Username required")
194
+
195
+ return True
196
+ ```
197
+
198
+ ### Пример: дрейф стиля
199
+
200
+ **Запрос:** "Добавь логирование в функцию upload"
201
+
202
+ ❌ **Что делают LLM** — заодно добавляют type hints, меняют одинарные кавычки на двойные, пишут docstring, переформатируют отступы.
203
+
204
+ ✅ **Как надо — сохраняй существующий стиль:**
205
+
206
+ ```diff
207
+ + import logging
208
+ +
209
+ + logger = logging.getLogger(__name__)
210
+ +
211
+ def upload_file(file_path, destination):
212
+ + logger.info(f'Starting upload: {file_path}')
213
+ try:
214
+ with open(file_path, 'rb') as f:
215
+ data = f.read()
216
+
217
+ response = requests.post(destination, files={'file': data})
218
+
219
+ if response.status_code == 200:
220
+ + logger.info(f'Upload successful: {file_path}')
221
+ return True
222
+ else:
223
+ + logger.error(f'Upload failed: {file_path}, status={response.status_code}')
224
+ return False
225
+ except Exception as e:
226
+ - print(f"Error: {e}")
227
+ + logger.exception(f'Upload error: {file_path}')
228
+ return False
229
+ ```
230
+
231
+ Сохранено: одинарные кавычки, нет type hints, тот же стиль boolean-возврата.
232
+
233
+ ---
234
+
235
+ ## 4. Работай от результата
236
+
237
+ **Определи, как выглядит "готово". Проверяй каждый шаг.**
238
+
239
+ Переформулируй задачи в проверяемые цели:
240
+ - "Добавь валидацию" → "Напиши тесты на некорректные данные, затем сделай их зелёными"
241
+ - "Исправь баг" → "Напиши тест, воспроизводящий баг, затем исправь"
242
+ - "Рефакторинг X" → "Убедись, что тесты проходят до и после"
243
+
244
+ Для многошаговых задач — кратко опиши план:
245
+
246
+ ```
247
+ 1. [Шаг] → проверка: [что проверить]
248
+ 2. [Шаг] → проверка: [что проверить]
249
+ 3. [Шаг] → проверка: [что проверить]
250
+ ```
251
+
252
+ Чёткие критерии дают возможность работать самостоятельно. Размытые ("сделай так, чтобы работало") требуют постоянных уточнений.
253
+
254
+ ### Пример: пошаговая реализация с проверкой
255
+
256
+ **Запрос:** "Добавь rate limiting в API"
257
+
258
+ ❌ **Что делают LLM** — реализуют Redis, несколько стратегий, конфигурацию и мониторинг в одном PR на 300 строк без чётких шагов проверки.
259
+
260
+ ✅ **Как надо:**
261
+
262
+ ```
263
+ План:
264
+
265
+ 1. Базовый лимит в памяти (один endpoint)
266
+ Проверка: 100 запросов → первые 10 проходят, остальные получают 429
267
+
268
+ 2. Вынести в middleware (все endpoints)
269
+ Проверка: существующие тесты не сломались
270
+
271
+ 3. Redis вместо памяти (для нескольких серверов)
272
+ Проверка: лимит сохраняется после перезапуска
273
+
274
+ 4. Настройка лимитов per-endpoint
275
+ Проверка: /search — 10/мин, /users — 100/мин
276
+
277
+ Начинаем с первого шага?
278
+ ```
279
+
280
+ ### Пример: сначала воспроизведи баг
281
+
282
+ **Запрос:** "Сортировка ломается при одинаковых значениях"
283
+
284
+ ❌ **Что делают LLM** — сразу меняют логику сортировки, не убедившись, что воспроизвели проблему.
285
+
286
+ ✅ **Как надо:**
287
+
288
+ ```python
289
+ # 1. Сначала — тест, воспроизводящий баг
290
+ def test_sort_with_duplicate_scores():
291
+ scores = [
292
+ {'name': 'Alice', 'score': 100},
293
+ {'name': 'Bob', 'score': 100},
294
+ {'name': 'Charlie', 'score': 90},
295
+ ]
296
+ result = sort_scores(scores)
297
+ # Проблема: при одинаковых score порядок непредсказуем
298
+ assert result[0]['score'] == 100
299
+ assert result[2]['score'] == 90
300
+ assert result[0]['name'] < result[1]['name'] # ожидаем стабильную сортировку
301
+
302
+ # Запускаем тест → он падает → баг подтверждён
303
+
304
+ # 2. Только теперь исправляем
305
+ def sort_scores(scores):
306
+ return sorted(scores, key=lambda x: (-x['score'], x['name']))
307
+
308
+ # Запускаем тест → зелёный
309
+ ```
310
+
311
+ ---
312
+
313
+ ## Сводка: что делать нельзя
314
+
315
+ | Принцип | Типичная ошибка | Правильно |
316
+ |---|---|---|
317
+ | Сначала думай | Молча выбирает формат, поля, трактовку задачи | Называет предположения явно, спрашивает |
318
+ | Делай только то, что просили | Strategy pattern ради одного расчёта | Одна функция — и точка |
319
+ | Трогай только то, что нужно | Правит кавычки и добавляет типы при фиксе бага | Меняет только строки, касающиеся задачи |
320
+ | Работай от результата | "Проанализирую и улучшу" | "Тест воспроизводит баг → исправляю → проверяю регрессии" |
321
+
322
+ ## Главный вывод
323
+
324
+ Переусложнённые решения не выглядят явно неправильными — они следуют паттернам и best practices. Проблема в **моменте**: сложность добавляется раньше, чем она реально нужна.
325
+
326
+ **Хорошее решение — это минимум, который решает задачу сегодня, а не задачу, которая, возможно, появится завтра.**
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "karpathy-guidelines",
3
+ "display_name": "Karpathy Guidelines",
4
+ "description": "Правила работы для предотвращения типичных ошибок LLM — сначала думай, делай только нужное, правь точечно, работай от результата.",
5
+ "default_prompt": "Используй $karpathy-guidelines, когда задача требует соблюдения правил качества: написание кода, ревью, рефакторинг, анализ или проектирование.",
6
+ "triggers": [
7
+ "karpathy-guidelines",
8
+ "karpathy",
9
+ "Karpathy Guidelines",
10
+ "сначала думай потом делай",
11
+ "простота прежде всего",
12
+ "хирургические изменения"
13
+ ],
14
+ "capabilities": [
15
+ "quality",
16
+ "guidelines",
17
+ "best-practices"
18
+ ],
19
+ "tools": [],
20
+ "implicit_invocation": true
21
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "karpathy-guidelines",
3
+ "display_name": "Karpathy Guidelines",
4
+ "description": "Правила работы для предотвращения типичных ошибок LLM — сначала думай, делай только нужное, правь точечно, работай от результата.",
5
+ "default_prompt": "Используй $karpathy-guidelines, когда задача требует соблюдения правил качества: написание кода, ревью, рефакторинг, анализ или проектирование.",
6
+ "triggers": [
7
+ "karpathy-guidelines",
8
+ "karpathy",
9
+ "Karpathy Guidelines",
10
+ "сначала думай потом делай",
11
+ "простота прежде всего",
12
+ "хирургические изменения"
13
+ ],
14
+ "capabilities": [
15
+ "quality",
16
+ "guidelines",
17
+ "best-practices"
18
+ ],
19
+ "tools": [],
20
+ "implicit_invocation": true
21
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "karpathy-guidelines",
3
+ "display_name": "Karpathy Guidelines",
4
+ "description": "Правила работы для предотвращения типичных ошибок LLM — сначала думай, делай только нужное, правь точечно, работай от результата.",
5
+ "default_prompt": "Используй $karpathy-guidelines, когда задача требует соблюдения правил качества: написание кода, ревью, рефакторинг, анализ или проектирование.",
6
+ "triggers": [
7
+ "karpathy-guidelines",
8
+ "karpathy",
9
+ "Karpathy Guidelines",
10
+ "сначала думай потом делай",
11
+ "простота прежде всего",
12
+ "хирургические изменения"
13
+ ],
14
+ "capabilities": [
15
+ "quality",
16
+ "guidelines",
17
+ "best-practices"
18
+ ],
19
+ "tools": [],
20
+ "implicit_invocation": true
21
+ }
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "Karpathy Guidelines"
3
+ short_description: "Поведенческие правила для снижения типичных ошибок LLM — думай перед тем как делать, простота, хирургические изменения, ориентация на цель."
4
+ default_prompt: "Используй $karpathy-guidelines, когда задача требует соблюдения правил качества: написание кода, ревью, рефакторинг, анализ или проектирование."
5
+ dependencies:
6
+ tools: []
7
+ policy:
8
+ allow_implicit_invocation: true
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "karpathy-guidelines",
3
+ "display_name": "Karpathy Guidelines",
4
+ "description": "Правила работы для предотвращения типичных ошибок LLM — сначала думай, делай только нужное, правь точечно, работай от результата.",
5
+ "default_prompt": "Используй $karpathy-guidelines, когда задача требует соблюдения правил качества: написание кода, ревью, рефакторинг, анализ или проектирование.",
6
+ "triggers": [
7
+ "karpathy-guidelines",
8
+ "karpathy",
9
+ "Karpathy Guidelines",
10
+ "сначала думай потом делай",
11
+ "простота прежде всего",
12
+ "хирургические изменения"
13
+ ],
14
+ "capabilities": [
15
+ "quality",
16
+ "guidelines",
17
+ "best-practices"
18
+ ],
19
+ "tools": [],
20
+ "implicit_invocation": true
21
+ }
@@ -0,0 +1,25 @@
1
+ version: 1
2
+ name: "karpathy-guidelines"
3
+ display_name: "Karpathy Guidelines"
4
+ description: "Правила работы для предотвращения типичных ошибок LLM — сначала думай, делай только нужное, правь точечно, работай от результата."
5
+ default_prompt: "Используй $karpathy-guidelines, когда задача требует соблюдения правил качества: написание кода, ревью, рефакторинг, анализ или проектирование."
6
+ triggers:
7
+ - "karpathy-guidelines"
8
+ - "karpathy"
9
+ - "Karpathy Guidelines"
10
+ - "сначала думай потом делай"
11
+ - "простота прежде всего"
12
+ - "хирургические изменения"
13
+ capabilities:
14
+ - "quality"
15
+ - "guidelines"
16
+ - "best-practices"
17
+ tools: []
18
+ invocation:
19
+ explicit: true
20
+ implicit: true
21
+ localization:
22
+ default_locale: "ru"
23
+ available_locales:
24
+ - "ru"
25
+ - "en"
package/AGENTS.md CHANGED
@@ -117,6 +117,9 @@
117
117
  - $security-baseline-dev
118
118
  - $compass-mongodb
119
119
 
120
+ ### Cross-cutting / Quality (все агенты, все домены)
121
+ - $karpathy-guidelines
122
+
120
123
  ### Testing (QA)
121
124
  - $qa-test-plan
122
125
  - $qa-manual-run
@@ -148,6 +151,16 @@ CONDUCTOR → DEV+TEST(Fix + self-check + GO/NO-GO)
148
151
 
149
152
  ---
150
153
 
154
+ ## Обязательное правило качества (Karpathy Guidelines)
155
+
156
+ **$karpathy-guidelines обязателен для всех агентов во всех доменах.** Перед любой нетривиальной задачей:
157
+ 1. **Сначала думай, потом делай** — явно называй предположения, спрашивай при неопределённости.
158
+ 2. **Делай только то, что просили** — минимум, решающий задачу. Ничего лишнего.
159
+ 3. **Правь точечно** — трогай только то, что необходимо для задачи.
160
+ 4. **Работай от результата** — определи проверяемые критерии успеха до начала работы.
161
+
162
+ ---
163
+
151
164
  ## Обязательное правило документации функций
152
165
  - Для всех функций в кодовой базе использовать JSDoc-блок в формате:
153
166
 
package/CONTEXT.md CHANGED
@@ -4,9 +4,9 @@
4
4
  |------|----------|
5
5
  | **Название** | code-ai-installer |
6
6
  | **Описание** | CLI для установки AI-агентов и скилов для множества AI-ассистентов |
7
- | **Текущая фаза** | v2.1.0Socket.dev Supply-Chain Integration |
7
+ | **Текущая фаза** | v2.4.1 — Domain karpathy fix + Gemini agent rename |
8
8
  | **Дата создания** | 2026-03-01 |
9
- | **Последнее обновление** | 2026-04-08 |
9
+ | **Последнее обновление** | 2026-04-29 |
10
10
 
11
11
  ---
12
12
 
@@ -45,13 +45,18 @@
45
45
  - DomainId strict enum + zod validation
46
46
  - domainResolver.ts: listDomains, resolveDomainSourceRoot, normalizeDomain
47
47
  - sourceResolver.ts: расширена isValidSourceRoot для domains/ layout
48
- - installer.ts: domain-aware state file naming (target--domain.json)
48
+ - installer.ts: domain-aware state file naming (target--domain.json) + Gemini prompt.md → `<agent>.md` migration (v2.4.1)
49
49
  - index.ts: --domain flag на всех CLI командах, wizard domain step
50
- - domains/development/: зеркало корня (8 agents, 71 skills, 5 workflows)
51
- - domains/content/: новый домен (6 agents, 30 skills, 4 workflows)
52
- - Локали en/ для обоих доменов
53
- - package.json: v2.0.0, "domains" в files array
54
- - 93 теста (86 existing + 7 new), все GREEN
50
+ - domains/development/: 8 agents, 72 skills (включая karpathy-guidelines), 5 workflows
51
+ - domains/content/: 6 agents, 35 skills, 4 workflows
52
+ - domains/analytics/: 8 agents, 24 skills
53
+ - domains/product/: 10 agents, 33 skills
54
+ - Локали en/ для всех 4 доменов
55
+ - karpathy-guidelines: cross-cutting skill, mandatory for all agents in all domains (v2.4.1 fix: добавлен в `domains/<id>/`)
56
+ - Gemini layout: `<agentsDir>/<agentName>/<agentName>.md` (v2.4.1, было `prompt.md` до v2.4.0)
57
+ - agentSkillResolution регрессионный тест: ловит broken `$skill-name` ссылки из агентов
58
+ - package.json: v2.4.1, "domains" в files array
59
+ - 102 теста, все GREEN
55
60
  - Build (tsc): 0 errors
56
61
 
57
62
  ### В процессе
@@ -80,3 +85,4 @@
80
85
  | Session 3 | 2026-04-04 | Gates 4-8: DEV + REV + OPS + TEST + RG | src/domainResolver.ts, domains/, package.json v2.0.0 |
81
86
  | Hotfix v2.0.2 | 2026-04-08 | Bugfix + защита от регрессии: (1) 30 content-domain скиллов имели расхождения `description` между SKILL.md frontmatter и портабл/вендор sidecar — приведено к SKILL.md (источник истины), 150 файлов обновлено. (2) 4 скилла (`email-engagement-tiers`, `google-stitch-content`, `mailerlite-email-ops`, `marketing-psychology`) шипились без sidecar — сгенерированы 24 файла (skill.yaml + claude/copilot/gemini/qwen.json + openai.yaml). (3) Test gap: единственный test против реальных файлов смотрел только на легаси-корень репо (= development domain), content domain был слепой. Добавлен `metadataAudit.test.ts → "should pass audit for every domain × every target"` — итерируется по `listDomains() × 5 targets`. (4) `package.json prepack` теперь запускает `doctor:all` (`development` + `content`) — `npm publish` не сможет запаковать сломанный пакет. 94/94 теста зелёные, doctor PASS на всех 5 targets без warnings. **Не публиковался отдельно — все изменения вошли в v2.1.0.** | См. v2.1.0 |
82
87
  | Feature v2.1.0 | 2026-04-08 | **Socket.dev Supply-Chain Integration**. Bugfix-pipeline (CONDUCTOR → ARCH lite → DEV → REV → TEST) с user sign-off на каждом гейте. Изменения: (1) `dependency-supply-chain-review` skill v2.0 — добавлена секция «0. Prerequisites» с обязательным `socket-mcp` (HTTP по умолчанию, stdio для paid аккаунтов), detection protocol, degraded mode protocol; новая секция «9. Socket.dev Integration» с `depscore` workflow и threshold matrix (supply_chain≥0.75, vulnerability≥0.80, license≥0.50); checklist 3.2 расширен DEP-05a/05b/05c/05d (P0); Output Template обновлён блоком Socket.dev Audit. (2) Reviewer agent: добавлен socket-mcp в Входы, обязательный принцип supply chain через socket.dev в Главные принципы, поле `SOCKET.DEV MODE` в Handoff Envelope. (3) Senior Full Stack agent: новый принцип #11 (pre-install gate), шаг в Security Baseline, новый DoD пункт, поле `SOCKET.DEV PRE-INSTALL` в Handoff Envelope. (4) RU + EN локали зеркальны. (5) 12 sidecar файлов синхронизированы (RU + EN × 6 файлов). (6) Bonus: фиксы из v2.0.2 (sidecar metadata + regression test + prepack:doctor:all) включены в этот же релиз. P0 алерты от socket.dev блокируют установку до явного подтверждения. Degraded mode (socket-mcp недоступен) — review не блокируется, но статус фиксируется. | package.json v2.1.0, domains/development/.agents/skills/dependency-supply-chain-review/**, domains/development/agents/{reviewer,senior_full_stack}.md, domains/content/** (sidecar fixes из v2.0.2), src/__tests__/metadataAudit.test.ts |
88
+ | Bugfix v2.4.1 | 2026-04-29 | **Domain karpathy fix + Gemini agent rename**. Bugfix-pipeline (CONDUCTOR → DEV → REV → TEST → RG) с user sign-off на каждом гейте. **Часть A — karpathy в доменах:** v2.4.0 поставил `$karpathy-guidelines` в легаси-корень репо, но забыл скопировать папку скила в `domains/<id>/.agents/skills/`, при этом 32 файла агентов в доменах уже ссылались на скил. При установке через `--domain <id>` скил физически отсутствовал. Скил скопирован в 4 домена × 2 локали (56 файлов), секция «Cross-cutting / Quality» добавлена в 8 файлов AGENTS.md. **Часть B — Gemini agent rename:** до v2.4.1 Gemini-адаптер ставил агентов как `<agentsDir>/<agentName>/prompt.md`, теперь как `<agentsDir>/<agentName>/<agentName>.md`. Добавлена `migrateLegacyGeminiPromptFiles` миграция в `runInstall`: переименовывает legacy `prompt.md` → `<agentName>.md` (сохраняя user-customized content под skip mode), патчит `promptFile` поле в legacy `config.json`, чистит orphan файлы. Идемпотентна, под backup/rollback covered. **Часть C — регрессионный тест:** новый `agentSkillResolution.test.ts` проверяет резолвимость каждого `$skill-name` из агентов в существующую папку скила домена. Тест нашёл 2 пре-существующих бага: (1) литеральный `$skill-name` плейсхолдер в `analytics/data_analyst.md` (RU+EN) — заменён на `` `<skill-name>` ``; (2) `$google-stitch` → `$google-stitch-skill` в `development/ux_ui_designer.md` (RU+EN). **Verification:** 102/102 тестов PASS, doctor:all PASS на всех 4 доменах × 5 targets, end-to-end smoke-install gemini target в tmp подтвердил миграцию с user customizations preserved. | package.json v2.4.1, domains/{development,content,analytics,product}/.agents/skills/karpathy-guidelines/**, domains/{...}/locales/en/.agents/skills/karpathy-guidelines/**, domains/{...}/AGENTS.md (RU+EN), src/installer.ts, src/platforms/adapters.ts, src/__tests__/agentSkillResolution.test.ts (NEW), src/__tests__/installer.test.ts, src/__tests__/domainIntegration.test.ts |
@@ -273,6 +273,7 @@
273
273
  ---
274
274
 
275
275
  ## Используемые skills (вызовы)
276
+ - **$karpathy-guidelines** — сначала думай, делай только нужное, правь точечно, работай от результата
276
277
  - $current-state-analysis
277
278
  - $system-design-checklist
278
279
  - $architecture-doc
@@ -275,6 +275,7 @@
275
275
  ---
276
276
 
277
277
  ## Используемые skills (вызовы)
278
+ - **$karpathy-guidelines** — сначала думай, делай только нужное, правь точечно, работай от результата
278
279
  - $board
279
280
  - $handoff
280
281
  - $memory
package/agents/devops.md CHANGED
@@ -193,6 +193,7 @@ lint → typecheck → unit tests → integration tests → build → deploy (st
193
193
  ---
194
194
 
195
195
  ## Используемые skills (вызовы)
196
+ - **$karpathy-guidelines** — сначала думай, делай только нужное, правь точечно, работай от результата
196
197
  - $deployment-ci-plan
197
198
  - $docker-kubernetes-architecture
198
199
  - $k8s-manifests-conventions
@@ -122,6 +122,7 @@ PRD должен содержать:
122
122
  ---
123
123
 
124
124
  ## Используемые skills (вызовы)
125
+ - **$karpathy-guidelines** — сначала думай, делай только нужное, правь точечно, работай от результата
125
126
  - $pm-interview
126
127
  - $pm-prd
127
128
  - $pm-backlog
@@ -154,6 +154,7 @@ Reviewer обязан выдать отчёт, который может исп
154
154
  ---
155
155
 
156
156
  ## Используемые skills (вызовы)
157
+ - **$karpathy-guidelines** — сначала думай, делай только нужное, правь точечно, работай от результата
157
158
  - $code-review-checklist
158
159
  - $security-review
159
160
  - $cloud-infrastructure-security
@@ -170,6 +170,7 @@
170
170
  ---
171
171
 
172
172
  ## Используемые skills (вызовы)
173
+ - **$karpathy-guidelines** — сначала думай, делай только нужное, правь точечно, работай от результата
173
174
  - $tdd-workflow
174
175
  - $testing-strategy-js
175
176
  - $tests-quality-review
package/agents/tester.md CHANGED
@@ -210,6 +210,7 @@ Tester не обязан писать всю автоматизацию сам,
210
210
  ---
211
211
 
212
212
  ## Используемые skills (вызовы)
213
+ - **$karpathy-guidelines** — сначала думай, делай только нужное, правь точечно, работай от результата
213
214
  - $qa-test-plan
214
215
  - $qa-manual-run
215
216
  - $qa-browser-testing — визуальное E2E через встроенный Antigravity Browser
@@ -153,6 +153,7 @@
153
153
  ---
154
154
 
155
155
  ## Используемые skills (вызовы)
156
+ - **$karpathy-guidelines** — сначала думай, делай только нужное, правь точечно, работай от результата
156
157
  - $ux-discovery
157
158
  - $ux-spec
158
159
  - $ui-inventory
@@ -7,6 +7,8 @@ interface ApplyResult {
7
7
  }
8
8
  /**
9
9
  * Runs installation for selected target with optional dry-run and backup.
10
+ * For target=google-antugravity, runs legacy prompt.md migration before applyOperations
11
+ * so the migrated <agent>.md ends up under applyOperations' backup/rollback coverage.
10
12
  * @param options Install options.
11
13
  * @returns Install state and write summary.
12
14
  */