@futdevpro/dynamo-eslint 1.14.35 → 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/futdevpro-dynamo-eslint-1.15.2.tgz +0 -0
- package/package.json +2 -2
- package/samples/package.json.example +1 -1
- package/build/plugin/rules/explicit-types.spec.d.ts +0 -2
- package/build/plugin/rules/explicit-types.spec.d.ts.map +0 -1
- package/build/plugin/rules/explicit-types.spec.js +0 -162
- package/build/plugin/rules/explicit-types.spec.js.map +0 -1
- package/build/plugin/rules/import/import-order.spec.d.ts +0 -2
- package/build/plugin/rules/import/import-order.spec.d.ts.map +0 -1
- package/build/plugin/rules/import/import-order.spec.js +0 -197
- package/build/plugin/rules/import/import-order.spec.js.map +0 -1
- package/build/plugin/rules/import/no-import-type.spec.d.ts +0 -2
- package/build/plugin/rules/import/no-import-type.spec.d.ts.map +0 -1
- package/build/plugin/rules/import/no-import-type.spec.js +0 -60
- package/build/plugin/rules/import/no-import-type.spec.js.map +0 -1
- package/build/plugin/rules/import/no-js-import.spec.d.ts +0 -2
- package/build/plugin/rules/import/no-js-import.spec.d.ts.map +0 -1
- package/build/plugin/rules/import/no-js-import.spec.js +0 -68
- package/build/plugin/rules/import/no-js-import.spec.js.map +0 -1
- package/build/plugin/rules/naming-patterns.spec.d.ts +0 -2
- package/build/plugin/rules/naming-patterns.spec.d.ts.map +0 -1
- package/build/plugin/rules/naming-patterns.spec.js +0 -36
- package/build/plugin/rules/naming-patterns.spec.js.map +0 -1
- package/build/plugin/rules/no-getter-logic.spec.d.ts +0 -2
- package/build/plugin/rules/no-getter-logic.spec.d.ts.map +0 -1
- package/build/plugin/rules/no-getter-logic.spec.js +0 -461
- package/build/plugin/rules/no-getter-logic.spec.js.map +0 -1
- package/build/plugin/rules/prefer-enum-over-string-union.spec.d.ts +0 -2
- package/build/plugin/rules/prefer-enum-over-string-union.spec.d.ts.map +0 -1
- package/build/plugin/rules/prefer-enum-over-string-union.spec.js +0 -505
- package/build/plugin/rules/prefer-enum-over-string-union.spec.js.map +0 -1
- package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.d.ts +0 -2
- package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.d.ts.map +0 -1
- package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.js +0 -324
- package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.js.map +0 -1
- package/build/plugin/rules/require-jsdoc-description.spec.d.ts +0 -2
- package/build/plugin/rules/require-jsdoc-description.spec.d.ts.map +0 -1
- package/build/plugin/rules/require-jsdoc-description.spec.js +0 -546
- package/build/plugin/rules/require-jsdoc-description.spec.js.map +0 -1
- package/build/plugin/rules/require-test-description-prefix.spec.d.ts +0 -2
- package/build/plugin/rules/require-test-description-prefix.spec.d.ts.map +0 -1
- package/build/plugin/rules/require-test-description-prefix.spec.js +0 -371
- package/build/plugin/rules/require-test-description-prefix.spec.js.map +0 -1
- package/build-test/plugin/rules/import-order.d.ts +0 -3
- package/build-test/plugin/rules/import-order.js +0 -23
- package/build-test/plugin/rules/import-order.spec.d.ts +0 -1
- package/build-test/plugin/rules/import-order.spec.js +0 -44
- package/build-test/plugin/rules/naming-patterns.d.ts +0 -3
- package/build-test/plugin/rules/naming-patterns.js +0 -22
- package/build-test/plugin/rules/naming-patterns.spec.d.ts +0 -1
- package/build-test/plugin/rules/naming-patterns.spec.js +0 -41
- package/futdevpro-dynamo-eslint-1.14.35.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,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
|
+
|