claudeos-core 1.6.2 → 1.7.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/CHANGELOG.md +26 -0
- package/README.de.md +655 -653
- package/README.es.md +657 -655
- package/README.fr.md +657 -655
- package/README.hi.md +656 -654
- package/README.ja.md +675 -673
- package/README.ko.md +692 -690
- package/README.md +712 -710
- package/README.ru.md +656 -654
- package/README.vi.md +656 -654
- package/README.zh-CN.md +656 -654
- package/bin/commands/init.js +386 -357
- package/package.json +1 -1
- package/pass-prompts/templates/common/pass3-footer.md +23 -3
- package/pass-prompts/templates/node-vite/pass1.md +117 -0
- package/pass-prompts/templates/node-vite/pass2.md +78 -0
- package/pass-prompts/templates/node-vite/pass3.md +103 -0
- package/plan-installer/domain-grouper.js +75 -73
- package/plan-installer/index.js +129 -126
- package/plan-installer/scanners/scan-frontend.js +264 -254
- package/plan-installer/scanners/scan-node.js +57 -46
- package/plan-installer/scanners/scan-python.js +64 -55
- package/plan-installer/stack-detector.js +466 -454
- package/plan-installer/structure-scanner.js +65 -65
package/README.ru.md
CHANGED
|
@@ -1,654 +1,656 @@
|
|
|
1
|
-
# ClaudeOS-Core
|
|
2
|
-
|
|
3
|
-
**Единственный инструмент, который сначала читает ваш исходный код, подтверждает стек и паттерны детерминированным анализом, а затем генерирует правила Claude Code, точно адаптированные к вашему проекту.**
|
|
4
|
-
|
|
5
|
-
```bash
|
|
6
|
-
npx claudeos-core init
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
ClaudeOS-Core читает вашу кодовую базу, извлекает все паттерны и генерирует полный набор Standards, Rules, Skills и Guides, адаптированных под _ваш_ проект. После этого, когда вы говорите Claude Code «Создай CRUD для заказов», он генерирует код, точно соответствующий вашим существующим паттернам.
|
|
10
|
-
|
|
11
|
-
[🇺🇸 English](./README.md) · [🇰🇷 한국어](./README.ko.md) · [🇨🇳 中文](./README.zh-CN.md) · [🇯🇵 日本語](./README.ja.md) · [🇪🇸 Español](./README.es.md) · [🇻🇳 Tiếng Việt](./README.vi.md) · [🇮🇳 हिन्दी](./README.hi.md) · [🇫🇷 Français](./README.fr.md) · [🇩🇪 Deutsch](./README.de.md)
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Почему ClaudeOS-Core?
|
|
16
|
-
|
|
17
|
-
> Человек описывает проект → LLM генерирует документацию
|
|
18
|
-
|
|
19
|
-
ClaudeOS-Core:
|
|
20
|
-
|
|
21
|
-
> Код анализирует исходники → Код строит кастомный промпт → LLM генерирует документацию → Код верифицирует вывод
|
|
22
|
-
|
|
23
|
-
### Ключевая проблема: LLM угадывает. Код подтверждает.
|
|
24
|
-
|
|
25
|
-
Когда вы просите Claude «проанализировать проект», он **угадывает** стек, ORM, структуру доменов.
|
|
26
|
-
|
|
27
|
-
**ClaudeOS-Core не угадывает.** Claude Node.js:
|
|
28
|
-
|
|
29
|
-
- `build.gradle` / `package.json` / `pyproject.toml` → **confirmed**
|
|
30
|
-
- directory scan → **confirmed**
|
|
31
|
-
- Java 5 patterns, Kotlin CQRS/BFF, Next.js App Router/FSD → **classified**
|
|
32
|
-
- domain groups → **split**
|
|
33
|
-
- stack-specific prompt → **assembled**
|
|
34
|
-
|
|
35
|
-
### Результат
|
|
36
|
-
|
|
37
|
-
Другие инструменты создают «в целом хорошую» документацию.
|
|
38
|
-
ClaudeOS-Core создаёт документацию, которая знает, что ваш проект использует `ApiResponse.ok()` (а не `ResponseEntity.success()`), что MyBatis XML маппер находится в `src/main/resources/mybatis/mappers/` — потому что он прочитал ваш реальный код.
|
|
39
|
-
|
|
40
|
-
### Before & After
|
|
41
|
-
|
|
42
|
-
**Без ClaudeOS-Core**:
|
|
43
|
-
```
|
|
44
|
-
❌ JPA repository (MyBatis)
|
|
45
|
-
❌ ResponseEntity.success() (ApiResponse.ok())
|
|
46
|
-
❌ order/controller/ (controller/order/)
|
|
47
|
-
→ 20 min fix per file
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
**С ClaudeOS-Core**:
|
|
51
|
-
```
|
|
52
|
-
✅ MyBatis mapper + XML (build.gradle)
|
|
53
|
-
✅ ApiResponse.ok() (source code)
|
|
54
|
-
✅ controller/order/ (Pattern A)
|
|
55
|
-
→ immediate match
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Эта разница накапливается. 10 задач/день × 20 минут экономии = **более 3 часов в день**.
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## Поддерживаемые стеки
|
|
63
|
-
|
|
64
|
-
| Стек | Обнаружение | Глубина анализа |
|
|
65
|
-
|---|---|---|
|
|
66
|
-
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 паттернов пакетов | 10 категорий, 59 подпунктов |
|
|
67
|
-
| **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 категорий, 95 подпунктов |
|
|
68
|
-
| **Node.js / Express** | `package.json` | 9 категорий, 57 подпунктов |
|
|
69
|
-
| **Node.js / NestJS** | `package.json` (`@nestjs/core`) | 10 категорий, 68 подпунктов |
|
|
70
|
-
| **Next.js / React** | `package.json`, `next.config.*`, поддержка FSD | 9 категорий, 55 подпунктов |
|
|
71
|
-
| **Vue / Nuxt** | `package.json`, `nuxt.config.*`, Composition API | 9 категорий, 58 подпунктов |
|
|
72
|
-
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 категорий, 55 подпунктов |
|
|
73
|
-
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 категорий, 58 подпунктов |
|
|
74
|
-
| **Node.js / Fastify** | `package.json` | 10 категорий, 62 подпункта |
|
|
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
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
...
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
npx claudeos-core init --lang
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
- `
|
|
227
|
-
- `
|
|
228
|
-
- `
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
node claudeos-core-tools/
|
|
285
|
-
node claudeos-core-tools/
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
"
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
├── [
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
│ ├──
|
|
322
|
-
│
|
|
323
|
-
│
|
|
324
|
-
|
|
325
|
-
│
|
|
326
|
-
|
|
327
|
-
│
|
|
328
|
-
|
|
329
|
-
│
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
│
|
|
333
|
-
|
|
334
|
-
└──
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
**Pass
|
|
342
|
-
|
|
343
|
-
**Pass
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
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
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
|
384
|
-
|
|
385
|
-
|
|
|
386
|
-
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
npx claudeos-core
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
|
409
|
-
|
|
410
|
-
| **
|
|
411
|
-
| **
|
|
412
|
-
| **
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
|
425
|
-
|
|
426
|
-
|
|
|
427
|
-
| `.claude/rules/
|
|
428
|
-
| `.claude/rules/
|
|
429
|
-
| `.claude/rules/
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
`
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
|
447
|
-
|
|
448
|
-
| `claudeos-core/
|
|
449
|
-
| `claudeos-core/
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
"
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
#
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
|
496
|
-
|
|
497
|
-
| **
|
|
498
|
-
| **
|
|
499
|
-
| **
|
|
500
|
-
| **
|
|
501
|
-
| **
|
|
502
|
-
| **
|
|
503
|
-
| **
|
|
504
|
-
| **
|
|
505
|
-
| **
|
|
506
|
-
| **
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
├──
|
|
562
|
-
├──
|
|
563
|
-
├──
|
|
564
|
-
├── node-
|
|
565
|
-
├── node-
|
|
566
|
-
├──
|
|
567
|
-
├──
|
|
568
|
-
├──
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
- `
|
|
584
|
-
- `
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
- Зависимости из `
|
|
597
|
-
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
- `
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
│
|
|
611
|
-
│
|
|
612
|
-
│
|
|
613
|
-
│
|
|
614
|
-
├──
|
|
615
|
-
│
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
**"
|
|
627
|
-
|
|
628
|
-
**"
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
1
|
+
# ClaudeOS-Core
|
|
2
|
+
|
|
3
|
+
**Единственный инструмент, который сначала читает ваш исходный код, подтверждает стек и паттерны детерминированным анализом, а затем генерирует правила Claude Code, точно адаптированные к вашему проекту.**
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npx claudeos-core init
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
ClaudeOS-Core читает вашу кодовую базу, извлекает все паттерны и генерирует полный набор Standards, Rules, Skills и Guides, адаптированных под _ваш_ проект. После этого, когда вы говорите Claude Code «Создай CRUD для заказов», он генерирует код, точно соответствующий вашим существующим паттернам.
|
|
10
|
+
|
|
11
|
+
[🇺🇸 English](./README.md) · [🇰🇷 한국어](./README.ko.md) · [🇨🇳 中文](./README.zh-CN.md) · [🇯🇵 日本語](./README.ja.md) · [🇪🇸 Español](./README.es.md) · [🇻🇳 Tiếng Việt](./README.vi.md) · [🇮🇳 हिन्दी](./README.hi.md) · [🇫🇷 Français](./README.fr.md) · [🇩🇪 Deutsch](./README.de.md)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Почему ClaudeOS-Core?
|
|
16
|
+
|
|
17
|
+
> Человек описывает проект → LLM генерирует документацию
|
|
18
|
+
|
|
19
|
+
ClaudeOS-Core:
|
|
20
|
+
|
|
21
|
+
> Код анализирует исходники → Код строит кастомный промпт → LLM генерирует документацию → Код верифицирует вывод
|
|
22
|
+
|
|
23
|
+
### Ключевая проблема: LLM угадывает. Код подтверждает.
|
|
24
|
+
|
|
25
|
+
Когда вы просите Claude «проанализировать проект», он **угадывает** стек, ORM, структуру доменов.
|
|
26
|
+
|
|
27
|
+
**ClaudeOS-Core не угадывает.** Claude Node.js:
|
|
28
|
+
|
|
29
|
+
- `build.gradle` / `package.json` / `pyproject.toml` → **confirmed**
|
|
30
|
+
- directory scan → **confirmed**
|
|
31
|
+
- Java 5 patterns, Kotlin CQRS/BFF, Next.js App Router/FSD → **classified**
|
|
32
|
+
- domain groups → **split**
|
|
33
|
+
- stack-specific prompt → **assembled**
|
|
34
|
+
|
|
35
|
+
### Результат
|
|
36
|
+
|
|
37
|
+
Другие инструменты создают «в целом хорошую» документацию.
|
|
38
|
+
ClaudeOS-Core создаёт документацию, которая знает, что ваш проект использует `ApiResponse.ok()` (а не `ResponseEntity.success()`), что MyBatis XML маппер находится в `src/main/resources/mybatis/mappers/` — потому что он прочитал ваш реальный код.
|
|
39
|
+
|
|
40
|
+
### Before & After
|
|
41
|
+
|
|
42
|
+
**Без ClaudeOS-Core**:
|
|
43
|
+
```
|
|
44
|
+
❌ JPA repository (MyBatis)
|
|
45
|
+
❌ ResponseEntity.success() (ApiResponse.ok())
|
|
46
|
+
❌ order/controller/ (controller/order/)
|
|
47
|
+
→ 20 min fix per file
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**С ClaudeOS-Core**:
|
|
51
|
+
```
|
|
52
|
+
✅ MyBatis mapper + XML (build.gradle)
|
|
53
|
+
✅ ApiResponse.ok() (source code)
|
|
54
|
+
✅ controller/order/ (Pattern A)
|
|
55
|
+
→ immediate match
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Эта разница накапливается. 10 задач/день × 20 минут экономии = **более 3 часов в день**.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Поддерживаемые стеки
|
|
63
|
+
|
|
64
|
+
| Стек | Обнаружение | Глубина анализа |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| **Java / Spring Boot** | `build.gradle`, `pom.xml`, 5 паттернов пакетов | 10 категорий, 59 подпунктов |
|
|
67
|
+
| **Kotlin / Spring Boot** | `build.gradle.kts`, kotlin plugin, `settings.gradle.kts`, CQRS/BFF auto-detect | 12 категорий, 95 подпунктов |
|
|
68
|
+
| **Node.js / Express** | `package.json` | 9 категорий, 57 подпунктов |
|
|
69
|
+
| **Node.js / NestJS** | `package.json` (`@nestjs/core`) | 10 категорий, 68 подпунктов |
|
|
70
|
+
| **Next.js / React** | `package.json`, `next.config.*`, поддержка FSD | 9 категорий, 55 подпунктов |
|
|
71
|
+
| **Vue / Nuxt** | `package.json`, `nuxt.config.*`, Composition API | 9 категорий, 58 подпунктов |
|
|
72
|
+
| **Python / Django** | `requirements.txt`, `pyproject.toml` | 10 категорий, 55 подпунктов |
|
|
73
|
+
| **Python / FastAPI** | `requirements.txt`, `pyproject.toml` | 10 категорий, 58 подпунктов |
|
|
74
|
+
| **Node.js / Fastify** | `package.json` | 10 категорий, 62 подпункта |
|
|
75
|
+
| **Vite / React SPA** | `package.json`, `vite.config.*` | 9 категорий, 55 подпунктов |
|
|
76
|
+
| **Angular** | `package.json`, `angular.json` | 12 категорий, 78 подпунктов |
|
|
77
|
+
|
|
78
|
+
Автоматическое определение: язык и версия, фреймворк и версия (включая Vite как SPA-фреймворк), ORM (MyBatis, JPA, Exposed, Prisma, TypeORM, SQLAlchemy и др.), база данных (PostgreSQL, MySQL, Oracle, MongoDB, SQLite), пакетный менеджер (Gradle, Maven, npm, yarn, pnpm, pip, poetry), архитектура (CQRS, BFF — определяется из имён модулей), мультимодульная структура (из settings.gradle), монорепозиторий (Turborepo, pnpm-workspace, Lerna, npm/yarn workspaces).
|
|
79
|
+
|
|
80
|
+
**Вам не нужно ничего указывать. Всё определяется автоматически.**
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
### Обнаружение Java-доменов (5 паттернов с фолбэком)
|
|
84
|
+
|
|
85
|
+
| Приоритет | Паттерн | Структура | Пример |
|
|
86
|
+
|---|---|---|---|
|
|
87
|
+
| A | Слой-первый | `controller/{domain}/` | `controller/user/UserController.java` |
|
|
88
|
+
| B | Домен-первый | `{domain}/controller/` | `user/controller/UserController.java` |
|
|
89
|
+
| D | Модуль-префикс | `{module}/{domain}/controller/` | `front/member/controller/MemberController.java` |
|
|
90
|
+
| E | DDD/Гексагональный | `{domain}/adapter/in/web/` | `user/adapter/in/web/UserController.java` |
|
|
91
|
+
| C | Плоский | `controller/*.java` | `controller/UserController.java` → извлекает `user` из имени класса |
|
|
92
|
+
|
|
93
|
+
Домены только с сервисами (без контроллеров) тоже обнаруживаются через директории `service/`, `dao/`, `aggregator/`, `facade/`, `usecase/`, `orchestrator/`, `mapper/`, `repository/`. Пропускаются: `common`, `config`, `util`, `core`, `front`, `admin`, `v1`, `v2` и т.д.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
### Обнаружение доменов Kotlin мультимодульных проектов
|
|
97
|
+
|
|
98
|
+
Для проектов Kotlin с Gradle мультимодульной структурой (например: CQRS монорепо):
|
|
99
|
+
|
|
100
|
+
| Шаг | Действие | Пример |
|
|
101
|
+
|---|---|---|
|
|
102
|
+
| 1 | Сканирование `settings.gradle.kts` на наличие `include()` | Найдено 14 модулей |
|
|
103
|
+
| 2 | Определение типа модуля по имени | `reservation-command-server` → тип: `command` |
|
|
104
|
+
| 3 | Извлечение домена из имени модуля | `reservation-command-server` → домен: `reservation` |
|
|
105
|
+
| 4 | Группировка одного домена по модулям | `reservation-command-server` + `common-query-server` → 1 домен |
|
|
106
|
+
| 5 | Определение архитектуры | Есть модули `command` + `query` → CQRS |
|
|
107
|
+
|
|
108
|
+
Поддерживаемые типы модулей: `command`, `query`, `bff`, `integration`, `standalone`, `library`. Общие библиотеки (`shared-lib`, `integration-lib`) обнаруживаются как специальные домены.
|
|
109
|
+
|
|
110
|
+
### Обнаружение фронтенд-доменов
|
|
111
|
+
|
|
112
|
+
- **App Router**: `app/{domain}/page.tsx` (Next.js)
|
|
113
|
+
- **Pages Router**: `pages/{domain}/index.tsx`
|
|
114
|
+
- **FSD (Feature-Sliced Design)**: `features/*/`, `widgets/*/`, `entities/*/`
|
|
115
|
+
- **RSC/Client разделение**: Обнаружение паттерна `client.tsx`, отслеживание разделения Server/Client
|
|
116
|
+
- **Нестандартные вложенные пути**: обнаружение страниц, компонентов и FSD-слоёв в `src/*/pages/`, `src/*/components/`, `src/*/features/` (например, `src/admin/pages/dashboard/`)
|
|
117
|
+
- **Фолбэк конфигурации**: Обнаружение Next.js/Vite/Nuxt из конфиг-файлов (поддержка monorepo)
|
|
118
|
+
- **Фолбэк глубоких директорий**: Для React/CRA/Vite/Vue/RN проектов сканирует `**/components/*/`, `**/views/*/`, `**/screens/*/`, `**/containers/*/`, `**/pages/*/`, `**/routes/*/`, `**/modules/*/`, `**/domains/*/` на любой глубине
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Быстрый старт
|
|
123
|
+
|
|
124
|
+
### Предварительные требования
|
|
125
|
+
|
|
126
|
+
- **Node.js** v18+
|
|
127
|
+
- **Claude Code CLI** (установлен и авторизован)
|
|
128
|
+
|
|
129
|
+
### Установка
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
cd /your/project/root
|
|
133
|
+
|
|
134
|
+
# Вариант A: npx (рекомендуется — установка не нужна)
|
|
135
|
+
npx claudeos-core init
|
|
136
|
+
|
|
137
|
+
# Вариант B: глобальная установка
|
|
138
|
+
npm install -g claudeos-core
|
|
139
|
+
claudeos-core init
|
|
140
|
+
|
|
141
|
+
# Вариант C: devDependency проекта
|
|
142
|
+
npm install --save-dev claudeos-core
|
|
143
|
+
npx claudeos-core init
|
|
144
|
+
|
|
145
|
+
# Вариант D: git clone (для разработки/контрибуции)
|
|
146
|
+
git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
|
|
147
|
+
|
|
148
|
+
# Кроссплатформенный (PowerShell, CMD, Bash, Zsh — любой терминал)
|
|
149
|
+
node claudeos-core-tools/bin/cli.js init
|
|
150
|
+
|
|
151
|
+
# Только Linux/macOS (только Bash)
|
|
152
|
+
bash claudeos-core-tools/bootstrap.sh
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Язык вывода (10 языков)
|
|
156
|
+
|
|
157
|
+
При запуске `init` без `--lang` появляется интерактивный селектор (стрелки или цифровые клавиши):
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
╔══════════════════════════════════════════════════╗
|
|
161
|
+
║ Select generated document language (required) ║
|
|
162
|
+
╚══════════════════════════════════════════════════╝
|
|
163
|
+
|
|
164
|
+
Сгенерированные файлы (CLAUDE.md, Standards, Rules,
|
|
165
|
+
Skills, Guides) будут написаны на русском языке.
|
|
166
|
+
|
|
167
|
+
1. en — English
|
|
168
|
+
...
|
|
169
|
+
❯ 8. ru — Русский (Russian)
|
|
170
|
+
...
|
|
171
|
+
|
|
172
|
+
↑↓ Move 1-0 Jump Enter Select ESC Cancel
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
При навигации описание переключается на соответствующий язык. Чтобы пропустить селектор:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
npx claudeos-core init --lang ru # Русский
|
|
179
|
+
npx claudeos-core init --lang en # English
|
|
180
|
+
npx claudeos-core init --lang ko # 한국어
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
> **Примечание:** Эта настройка изменяет только язык генерируемых файлов документации. Анализ кода (Pass 1–2) всегда выполняется на английском; только результат генерации (Pass 3) пишется на выбранном языке.
|
|
184
|
+
|
|
185
|
+
Это всё. Через 5–18 минут вся документация сгенерирована и готова к использованию. CLI показывает прогресс-бар с процентом, прошедшим временем и расчётным оставшимся временем для каждого Pass.
|
|
186
|
+
|
|
187
|
+
### Ручная пошаговая установка
|
|
188
|
+
|
|
189
|
+
Если вы хотите полностью контролировать каждый этап — или если автоматический пайплайн сбоит на каком-то шаге — можно запустить каждый этап вручную. Это также полезно для понимания внутренней работы ClaudeOS-Core.
|
|
190
|
+
|
|
191
|
+
#### Step 1: Клонирование и установка зависимостей
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
cd /your/project/root
|
|
195
|
+
|
|
196
|
+
git clone https://github.com/claudeos-core/claudeos-core.git claudeos-core-tools
|
|
197
|
+
cd claudeos-core-tools && npm install && cd ..
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
#### Step 2: Создание структуры каталогов
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
# Rules
|
|
204
|
+
mkdir -p .claude/rules/{00.core,10.backend,20.frontend,30.security-db,40.infra,50.sync}
|
|
205
|
+
|
|
206
|
+
# Standards
|
|
207
|
+
mkdir -p claudeos-core/standard/{00.core,10.backend-api,20.frontend-ui,30.security-db,40.infra,50.verification,90.optional}
|
|
208
|
+
|
|
209
|
+
# Skills
|
|
210
|
+
mkdir -p claudeos-core/skills/{00.shared,10.backend-crud/scaffold-crud-feature,20.frontend-page/scaffold-page-feature,50.testing,90.experimental}
|
|
211
|
+
|
|
212
|
+
# Guide, Plan, Database, MCP, Generated
|
|
213
|
+
mkdir -p claudeos-core/guide/{01.onboarding,02.usage,03.troubleshooting,04.architecture}
|
|
214
|
+
mkdir -p claudeos-core/{plan,database,mcp-guide,generated}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
#### Step 3: Запуск plan-installer (анализ проекта)
|
|
218
|
+
|
|
219
|
+
Сканирует ваш проект, определяет стек, находит домены, разделяет на группы и генерирует промпты.
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
node claudeos-core-tools/plan-installer/index.js
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Вывод (`claudeos-core/generated/`):**
|
|
226
|
+
- `project-analysis.json` — обнаруженный стек, домены, информация о фронтенде
|
|
227
|
+
- `domain-groups.json` — группы доменов для Pass 1
|
|
228
|
+
- `pass1-backend-prompt.md` / `pass1-frontend-prompt.md` — промпты анализа
|
|
229
|
+
- `pass2-prompt.md` — промпт объединения
|
|
230
|
+
- `pass3-prompt.md` — промпт генерации
|
|
231
|
+
|
|
232
|
+
Вы можете проверить эти файлы для верификации точности определения перед продолжением.
|
|
233
|
+
|
|
234
|
+
#### Step 4: Pass 1 — Глубокий анализ кода по группам доменов
|
|
235
|
+
|
|
236
|
+
Запустите Pass 1 для каждой группы доменов. Проверьте `domain-groups.json` для количества групп.
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Check groups
|
|
240
|
+
cat claudeos-core/generated/domain-groups.json | node -e "
|
|
241
|
+
const g = JSON.parse(require('fs').readFileSync('/dev/stdin','utf-8'));
|
|
242
|
+
g.groups.forEach((g,i) => console.log('Group '+(i+1)+': ['+g.domains.join(', ')+'] ('+g.type+', ~'+g.estimatedFiles+' files)'));
|
|
243
|
+
"
|
|
244
|
+
|
|
245
|
+
# Run Pass 1 for group 1:
|
|
246
|
+
cp claudeos-core/generated/pass1-backend-prompt.md /tmp/_pass1.md
|
|
247
|
+
DOMAIN_LIST="user, order, product" PASS_NUM=1 \
|
|
248
|
+
perl -pi -e 's/\{\{DOMAIN_GROUP\}\}/$ENV{DOMAIN_LIST}/g; s/\{\{PASS_NUM\}\}/$ENV{PASS_NUM}/g' /tmp/_pass1.md
|
|
249
|
+
cat /tmp/_pass1.md | claude -p --dangerously-skip-permissions
|
|
250
|
+
|
|
251
|
+
# Для фронтенд-групп используйте pass1-frontend-prompt.md
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
**Проверка:** `ls claudeos-core/generated/pass1-*.json` должен показать по одному JSON на группу.
|
|
255
|
+
|
|
256
|
+
#### Step 5: Pass 2 — Объединение результатов анализа
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
cat claudeos-core/generated/pass2-prompt.md \
|
|
260
|
+
| claude -p --dangerously-skip-permissions
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Проверка:** `claudeos-core/generated/pass2-merged.json` должен существовать с 9+ ключами верхнего уровня.
|
|
264
|
+
|
|
265
|
+
#### Step 6: Pass 3 — Генерация всей документации
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
cat claudeos-core/generated/pass3-prompt.md \
|
|
269
|
+
| claude -p --dangerously-skip-permissions
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Проверка:** `CLAUDE.md` должен существовать в корне проекта.
|
|
273
|
+
|
|
274
|
+
#### Step 7: Запуск инструментов проверки
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
# Генерация метаданных (обязательно перед другими проверками)
|
|
278
|
+
node claudeos-core-tools/manifest-generator/index.js
|
|
279
|
+
|
|
280
|
+
# Запуск всех проверок
|
|
281
|
+
node claudeos-core-tools/health-checker/index.js
|
|
282
|
+
|
|
283
|
+
# Или запуск отдельных проверок:
|
|
284
|
+
node claudeos-core-tools/plan-validator/index.js --check # Plan ↔ disk
|
|
285
|
+
node claudeos-core-tools/sync-checker/index.js # Sync status
|
|
286
|
+
node claudeos-core-tools/content-validator/index.js # Content quality
|
|
287
|
+
node claudeos-core-tools/pass-json-validator/index.js # JSON format
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
#### Step 8: Проверка результатов
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
find .claude claudeos-core -type f | grep -v node_modules | grep -v '/generated/' | wc -l
|
|
294
|
+
head -30 CLAUDE.md
|
|
295
|
+
ls .claude/rules/*/
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
> **Совет:** Если какой-то шаг не удался, можно перезапустить только этот шаг. Результаты Pass 1/2 кешируются — если `pass1-N.json` или `pass2-merged.json` уже существует, автоматический пайплайн их пропускает. Используйте `npx claudeos-core init --force`, чтобы удалить предыдущие результаты и начать заново.
|
|
299
|
+
|
|
300
|
+
### Начинайте использовать
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
# В Claude Code — просто говорите естественным языком:
|
|
304
|
+
"Создай CRUD для домена заказов"
|
|
305
|
+
"Добавь API аутентификации пользователей"
|
|
306
|
+
"Рефакторинг этого кода по паттернам проекта"
|
|
307
|
+
|
|
308
|
+
# Claude Code автоматически ссылается на сгенерированные Standards, Rules и Skills.
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## Как это работает — 3-Pass конвейер
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
npx claudeos-core init
|
|
317
|
+
│
|
|
318
|
+
├── [1] npm install ← Зависимости (~10с)
|
|
319
|
+
├── [2] Структура директорий ← Создание папок (~1с)
|
|
320
|
+
├── [3] plan-installer (Node.js) ← Сканирование проекта (~5с)
|
|
321
|
+
│ ├── Автоопределение стека (мульти-стек)
|
|
322
|
+
│ ├── Извлечение списка доменов (теги: backend/frontend)
|
|
323
|
+
│ ├── Разделение на группы доменов (по типу)
|
|
324
|
+
│ └── Выбор промптов под стек (по типу)
|
|
325
|
+
│
|
|
326
|
+
├── [4] Pass 1 × N (claude -p) ← Глубокий анализ кода (~2-8 мин)
|
|
327
|
+
│ ├── ⚙️ Backend-группы → backend-промпт
|
|
328
|
+
│ └── 🎨 Frontend-группы → frontend-промпт
|
|
329
|
+
│
|
|
330
|
+
├── [5] Pass 2 × 1 (claude -p) ← Слияние анализа (~1 мин)
|
|
331
|
+
│ └── Консолидация ВСЕХ результатов Pass 1 (backend + frontend)
|
|
332
|
+
│
|
|
333
|
+
├── [6] Pass 3 × 1 (claude -p) ← Генерация всего (~3-5 мин)
|
|
334
|
+
│ └── Объединённый промпт (цели backend + frontend)
|
|
335
|
+
│
|
|
336
|
+
└── [7] Валидация ← Автозапуск health checker
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Почему 3 Pass?
|
|
340
|
+
|
|
341
|
+
**Pass 1** — единственный pass, который читает исходный код. Он выбирает репрезентативные файлы по доменам и извлекает паттерны по 55–95 категориям анализа (по стеку). Для крупных проектов Pass 1 запускается несколько раз — по одному на группу доменов. В мульти-стек проектах (например: Java backend + React frontend) backend и frontend используют **разные промпты анализа**, адаптированные под каждый стек.
|
|
342
|
+
|
|
343
|
+
**Pass 2** объединяет все результаты Pass 1 в единый анализ: общие паттерны (100% совпадение), мажоритарные паттерны (50%+), доменно-специфичные паттерны, анти-паттерны по степени серьёзности и сквозные аспекты (именование, безопасность, БД, тестирование, логирование, производительность).
|
|
344
|
+
|
|
345
|
+
**Pass 3** берёт объединённый анализ и генерирует всю файловую экосистему. Он никогда не читает исходный код — только JSON анализа. В мульти-стек режиме промпт генерации объединяет цели backend и frontend, чтобы оба набора стандартов были сгенерированы за один pass.
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## Структура сгенерированных файлов
|
|
350
|
+
|
|
351
|
+
```
|
|
352
|
+
your-project/
|
|
353
|
+
│
|
|
354
|
+
├── CLAUDE.md ← Точка входа Claude Code
|
|
355
|
+
│
|
|
356
|
+
├── .claude/
|
|
357
|
+
│ └── rules/ ← Glob-триггерные правила
|
|
358
|
+
│ ├── 00.core/
|
|
359
|
+
│ ├── 10.backend/
|
|
360
|
+
│ ├── 20.frontend/
|
|
361
|
+
│ ├── 30.security-db/
|
|
362
|
+
│ ├── 40.infra/
|
|
363
|
+
│ └── 50.sync/ ← Правила напоминания о синхронизации
|
|
364
|
+
│
|
|
365
|
+
├── claudeos-core/ ← Основная директория вывода
|
|
366
|
+
│ ├── generated/ ← JSON анализа + динамические промпты
|
|
367
|
+
│ ├── standard/ ← Стандарты кода (15-19 файлов)
|
|
368
|
+
│ ├── skills/ ← Skills скаффолдинга CRUD
|
|
369
|
+
│ ├── guide/ ← Онбординг, FAQ, устранение неполадок (9 файлов)
|
|
370
|
+
│ ├── plan/ ← Master Plans (бэкап/восстановление)
|
|
371
|
+
│ ├── database/ ← Схема БД, руководство миграции
|
|
372
|
+
│ └── mcp-guide/ ← Руководство интеграции MCP-сервера
|
|
373
|
+
│
|
|
374
|
+
└── claudeos-core-tools/ ← Этот тулкит (не изменять)
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Каждый файл стандарта включает ✅ правильные примеры, ❌ неправильные примеры и таблицу сводки правил — всё выведено из ваших реальных паттернов кода, а не из шаблонов.
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## Автомасштабирование по размеру проекта
|
|
382
|
+
|
|
383
|
+
| Размер | Домены | Запуски Pass 1 | Всего `claude -p` | Ожидаемое время |
|
|
384
|
+
|---|---|---|---|---|
|
|
385
|
+
| Малый | 1–4 | 1 | 3 | ~5 мин |
|
|
386
|
+
| Средний | 5–8 | 2 | 4 | ~8 мин |
|
|
387
|
+
| Большой | 9–16 | 3–4 | 5–6 | ~12 мин |
|
|
388
|
+
| Очень большой | 17+ | 5+ | 7+ | ~18 мин+ |
|
|
389
|
+
|
|
390
|
+
Для мульти-стек проектов (например: Java + React) домены backend и frontend считаются вместе. 6 backend + 4 frontend = 10 доменов, масштабируется как «Большой».
|
|
391
|
+
|
|
392
|
+
---
|
|
393
|
+
|
|
394
|
+
## Инструменты валидации
|
|
395
|
+
|
|
396
|
+
ClaudeOS-Core включает 5 встроенных инструментов проверки, автоматически запускаемых после генерации:
|
|
397
|
+
|
|
398
|
+
```bash
|
|
399
|
+
# Запустить все проверки сразу (рекомендуется)
|
|
400
|
+
npx claudeos-core health
|
|
401
|
+
|
|
402
|
+
# Отдельные команды
|
|
403
|
+
npx claudeos-core validate # Сравнение Plan ↔ диск
|
|
404
|
+
npx claudeos-core refresh # Синхронизация Диск → Plan
|
|
405
|
+
npx claudeos-core restore # Восстановление Plan → Диск
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
| Инструмент | Что делает |
|
|
409
|
+
|---|---|
|
|
410
|
+
| **manifest-generator** | Создаёт JSON метаданных (rule-manifest, sync-map, plan-manifest) |
|
|
411
|
+
| **plan-validator** | Сравнивает блоки `<file>` Master Plan с диском — 3 режима: check, refresh, restore |
|
|
412
|
+
| **sync-checker** | Обнаруживает незарегистрированные файлы (на диске, но не в плане) и осиротевшие записи |
|
|
413
|
+
| **content-validator** | Проверяет качество файлов — пустые файлы, отсутствующие примеры ✅/❌, обязательные секции |
|
|
414
|
+
| **pass-json-validator** | Проверяет структуру JSON Pass 1–3, обязательные ключи и полноту секций |
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## Как Claude Code использует вашу документацию
|
|
419
|
+
|
|
420
|
+
Вот как Claude Code фактически читает документацию, сгенерированную ClaudeOS-Core:
|
|
421
|
+
|
|
422
|
+
### Автоматически читаемые файлы
|
|
423
|
+
|
|
424
|
+
| Файл | Когда | Гарантия |
|
|
425
|
+
|---|---|---|
|
|
426
|
+
| `CLAUDE.md` | При начале каждого разговора | Всегда |
|
|
427
|
+
| `.claude/rules/00.core/*` | При редактировании файлов (`paths: ["**/*"]`) | Всегда |
|
|
428
|
+
| `.claude/rules/10.backend/*` | При редактировании файлов (`paths: ["**/*"]`) | Всегда |
|
|
429
|
+
| `.claude/rules/30.security-db/*` | При редактировании файлов (`paths: ["**/*"]`) | Всегда |
|
|
430
|
+
| `.claude/rules/40.infra/*` | Только при редактировании config/infra файлов (ограниченные paths) | Условно |
|
|
431
|
+
| `.claude/rules/50.sync/*` | Только при редактировании claudeos-core файлов (ограниченные paths) | Условно |
|
|
432
|
+
|
|
433
|
+
### Файлы, читаемые по запросу через ссылки в правилах
|
|
434
|
+
|
|
435
|
+
Каждый файл правил ссылается на соответствующий standard в секции `## Reference`. Claude читает только standard, релевантный текущей задаче:
|
|
436
|
+
|
|
437
|
+
- `claudeos-core/standard/**` — Паттерны кодирования, примеры ✅/❌, соглашения об именах
|
|
438
|
+
- `claudeos-core/database/**` — Схема БД (для запросов, мапперов, миграций)
|
|
439
|
+
|
|
440
|
+
`00.standard-reference.md` служит каталогом для обнаружения standards без соответствующего правила.
|
|
441
|
+
|
|
442
|
+
### Файлы, которые НЕ читаются (экономия контекста)
|
|
443
|
+
|
|
444
|
+
Явно исключены через секцию `DO NOT Read` правила standard-reference:
|
|
445
|
+
|
|
446
|
+
| Папка | Причина исключения |
|
|
447
|
+
|---|---|
|
|
448
|
+
| `claudeos-core/plan/` | Резервные копии Master Plan (~340КБ). Используйте `npx claudeos-core refresh` для синхронизации. |
|
|
449
|
+
| `claudeos-core/generated/` | JSON метаданных сборки. Не для кодирования. |
|
|
450
|
+
| `claudeos-core/guide/` | Руководства для людей. |
|
|
451
|
+
| `claudeos-core/mcp-guide/` | Документация MCP сервера. Не для кодирования. |
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## Повседневный рабочий процесс
|
|
456
|
+
|
|
457
|
+
### После установки
|
|
458
|
+
|
|
459
|
+
```
|
|
460
|
+
# Просто используйте Claude Code как обычно — он автоматически ссылается на ваши стандарты:
|
|
461
|
+
"Создай CRUD для домена заказов"
|
|
462
|
+
"Добавь API обновления профиля пользователя"
|
|
463
|
+
"Рефакторинг этого кода по паттернам проекта"
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
### После ручного редактирования стандартов
|
|
467
|
+
|
|
468
|
+
```bash
|
|
469
|
+
# После редактирования файлов standard или rules:
|
|
470
|
+
npx claudeos-core refresh
|
|
471
|
+
|
|
472
|
+
# Проверить консистентность
|
|
473
|
+
npx claudeos-core health
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
### Когда документация повреждена
|
|
477
|
+
|
|
478
|
+
```bash
|
|
479
|
+
# Восстановить всё из Master Plan
|
|
480
|
+
npx claudeos-core restore
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
### Интеграция CI/CD
|
|
484
|
+
|
|
485
|
+
```yaml
|
|
486
|
+
# Пример GitHub Actions
|
|
487
|
+
- run: npx claudeos-core validate
|
|
488
|
+
# Код выхода 1 блокирует PR
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
## Чем отличается?
|
|
494
|
+
|
|
495
|
+
| | ClaudeOS-Core | Everything Claude Code (50K+ ⭐) | Harness | specs-generator | Claude `/init` |
|
|
496
|
+
|---|---|---|---|---|---|
|
|
497
|
+
| **Approach** | Code analyzes first, then LLM generates | Pre-built config presets | LLM designs agent teams | LLM generates spec docs | LLM writes CLAUDE.md |
|
|
498
|
+
| **Reads your source code** | ✅ Deterministic static analysis | ❌ | ❌ | ❌ (LLM reads) | ❌ (LLM reads) |
|
|
499
|
+
| **Stack detection** | Code confirms (ORM, DB, build tool, pkg manager) | N/A (stack-agnostic) | LLM guesses | LLM guesses | LLM guesses |
|
|
500
|
+
| **Domain detection** | Code confirms (Java 5 patterns, Kotlin CQRS, Next.js FSD) | N/A | LLM guesses | N/A | N/A |
|
|
501
|
+
| **Same project → Same result** | ✅ Deterministic analysis | ✅ (static files) | ❌ (LLM varies) | ❌ (LLM varies) | ❌ (LLM varies) |
|
|
502
|
+
| **Large project handling** | Domain group splitting (4 domains / 40 files per group) | N/A | No splitting | No splitting | Context window limit |
|
|
503
|
+
| **Output** | CLAUDE.md + Rules + Standards + Skills + Guides + Plans (40-50+ files) | Agents + Skills + Commands + Hooks | Agents + Skills | 6 spec documents | CLAUDE.md (1 file) |
|
|
504
|
+
| **Output location** | `.claude/rules/` (auto-loaded by Claude Code) | `.claude/` various | `.claude/agents/` + `.claude/skills/` | `.claude/steering/` + `specs/` | `CLAUDE.md` |
|
|
505
|
+
| **Post-generation verification** | ✅ 5 automated validators | ❌ | ❌ | ❌ | ❌ |
|
|
506
|
+
| **Multi-language output** | ✅ 10 languages | ❌ | ❌ | ❌ | ❌ |
|
|
507
|
+
| **Multi-stack** | ✅ Backend + Frontend simultaneous | ❌ Stack-agnostic | ❌ | ❌ | Partial |
|
|
508
|
+
| **Agent orchestration** | ❌ | ✅ 28 agents | ✅ 6 patterns | ❌ | ❌ |
|
|
509
|
+
|
|
510
|
+
### Key difference
|
|
511
|
+
|
|
512
|
+
**Other tools give Claude "generally good instructions." ClaudeOS-Core gives Claude "instructions extracted from your actual code."**
|
|
513
|
+
|
|
514
|
+
### Complementary, not competing
|
|
515
|
+
|
|
516
|
+
ClaudeOS-Core: **project-specific rules**. Other tools: **agent orchestration**.
|
|
517
|
+
Use both together.
|
|
518
|
+
|
|
519
|
+
---
|
|
520
|
+
## FAQ
|
|
521
|
+
|
|
522
|
+
**В: Изменяет ли он мой исходный код?**
|
|
523
|
+
Нет. Создаются только `CLAUDE.md`, `.claude/rules/` и `claudeos-core/`. Ваш существующий код никогда не изменяется.
|
|
524
|
+
|
|
525
|
+
**В: Сколько это стоит?**
|
|
526
|
+
Вызывает `claude -p` 3–7 раз. Это в рамках обычного использования Claude Code.
|
|
527
|
+
|
|
528
|
+
**В: Нужно ли коммитить сгенерированные файлы в Git?**
|
|
529
|
+
Рекомендуется. Ваша команда может использовать одни и те же стандарты Claude Code. Рассмотрите добавление `claudeos-core/generated/` в `.gitignore` (JSON анализа можно перегенерировать).
|
|
530
|
+
|
|
531
|
+
**В: Что с проектами смешанного стека (например: Java backend + React frontend)?**
|
|
532
|
+
Полная поддержка. ClaudeOS-Core автоматически определяет оба стека, помечает домены как `backend` или `frontend` и использует специфические промпты анализа для каждого. Pass 2 объединяет всё, а Pass 3 генерирует стандарты backend и frontend за один проход.
|
|
533
|
+
|
|
534
|
+
**В: Что происходит при повторном запуске?**
|
|
535
|
+
Если предыдущие результаты Pass 1/2 существуют, интерактивный промпт позволяет выбрать: **Continue** (продолжить с места остановки) или **Fresh** (удалить всё и начать заново). Используйте `--force`, чтобы пропустить промпт и всегда начинать заново. Pass 3 всегда перезапускается. Предыдущие версии можно восстановить из Master Plans.
|
|
536
|
+
|
|
537
|
+
**В: Работает ли с Turborepo / pnpm workspaces / Lerna monorepo?**
|
|
538
|
+
Да. ClaudeOS-Core определяет `turbo.json`, `pnpm-workspace.yaml`, `lerna.json` или `package.json#workspaces` и автоматически сканирует `package.json` подпакетов для обнаружения зависимостей фреймворков/ORM/БД. Сканирование доменов охватывает паттерны `apps/*/src/` и `packages/*/src/`. Запускайте из корня monorepo.
|
|
539
|
+
|
|
540
|
+
**В: Использует ли NestJS собственный шаблон или шаблон Express?**
|
|
541
|
+
NestJS использует выделенный шаблон `node-nestjs` с NestJS-специфичными категориями анализа: декораторы `@Module`, `@Injectable`, `@Controller`, Guards, Pipes, Interceptors, DI-контейнер, паттерны CQRS и `Test.createTestingModule`. Проекты Express используют отдельный шаблон `node-express`.
|
|
542
|
+
|
|
543
|
+
**В: Как насчёт проектов Vue / Nuxt?**
|
|
544
|
+
Vue/Nuxt использует выделенный шаблон `vue-nuxt`, охватывающий Composition API, `<script setup>`, defineProps/defineEmits, хранилища Pinia, `useFetch`/`useAsyncData`, серверные маршруты Nitro и `@nuxt/test-utils`. Проекты Next.js/React используют шаблон `node-nextjs`.
|
|
545
|
+
|
|
546
|
+
**В: Поддерживается ли Kotlin?**
|
|
547
|
+
Да. ClaudeOS-Core автоматически определяет Kotlin из `build.gradle.kts` или плагина kotlin в `build.gradle`. Используется специальный шаблон `kotlin-spring` с Kotlin-специфичным анализом (data class, sealed class, корутины, функции-расширения, MockK и т.д.).
|
|
548
|
+
|
|
549
|
+
**В: Как насчёт архитектуры CQRS / BFF?**
|
|
550
|
+
Полностью поддерживается для Kotlin мультимодульных проектов. ClaudeOS-Core читает `settings.gradle.kts`, определяет типы модулей (command, query, bff, integration) из их имён и группирует одинаковые домены по модулям Command/Query. Сгенерированные стандарты включают отдельные правила для command-контроллеров и query-контроллеров, паттерны BFF/Feign и соглашения о межмодульном взаимодействии.
|
|
551
|
+
|
|
552
|
+
**В: Как насчёт Gradle мультимодульных monorepo?**
|
|
553
|
+
ClaudeOS-Core сканирует все подмодули (`**/src/main/kotlin/**/*.kt`) независимо от глубины вложенности. Типы модулей определяются из соглашений об именовании (например, `reservation-command-server` → домен: `reservation`, тип: `command`). Общие библиотеки (`shared-lib`, `integration-lib`) также обнаруживаются.
|
|
554
|
+
|
|
555
|
+
---
|
|
556
|
+
|
|
557
|
+
## Структура шаблонов
|
|
558
|
+
|
|
559
|
+
```
|
|
560
|
+
pass-prompts/templates/
|
|
561
|
+
├── common/ # Общий заголовок/футер
|
|
562
|
+
├── java-spring/ # Java / Spring Boot
|
|
563
|
+
├── kotlin-spring/ # Kotlin / Spring Boot (CQRS, BFF, multi-module)
|
|
564
|
+
├── node-express/ # Node.js / Express
|
|
565
|
+
├── node-nestjs/ # Node.js / NestJS (Module, DI, Guard, Pipe, Interceptor)
|
|
566
|
+
├── node-fastify/ # Node.js / Fastify
|
|
567
|
+
├── node-nextjs/ # Next.js / React
|
|
568
|
+
├── vue-nuxt/ # Vue / Nuxt (Composition API, Pinia, Nitro)
|
|
569
|
+
├── angular/ # Angular
|
|
570
|
+
├── python-django/ # Python / Django (DRF)
|
|
571
|
+
└── python-fastapi/ # Python / FastAPI
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
`plan-installer` автоматически определяет ваш стек(и) и собирает типо-специфичные промпты. NestJS и Vue/Nuxt используют выделенные шаблоны с фреймворк-специфичными категориями анализа (например, `@Module`/`@Injectable`/Guards для NestJS, `<script setup>`/Pinia/useFetch для Vue). Для мульти-стек проектов генерируются отдельные `pass1-backend-prompt.md` и `pass1-frontend-prompt.md`, а `pass3-prompt.md` объединяет цели генерации обоих стеков.
|
|
575
|
+
|
|
576
|
+
---
|
|
577
|
+
|
|
578
|
+
## Поддержка Monorepo
|
|
579
|
+
|
|
580
|
+
ClaudeOS-Core автоматически определяет JS/TS monorepo-структуры и сканирует подпакеты для обнаружения зависимостей.
|
|
581
|
+
|
|
582
|
+
**Поддерживаемые маркеры monorepo** (определяются автоматически):
|
|
583
|
+
- `turbo.json` (Turborepo)
|
|
584
|
+
- `pnpm-workspace.yaml` (pnpm workspaces)
|
|
585
|
+
- `lerna.json` (Lerna)
|
|
586
|
+
- `package.json#workspaces` (npm/yarn workspaces)
|
|
587
|
+
|
|
588
|
+
**Запускайте из корня monorepo** — ClaudeOS-Core читает `apps/*/package.json` и `packages/*/package.json` для обнаружения зависимостей фреймворков/ORM/БД по всем подпакетам:
|
|
589
|
+
|
|
590
|
+
```bash
|
|
591
|
+
cd my-monorepo
|
|
592
|
+
npx claudeos-core init
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
**Что обнаруживается:**
|
|
596
|
+
- Зависимости из `apps/web/package.json` (например, `next`, `react`) — frontend-стек
|
|
597
|
+
- Зависимости из `apps/api/package.json` (например, `express`, `prisma`) — backend-стек
|
|
598
|
+
- Зависимости из `packages/db/package.json` (например, `drizzle-orm`) — ORM/БД
|
|
599
|
+
- Пользовательские пути воркспейсов из `pnpm-workspace.yaml` (например, `services/*`)
|
|
600
|
+
|
|
601
|
+
**Сканирование доменов также охватывает monorepo-структуры:**
|
|
602
|
+
- `apps/api/src/modules/*/` и `apps/api/src/*/` для backend-доменов
|
|
603
|
+
- `apps/web/app/*/`, `apps/web/src/app/*/`, `apps/web/pages/*/` для frontend-доменов
|
|
604
|
+
- `packages/*/src/*/` для доменов общих пакетов
|
|
605
|
+
|
|
606
|
+
```
|
|
607
|
+
my-monorepo/ ← Запускайте здесь: npx claudeos-core init
|
|
608
|
+
├── turbo.json ← Автоопределение как Turborepo
|
|
609
|
+
├── apps/
|
|
610
|
+
│ ├── web/ ← Next.js определён из apps/web/package.json
|
|
611
|
+
│ │ ├── app/dashboard/ ← Frontend-домен обнаружен
|
|
612
|
+
│ │ └── package.json ← { "dependencies": { "next": "^14" } }
|
|
613
|
+
│ └── api/ ← Express определён из apps/api/package.json
|
|
614
|
+
│ ├── src/modules/users/ ← Backend-домен обнаружен
|
|
615
|
+
│ └── package.json ← { "dependencies": { "express": "^4" } }
|
|
616
|
+
├── packages/
|
|
617
|
+
│ ├── db/ ← Drizzle определён из packages/db/package.json
|
|
618
|
+
│ └── ui/
|
|
619
|
+
└── package.json ← { "workspaces": ["apps/*", "packages/*"] }
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
> **Примечание:** Для Kotlin/Java monorepo мультимодульное определение использует `settings.gradle.kts` (см. [Обнаружение доменов Kotlin мультимодульных проектов](#обнаружение-доменов-kotlin-мультимодульных-проектов) выше) и не требует JS monorepo-маркеров.
|
|
623
|
+
|
|
624
|
+
## Устранение неполадок
|
|
625
|
+
|
|
626
|
+
**"claude: command not found"** — Claude Code CLI не установлен или не в PATH. Смотрите [документацию Claude Code](https://code.claude.com/docs/en/overview).
|
|
627
|
+
|
|
628
|
+
**"npm install failed"** — Версия Node.js может быть слишком старой. Требуется v18+.
|
|
629
|
+
|
|
630
|
+
**"0 domains detected"** — Структура вашего проекта может быть нестандартной. Смотрите паттерны обнаружения в [корейской документации](./README.ko.md#트러블슈팅) для вашего стека.
|
|
631
|
+
|
|
632
|
+
**«0 доменов обнаружено» в Kotlin-проекте** — Убедитесь, что в корне проекта есть `build.gradle.kts` (или `build.gradle` с плагином kotlin), а исходные файлы находятся в `**/src/main/kotlin/`. Для мультимодульных проектов `settings.gradle.kts` должен содержать операторы `include()`. Одномодульные Kotlin-проекты (без `settings.gradle`) также поддерживаются — домены извлекаются из структуры пакетов/классов в `src/main/kotlin/`.
|
|
633
|
+
|
|
634
|
+
**«Язык определён как java вместо kotlin»** — ClaudeOS-Core сначала проверяет корневой `build.gradle(.kts)`, затем файлы сборки подмодулей. Убедитесь, что хотя бы один содержит `kotlin("jvm")` или `org.jetbrains.kotlin`.
|
|
635
|
+
|
|
636
|
+
**«CQRS не обнаружен»** — Определение архитектуры зависит от наличия ключевых слов `command` и `query` в именах модулей. Если ваши модули используют другие имена, можно вручную скорректировать сгенерированные промпты.
|
|
637
|
+
|
|
638
|
+
---
|
|
639
|
+
|
|
640
|
+
## Участие в разработке
|
|
641
|
+
|
|
642
|
+
Контрибуции приветствуются! Области, где больше всего нужна помощь:
|
|
643
|
+
|
|
644
|
+
- **Новые шаблоны стеков** — Ruby/Rails, Go/Gin, PHP/Laravel, Rust/Axum
|
|
645
|
+
- **Глубокая поддержка монорепо** — Отдельные корни подпроектов, обнаружение воркспейсов
|
|
646
|
+
- **Покрытие тестами** — Расширение набора тестов (сейчас 269 тестов, покрывающих все сканеры, обнаружение стека, группировку доменов, парсинг планов, генерацию промптов, селекторы CLI, обнаружение monorepo, инструменты проверки и обнаружение Vite SPA)
|
|
647
|
+
|
|
648
|
+
---
|
|
649
|
+
|
|
650
|
+
## Автор
|
|
651
|
+
|
|
652
|
+
Создано **claudeos-core** — [GitHub](https://github.com/claudeos-core) · [Email](mailto:claudeoscore@gmail.com)
|
|
653
|
+
|
|
654
|
+
## Лицензия
|
|
655
|
+
|
|
656
|
+
ISC
|