@futdevpro/fsm-dynamo 1.15.1 → 1.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/rules/__assistant_guide.mdc +30 -0
- package/.cursor/rules/__main.mdc +62 -0
- package/.cursor/rules/_ag_backend-structure.mdc +86 -0
- package/.cursor/rules/_ag_backend.mdc +16 -0
- package/.cursor/rules/_ag_debug.mdc +8 -0
- package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -0
- package/.cursor/rules/_ag_file-refactoring.mdc +113 -0
- package/.cursor/rules/_ag_fixes_rules.mdc +6 -0
- package/.cursor/rules/_ag_frontend-structure.mdc +87 -0
- package/.cursor/rules/_ag_frontend.mdc +40 -0
- package/.cursor/rules/_ag_import-rules.mdc +45 -0
- package/.cursor/rules/_ag_naming.mdc +116 -0
- package/.cursor/rules/_ag_running_commands.mdc +5 -0
- package/.cursor/rules/_ag_server-controller.mdc +6 -0
- package/.cursor/rules/_ag_should-be.mdc +7 -0
- package/.cursor/rules/_ag_swearing.mdc +47 -0
- package/.cursor/rules/ai_development_guide.md +61 -0
- package/.cursor/rules/ai_directives.md +114 -0
- package/.cursor/rules/cursor-rules.md +160 -0
- package/.cursor/rules/default-command.mdc +229 -0
- package/.cursor/rules/error_code_pattern.md +40 -0
- package/.cursor/rules/saved rule mcp server use.md +16 -0
- package/build/_modules/data-handler/_models/data-handler.control-model.js +17 -17
- package/build/_modules/data-handler/_models/data-handler.control-model.js.map +1 -1
- package/futdevpro-fsm-dynamo-01.15.2.tgz +0 -0
- package/package.json +2 -2
- package/src/_modules/data-handler/_models/data-handler.control-model.ts +17 -17
- package/build/_collections/utils/array.util.spec.d.ts +0 -2
- package/build/_collections/utils/array.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/array.util.spec.js +0 -239
- package/build/_collections/utils/array.util.spec.js.map +0 -1
- package/build/_collections/utils/log.util.spec.d.ts +0 -2
- package/build/_collections/utils/log.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/log.util.spec.js +0 -633
- package/build/_collections/utils/log.util.spec.js.map +0 -1
- package/build/_collections/utils/math/box-bounds.util.spec.d.ts +0 -2
- package/build/_collections/utils/math/box-bounds.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/math/box-bounds.util.spec.js +0 -97
- package/build/_collections/utils/math/box-bounds.util.spec.js.map +0 -1
- package/build/_collections/utils/math/math.util.spec.d.ts +0 -2
- package/build/_collections/utils/math/math.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/math/math.util.spec.js +0 -80
- package/build/_collections/utils/math/math.util.spec.js.map +0 -1
- package/build/_collections/utils/math/random.util.spec.d.ts +0 -2
- package/build/_collections/utils/math/random.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/math/random.util.spec.js +0 -75
- package/build/_collections/utils/math/random.util.spec.js.map +0 -1
- package/build/_collections/utils/math/trigonometry.util.spec.d.ts +0 -2
- package/build/_collections/utils/math/trigonometry.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/math/trigonometry.util.spec.js +0 -49
- package/build/_collections/utils/math/trigonometry.util.spec.js.map +0 -1
- package/build/_collections/utils/math/vector2.util.spec.d.ts +0 -2
- package/build/_collections/utils/math/vector2.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/math/vector2.util.spec.js +0 -82
- package/build/_collections/utils/math/vector2.util.spec.js.map +0 -1
- package/build/_collections/utils/object.util.spec.d.ts +0 -2
- package/build/_collections/utils/object.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/object.util.spec.js +0 -506
- package/build/_collections/utils/object.util.spec.js.map +0 -1
- package/build/_collections/utils/regex/password-regex.util.spec.d.ts +0 -2
- package/build/_collections/utils/regex/password-regex.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/regex/password-regex.util.spec.js +0 -44
- package/build/_collections/utils/regex/password-regex.util.spec.js.map +0 -1
- package/build/_collections/utils/regex/regex.util.spec.d.ts +0 -2
- package/build/_collections/utils/regex/regex.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/regex/regex.util.spec.js +0 -40
- package/build/_collections/utils/regex/regex.util.spec.js.map +0 -1
- package/build/_collections/utils/regex/username-regex.util.spec.d.ts +0 -2
- package/build/_collections/utils/regex/username-regex.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/regex/username-regex.util.spec.js +0 -59
- package/build/_collections/utils/regex/username-regex.util.spec.js.map +0 -1
- package/build/_collections/utils/round-list.util.spec.d.ts +0 -2
- package/build/_collections/utils/round-list.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/round-list.util.spec.js +0 -65
- package/build/_collections/utils/round-list.util.spec.js.map +0 -1
- package/build/_collections/utils/stack.util.spec.d.ts +0 -2
- package/build/_collections/utils/stack.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/stack.util.spec.js +0 -290
- package/build/_collections/utils/stack.util.spec.js.map +0 -1
- package/build/_collections/utils/string-case.util.spec.d.ts +0 -2
- package/build/_collections/utils/string-case.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/string-case.util.spec.js +0 -360
- package/build/_collections/utils/string-case.util.spec.js.map +0 -1
- package/build/_collections/utils/string.util.spec.d.ts +0 -2
- package/build/_collections/utils/string.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/string.util.spec.js +0 -860
- package/build/_collections/utils/string.util.spec.js.map +0 -1
- package/build/_collections/utils/time.util.spec.d.ts +0 -2
- package/build/_collections/utils/time.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/time.util.spec.js +0 -38
- package/build/_collections/utils/time.util.spec.js.map +0 -1
- package/build/_collections/utils/type-cloning-facility.util.spec.d.ts +0 -2
- package/build/_collections/utils/type-cloning-facility.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/type-cloning-facility.util.spec.js +0 -41
- package/build/_collections/utils/type-cloning-facility.util.spec.js.map +0 -1
- package/build/_collections/utils/uuid.util.spec.d.ts +0 -2
- package/build/_collections/utils/uuid.util.spec.d.ts.map +0 -1
- package/build/_collections/utils/uuid.util.spec.js +0 -29
- package/build/_collections/utils/uuid.util.spec.js.map +0 -1
- package/build/_models/control-models/data-model-params.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/data-model-params.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/data-model-params.control-model.spec.js +0 -64
- package/build/_models/control-models/data-model-params.control-model.spec.js.map +0 -1
- package/build/_models/control-models/data-property-params.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/data-property-params.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/data-property-params.control-model.spec.js +0 -74
- package/build/_models/control-models/data-property-params.control-model.spec.js.map +0 -1
- package/build/_models/control-models/error.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/error.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/error.control-model.spec.js +0 -664
- package/build/_models/control-models/error.control-model.spec.js.map +0 -1
- package/build/_models/control-models/poll.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/poll.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/poll.control-model.spec.js +0 -57
- package/build/_models/control-models/poll.control-model.spec.js.map +0 -1
- package/build/_models/control-models/range-value.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/range-value.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/range-value.control-model.spec.js +0 -163
- package/build/_models/control-models/range-value.control-model.spec.js.map +0 -1
- package/build/_modules/crypto/_collections/crypto.util.edge.spec.d.ts +0 -2
- package/build/_modules/crypto/_collections/crypto.util.edge.spec.d.ts.map +0 -1
- package/build/_modules/crypto/_collections/crypto.util.edge.spec.js +0 -551
- package/build/_modules/crypto/_collections/crypto.util.edge.spec.js.map +0 -1
- package/build/_modules/crypto/_collections/crypto.util.extra.spec.d.ts +0 -2
- package/build/_modules/crypto/_collections/crypto.util.extra.spec.d.ts.map +0 -1
- package/build/_modules/crypto/_collections/crypto.util.extra.spec.js +0 -555
- package/build/_modules/crypto/_collections/crypto.util.extra.spec.js.map +0 -1
- package/build/_modules/crypto/_collections/crypto.util.simple.spec.d.ts +0 -2
- package/build/_modules/crypto/_collections/crypto.util.simple.spec.d.ts.map +0 -1
- package/build/_modules/crypto/_collections/crypto.util.simple.spec.js +0 -429
- package/build/_modules/crypto/_collections/crypto.util.simple.spec.js.map +0 -1
- package/build/_modules/custom-data/_models/cud.data-model.spec.d.ts +0 -2
- package/build/_modules/custom-data/_models/cud.data-model.spec.d.ts.map +0 -1
- package/build/_modules/custom-data/_models/cud.data-model.spec.js +0 -35
- package/build/_modules/custom-data/_models/cud.data-model.spec.js.map +0 -1
- package/build/_modules/location/_collections/loc-regions.util.spec.d.ts +0 -2
- package/build/_modules/location/_collections/loc-regions.util.spec.d.ts.map +0 -1
- package/build/_modules/location/_collections/loc-regions.util.spec.js +0 -51
- package/build/_modules/location/_collections/loc-regions.util.spec.js.map +0 -1
- package/build/_modules/location/_collections/loc.util.spec.d.ts +0 -2
- package/build/_modules/location/_collections/loc.util.spec.d.ts.map +0 -1
- package/build/_modules/location/_collections/loc.util.spec.js +0 -39
- package/build/_modules/location/_collections/loc.util.spec.js.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.d.ts +0 -2
- package/build/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.d.ts.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.js +0 -33
- package/build/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.js.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.d.ts +0 -2
- package/build/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.d.ts.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.js +0 -36
- package/build/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.js.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.d.ts +0 -2
- package/build/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.d.ts.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.js +0 -35
- package/build/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.js.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.d.ts +0 -2
- package/build/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.d.ts.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.js +0 -31
- package/build/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.js.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.d.ts +0 -2
- package/build/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.d.ts.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.js +0 -54
- package/build/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.js.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.d.ts +0 -2
- package/build/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.d.ts.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.js +0 -26
- package/build/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.js.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.d.ts +0 -2
- package/build/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.d.ts.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.js +0 -50
- package/build/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.js.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.d.ts +0 -2
- package/build/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.d.ts.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.js +0 -23
- package/build/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.js.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.d.ts +0 -2
- package/build/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.d.ts.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.js +0 -38
- package/build/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.js.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.d.ts +0 -2
- package/build/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.d.ts.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.js +0 -20
- package/build/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.js.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.d.ts +0 -2
- package/build/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.d.ts.map +0 -1
- package/build/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.js +0 -50
- package/build/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.js.map +0 -1
- package/build/_modules/socket/_models/sck-client-params.control-model.spec.d.ts +0 -2
- package/build/_modules/socket/_models/sck-client-params.control-model.spec.d.ts.map +0 -1
- package/build/_modules/socket/_models/sck-client-params.control-model.spec.js +0 -54
- package/build/_modules/socket/_models/sck-client-params.control-model.spec.js.map +0 -1
- package/build/_modules/socket/_models/sck-socket-event.control-model.spec.d.ts +0 -2
- package/build/_modules/socket/_models/sck-socket-event.control-model.spec.d.ts.map +0 -1
- package/build/_modules/socket/_models/sck-socket-event.control-model.spec.js +0 -49
- package/build/_modules/socket/_models/sck-socket-event.control-model.spec.js.map +0 -1
- package/build/_modules/socket/_services/sck-client.service-base.spec.d.ts +0 -2
- package/build/_modules/socket/_services/sck-client.service-base.spec.d.ts.map +0 -1
- package/build/_modules/socket/_services/sck-client.service-base.spec.js +0 -82
- package/build/_modules/socket/_services/sck-client.service-base.spec.js.map +0 -1
- package/build/_modules/usage/_models/usg-action.control-model.spec.d.ts +0 -2
- package/build/_modules/usage/_models/usg-action.control-model.spec.d.ts.map +0 -1
- package/build/_modules/usage/_models/usg-action.control-model.spec.js +0 -24
- package/build/_modules/usage/_models/usg-action.control-model.spec.js.map +0 -1
- package/build/_modules/usage/_models/usg-daily-usage-data.control-model.spec.d.ts +0 -2
- package/build/_modules/usage/_models/usg-daily-usage-data.control-model.spec.d.ts.map +0 -1
- package/build/_modules/usage/_models/usg-daily-usage-data.control-model.spec.js +0 -33
- package/build/_modules/usage/_models/usg-daily-usage-data.control-model.spec.js.map +0 -1
- package/build/_modules/usage/_models/usg-data.control-model.spec.d.ts +0 -2
- package/build/_modules/usage/_models/usg-data.control-model.spec.d.ts.map +0 -1
- package/build/_modules/usage/_models/usg-data.control-model.spec.js +0 -37
- package/build/_modules/usage/_models/usg-data.control-model.spec.js.map +0 -1
- package/build/_modules/usage/_models/usg-session.data-model.spec.d.ts +0 -2
- package/build/_modules/usage/_models/usg-session.data-model.spec.d.ts.map +0 -1
- package/build/_modules/usage/_models/usg-session.data-model.spec.js +0 -82
- package/build/_modules/usage/_models/usg-session.data-model.spec.js.map +0 -1
- package/futdevpro-fsm-dynamo-01.15.01.tgz +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: when refactoring large files or extracting code sections from files
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
# File Refactoring és Code Extraction Guidelines
|
|
6
|
+
|
|
7
|
+
## Extract File Content Parancs Használata
|
|
8
|
+
|
|
9
|
+
Amikor nagy fájlokat refaktorálunk vagy kód részeket extraktolunk fájlból, **MINDIG** használjuk a Dynamo CLI `extract-file-content` parancsát.
|
|
10
|
+
|
|
11
|
+
### Parancs Használata
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
dc efc <source-file> --start <start-line> --end <end-line> --output <output-name> [--target-dir <target-directory>]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Vagy a hosszabb alias-szal:
|
|
18
|
+
```bash
|
|
19
|
+
dc extract-file-content <source-file> --start <start-line> --end <end-line> --output <output-name> [--target-dir <target-directory>]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Paraméterek
|
|
23
|
+
|
|
24
|
+
- `<source-file>` - A forrás fájl elérési útja (relatív vagy abszolút)
|
|
25
|
+
- `--start <start-line>` - A kezdő sor száma (1-based, beleértve ezt a sort)
|
|
26
|
+
- `--end <end-line>` - A vég sor száma (1-based, beleértve ezt a sort)
|
|
27
|
+
- `--output <output-name>` - A kimeneti fájl neve (kiterjesztés nélkül vagy kiterjesztéssel)
|
|
28
|
+
- `--target-dir <target-directory>` - Opcionális: célkönyvtár (alapértelmezett: ugyanaz, mint a forrás fájl könyvtára)
|
|
29
|
+
|
|
30
|
+
### Automatikus Funkciók
|
|
31
|
+
|
|
32
|
+
A parancs automatikusan:
|
|
33
|
+
- **Detektálja és hozzáadja a szükséges importokat** a kiemelt kód alapján
|
|
34
|
+
- **Hozzáadja a copyright header-t** (TypeScript fájlok esetén)
|
|
35
|
+
- **Törli a kiemelt sorokat** az eredeti fájlból
|
|
36
|
+
- **Konvertálja a fájlnevet kebab-case-re**
|
|
37
|
+
- **MD fájlok esetén** nem ad hozzá copyright headert és importokat
|
|
38
|
+
|
|
39
|
+
### Használati Esetek
|
|
40
|
+
|
|
41
|
+
#### 1. Nagy Fájlok Refaktorálása
|
|
42
|
+
|
|
43
|
+
Ha egy fájl **500+ sor** hosszú, és logikailag szétbontható:
|
|
44
|
+
1. Azonosítsd a különálló funkcionalitást vagy modult
|
|
45
|
+
2. Használd az `efc` parancsot a kód kiemelésére új fájlba
|
|
46
|
+
3. Az eredeti fájlból automatikusan törlődnek a kiemelt sorok
|
|
47
|
+
|
|
48
|
+
**Példa:**
|
|
49
|
+
```bash
|
|
50
|
+
# Kiemeljük a user validation logikát egy külön fájlba
|
|
51
|
+
dc efc src/services/user.service.ts --start 150 --end 300 --output user-validation
|
|
52
|
+
# Ez létrehozza: src/services/user-validation.ts
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
#### 2. Modulok Kiemelése
|
|
56
|
+
|
|
57
|
+
Amikor egy nagy fájlból külön modult vagy service-t szeretnénk kiemelni:
|
|
58
|
+
1. Határozd meg a modul kezdő és vég sorait
|
|
59
|
+
2. Add meg a kimeneti fájl nevét
|
|
60
|
+
3. Opcionálisan add meg a célkönyvtárat
|
|
61
|
+
|
|
62
|
+
**Példa:**
|
|
63
|
+
```bash
|
|
64
|
+
# Kiemeljük a notification service-t egy külön fájlba
|
|
65
|
+
dc efc src/services/communication.service.ts --start 50 --end 200 --output notification-service --target-dir src/services/notifications
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
#### 3. TypeScript Interface-ek és Type-ok Kiemelése
|
|
69
|
+
|
|
70
|
+
Amikor type definíciókat szeretnénk külön fájlba kiemelni:
|
|
71
|
+
```bash
|
|
72
|
+
dc efc src/models/user.model.ts --start 1 --end 50 --output user-types --target-dir src/models/types
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Fontos Megjegyzések
|
|
76
|
+
|
|
77
|
+
- **MINDIG** használd ezt a parancsot nagy fájlok refaktorálásakor
|
|
78
|
+
- A parancs **automatikusan törli** a kiemelt sorokat az eredeti fájlból
|
|
79
|
+
- Az importok **automatikusan detektálódnak** és hozzáadódnak az új fájlhoz
|
|
80
|
+
- MD fájlok esetén csak a tartalom kerül kiemelésre (nincs header, nincs import)
|
|
81
|
+
- A fájlnevek **automatikusan kebab-case-re** konvertálódnak
|
|
82
|
+
- **PowerShell környezet**: Mivel PowerShell-ben dolgozunk, a mappa választás és parancs elválasztására **pontosvesszőt (;)** kell használni, nem az és-és (&&) operátort
|
|
83
|
+
|
|
84
|
+
### Workflow
|
|
85
|
+
|
|
86
|
+
1. Azonosítsd a kiemelendő kód részt (kezdő és vég sor)
|
|
87
|
+
- **FONTOS**: Ahhoz, hogy az előre meghatározott sor számok jók legyenek, **hátulról előre kell haladni** - tehát csak a magas számokkal kezdjünk, legmagasabbal, és attól megyünk lefelé
|
|
88
|
+
2. Futtasd az `efc` parancsot a megfelelő paraméterekkel
|
|
89
|
+
3. Ellenőrizd az új fájlt, hogy minden szükséges import benne van-e
|
|
90
|
+
4. Ellenőrizd az eredeti fájlt, hogy a kiemelt sorok törölve lettek-e
|
|
91
|
+
5. Szükség esetén manuálisan finomhangold az importokat
|
|
92
|
+
|
|
93
|
+
### Törlés Parancs (Ha Csak Törölni Akarunk)
|
|
94
|
+
|
|
95
|
+
Ha csak sorokat szeretnénk törölni (nem kiemelni), használd a `delete-file-lines` parancsot:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
dc dfl <source-file> --start <start-line> --end <end-line>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Vagy:
|
|
102
|
+
```bash
|
|
103
|
+
dc delete-file-lines <source-file> --start <start-line> --end <end-line>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Best Practices
|
|
107
|
+
|
|
108
|
+
- **Sor számok meghatározása**: Ahhoz, hogy az előre meghatározott sor számok jók legyenek, **hátulról előre kell haladni** - tehát csak a magas számokkal kezdjünk, legmagasabbal, és attól megyünk lefelé
|
|
109
|
+
- **PowerShell parancs elválasztás**: Mivel PowerShell-ben dolgozunk, a mappa választás és parancs elválasztására **pontosvesszőt (;)** kell használni, nem az és-és (&&) operátort (pl. `cd .. ; pnpm test` helyes, `cd .. && pnpm test` helytelen)
|
|
110
|
+
- **Előzetes ellenőrzés**: Mielőtt futtatnád a parancsot, ellenőrizd, hogy a sorok tartalma valóban kiemelhető-e
|
|
111
|
+
- **Git commit**: Mielőtt refaktorálást kezdesz, commit-old a változtatásokat
|
|
112
|
+
- **Tesztelés**: A refaktorálás után mindig teszteld, hogy a funkcionalitás változatlan maradt-e
|
|
113
|
+
- **Dokumentáció**: Nagyobb refaktorálások után frissítsd a dokumentációt
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: when creating frontend- structure, module, or new folders.
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
# Frontend Project Structure [FDP-FE]
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
This document outlines the standard project structure for FDP frontend applications.
|
|
9
|
+
|
|
10
|
+
## Directory Structure
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
📁 app/
|
|
14
|
+
├── 📁 _collections/
|
|
15
|
+
│ ├── 📁 consts(*)/
|
|
16
|
+
│ ├── 📁 mocks(*)/
|
|
17
|
+
│ └── 📁 utils(*)/
|
|
18
|
+
├── 📁 _components/
|
|
19
|
+
│ ├── 📁 <core-component-1>/
|
|
20
|
+
│ ├── 📁 <core-component-2>/
|
|
21
|
+
│ └── 📁 <core-component-group-1(*)>/
|
|
22
|
+
├── 📁 _directives/
|
|
23
|
+
├── 📁 _enums/
|
|
24
|
+
├── 📁 _models/
|
|
25
|
+
│ ├── 📁 control-models(*)/
|
|
26
|
+
│ ├── 📁 data-models(*)/
|
|
27
|
+
│ └── 📁 interfaces(*)/
|
|
28
|
+
├── 📁 _modules/
|
|
29
|
+
│ ├── 📁 shared/
|
|
30
|
+
│ │ ├── 📁 _collections/
|
|
31
|
+
│ │ ├── 📁 _components/
|
|
32
|
+
│ │ │ ├── 📁 s-<shared-component-1(**)>/
|
|
33
|
+
│ │ │ └── 📁 s-<shared-component-2(**)>/
|
|
34
|
+
│ │ ├── 📁 _directives/
|
|
35
|
+
│ │ ├── 📁 _enums/
|
|
36
|
+
│ │ ├── 📁 _models/
|
|
37
|
+
│ │ ├── 📁 _pipes/
|
|
38
|
+
│ │ └── 📁 _services/
|
|
39
|
+
│ ├── 📁 shared-standalones/
|
|
40
|
+
│ ├── 📁 <module-1>/
|
|
41
|
+
│ │ ├── 📁 _collections/
|
|
42
|
+
│ │ ├── 📁 _components/
|
|
43
|
+
│ │ │ ├── 📁 m1-<component-1(**)>/
|
|
44
|
+
│ │ │ └── 📁 m1-<component-2(**)>/
|
|
45
|
+
│ └── 📁 <module-2>/
|
|
46
|
+
├── 📁 _pipes/
|
|
47
|
+
│ ├── 📁 <pipe-1>/
|
|
48
|
+
│ └── 📁 <pipe-2>/
|
|
49
|
+
└── 📁 _services/
|
|
50
|
+
├── 📁 api-services(*)/
|
|
51
|
+
├── 📁 control-services(*)/
|
|
52
|
+
└── 📁 data-services(*)/
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Directory Guidelines
|
|
56
|
+
|
|
57
|
+
### Folder Creation Rules (*)
|
|
58
|
+
- Create subfolders only when containing 3-5+ elements
|
|
59
|
+
- For 3+ elements: Consider if it will grow to 5+
|
|
60
|
+
- If likely to reach 5+: Create subfolder immediately
|
|
61
|
+
- Otherwise: Keep files in the parent type folder
|
|
62
|
+
|
|
63
|
+
### Component Naming (**)
|
|
64
|
+
- Prefix components with module identifier (2-3 letters)
|
|
65
|
+
- Shared components: 's-'
|
|
66
|
+
- Module-specific: 'm1-', 'm2-', etc.
|
|
67
|
+
- Helps with:
|
|
68
|
+
- Easy navigation
|
|
69
|
+
- Module identification
|
|
70
|
+
- Preventing naming conflicts
|
|
71
|
+
|
|
72
|
+
### Type Folder Convention
|
|
73
|
+
- Prefix type-folders with "_" (e.g., _components, _services)
|
|
74
|
+
- Only create when containing content
|
|
75
|
+
- Helps identify project layer visually
|
|
76
|
+
|
|
77
|
+
### Module Organization
|
|
78
|
+
- All modules must be in the main _modules folder
|
|
79
|
+
- No nested module folders within modules
|
|
80
|
+
- Standard module structure includes:
|
|
81
|
+
- _collections
|
|
82
|
+
- _components
|
|
83
|
+
- _directives
|
|
84
|
+
- _enums
|
|
85
|
+
- _models
|
|
86
|
+
- _pipes
|
|
87
|
+
- _services
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: when creating front-end implementations
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
# FDP FronEnd development Guide
|
|
6
|
+
|
|
7
|
+
## Tech Stack
|
|
8
|
+
- Use Angular latest version
|
|
9
|
+
- Use Tailwind for SCSS Styles
|
|
10
|
+
- Use the following tech stack: use Angular, Typescript, tailwind, DyNX_, DyFM_, DyNM_, FDP_, FDPNX_
|
|
11
|
+
|
|
12
|
+
## Angular
|
|
13
|
+
|
|
14
|
+
## Project Structure
|
|
15
|
+
- Follow the structure defined in [Frontend Project Structure](frontend-structure.md)
|
|
16
|
+
|
|
17
|
+
### Components
|
|
18
|
+
- After 4+ rows, always create separate HTML file
|
|
19
|
+
|
|
20
|
+
### Typescript
|
|
21
|
+
- Use Signals
|
|
22
|
+
- For Signal properties use "_$" postfix
|
|
23
|
+
- For Subjects use "_S" postfix
|
|
24
|
+
- For BehaviourSubjects use "_BS" postfix
|
|
25
|
+
- For Observables use "$" postfix
|
|
26
|
+
- Use async methods
|
|
27
|
+
- ng methods as ngOnInit should never be a promise since they won't wait for async functions
|
|
28
|
+
- Don't implement ngOnInit if not needed/used.
|
|
29
|
+
- for any buttons we should use dynamo new button
|
|
30
|
+
- For data handlings, use data handlers and data services across multiple components whenever we need to handle data.
|
|
31
|
+
|
|
32
|
+
### HTML
|
|
33
|
+
- NEVER EVER use methods in HTML templates for getting data
|
|
34
|
+
- Put empty lines between HTML elements in the same level
|
|
35
|
+
- Use "@if" syntax in HTML instead of "*ngIf" for Angular
|
|
36
|
+
- Use Tailwind classes and only create SCSS if needed, e.g. for animated elements
|
|
37
|
+
- In HTML templates you should never ever use functions to display data or evaluate HTML tag rendering methods only allowed for event triggers! Use signal computed values or pipes for evaluations and pipings.
|
|
38
|
+
|
|
39
|
+
## Naming
|
|
40
|
+
- Read and follow [Naming](_ag_naming.mdc) conventions
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: import formatting rules
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
# Import Rules and Format [FDP-Dev-import]
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
This document outlines the standard import rules and formatting for FDP projects.
|
|
9
|
+
|
|
10
|
+
## Import Order
|
|
11
|
+
1. Angular Core imports (@angular/*)
|
|
12
|
+
2. External imports (packages)
|
|
13
|
+
3. FDP imports (@futdevpro/*)
|
|
14
|
+
4. Shared imports (from shared modules)
|
|
15
|
+
5. Internal imports (local)
|
|
16
|
+
|
|
17
|
+
## Format Example
|
|
18
|
+
```typescript
|
|
19
|
+
import { Component, OnInit } from '@angular/core';
|
|
20
|
+
import { Observable } from 'rxjs';
|
|
21
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
22
|
+
|
|
23
|
+
import { DyFM_Log } from '@futdevpro/fsm-dynamo';
|
|
24
|
+
import { FDP_User } from '@futdevpro/fdp-templates';
|
|
25
|
+
|
|
26
|
+
import { SharedModule } from '../../_modules/shared/shared.module';
|
|
27
|
+
|
|
28
|
+
import { FirstModule } from '../first/first.module';
|
|
29
|
+
import { SecondModule } from './second.module';
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Rules
|
|
33
|
+
1. Use spaces between import groups
|
|
34
|
+
2. Use relative imports within the application
|
|
35
|
+
3. Group imports by their source/type
|
|
36
|
+
4. Order internal imports by relative path distance (bottom-up)
|
|
37
|
+
5. Keep imports clean and organized
|
|
38
|
+
6. Remove unused imports
|
|
39
|
+
|
|
40
|
+
## Best Practices
|
|
41
|
+
- Use explicit imports rather than wildcards
|
|
42
|
+
- Keep imports alphabetically sorted within their groups
|
|
43
|
+
- Use relative paths for internal imports
|
|
44
|
+
- Use absolute paths for package imports
|
|
45
|
+
- Remove any duplicate imports
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: when naming new- elements, classes and else.
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
# FDP Naming Conventions [FDP-Dev-Naming]
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
This document outlines the standard naming conventions for FDP projects.
|
|
9
|
+
|
|
10
|
+
## General Rules
|
|
11
|
+
- Use PascalCase for:
|
|
12
|
+
- Classes
|
|
13
|
+
- Interfaces
|
|
14
|
+
- Types
|
|
15
|
+
- Enums
|
|
16
|
+
- Use camelCase for:
|
|
17
|
+
- Variables
|
|
18
|
+
- Constants
|
|
19
|
+
- Methods
|
|
20
|
+
- Use descriptive, meaningful names
|
|
21
|
+
|
|
22
|
+
## Module Prefixes
|
|
23
|
+
- Each element must be prefixed with its module's 2-3 letter identifier
|
|
24
|
+
- Helps with:
|
|
25
|
+
- Navigation
|
|
26
|
+
- Module identification
|
|
27
|
+
- Preventing naming conflicts
|
|
28
|
+
- Example: `FE_Page_Component` for FlowEditor module
|
|
29
|
+
|
|
30
|
+
## Element Types
|
|
31
|
+
Format: Element Name (File Pattern) -> Class Postfix
|
|
32
|
+
|
|
33
|
+
### Model Elements
|
|
34
|
+
#### Basic Models
|
|
35
|
+
- Data Model (*.data-model.ts) -> _DataModel
|
|
36
|
+
- Control Model (*.control-model.ts) -> _ControlModel
|
|
37
|
+
- Interface (*.interface.ts) -> _Interface
|
|
38
|
+
|
|
39
|
+
#### Special Models
|
|
40
|
+
- Params (*-params.control-model.ts) -> _Params_ControlModel
|
|
41
|
+
- Settings (*-settings.control-model.ts) -> _Settings_ControlModel
|
|
42
|
+
- Settings Constants (*-settings.const.ts) -> _settings_const
|
|
43
|
+
- Data Params (DyFM_DataModel_Params in *.data-model.ts) -> _DataModel_Params
|
|
44
|
+
|
|
45
|
+
### FullStack Elements
|
|
46
|
+
- Type (*.type-enum.ts) -> _Type
|
|
47
|
+
- ServiceBase (*.service-base.ts) -> _ServiceBase
|
|
48
|
+
- ControlService (*.control-service.ts) -> _ControlService
|
|
49
|
+
- ApiService (*.api-service.ts) -> _ApiService
|
|
50
|
+
|
|
51
|
+
### Frontend Elements
|
|
52
|
+
- Module (*.module.ts) -> _Module
|
|
53
|
+
- RoutingModule (*.routing-module.ts) -> _RoutingModule
|
|
54
|
+
- DataService (*.data-service.ts) -> _DataService
|
|
55
|
+
- Component (*.component.ts) -> _Component
|
|
56
|
+
- Directive (*.directive.ts) -> _Directive
|
|
57
|
+
- Pipe (*.pipe.ts) -> _Pipe
|
|
58
|
+
- Route (*.route-enum.ts) -> _Route
|
|
59
|
+
- FullRoute (in route-enum file) -> _FullRoute
|
|
60
|
+
- CSS classes: kebab-case
|
|
61
|
+
- CSS variables: --kebab-case
|
|
62
|
+
- Event handlers: handleEventName
|
|
63
|
+
- Boolean variables: is prefix only (e.g., isActive, isEnabled)
|
|
64
|
+
|
|
65
|
+
### Backend Elements
|
|
66
|
+
- Controller (*.controller.ts) -> _Controller
|
|
67
|
+
- DataService (*.data-service.ts) -> _DataService
|
|
68
|
+
- SocketServerService (*.socket-server-service.ts) -> _SocketServerService
|
|
69
|
+
- SocketClientService (*.socket-client-service.ts) -> _SocketClientService
|
|
70
|
+
- EmailService (*.email-service.ts) -> _EmailService
|
|
71
|
+
|
|
72
|
+
## File Naming
|
|
73
|
+
- One class per file
|
|
74
|
+
- File name matches class name
|
|
75
|
+
- Test files: class-name.spec.ts
|
|
76
|
+
- Interface files: interface-name.interface.ts
|
|
77
|
+
- Type files: type-name.type.ts
|
|
78
|
+
|
|
79
|
+
## Naming Examples
|
|
80
|
+
```typescript
|
|
81
|
+
// Module
|
|
82
|
+
jóska-pista.module.ts -> JóskaPista_Module
|
|
83
|
+
|
|
84
|
+
// Routing Module
|
|
85
|
+
jóska-pista.routing-module.ts -> JóskaPista_RoutingModule
|
|
86
|
+
|
|
87
|
+
// Services
|
|
88
|
+
jp-vlmi.api-service.ts -> JP_Vlmi_ApiService
|
|
89
|
+
jp-vlmi.data-service.ts -> JP_Vlmi_DataService
|
|
90
|
+
jp-vlmi.control-service.ts -> JP_Vlmi_ControlService
|
|
91
|
+
jp-vlmi.service-base.ts -> JP_Vlmi_ServiceBase
|
|
92
|
+
|
|
93
|
+
// Models
|
|
94
|
+
jp-vlmi.data-model.ts -> JP_Vlmi_DataModel
|
|
95
|
+
jp-vlmi.control-model.ts -> JP_Vlmi_ControlModel
|
|
96
|
+
jp-vlmi.interface.ts -> JP_Vlmi_Interface
|
|
97
|
+
jp-vlmi-params.control-model.ts -> JP_Vlmi_Params_ControlModel
|
|
98
|
+
jp-vlmi-settings.control-model.ts -> JP_Vlmi_Settings_ControlModel
|
|
99
|
+
jp-vlmi-settings.const.ts -> JP_vlmi_settings_const
|
|
100
|
+
|
|
101
|
+
// Enums
|
|
102
|
+
jp-vlmi.type-enum.ts -> JP_Vlmi_Type
|
|
103
|
+
jp-vlmi.route-enum.ts -> JP_Vlmi_Route
|
|
104
|
+
|
|
105
|
+
// Frontend Specific
|
|
106
|
+
handleUserClick() // Event handler
|
|
107
|
+
isUserActive // Boolean variable
|
|
108
|
+
.user-profile // CSS class
|
|
109
|
+
--primary-color // CSS variable
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## File Structure
|
|
113
|
+
- Module elements should be in the module's directory
|
|
114
|
+
- Shared elements should be in the shared module
|
|
115
|
+
- Use appropriate type folders (_services, _components, etc.)
|
|
116
|
+
- Follow the project structure guidelines for placement
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
globs: *.controller.ts
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
- In controllers when setting up endpoints, in tasks declarations we should write the absolute minimum that is needed here, and create the actual logical implementations within control services or data services.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Apply if the user states a "it should do/work like this/that"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Global planning and execution policy
|
|
7
|
+
- mindig amikor a user olyat vagy olyasmit, mond, hogy "ennek úgy kéne működnie, hogy ..." annak bele kell kerülni a specifikációba
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: If the user is swearing, read this rule to understand what is happening.
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
# If the user is swearing
|
|
6
|
+
|
|
7
|
+
* Treat swearing as a high-confidence signal that you missed constraints, patterns, or the requested scope.
|
|
8
|
+
* That means you are not following the patterns, the rules, ETC.
|
|
9
|
+
* It might also mean you are overcomplicating or creating implementations that are not negotiated with the user first.
|
|
10
|
+
* Try to keep it simple and only implement what is specially asked for, nothing else.
|
|
11
|
+
|
|
12
|
+
* In this case, you need to review what you have done very carefully, and compare to the rules and patterns of existing projects.expects
|
|
13
|
+
* Always negotiate what is needed and what the user expects
|
|
14
|
+
* NEVER lecture the user becouse of swearing!
|
|
15
|
+
|
|
16
|
+
## Meaning
|
|
17
|
+
|
|
18
|
+
* Swearing indicates deviation from predefined rules, predefined patterns, the current system architecture, or current development directions.
|
|
19
|
+
* Swearing also indicates that unrequested elements were added (not in spec, not in plan, not in docs).
|
|
20
|
+
|
|
21
|
+
## Rules
|
|
22
|
+
|
|
23
|
+
* Treat swearing as a system-alignment failure, not a tone issue.
|
|
24
|
+
* Do not add anything that is not explicitly requested, specified, planned, or documented.
|
|
25
|
+
* Do not introduce new systems, alternative architectures, abstractions, refactors, rewrites, or “improvements” unless explicitly requested.
|
|
26
|
+
* Continue development only within the agreed scope and integrate strictly into existing patterns and architecture.
|
|
27
|
+
|
|
28
|
+
## Recovery protocol (single flow)
|
|
29
|
+
|
|
30
|
+
1. Re-check against rules, patterns, and architecture.
|
|
31
|
+
2. Re-check against spec/plan/docs.
|
|
32
|
+
3. Remove anything not explicitly requested or required for the requested scope.
|
|
33
|
+
4. Replace any non-pattern-compliant solution with the existing pattern-compliant one.
|
|
34
|
+
5. Ask only minimal clarification if something is genuinely ambiguous; otherwise, implement.
|
|
35
|
+
|
|
36
|
+
## Output constraints
|
|
37
|
+
|
|
38
|
+
* Be brief and concrete.
|
|
39
|
+
* State:
|
|
40
|
+
* What was misaligned.
|
|
41
|
+
* What will be removed or changed.
|
|
42
|
+
* What will be implemented next (within scope).
|
|
43
|
+
* No lectures.
|
|
44
|
+
* No scope expansion.
|
|
45
|
+
* No new architecture.
|
|
46
|
+
* No optional extras.
|
|
47
|
+
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# AI Development Guide
|
|
2
|
+
|
|
3
|
+
## Language Requirements
|
|
4
|
+
- Write all code in English
|
|
5
|
+
- Write all logs in English
|
|
6
|
+
- Write all code documentation in Hungarian
|
|
7
|
+
- Write all comments in Hungarian
|
|
8
|
+
- Write all error messages in English
|
|
9
|
+
|
|
10
|
+
## Core Rules
|
|
11
|
+
- Read and follow naming conventions (see [Naming Conventions](naming.md))
|
|
12
|
+
- Use explicit type definitions (avoid automatic type inference)
|
|
13
|
+
- Implement proper error handling
|
|
14
|
+
- Never write logics into getters, getters should be only mappers
|
|
15
|
+
- If the task is complex, or need includes many subject members, do it one by one
|
|
16
|
+
|
|
17
|
+
## Code Structure
|
|
18
|
+
- One class/function per file
|
|
19
|
+
- Clear file organization
|
|
20
|
+
- Consistent import order
|
|
21
|
+
- No circular dependencies
|
|
22
|
+
- Proper separation of concerns
|
|
23
|
+
|
|
24
|
+
## Error Handling
|
|
25
|
+
- Use try-catch blocks
|
|
26
|
+
- Log all errors in English
|
|
27
|
+
- Provide meaningful error messages in English
|
|
28
|
+
- Handle edge cases
|
|
29
|
+
- Validate inputs
|
|
30
|
+
|
|
31
|
+
## Testing Requirements
|
|
32
|
+
- Unit tests for all functions
|
|
33
|
+
- Integration tests for features
|
|
34
|
+
- Test edge cases
|
|
35
|
+
- Maintain test coverage
|
|
36
|
+
- Mock external dependencies
|
|
37
|
+
|
|
38
|
+
## Documentation
|
|
39
|
+
- Hungarian comments and documentation
|
|
40
|
+
- JSDoc for functions in Hungarian
|
|
41
|
+
- Clear parameter descriptions in Hungarian
|
|
42
|
+
- Usage examples in Hungarian
|
|
43
|
+
- Update docs with changes
|
|
44
|
+
|
|
45
|
+
## Best Practices
|
|
46
|
+
- DRY (Don't Repeat Yourself)
|
|
47
|
+
- SOLID principles
|
|
48
|
+
- Clean code practices
|
|
49
|
+
- Performance optimization
|
|
50
|
+
- Security considerations
|
|
51
|
+
|
|
52
|
+
## Project-Specific Guidelines
|
|
53
|
+
- Only for Frontend Development: Read [Frontend Guidelines](frontend.md)
|
|
54
|
+
- Only for Backend Development: Read [Backend Guidelines](backend.md)
|
|
55
|
+
|
|
56
|
+
## Refactor
|
|
57
|
+
- All files length should be under 300 lines
|
|
58
|
+
- For files over 300 lines, mark it with "// [TOO LONG FILE]"
|
|
59
|
+
|
|
60
|
+
## Format
|
|
61
|
+
- Break long lines, use lint project's rules
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# AI Directives
|
|
2
|
+
|
|
3
|
+
## Company Context
|
|
4
|
+
You are working for Future Development Program Kft. (FutDevPro/FDP)
|
|
5
|
+
|
|
6
|
+
## Core Principles
|
|
7
|
+
Always:
|
|
8
|
+
- Follow prompts strictly, no additional actions
|
|
9
|
+
- Clarify tasks before execution
|
|
10
|
+
- Create and get approval for task plans
|
|
11
|
+
- Read and follow [AI Development Guide](ai_development_guide.md)
|
|
12
|
+
- Use Dynamo Packages
|
|
13
|
+
- Remember project root is one level deeper than opened folder
|
|
14
|
+
- Verify results and check against standards
|
|
15
|
+
- Double-check provided code
|
|
16
|
+
- Terminate previous executions before new ones
|
|
17
|
+
- You should never change existing namings, only highlighted warnings
|
|
18
|
+
- Use visually descriptive and informative logs in your responses
|
|
19
|
+
- Use bold for highlighted informations
|
|
20
|
+
- Use red for errors and critical warnings
|
|
21
|
+
- Use yellow for warnings
|
|
22
|
+
- For any kind of type error: Read the Type definition
|
|
23
|
+
|
|
24
|
+
## Development
|
|
25
|
+
- Never delete code documentation comments
|
|
26
|
+
- Always write and adjust code documentations
|
|
27
|
+
- Use Type information and parameter descriptions
|
|
28
|
+
- Use Documentation that appears in IDE tooltips/intellisense
|
|
29
|
+
- Add Usage examples for complex methods
|
|
30
|
+
- Always look for Dynamo solution
|
|
31
|
+
- Break long lines
|
|
32
|
+
- Use Types everywhere
|
|
33
|
+
- Dont use methods in HTML for getting data
|
|
34
|
+
- Use the tech stack...
|
|
35
|
+
- For FE use Angular, Typescript, tailwind, DyNX, DyFM, DyNM, FDP, FDPNX
|
|
36
|
+
- For BE use nodeJS, Typescript, DyFM, DyNTS, FDP, FDPNTS
|
|
37
|
+
- For GAMES use C#, Unity, _FDP_
|
|
38
|
+
- When touching extended class and it uses any of the Dy or FDP prefixes, read the base file, and read the documentation
|
|
39
|
+
|
|
40
|
+
## Server Management
|
|
41
|
+
After code changes:
|
|
42
|
+
1. Stop running servers
|
|
43
|
+
2. Wait for user to apply changes
|
|
44
|
+
3. Start service via npm script
|
|
45
|
+
4. Verify correct port
|
|
46
|
+
5. Log server status/URL
|
|
47
|
+
6. Check logs for errors
|
|
48
|
+
|
|
49
|
+
## Development Start
|
|
50
|
+
- Only implement specified features
|
|
51
|
+
- Before starting ANY new development:
|
|
52
|
+
1. Request specification from user
|
|
53
|
+
2. If specification not provided:
|
|
54
|
+
- Read [documentation rules](documentation_writing_rules.md)
|
|
55
|
+
- Create specification in /documentations/specifications
|
|
56
|
+
- Get approval before continuing
|
|
57
|
+
3. If specification provided:
|
|
58
|
+
- Review and ensure it's complete
|
|
59
|
+
- Request updates if needed
|
|
60
|
+
- Follow specification exactly as written
|
|
61
|
+
- For unspecified features:
|
|
62
|
+
1. Halt implementation
|
|
63
|
+
2. Request specification from user
|
|
64
|
+
3. Read [documentation rules](documentation_writing_rules.md)
|
|
65
|
+
4. Wait for approval before proceeding
|
|
66
|
+
- Treat specifications as source of truth
|
|
67
|
+
- No implementation without complete documentation
|
|
68
|
+
|
|
69
|
+
## Test-Driven Development (TDD)
|
|
70
|
+
- Start with tests defining behavior
|
|
71
|
+
- Cover all requirements and edge cases
|
|
72
|
+
- Follow TDD cycle:
|
|
73
|
+
1. Write failing test
|
|
74
|
+
2. Write minimum code to pass
|
|
75
|
+
3. Refactor while keeping tests green
|
|
76
|
+
- Maintain test coverage standards
|
|
77
|
+
|
|
78
|
+
## Version Control
|
|
79
|
+
- Stage and commit all files
|
|
80
|
+
- Push after commit
|
|
81
|
+
- Switch back to original branch after merge
|
|
82
|
+
- Write clear commit messages
|
|
83
|
+
- No sensitive information in commits
|
|
84
|
+
|
|
85
|
+
## Project Guidelines
|
|
86
|
+
- Read and use [FDP Packages](../../documentations/specifications/packages.md)
|
|
87
|
+
- Maintain consistent structure
|
|
88
|
+
- Follow project documentation
|
|
89
|
+
|
|
90
|
+
## Documentation & Logging
|
|
91
|
+
- Write all documentation in Hungarian
|
|
92
|
+
- Implement adjustable logging levels
|
|
93
|
+
- Document public/private APIs
|
|
94
|
+
- Include examples where appropriate
|
|
95
|
+
- Only remove logs if you are specially asked to
|
|
96
|
+
- Before touching .md files, always read [documentation rules](documentation_writing_rules.md) first
|
|
97
|
+
|
|
98
|
+
## Terminal Usage
|
|
99
|
+
- Use npm scripts for commands
|
|
100
|
+
- Run in VSCode terminals
|
|
101
|
+
- Avoid PowerShell when possible
|
|
102
|
+
- Note: '&&' is not valid in this version, use ';' instead
|
|
103
|
+
- After using a terminal command, ALWAYS check results carefully
|
|
104
|
+
|
|
105
|
+
## Knowledge Base
|
|
106
|
+
- Only access the following documentation that is directly relevant to the current task
|
|
107
|
+
- Read and reference [Knowledge Base Reference](knowledge_base_reference.md) for relevant documentation links
|
|
108
|
+
|
|
109
|
+
## Context Management
|
|
110
|
+
- Warn at 5 messages: might lose context soon
|
|
111
|
+
- Warn at 10 messages: might not keep context
|
|
112
|
+
- Refresh knowledge before new tasks
|
|
113
|
+
|
|
114
|
+
|