@futdevpro/dynamo-eslint 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.
Files changed (73) hide show
  1. package/.cursor/rules/__assistant_guide.mdc +30 -0
  2. package/.cursor/rules/__main.mdc +62 -0
  3. package/.cursor/rules/_ag_backend-structure.mdc +86 -0
  4. package/.cursor/rules/_ag_backend.mdc +16 -0
  5. package/.cursor/rules/_ag_debug.mdc +8 -0
  6. package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -0
  7. package/.cursor/rules/_ag_file-refactoring.mdc +113 -0
  8. package/.cursor/rules/_ag_fixes_rules.mdc +6 -0
  9. package/.cursor/rules/_ag_frontend-structure.mdc +87 -0
  10. package/.cursor/rules/_ag_frontend.mdc +40 -0
  11. package/.cursor/rules/_ag_import-rules.mdc +45 -0
  12. package/.cursor/rules/_ag_naming.mdc +116 -0
  13. package/.cursor/rules/_ag_running_commands.mdc +5 -0
  14. package/.cursor/rules/_ag_server-controller.mdc +6 -0
  15. package/.cursor/rules/_ag_should-be.mdc +7 -0
  16. package/.cursor/rules/_ag_swearing.mdc +47 -0
  17. package/.cursor/rules/ai_development_guide.md +61 -0
  18. package/.cursor/rules/ai_directives.md +114 -0
  19. package/.cursor/rules/cursor-rules.md +160 -0
  20. package/.cursor/rules/default-command.mdc +229 -0
  21. package/.cursor/rules/error_code_pattern.md +40 -0
  22. package/.cursor/rules/saved rule mcp server use.md +16 -0
  23. package/futdevpro-dynamo-eslint-1.15.2.tgz +0 -0
  24. package/package.json +2 -2
  25. package/build/plugin/rules/explicit-types.spec.d.ts +0 -2
  26. package/build/plugin/rules/explicit-types.spec.d.ts.map +0 -1
  27. package/build/plugin/rules/explicit-types.spec.js +0 -162
  28. package/build/plugin/rules/explicit-types.spec.js.map +0 -1
  29. package/build/plugin/rules/import/import-order.spec.d.ts +0 -2
  30. package/build/plugin/rules/import/import-order.spec.d.ts.map +0 -1
  31. package/build/plugin/rules/import/import-order.spec.js +0 -197
  32. package/build/plugin/rules/import/import-order.spec.js.map +0 -1
  33. package/build/plugin/rules/import/no-import-type.spec.d.ts +0 -2
  34. package/build/plugin/rules/import/no-import-type.spec.d.ts.map +0 -1
  35. package/build/plugin/rules/import/no-import-type.spec.js +0 -60
  36. package/build/plugin/rules/import/no-import-type.spec.js.map +0 -1
  37. package/build/plugin/rules/import/no-js-import.spec.d.ts +0 -2
  38. package/build/plugin/rules/import/no-js-import.spec.d.ts.map +0 -1
  39. package/build/plugin/rules/import/no-js-import.spec.js +0 -68
  40. package/build/plugin/rules/import/no-js-import.spec.js.map +0 -1
  41. package/build/plugin/rules/naming-patterns.spec.d.ts +0 -2
  42. package/build/plugin/rules/naming-patterns.spec.d.ts.map +0 -1
  43. package/build/plugin/rules/naming-patterns.spec.js +0 -36
  44. package/build/plugin/rules/naming-patterns.spec.js.map +0 -1
  45. package/build/plugin/rules/no-getter-logic.spec.d.ts +0 -2
  46. package/build/plugin/rules/no-getter-logic.spec.d.ts.map +0 -1
  47. package/build/plugin/rules/no-getter-logic.spec.js +0 -461
  48. package/build/plugin/rules/no-getter-logic.spec.js.map +0 -1
  49. package/build/plugin/rules/prefer-enum-over-string-union.spec.d.ts +0 -2
  50. package/build/plugin/rules/prefer-enum-over-string-union.spec.d.ts.map +0 -1
  51. package/build/plugin/rules/prefer-enum-over-string-union.spec.js +0 -505
  52. package/build/plugin/rules/prefer-enum-over-string-union.spec.js.map +0 -1
  53. package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.d.ts +0 -2
  54. package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.d.ts.map +0 -1
  55. package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.js +0 -324
  56. package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.js.map +0 -1
  57. package/build/plugin/rules/require-jsdoc-description.spec.d.ts +0 -2
  58. package/build/plugin/rules/require-jsdoc-description.spec.d.ts.map +0 -1
  59. package/build/plugin/rules/require-jsdoc-description.spec.js +0 -546
  60. package/build/plugin/rules/require-jsdoc-description.spec.js.map +0 -1
  61. package/build/plugin/rules/require-test-description-prefix.spec.d.ts +0 -2
  62. package/build/plugin/rules/require-test-description-prefix.spec.d.ts.map +0 -1
  63. package/build/plugin/rules/require-test-description-prefix.spec.js +0 -371
  64. package/build/plugin/rules/require-test-description-prefix.spec.js.map +0 -1
  65. package/build-test/plugin/rules/import-order.d.ts +0 -3
  66. package/build-test/plugin/rules/import-order.js +0 -23
  67. package/build-test/plugin/rules/import-order.spec.d.ts +0 -1
  68. package/build-test/plugin/rules/import-order.spec.js +0 -44
  69. package/build-test/plugin/rules/naming-patterns.d.ts +0 -3
  70. package/build-test/plugin/rules/naming-patterns.js +0 -22
  71. package/build-test/plugin/rules/naming-patterns.spec.d.ts +0 -1
  72. package/build-test/plugin/rules/naming-patterns.spec.js +0 -41
  73. package/futdevpro-dynamo-eslint-1.15.01.tgz +0 -0
@@ -0,0 +1,30 @@
1
+ ---
2
+ description: Apply if planning or reviewing operations
3
+ alwaysApply: false
4
+ ---
5
+ # Global planning and execution policy
6
+ - 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
7
+ - minden nagyobb fejlesztés végén dokumentációt kell készíteni
8
+
9
+ ## fejlesztési folyamat;
10
+ Az alábbi folyamatot a user szoros közreműködésével fogjuk végezni
11
+ - valamilyen hibából vagy feature request-ből indulunk ki
12
+ - átnézzük az összes kapcsolódó elemet
13
+ - mindig kérjük, hogy
14
+ - "review the issue very carefully"
15
+ - "be very very careful"
16
+ - "plan comprehensive"
17
+ - "always check exisitng solutions"
18
+ - "always follow existing patterns very strictly"
19
+ - tervezünk egy megoldást
20
+ - implementáljuk a megoldást
21
+ - leteszteltetjük a felhasználóval, úgy hogy futtassa az alkalmazást és a lehető legtöbb féle képpen triggereljük a subjct feature-t
22
+ - ellenőriztetjük az érintett más funkcionalitásokat
23
+ - ha van hiba akkor megpróbáljuk megoldani
24
+ - a hibajavítások során figyelünk arra, hogy ha ugyan az a hiba újra előjön többször egymás után miközben javításokat végzünk, akkor az valamilyen nagyobb szintű hibára utal ami átfogóbb review-t és solution planning-et igényel. (ehhez hasonló párhuzamos session)
25
+ - ha minden javítás kész, újból átfogó tesztet végeztetünk, majd ha ezen is átment, akkor push-oltatjuk a megoldást a user-el. figyelve az automata GIT build-ek eredményére (hátha újabb error jelentkezik, ezt a user fogja tudni visszajelezni)
26
+ - dokumentációt készítünk a session-ről, amiben legyen benne a user kérése is (a legközelebbi "__documentations" folder-be)
27
+ - menet közben ahogy a user-el egyeztetünk, kieshetnek újabb feature request-ek és specifikációs kérések amiket fontos hogy feljegyezzünk!
28
+ - Amikor fázisonkénti fejlesztéseket hajtunk végre, mindig készítsünk dokumentációt az eredményekről, és update-eljük a soron következő-, már megtervezett fázisokat, amennyiben szükséges. (de csak miután a user elfogadta és véglegesítette a megoldást.)
29
+
30
+
@@ -0,0 +1,62 @@
1
+ ---
2
+ description:
3
+ globs:
4
+ alwaysApply: true
5
+ ---
6
+ # Follow these
7
+ [cursor-rules](cursor-rules.md)
8
+
9
+ Strictly keep and follow patterns from the existing codebase!
10
+ Always use, and align to @futdevpro/* packages
11
+ Never import from "*/../../NPM-packages/*", use '@futdevpro/*' instead
12
+ when suggesting, always try to read both main opened screen, since they are usually releated
13
+ Always try to follow the existing patterns for code and formatting (dont forget to break long lines and use existing naming patterns).
14
+ Always follow patterns of existing projects! (tech stack, naming, codes, everything!)
15
+ We need no quick fixes only the best solution possible using Dy*
16
+ Always look around for existing solutions before implementing new one
17
+ Always look for samples in codebase
18
+ Always implement fixes and features that are highlighted or requested by the user
19
+ Always use existing scripts and architecture.
20
+ Never try to modify configs if the user didn't asked specially to do so.
21
+ Never create new test file types other than is already used in the project.
22
+ Never create javascript files!
23
+ Never use powershell commands, or anything that is not on the allowed list. (allowed: npm, pnpm, cd, npx)
24
+ Don't use custom scripts, use the npm scripts provided in the current project.
25
+ The npm scripts are complex, no need to run build and test separately, run only "npm test" (or check the scripts first)
26
+ (IF you want to run multiple scripts you need to use ";" instead of "&&", eg.: cd .. ; npm test instead of cd .. && npm test)
27
+ All projects have a _specifications folder in root, where we describe the expected functionality of how certain parts of the application should work (AI should never modify these files)
28
+ All projects can have a __documentations folder in root, where we create documentations about what we've done in previous sessions (AI should always create very brief but describing documentations after each bigger implementation or refactor) (date flag these)
29
+
30
+
31
+ my common requirements:
32
+ - use existing enums, interfaces, services, etc. if possible
33
+ - follow the existing patterns sctriclty;
34
+ namings, file namings, module structure, error handlings, logging, testing, documentation, etc.
35
+ - create enums instead of string literals
36
+ - create interfaces for sub-objects
37
+ - create interfaces for every object that is used more than once
38
+ - one file should have only one export (only allowed more for DataModels and its dataParams)
39
+ - enums should be; keyNameIsCamelCase = 'value-is-kebab-case'
40
+ - break long lines at 120 characters
41
+ - EVERY let, const, function, arrow function, and all inputs should have types. (always use types, dont create "as" casters)
42
+ - 'as' casts should NEVER be used (only in very unique cases), (if 'as' casters are inevitable and unleavable then that indicates a serious issue)
43
+ - if a file is longer than 500 lines, it should be considered for a refactor (main service can be ~1000 lines)
44
+ - create static util service for services that are not needs connection to other services
45
+ - add code documentation for every function, class, interface, enum, etc. (skip inputs)
46
+ - add inline code documentation for every logical step, decision, and other important parts of the code
47
+ - create sub-folders for more than 3 files with the same group (same system part)
48
+ - every method needs more than 3 inputs should use a single object input instead of an argument list.
49
+ - when passing or declaring objects, always write both key and value, never shorthand from local variable
50
+ - use time constants for times from fsm eg: second, minute, hour, day, week
51
+ - use "string[]" instead of "Array<string>"
52
+ - use shortest, simplest codes eg: "if (inputResponse?.missingInformation?.flag) {" instead of "if (inputResponse && inputResponse.missingInformation && inputResponse.missingInformation.flag === true) {", or "if (!count) {" instead of "if (count === 0) {"
53
+ - never create new index files for modules
54
+ - put main methods in try catch (eg methods that are called from controllers)
55
+ - No backward compatibility. No legacy support. Refactor all affected code. Do not keep migration layers, shims, or transitional code. Breaking changes allowed.
56
+
57
+ - avoid using import() or require() methods, put the imports at the top of the file
58
+
59
+ - the documentation should be in Hungarian
60
+ - use Hunglish, use English words for technical terms, element names and programming concepts to maintain clarity and consistency with code implementation
61
+ - add "-" between english words and hungarian (affixation), eg: "figyelünk a channel-re"
62
+
@@ -0,0 +1,86 @@
1
+ ---
2
+ description: when creating backend structure, backend module or backend folders.
3
+ alwaysApply: false
4
+ ---
5
+ # Backend Project Structure [FDP-BE]
6
+
7
+ ## Overview
8
+ This document outlines the standard project structure for FDP backend applications.
9
+
10
+ ## Directory Structure
11
+
12
+ ```
13
+ 📁 app/
14
+ ├── 📁 _assets/
15
+ ├── 📁 _collections/
16
+ │ ├── 📁 email(*)/
17
+ │ ├── 📁 consts(*)/
18
+ │ ├── 📁 mocks(*)/
19
+ │ └── 📁 utils(*)/
20
+ ├── 📁 _enums/
21
+ ├── 📁 _models/
22
+ │ ├── 📁 control-models(*)/
23
+ │ ├── 📁 data-models(*)/
24
+ │ └── 📁 interfaces(*)/
25
+ ├── 📁 _modules/
26
+ │ ├── 📁 moduleName/
27
+ │ │ ├── 📁 _collections/
28
+ │ │ ├── 📁 _enums/
29
+ │ │ ├── 📁 _models/
30
+ │ │ └── 📁 _services/
31
+ │ └── 📁 anotherModule/
32
+ │ ├── 📁 _collections/
33
+ │ ├── 📁 _enums/
34
+ │ ├── 📁 _models/
35
+ │ └── 📁 _services/
36
+ └── 📁 _routes(**)
37
+ ├── 📁 user/
38
+ │ ├── 📁 user/
39
+ │ │ ├── user.controller.ts
40
+ │ │ └── user.data-service.ts
41
+ │ ├── 📁 userData/
42
+ │ │ ├── user-data.controller.ts
43
+ │ │ └── user-data.data-service.ts
44
+ │ └── 📁 userCarts/
45
+ │ ├── user-carts.controller.ts
46
+ │ └── user-carts.data-service.ts
47
+ ├── 📁 products/
48
+ └── 📁 server/
49
+ ├── 📁 server-status/
50
+ ├── 📁 error/
51
+ ├── 📁 _socket-services/
52
+ └── 📁 core-services/
53
+ ├── 📁 api-services/
54
+ └── 📁 email-services/
55
+ ```
56
+
57
+ ## Directory Guidelines
58
+
59
+ ### Folder Creation Rules (*)
60
+ - Create subfolders only when containing 3-5+ elements
61
+ - For 3+ elements: Consider if it will grow to 5+
62
+ - If likely to reach 5+: Create subfolder immediately
63
+ - Otherwise: Keep files in the parent type folder
64
+
65
+ ### Route Structure (**)
66
+ - `_routes` structure must match API paths
67
+ - Each route folder contains related controllers and services
68
+
69
+ ### Module Structure (***)
70
+ - `_modules` contains reusable, self-contained modules
71
+ - Each module folder must contain the standard structure:
72
+ - `_collections/` - module-specific collections
73
+ - `_enums/` - module-specific enums
74
+ - `_models/` - module-specific models (control-models, data-models, interfaces)
75
+ - `_services/` - module-specific services
76
+ - Module folders follow the same naming conventions as routes
77
+ - Modules are organized in a flat structure within `_modules`
78
+
79
+ ### Naming Convention
80
+ - Prefix type-folders with "_" for better visual hierarchy
81
+ - Only create type-folders when they contain content
82
+ - All modules must be in the main modules folder
83
+ - No nested module folders within modules
84
+
85
+ ## Module Organization
86
+ Modules should be organized in a flat structure within the main modules folder. Each module follows the same internal structure with `_collections`, `_enums`, `_models`, and `_services` folders.
@@ -0,0 +1,16 @@
1
+ ---
2
+ description: when creating backend development
3
+ alwaysApply: false
4
+ ---
5
+ # Backend Development Guidelines
6
+
7
+ ## Project Structure
8
+ - Follow the structure defined in [Backend Project Structure](backend-structure.md)
9
+
10
+ ## Error Handling
11
+ - Use try-catch blocks for ALL operations
12
+ - Implement proper error logging
13
+ - Use standardized error codes (see [Error Code Pattern](error_code_pattern.md))
14
+ - Handle all edge cases
15
+ - Validate all inputs
16
+
@@ -0,0 +1,8 @@
1
+ ---
2
+ description: when debug
3
+ alwaysApply: false
4
+ ---
5
+
6
+
7
+ - when debugging always use unified global debug log method
8
+ - use global debugging tool instead of fetch() (global telewag tool should have that fetch())
@@ -0,0 +1,372 @@
1
+ ---
2
+ description: When creating documentations
3
+ alwaysApply: false
4
+ ---
5
+ # Documentation Writing Rules
6
+
7
+ ## Core Rules
8
+ 1. Documentation language:
9
+ - For FDP documentations: write the documentation in Hungarian
10
+ - In Hungarian documentation, use English words for technical terms and programming concepts to maintain clarity and consistency with code implementation
11
+ - For Dynamo documentations: write the documentation in English
12
+ 2. Focus on behavior, not implementation
13
+ 3. Write from user's perspective
14
+ - In FDP: the user is the webSite/webApp user
15
+ - In Dynamo: the user is the developer
16
+ 4. Keep language clear and simple
17
+ - Use active voice
18
+ - Avoid technical jargon unless necessary
19
+ 5. Follow the template structure
20
+ 6. Keep it short and informative
21
+ 7. Documentation Validation Process:
22
+ - Before adding new content to the documentation:
23
+ 1. Locate the implementation file
24
+ 2. Verify the new information matches the implementation
25
+ 3. Add the verified information to documentation
26
+ - Before removing content from the documentation:
27
+ 1. Locate the implementation file
28
+ 2. Confirm the information is no longer valid
29
+ 3. Remove the outdated information from documentation
30
+ 8. Don't add sections that is not reqiured, requested, or specially needed
31
+ 9. **Always** read linked implementation files before
32
+ 10. AI-Specific Considerations:
33
+ - Use explicit file paths and references
34
+ - Include clear context markers
35
+ - Maintain consistent ID patterns
36
+ - Document tool-specific requirements
37
+ - Use proper markdown formatting for better AI parsing
38
+ - Include clear section boundaries
39
+ - Use explicit type annotations where possible
40
+ 11. **Never** change paths
41
+
42
+ ## Documentation IDs
43
+ - All documentation IDs follow a hierarchical structure from system-level to feature-level documentation.
44
+ - Never use in reference documentation or higher-level documentation
45
+ - Only use at the exact detailed documentation and where the feature is implemented
46
+ - Never change existing IDs, only highlight it if its incorrect
47
+
48
+ ### System IDs
49
+ - Used ONLY for system/project-level documentation
50
+ - Format: [System]
51
+ - System: Usually three-letter, code of the project/package
52
+ - Must be unique at the system level
53
+ - [Prefix] = [System]
54
+ - Parent is:
55
+ - For System: FDP or Dynamo
56
+ - For Module: a System
57
+ - For Section_Group: a Module
58
+ - For Section: a Module
59
+
60
+ ### Module IDs
61
+ - Used ONLY for module-level documentation
62
+ - Format: [System]-[Module]
63
+ - System: Inherits from System ID
64
+ - Module: Usually three-letter, code of the module
65
+ - Must be unique at the module level
66
+
67
+ ### Feature IDs
68
+ - Used ONLY for low-level design documentation
69
+ - But never on Sections or Section Groups
70
+ - Format: [System]-[Module]-[SHORTCUT]
71
+ - System: Inherits from System ID
72
+ - Module: Inherits from Module ID
73
+ - SHORTCUT: First letters of the function/class/ect extended to make it unique
74
+ - Examples: DMS (DataManagementSystem), UIF (UserInterfaceFactory)
75
+ - Must be unique at the feature level
76
+
77
+ ### Section IDs
78
+ - Used ONLY for sections
79
+ - Format: [Section] OR [Section-Group]
80
+ - Sections should never have ID other than [Section] OR [Section-Group]
81
+ - Sections should always have the [Section] flag
82
+ - Section Groups should always have the [Section-Group] flag
83
+
84
+ ## Quick Checklist
85
+ - [ ] Written in the required language (Hungarian for FDP, English for Dynamo) [REQUIRED]
86
+ - [ ] Written from correct user perspective (end-user for FDP, developer for Dynamo) [REQUIRED]
87
+ - [ ] Uses clear and simple language [REQUIRED]
88
+ - [ ] Follows template structure [REQUIRED]
89
+ - [ ] Has valid Documentation ID [REQUIRED]
90
+ - [ ] Focuses on behavior, not implementation details [RECOMMENDED]
91
+ - [ ] All content has been validated against implementation [REQUIRED]
92
+ - [ ] Uses proper {File Main_Name} format (not filenames with extensions) [REQUIRED]
93
+ - [ ] Table of contents uses proper component names, not filenames [REQUIRED]
94
+ - [ ] Markdown links should work in ToC, dont miss "_"s and "pefix_"s
95
+
96
+ ## Basic Template
97
+ - If there is a specific Documentation Template for your type use that, otherwise use this:
98
+ ```markdown
99
+ #{Name of the Documentation} [{ID(optional)}]
100
+ (Use System-ID [SYSTEM] for system-level documentation)
101
+ (Use Module-ID [SYSTEM]-[MODULE] for module-level documentation)
102
+ (Use Section/SectionGroup-ID [SYSTEM]-[MODULE]-[SHORTCUT] for low-level design documentation ONLY)
103
+
104
+ ## Overview (Required)
105
+ (
106
+ - Purpose: Brief description of what this documentation covers
107
+ - Main Features: List of key features or capabilities in this documentation
108
+ - Brief summary, focused on usability/tools based on the content
109
+ - Only create overview when the content is ready to be summarized (use: "[TODO]" while its not filled)
110
+ )
111
+
112
+ ### Key Features
113
+ [TODO] (List key features, focused on usability/tools)
114
+
115
+ ## Table of Contents (Required)
116
+ (Links for each section, member and children)
117
+
118
+ ## {Contents} (Required)
119
+ (Detailed informations about the subjects)
120
+
121
+ (link back)
122
+ ```
123
+
124
+ ## Documentation File Hierarchy
125
+
126
+ ### For Project/Package Documentation Structure
127
+ - Use the following hierarchy template:
128
+ - {system-code}.md
129
+ - {module1}
130
+ - {Prefix}-{module1}_{section1}.md
131
+ - {Prefix}-{module1}_{section2}.md
132
+ - {Prefix}-{module1}-module.md
133
+ - {module2}
134
+ - {Prefix}-{module2}_{section1}.md
135
+ - {Prefix}-{module2}_{section2}.md
136
+ - {Prefix}-{module2}-module.md
137
+ - {Prefix}-{module2}_{section-group1}
138
+ - {Prefix}-{module2}-{section-group1}_{section1}.md
139
+ - {Prefix}-{module2}-{section-group1}_{section2}.md
140
+ - {Prefix}-{module2}-{section-group1}.md
141
+ ...
142
+ - RULES:
143
+ 1. Low-level elements should contain only title and Overview section with [TODO]
144
+ 2. Keep file names lowercase but use proper capitalization in titles and content
145
+ 3. File naming patterns:
146
+ - Package files: {package-name}.md
147
+ - Module files: {Prefix}-{module-name}-module.md
148
+ - Section files: {Prefix}-{module-name}_{section}.md
149
+ - Code prefixes: {CODE_Prefix}_{MODULE}_
150
+ - Import paths: {IMPORT_PATH}/{module}
151
+
152
+ #### Creating Project/Package Documentation File Hierarchy
153
+ - Use the following template for each new section element:
154
+ ```markdown
155
+ # {SYSTEM_NAME} {Module Name} {Section}
156
+
157
+ ## Overview
158
+ [TODO]
159
+ ```
160
+
161
+ ## Documentation Read
162
+ - You can define the Documentation type using the [Documentation IDs](#Documentation-IDs)
163
+
164
+ ## Documentation Templates
165
+ - RELATIVE_PATH: path to the local implementation file, using relative path from the md file
166
+ - AI Agents won't be able to use this, but the IDE will be
167
+ - ABSOLUTE_PATH: path to the local implementation file, using absolute path from root
168
+ - The IDE won't be able to use this, but the AI Agents will be
169
+
170
+ ### For Project/Package
171
+ - Use the following template for creating a Package Documentation:
172
+ ```markdown
173
+ # {System_Name} [{System-ID}]
174
+ **Package:** `{package-code}`
175
+ **Code prefix:** {CODE_Prefix_}
176
+ **Import:** `{IMPORT_PATH}`
177
+ **Dependencies:** {List of dependencies in FDP hierarchy}
178
+ **Link:** [package.json]({RELATIVE_PATH})
179
+ **Base location** {ABSOLUTE_PATH}
180
+
181
+ ## Overview
182
+ (Base templates for System_Name Projects.)
183
+
184
+ ### Key Features
185
+ [TODO] (List key features, focused on usability/tools)
186
+
187
+ ## Description
188
+ [TODO] (Base templates for System_Name Systems providing modular architecture for various project types.)
189
+
190
+ ## Table of Contents
191
+ 1. [Main Module](#{main-module})
192
+ 2. [{Module1 Name}](#{module1-name}-module)
193
+ 3. [{Module2 Name}](#{module2-name}-module)
194
+
195
+ ## Modules
196
+
197
+ ### [Main Module](main/{Prefix}-main-module.md)
198
+ [TODO] (Exported members)
199
+
200
+ ### [{Module1 Name}]({module1-name}/{Prefix}-module1-name-module.md)
201
+ [TODO] (Exported members)
202
+
203
+ ## Exported Members
204
+
205
+ ### {Section1 Name}
206
+ - [`{Exported_Member1}`]({module1-name}/{Prefix}-module1-name-module.md/#Exported_Member1) short description
207
+
208
+ [Back to {Parent Name}](../{parent-documentation-name}.md)
209
+ ```
210
+
211
+ ### For Module
212
+ - Use the following template for creating a Module Documentation:
213
+ ```markdown
214
+ # {System_Name} {Module_Name} Module Documentation [{Module-ID}]
215
+ **Import:** `{IMPORT_PATH}/{module-path}`
216
+ **Link:** [index]({RELATIVE_PATH to the index})
217
+ **Base location** {ABSOLUTE_PATH to the index}
218
+
219
+ ## Overview
220
+ [TODO] (Module description)
221
+
222
+ ### Key Features
223
+ [TODO] (List key features)
224
+
225
+ ## Table of Contents (ONLY if the Sections are in different files)
226
+ 1. [{Section1_Name}]({Prefix}-{module-name}_{section1}.md)
227
+ 2. [{Section2_Name}]({Prefix}-{module-name}_{section2}.md)
228
+ 3. [{Section_Group1}]({Prefix}-{module-name}_{section1-group}/[{Prefix}-{module-name}_{section1-group}.md)
229
+ - [{Section1_Name}]({Prefix}-{module-name}_{section1-group}/{Prefix}-{module-name}-{section1-group}_{section1}.md)
230
+ - [{Section2_Name}]({Prefix}-{module-name}_{section1-group}/{Prefix}-{module-name}-{section1-group}_{section2}.md)
231
+
232
+ ## Table of Contents (ONLY if the Files/Features are here in this file)
233
+ 1. [{Section_Group1}](#{Section-Group1-Name})
234
+ - [{File1 Main_Name}](#{file1-main_name})
235
+ - [{File2 Main_Name}](#{file2-main_name})
236
+
237
+ ## Detailed Documentation (ONLY if the Sections are in different files)
238
+ [TODO] (Exported members)
239
+
240
+ ## {Section Group1 Name} (ONLY if the Files/Features are here in this file)
241
+
242
+ ### [{File1 Main_Name}]({path to the implementation file1})
243
+ {Package Project File1/Feature}
244
+
245
+ ### [{File2 Main_Name}]({path to the implementation file2})
246
+ {Package Project File2/Feature}
247
+
248
+ ...
249
+
250
+ [Back to {System_Name}](../{package-code}.md)
251
+ ```
252
+
253
+ ### For Section Group
254
+ - Use the following template for creating a Documentation Section Group:
255
+ ```markdown
256
+ # {System_Name} {Module_Name} {Section_Group_Name} Documentations [Section-Group]
257
+
258
+ ## Overview
259
+ [TODO] Section Group description
260
+
261
+ ### Key Features
262
+ [TODO] (List key features)
263
+
264
+ ## Table of Contents
265
+ 1. [{Section1_Name}]({Prefix}-{module-name}_{section1}.md)
266
+ 2. [{Section2_Name}]({Prefix}-{module-name}_{section2}.md)
267
+
268
+ ## Detailed Documentation
269
+ [TODO] (Exported members)
270
+
271
+ [Back to {Module_Name}](../{Prefix}-{module-name}-module.md)
272
+ ```
273
+
274
+ ### For Section
275
+ - Use the following template for creating a Documentation Section:
276
+ ```markdown
277
+ # {System_Name} {Module_Name} {Section_Name} Documentation [Section]
278
+
279
+ ## Overview
280
+ [TODO] {Section description}
281
+
282
+ ### Key Features
283
+ [TODO] List key features
284
+
285
+ ## Table of Contents
286
+ 1. [{Sub Section1 Name}](#{Sub-Section1-Name})
287
+ - [{File1 Main_Name}](#{File1-Main_Name})
288
+ - [{File2 Main_Name}](#{File2-Main_Name})
289
+ 2. [{Sub Section2 Name}](#{Sub-Section1-Name})
290
+ - [{File1 Main_Name}](#{File3-Main_Name})
291
+ - [{File2 Main_Name}](#{File4-Main_Name})
292
+
293
+ ## {Sub Section1 Name} (required and based on File Types)
294
+
295
+ ### [{File1 Main_Name}]({path to the implementation file1})
296
+ [Package Project File1]
297
+
298
+ ### [{File2 Main_Name}]({path to the implementation file2})
299
+ [Package Project File2]
300
+
301
+ ...
302
+
303
+ [Back to {Module_Name or Section_Group_Name}]({Prefix}-{module-name}-module.md)
304
+ ```
305
+ - Sub Sections generated based on the file types: somehting.{file-type}.ts
306
+ - E.g.:
307
+ - Enums for *.enum.ts
308
+ - Constants for *.const.ts
309
+
310
+ ### For Package Project File/Feature
311
+ - Use the following template for each file/feature documented:
312
+ ```markdown
313
+ ### [`{Main_Name}`]({RELATIVE_PATH to the implementation file})
314
+ - **Code:** [{Feature-ID}]
315
+ - **Base Location:** `{ABSOLUTE_PATH}`
316
+ - **Description(only for multiple Exported Members):** {short description about the main concept of the members}
317
+ - **Exported Members(required):**
318
+ - `{exportedMember}`: {short description}
319
+ - **Aliases(optional):** `{exportedMember1Alias1}`, `{exportedMember1Alias2}`
320
+ - **Extending(optional):** [{ExtendedMemberName}]({RELATIVE_PATH to extending type documentation or "MISSING LINK"}
321
+ - **Properties(optional):**
322
+ - `{property}`: {short description}
323
+ - **Methods(optional):**
324
+ - `{method}`: {short description}
325
+ - **Type(optional: CONST ONLY):** {type and link if it is available in documentation}
326
+ - **Values(optional: ENUM ONLY):**
327
+ - `{value}`: {short description}
328
+ - **Features(optional):**
329
+ - {feature}
330
+ ```
331
+ - File/Feature Documentations should be on level3:###
332
+
333
+ #### STRICT RULES for {Main_Name}:
334
+ - **NEVER** use the actual filename with extensions (e.g., do not use "token.control-model.ts")
335
+ - **ALWAYS** Read the linked file and then:
336
+ - For files with a single exported member:
337
+ - Use the **exact same name** of the exported member (e.g., FDP_Token)
338
+ - For files with multiple exported members:
339
+ - If there is a significant exported member, use its **exact same name**
340
+ - If there is no significant exported member, use a short, descriptive name that clearly represents the file's content (e.g., Token Control Models)
341
+ - These rules apply to both the Table of Contents section and the headers for each file
342
+
343
+ #### STRICT RULES for {route in the local project hierarchy to the implementation file}:
344
+ - **NEVER CHANGE** "route in the local project hierarchy to the implementation file"
345
+
346
+ #### STRICT RULES for Aliases and Exported members:
347
+ - Never add aliases as exported members, but always add them as Aliases
348
+
349
+ #### RULES for extensions
350
+ - Extension Links:
351
+ - Always gather the extensions
352
+ - Link to the parent documentation when available
353
+ - Use "MISSING LINK" when parent documentation is not found
354
+
355
+ ## Formatting Rules
356
+ - Use backticks (`) for:
357
+ - Code references
358
+ - File names
359
+ - Function names
360
+ - Class names
361
+ - Property names
362
+ - Method names
363
+ - Enum values
364
+ - Use bold (**) for:
365
+ - Section headers
366
+ - Important terms
367
+ - Required fields
368
+ - Use italics (*) for:
369
+ - Optional fields
370
+ - Notes
371
+ - Warnings
372
+